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

Carl Wagner carl.wagner at verbalworld.com
Wed May 18 23:23:02 CEST 2011


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)



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


More information about the sr-users mailing list