<p>Hi all.</p>
<p>I have a problem for the following scenario.<br>When I make a call for PSTN and on hook by PSTN side,<br>Cisco As can't send BYE for SER.</p>
<p> 01. [UA via Asterisk] dialing "08022223333" -> [SER]<br> 02. [SER] prefix("0333") and rewritehostport("my.cisco.ip.address:5060") -> [Cisco]<br> 03. [Cisco] dial-peer voice 6000 pots, translate-outgoing called from "033308022223333" to "008022223333"
<br> 04. [Cisco] process an outbound call to "008022223333" -> [e.g. Mobile]<br> 05. [e.g. Mobile] Catch call<br> 06. [SER] log CDR start<br> 07. [Cisco] talking<br> 08. [e.g. Mobile] On hook and call disconnect
<br> 09. [Cisco] can't send BYE for SER *****why??*****<br> 10. [UA via Asterisk] On hook<br> 11. [UA via Asterisk] Send BYE for SER<br> 12. [SER] log CDR End [Cisco] Call finished</p>
<p>But another scenario, if make a call from PSTN to Asterisk and<br>on hook by PSTN side, Cisco As send BYE to SER.</p>
<p> 01. [e.g. Mobile] dialing "0377771111(Asterisk user number)"<br> 02. [Cisco] receive "77771111" call number<br> 03. [Cisco] dial-peer voice 5000 voip, session target ipv4:my.ser.ip.address -> [SER]
<br> 04. [SER] process an incoming call to "0377771111" -> [UA via Asterisk]<br> 05. [UA via Asterisk] Catch call<br> 06. [SER] log CDR start<br> 07. [UA via Asterisk] talking<br> 08. [e.g. Mobile] On hook and call disconnect
<br> 09. [Cisco] Send BYE to SER<br> 10. [SER] log CDR End [Cisco] Call finished<br> 11. [UA via Asterisk] receive BYE from SER</p>
<p>And sorry for my diffucult example.</p>
<p>Why Cisco AS 5300 can't send BYE to SER<br>When PSTN call is disconnected by PSTN side?</p>
<p>My ser.cfg as follows:</p>
<p># --------------------------------------------------------------------------<br># global configuration parameters<br># --------------------------------------------------------------------------<br>fork=no<br>log_stderror=yes
<br>check_via=no<br>dns=no<br>rev_dns=no<br>listen=my.ser.ip.address<br>port=5060<br>fifo="/tmp/ser_fifo"<br>fifo_db_url="mysql://ser:heslo@localhost/ser"</p>
<p># --------------------------------------------------------------------------<br># module loading<br># --------------------------------------------------------------------------<br>loadmodule "/usr/local/lib/ser/modules/mysql.so"
<br>loadmodule "/usr/local/lib/ser/modules/sl.so"<br>loadmodule "/usr/local/lib/ser/modules/tm.so"<br>loadmodule "/usr/local/lib/ser/modules/rr.so"<br>loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
<br>loadmodule "/usr/local/lib/ser/modules/usrloc.so"<br>loadmodule "/usr/local/lib/ser/modules/registrar.so"<br>loadmodule "/usr/local/lib/ser/modules/textops.so"<br>loadmodule "/usr/local/lib/ser/modules/auth.so"
<br>loadmodule "/usr/local/lib/ser/modules/auth_db.so"<br>loadmodule "/usr/local/lib/ser/modules/avpops.so"<br>loadmodule "/usr/local/lib/ser/modules/permissions.so"<br>loadmodule "/usr/local/lib/ser/modules/acc.so"
<br>loadmodule "/usr/local/lib/ser/modules/exec.so"</p>
<p># --------------------------------------------------------------------------<br># setting module-specific parameters<br># --------------------------------------------------------------------------<br>modparam("usrloc", "db_mode", 2)
<br>modparam("auth_db", "calculate_ha1", yes)<br>modparam("auth_db", "password_column", "password")<br>modparam("rr", "enable_full_lr", 1)<br>modparam("usrloc", "db_url", "
mysql://ser:heslo@localhost/ser")<br>modparam("auth_db", "db_url", "mysql://ser:heslo@localhost/ser")<br>modparam("permissions", "db_url", "mysql://ser:heslo@localhost
/ser")<br>modparam("tm", "fr_inv_timer", 27)<br>modparam("tm", "fr_inv_timer_avp", "inv_timeout")<br>modparam("permissions", "db_mode", 1)<br>modparam("permissions", "trusted_table", "trusted")
<br>modparam("acc", "db_url", "mysql://ser:heslo@localhost/ser")<br>modparam("acc", "db_flag", 2)<br>modparam("acc", "db_missed_flag", 3)</p>
<p># --------------------------------------------------------------------------<br># route pattern<br># --------------------------------------------------------------------------<br>route {<br> <br> if (!mf_process_maxfwd_header("10")) {
<br> sl_send_reply("483","Too Many Hops"); <br> break; <br> };</p>
<p> if ( msg:len > max_len ) { <br> sl_send_reply("513", "Message too big"); <br> break; <br> }; <br> <br> record_route(); <br> <br> if (loose_route()) {<br> if (method=="ACK") {
<br> acc_db_request("01:CallStart\n", "acc");<br> };<br> if (method=="BYE" || method=="CANCEL") {<br> acc_db_request("02:CallEnd\n", "acc");<br> };
<br> t_relay();<br> break; <br> };</p>
<p> if (uri==myself) { <br> if (method=="REGISTER") {<br> if (!www_authorize("", "subscriber")) { <br> www_challenge("", "0");<br> break; <br> };
<br> save("location"); <br> break; <br> };</p>
<p> if (search("^(f|From): <a href="mailto:.*@(my\.cisco\.ip\.address">.*@(my\.cisco\.ip\.address</a>)")) {<br> #PSTN Incoming call from Cisco AS 5300 e.g. 0377771111<br> rewritehost("my.asterisk.ip.address
");<br> };</p>
<p> lookup("aliases");</p>
<p> if (!lookup("location")) {<br> if (method=="INVITE" && !search("^(f|From): <a href="mailto:.*@(my\.cisco\.ip\.address">.*@(my\.cisco\.ip\.address</a>)")) {<br> if (!proxy_authorize("", "subscriber")) {
<br> proxy_challenge("", "0");<br> break;<br> };<br> if (uri=~"^sip:0[0-9]{10}@") {<br> # PSTN Outgoing call to Cisco AS 5300 e.g. 08022223333<br> prefix("0333");
<br> rewritehostport("my.cisco.ip.address:5060");<br> avp_write("i:45", "inv_timeout");<br> } else {<br> sl_send_reply("404", "Not Found");
<br> break;<br> };<br> consume_credentials();<br> }; <br> };<br> <br> };</p>
<p> if (!t_relay()) {<br> sl_reply_error(); <br> }; <br> <br>} </p>
<p>And my Cisco AS 5300 config as follows:</p>
<p>voice call send-alert<br>voice rtp send-recv</p>
<p>voice service pots <br> fax protocol t38 ls-redundancy 0 hs-redundancy 0 fallback cisco</p>
<p>voice service voip <br> fax protocol t38 ls-redundancy 0 hs-redundancy 0 fallback cisco<br> sip<br> min-se 60 </p>
<p>translation-rule 50<br> Rule 0 0333 0<br> Rule 1 ^7777 037777</p>
<p>voice class codec 2<br> codec preference 1 g711ulaw<br> codec preference 2 g711alaw</p>
<p>dial-peer voice 5000 voip<br> tone ringback alert-no-PI<br> description ser-asterisk-cisco-test<br> huntstop<br> destination-pattern 77771111$<br> translate-outgoing called 50<br> voice-class codec 2<br> session protocol sipv2
<br> session target ipv4:my.ser.ip.address<br> dtmf-relay rtp-nte<br> max-conn 1</p>
<p>dial-peer voice 6000 pots<br> application session<br> max-conn 2<br> destination-pattern 0333T<br> progress_ind alert enable 8<br> translate-outgoing called 50<br> port 0:D</p>
<p>Thanks,<br>Sahria</p>