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@2.3.4.5] (from [sip:+13031112222@3.4.5.6] to [sip:+13031112222@2.3.4.5], Call-ID=[21a30b9168e0a8c963d47ca1361cef77@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@2.3.4.5] (from [sip:+13031112222@3.4.5.6] to [sip:+13031112222@2.3.4.5], Call-ID=[21a30b9168e0a8c963d47ca1361cef77@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@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to