I think my script is pretty much standard one: route{ if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); exit; };
if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); exit; }; if (!method=="REGISTER") record_route(); else { sl_send_reply("488","Not Acceptable Here"); exit; } if (loose_route()) { if (is_method("BYE")) { #Account BYE transaction setflag(2); } # mark routing logic in request append_hf("P-hint: rr-enforced\r\n"); route(1); }; if (is_method("INVITE")) { if (allow_source_address("1")) { if (from_uri=~"sip:112...@.*") { $var(origin) = "from_sip1"; } else if (from_uri=~"sip:4...@.*") { $var(origin) = "from_sip2"; } else { $var(origin) = "from_sip3"; } } else if (allow_source_address("2")) { $var(origin) = "from_pstn1"; } else { sl_send_reply("403", "Forbidden"); exit; }; if (!load_gws("$var(origin)")) { sl_send_reply("503", "Unable to load gateways"); exit; } if (!next_gw()) { sl_send_reply("503", "Unable to find a gateway"); exit; } setflag(2); setflag(3); route(1); exit; }; t_check_trans(); if (!uri==myself) { sl_send_reply("488","Not Acceptable Here"); exit; } if (uri==myself) { route(1); exit; }; # requests for my domain if ($rU==NULL) { # request with no Username in RURI sl_send_reply("484","Address Incomplete"); exit; }; if (is_method("CANCEL")) { if (t_check_trans()) t_relay(); exit; }; t_release(); } route[1] { t_on_reply("1"); t_on_failure("11"); if (!t_relay()) { sl_reply_error(); }; exit; } onreply_route[1] { if(!t_check_trans()) { drop; } setflag(2); } ###################### # "default" failover # ###################### failure_route[11] { # In case of failure, send it to an alternative route: if (t_check_status("415|408|404|5[0-9][0-9]")) { if (!next_gw()) { t_reply("503", "Service not available, no more gateways"); exit; } else { t_on_failure("11"); setflag(2); t_relay(); } exit; } } Could sb tell me where i made a mistake/how to modify the script to drop BYEs I've mentioned. Thanks in advance, Maciej 2010/7/10 Maciej Bylica <mb...@gazeta.pl>: > Thanks > > So does it mean that placing t_check_trans() inside loose_route() part > of the script should solve my issue? > Of course i do have record_route() for all non-REGISTER messages. > > Thx, > Maciej. > > > 2010/7/9 Alex Balashov <abalas...@evaristesys.com>: >> If the BYEs are genuine retransmissions, they should be dampened using >> t_check_trans() before they are processed by TM and therefore ACC. >> >> On 07/09/2010 08:03 AM, Maciej Bylica wrote: >> >>> Dear ALL, >>> >>> I have configured Kamailio 1.5 from svn with radius (radiusclient-ng) >>> support for acc. >>> All seem to work okay, except one thing. >>> From time to time I am receiving following radius error (debug from >>> radius server on different ip) >>> Fri Jul 9 12:22:58 2010 : Error: rlm_sql (sql): Couldn't update SQL >>> accounting STOP record - Column 'AcctStartTime' cannot be null >>> Fri Jul 9 12:23:08 2010 : Error: rlm_sql (sql): Couldn't update SQL >>> accounting STOP record - Column 'AcctStartTime' cannot be null >>> Fri Jul 9 12:23:18 2010 : Error: rlm_sql (sql): Couldn't update SQL >>> accounting STOP record - Column 'AcctStartTime' cannot be null >>> >>> A few lines from radiusclient.conf >>> # time to wait for a reply from the RADIUS server >>> radius_timeout 10 >>> # resend request this many times before trying the next server >>> radius_retries 3 >>> >>> After closer look at this, it turned out that there is one START >>> request and four STOPs with the same CallID (Acct-Session-Id). >>> START and first STOP are treated as a pair, the next ones are odd. >>> >>> Taking about sip i do have following scenario: >>> MGW(1)---Kamailio(2)---SIP_Provider(SER based)(3) >>> The call flow that generate aforemtioned errors looks like below >>> (debug on kamailio) >>> 1 - (2) is receiving INVITE from (3) >>> 2 - (2) is sending Giving a Try to (3) >>> 3 - (2) is sending INVITE to (1) >>> 4 - (2) is receiving Trying from (1) >>> 5 - (2) is receiving Ringing from (1) >>> 6 - (2) is receiving OK from (1) >>> 7 - (2) is sending OK to (3) >>> 8 - (2) is receiving ACK from (3) >>> 9 - (2) is sending ACK to (1) >>> ---- call---- >>> 10 - (2) is receiving BYE from (1) (tearing down from (1) side, STOP >>> radius request is generated) >>> 11 - (2) is sending BYE to (3) >>> 12 - (2) is receiving BYE from (3) (second STOP is generated, >>> radius_retries 3, radius_timeout 10) >>> 13 - (2) is sending BYE to (1) >>> 14 - (2) is receiving OK from (1) >>> 15 - (2) is sending OK to (3) >>> 16 - (2) is receiving OK to (3) >>> 17 - (2) is sending OK to (1) >>> >>> For sure there is sth wrong with SIP_Provider but how Kamilio should >>> behave is such situation. >>> Should second BYE (p.12) with the same callid as in p.10 be continued with >>> p.13? >>> >>> Thanks in advance, >>> Maciej. >>> >>> _______________________________________________ >>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list >>> sr-users@lists.sip-router.org >>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >> >> >> -- >> Alex Balashov - Principal >> Evariste Systems LLC >> 1170 Peachtree Street >> 12th Floor, Suite 1200 >> Atlanta, GA 30309 >> Tel: +1-678-954-0670 >> Fax: +1-404-961-1892 >> Web: http://www.evaristesys.com/ >> >> _______________________________________________ >> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list >> sr-users@lists.sip-router.org >> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >> > _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users