any ideas ? Omar
On Tue, 2009-02-17 at 23:12 -0500, Ferdinandm wrote: > Here is it Basic config for Kamailio 1.4.3 > > > ####### Global Parameters ######### > debug=9 # change this to 3 > log_stderror=yes > fork=yes > children=4 > > listen=udp:x.x.x.x:5060 > > ####### Modules Section ######## > > #set module path > mpath="/opt/openser/lib64/kamailio/modules/" > loadmodule "db_mysql.so" > loadmodule "sl.so" > loadmodule "tm.so" > loadmodule "rr.so" > loadmodule "maxfwd.so" > loadmodule "textops.so" > loadmodule "mi_fifo.so" > #loadmodule "uri_db.so" > loadmodule "uri.so" > loadmodule "xlog.so" > loadmodule "carrierroute.so" > # ----------------- setting module-specific parameters --------------- > > # ----- mi_fifo params ----- > modparam("mi_fifo", "fifo_name", "/tmp/kamailio_fifo") > > # ----- carrierroute params ----- > modparam("carrierroute", "db_url", "mysql://help:h...@localhost/sip") > modparam("carrierroute", "config_source", "db") > > > ####### Routing Logic ######## > # main request routing logic > > route{ > if (!mf_process_maxfwd_header("10")) { > sl_send_reply("483","Too Many Hops"); > exit; > }; > > if (has_totag()) { > # sequential request withing a dialog should > # take the path determined by record-routing > if (loose_route()) { > # if (is_method("BYE")) { > # with or without BYE i have the same result > # if (t_check_trans()) > # t_relay(); > # } > route(10); > } else { > if ( is_method("ACK") ) { > if ( t_check_trans() ) { > # non loose-route, but stateful > ACK; must be an ACK after a 487 or e.g. 404 from upstream server > t_relay(); > exit; > } else { > # ACK without matching > transaction ... ignore and discard.\n"); > xlog("L_WARN", "[$mi] discarding > ACK\n"); > exit; > } > } > sl_send_reply("404","Not here"); > } > exit; > } > > #initial requests > > # CANCEL processing > if (is_method("CANCEL")) { > if (t_check_trans()) > t_relay(); > exit; > } > > t_check_trans(); > > # record routing > if (!is_method("REGISTER|MESSAGE")) > record_route(); > > if (!uri==myself) { > append_hf("P-hint: outbound\r\n"); > route(10); > exit; > } > > # requests for my domain > > if ($rU==NULL) { > # request with no Username in RURI > sl_send_reply("484","Address Incomplete"); > exit; > } > > if (is_method("INVITE")) { > if (cr_route("default", "3", "$rU", "$rU", "call_id")) { > t_on_failure("1"); > route(10); > exit; > } > exit; > } > } > > > route[10] { > cr_user_carrier("$fU", "$fd", "$avp(s:carrier)"); > $avp(s:domain)="3"; > if (!cr_route("$avp(s:carrier)", "$avp(s:domain)", "$rU", > "$rU", "call_id")) { > xlog("L_ERR", "cr_route failed\n"); > exit; > } > # if you store also the port as part of the rewrite host, > # otherwise you can just use $rd later > $avp(s:host)= $rd; > t_on_failure("1"); > # xlog("method: $rm"); > if (!t_relay()) { > sl_reply_error(); > } > } > > > #onreply_route[2] { > # xlog("incoming reply\n"); > #} > > failure_route[1] { > revert_uri(); > if (!cr_next_domain("$avp(s:carrier)", "$avp(s:domain)", "$rU", > "$avp(s:host)", "$T_reply_code", "$avp(s:domain)")) { > xlog("L_ERR", "cr_next_domain failed\n"); > exit; > } > if (!cr_route("$avp(s:carrier)", "$avp(s:domain)", "$rU", "$rU", > "call_id")) { > xlog("L_ERR", "cr_route failed\n"); > exit; > } > # $avp(s:host)= $rd+":"+$rp; > $avp(s:host)= $rd; > t_on_failure("1"); > append_branch(); > if (!t_relay()) { > xlog("L_ERR", "t_relay failed\n"); > exit; > } > } > > i am running solaris 10, 64 bits, then i really don't know if i should > not try in this platform. > > I somebody has a Working config as an example will be great. > > but i still dont have the BYE, is not leaving the server, when i sniff > the network. > > the kamailio debug shows at least 4 times something like this : > > bash-3.00# Feb 17 22:32:11 [15673] DBG:tm:utimer_routine: timer > routine:7,tl=fffffffef0293738 next=0, timeout=44300000 > Feb 17 22:32:11 [15673] DBG:tm:retransmission_handler: > retransmission_handler : request resending (t=fffffffef0293518, BYE > sip:4 ... ) > Feb 17 22:32:11 [15673] DBG:tm:set_timer: relative timeout is 4000000 > Feb 17 22:32:11 [15673] DBG:tm:insert_timer_unsafe: [7]: > fffffffef0293738 (48300000) > Feb 17 22:32:11 [15673] DBG:tm:retransmission_handler: > retransmission_handler : done > > bash-3.00# Feb 17 22:32:16 [15673] DBG:tm:utimer_routine: timer > routine:7,tl=fffffffef0293738 next=0, timeout=48300000 > Feb 17 22:32:16 [15673] DBG:tm:retransmission_handler: > retransmission_handler : request resending (t=fffffffef0293518, BYE > sip:4 ... ) > Feb 17 22:32:16 [15673] DBG:tm:set_timer: relative timeout is 4000000 > Feb 17 22:32:16 [15673] DBG:tm:insert_timer_unsafe: [7]: > fffffffef0293738 (52300000) > Feb 17 22:32:16 [15673] DBG:tm:retransmission_handler: > retransmission_handler : done > > thanks > > F > > > On Tue, 2009-02-17 at 18:48 +0100, Henning Westerholt wrote: > > On Tuesday 17 February 2009, Omar wrote: > > > i did > > > > > > there is no bye leaving from the kamailio at all > > > > > > the config is i stated before but now without the exit in the BYE > > > condition. > > > > > > kamailio saves the bye when the bye comes from the B side, yes > > > but it does not send anything back to the Originator GW, as it should. > > > i made the captures and nothing. Kamailio receives and process the bye > > > for CDR, but it does not send the BYE to the originator. i captured in > > > the port 5060 and nothing comes. > > > > > > it is maybe a bug.? > > > > Hi Omar, > > > > it could be a bug, a misconfiguration, or a user agent which does not act > > according the standard. Does the BYE reach your forwarding/ t_relay > > statement > > in your config, you can check with xlog as well. This gives you the method > > of > > the SIP message you actually proceed in the config, just add this before > > the > > forwarding statement. > > > > xlog("method: $rm"); > > > > Cheers, > > > > Henning _______________________________________________ Kamailio (OpenSER) - Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users http://lists.openser-project.org/cgi-bin/mailman/listinfo/users