I'm having an issue where my OUT PSTN is not getting a signal that a call has ended.
My setup is as follows:
IN OUT PSTN ==> SER ==> PSTN
If I place a call and the person hangs up before the callee answers, the callee's phone just keeps ringing.
I see a CANCEL event on the SER box, but nothing on the OUT PSTN.
Here's a sample of my ser.cfg script: ------------------------------------
debug=3 fork=yes log_stderror=yes
sip_warning=no
check_via=no dns=no rev_dns=no port=5060 #children=4 fifo="/tmp/ser_fifo"
loadmodule "/usr/local/lib/ser/modules/sl.so" loadmodule "/usr/local/lib/ser/modules/exec.so" loadmodule "/usr/local/lib/ser/modules/tm.so" loadmodule "/usr/local/lib/ser/modules/rr.so" loadmodule "/usr/local/lib/ser/modules/maxfwd.so" loadmodule "/usr/local/lib/ser/modules/usrloc.so" loadmodule "/usr/local/lib/ser/modules/registrar.so" loadmodule "/usr/local/lib/ser/modules/xlog.so" loadmodule "/usr/local/lib/ser/modules/mysql.so" loadmodule "/usr/local/lib/ser/modules/textops.so"
modparam("usrloc", "db_mode", 0) modparam("rr", "enable_full_lr", 1)
route{ if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if ( msg:len > max_len ) { sl_send_reply("513", "Message too big"); break; };
if (method!="REGISTER") { record_route(); };
xlog("L_INFO", "#INFO# %rm\n");
if (loose_route()) { t_relay(); break; };
setflag(1);
if (method=="CANCEL"){ sl_send_reply("487", "Terminated"); break; };
if (method=="INVITE") { if (uri=~"sip:[0-9]+@.*") { xlog("L_INFO", "Original URI: %ru \n"); exec_dset("insert script here"); xlog("L_INFO", "Relay URI = %ru\n"); if (!t_relay()) { sl_reply_error(); break; };
}; };
}
FYI, this took care of it:
if (method=="CANCEL"){ t_relay(); };
Mik Cheez wrote:
I'm having an issue where my OUT PSTN is not getting a signal that a call has ended.
My setup is as follows:
IN OUT PSTN ==> SER ==> PSTN
If I place a call and the person hangs up before the callee answers, the callee's phone just keeps ringing.
I see a CANCEL event on the SER box, but nothing on the OUT PSTN.
Here's a sample of my ser.cfg script:
debug=3 fork=yes log_stderror=yes
sip_warning=no
check_via=no dns=no rev_dns=no port=5060 #children=4 fifo="/tmp/ser_fifo"
loadmodule "/usr/local/lib/ser/modules/sl.so" loadmodule "/usr/local/lib/ser/modules/exec.so" loadmodule "/usr/local/lib/ser/modules/tm.so" loadmodule "/usr/local/lib/ser/modules/rr.so" loadmodule "/usr/local/lib/ser/modules/maxfwd.so" loadmodule "/usr/local/lib/ser/modules/usrloc.so" loadmodule "/usr/local/lib/ser/modules/registrar.so" loadmodule "/usr/local/lib/ser/modules/xlog.so" loadmodule "/usr/local/lib/ser/modules/mysql.so" loadmodule "/usr/local/lib/ser/modules/textops.so"
modparam("usrloc", "db_mode", 0) modparam("rr", "enable_full_lr", 1)
route{ if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if ( msg:len > max_len ) { sl_send_reply("513", "Message too big"); break; };
if (method!="REGISTER") { record_route(); }; xlog("L_INFO", "#INFO# %rm\n"); if (loose_route()) { t_relay(); break; }; setflag(1); if (method=="CANCEL"){ sl_send_reply("487", "Terminated"); break; }; if (method=="INVITE") { if (uri=~"sip:[0-9]+@.*") { xlog("L_INFO", "Original URI: %ru \n"); exec_dset("insert script here"); xlog("L_INFO", "Relay URI = %ru\n"); if (!t_relay()) { sl_reply_error(); break; }; }; };
}
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers