[SR-Users] ACK to 486 is not being proxied

Daniel-Constantin Mierla miconda at gmail.com
Thu May 19 10:30:25 CEST 2011


Hello,

the ACK for non-2xx replies is hop-by-hop, meaning that kamailio will 
generate one when the reply is received, will send back the reply and 
when the ack comes from upstream, it will absorb it.

In this case it seems that ack is not matching any invite transaction 
and thus is not known where to send it.

Can you send the invite, reply and the ack requests taken with ngrep for 
such case? Maybe is something broken in the content of the message.

Cheers,
Daniel

On 5/18/11 11:23 PM, Carl Wagner wrote:
> Hi,
>
> I have Kamailio set up to act as a proxy and load balancer.  Most 
> things are working correctly but for some reason I can't get Kamailio 
> to proxy an ACK to a 486 Busy.
> I assume that it is something wrong that I have done in the 
> kamailio.cfg file but I am not seeing it.
>
> Does the t_check_trans() return false because the call state is Busy?
>
> Please let me know if you need other logs or information.
>
> Thanks in advance,
> Carl
>
>
>
> ================== Call flow:  (from ngrep)  ======================
>
> Asterisk     Kamailio     Provider
>  INVITE--------->
>                    INVITE--------->
> <----------100 Trying
> <---------100 Trying
> <----------486 Busy
> <---------486 Busy
> ACK------------->
> ====== Kamailio does not proxy the ACK here =======
> <----------486 Busy
> <---------486 Busy
> ACK------------->
> <----------486 Busy
> <---------486 Busy
>
>
> === kamailio.cfg snippet
> ...
> route
> {
>    route(REQINIT);  # remove malformed messages
>
>    # handle requests within SIP dialogs
>    route(WITHINDLG);
>   ...
> }
>
> ###################################################################
> # Handle requests within SIP dialogs (request has a TO: Tag)
> route[WITHINDLG]
> {
>    if (has_totag())
>    {
> xlog("L_INFO", "  WITHINDLG: SIP Request: [$rm] ruri=[$ru]  (from 
> [$fu] to [$tu], Call-ID=[$ci], CSeq=[$cs])\n");
>       if (loose_route())
>       {
>          ...
>       }
>       else  # not loose_route
>       {
>          if ( is_method("ACK") )
>          {
>             if ( t_check_trans() )  # see if a message is related to a 
> transaction
>             {
>                ...
>             }
>             else
>             {
>                # ACK without matching transaction ... ignore and discard
> xlog("L_INFO", "  WITHINDLG: has TO: tag AND loose_route is NOT true 
> and is_method = ACK and t_check_trans=FALSE\n");
>
> # not forwarded here!!!   Tried both t_relay and forward.
>                # $var(a) = t_relay();
>                $var(a) = forward();
>                xlog ("L_INFO", "  WITHINDLG: (ReturnCode = [$var(a)] 
> exiting)\n");
>
>                exit;
>             }
>          }
>          sl_send_reply("404","Not here");
>       }
>       exit;
>    }
> }
>
> ============= End of kamailio.cfg ================
>
>
> ============= /var/log/messages - snippit of the message ==========
>
> May 18 11:21:05 kam0 /usr/sbin/kamailio[21282]: INFO: <script>: 
> ======== processing new message
> May 18 11:21:05 kam0 /usr/sbin/kamailio[21282]: INFO: <script>: MAIN: 
> SIP Request: [ACK] ruri=[sip:+13031112222 at 2.3.4.5]  (from 
> [sip:+13031112222 at 3.4.5.6] to [sip:+13031112222 at 2.3.4.5], 
> Call-ID=[21a30b9168e0a8c963d47ca1361cef77 at 3.4.5.6]) CSeq=[102]
> May 18 11:21:05 kam0 /usr/sbin/kamailio[21282]: INFO: <script>:   
> WITHINDLG: SIP Request: [ACK] ruri=[sip:+13031112222 at 2.3.4.5]  (from 
> [sip:+13031112222 at 3.4.5.6] to [sip:+13031112222 at 2.3.4.5], 
> Call-ID=[21a30b9168e0a8c963d47ca1361cef77 at 3.4.5.6], CSeq=[102])
> May 18 11:21:05 kam0 /usr/sbin/kamailio[21282]: INFO: <script>:   
> WITHINDLG: has TO: tag
> May 18 11:21:05 kam0 /usr/sbin/kamailio[21282]: INFO: <script>:   
> WITHINDLG: has TO: tag AND loose_route is NOT true and is_method = ACK 
> and t_check_trans=FALSE
> May 18 11:21:05 kam0 /usr/sbin/kamailio[21282]: INFO: <script>:   
> WITHINDLG:    the ACK to a 486 was not being processed so I am adding 
> t_relay here
> May 18 11:21:05 kam0 /usr/sbin/kamailio[21282]: INFO: <script>:   
> WITHINDLG: (ReturnCode = [1] exiting)
>
>
>
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla
http://www.asipto.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20110519/a5cbc6dc/attachment.htm>


More information about the sr-users mailing list