[Kamailio-Users] t_realy in failure_route?

Ricardo Martinez rmartinez at redvoiss.net
Thu Sep 3 15:59:37 CEST 2009


Hello Iñaki.
Thanks for your answer.  I understand what you're saying about the 6XX responses, but my question is regarding to the 486 response, maybe you misunderstood my question:
If you take a look at my failure_ruote block I have :

failure_route[1]   {
...
        if ( t_check_status("486") ) {
                xlog("L_INFO","[$ci] 486 Received\n");
                        
  	  }
...

	t_relay();
}

Under this configuration I have something like this : 

Caller     Proxy   Callee
     ------> |
     INVITE  |
             |  ----->
             |  INVITE
             | <------
             |   486
             |  ----->
             |   ACK
     <------ |
        486  |
     ------> | (error)
        ACK  |

I'm getting an error in the log file :

Sep  2 16:43:41 ERROR:tm:t_forward_nonack: no branch for forwarding 
Sep  2 16:43:41 ERROR:tm:w_t_relay: t_forward_nonack failed

It seems that Kamailio is trying to forward the last ACK ?

But instead if I have the a failure_route like this  (just added a "exit" in the check status):

failure_route[1]   {
...
        if ( t_check_status("486") ) {
                xlog("L_INFO","[$ci] 486 Received\n");
		    exit;
                        
  	  }
...

	t_relay();
}

I have the same SIP message exchange above but without the error.
So, it's working ok but I don't understand why this is happening.  I would expect that the "exit" command at the end of the t_check_status would not forward the "486", but it seems that is not forwarding the ACK to the 486.

Hope you could help me to understand this.

Regards,
Ricardo.-


-----Mensaje original-----
De: users-bounces at lists.kamailio.org [mailto:users-bounces at lists.kamailio.org] En nombre de Iñaki Baz Castillo
Enviado el: miércoles, 02 de septiembre de 2009 18:54
Para: users at lists.kamailio.org
Asunto: Re: [Kamailio-Users] t_realy in failure_route?

El Jueves, 3 de Septiembre de 2009, Ricardo Martinez escribió:
> Maybe I’m misunderstanding how the failure_route works but with this
>  configuration I was expecting that If I have a 603 from the callee I will
>  do the “next_gateway” configuration.  And If I have a 486 I will put a
>  line in the log and then continue with the t_relay. So.. the 486 will be
>  passed to the caller, but with the final answer from the caller ( ACK ) to
>  the 486.. and I’m getting this error… 
> Sep  2 16:43:41 ERROR:tm:t_forward_nonack: no branch for forwarding
> 

According to RFC 3261 a 6XX response terminates ALL the transactions generated 
by the incoming request. This is, a 6XX response breaks/terminates serial and 
parallel forking even if there are still more pending branches (those are 
cancelled automatically).

This is a bad design (IMHO) as it breaks many common scenarios (as forwarding 
to a voicemail server if the called rejects the call => serial forking).

There is a core option to avoid it:

  disable_6xx_block
  
  http://www.kamailio.org/docs/modules/1.5.x/tm.html#id2530547


Hope it helps.


-- 
Iñaki Baz Castillo <ibc at aliax.net>

_______________________________________________
Kamailio (OpenSER) - Users mailing list
Users at lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
http://lists.openser-project.org/cgi-bin/mailman/listinfo/users


More information about the sr-users mailing list