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(a)lists.kamailio.org [mailto:users-bounces@lists.kamailio.org] En nombre
de Iñaki Baz Castillo
Enviado el: miércoles, 02 de septiembre de 2009 18:54
Para: users(a)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(a)aliax.net>
_______________________________________________
Kamailio (OpenSER) - Users mailing list
Users(a)lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
http://lists.openser-project.org/cgi-bin/mailman/listinfo/users