Hello
I have a question. I hope that
someone could clarify this to me.
I have the next situation.
I’m using a t_on_failure route along
with the LCR module. So I have something like this :
failure_route[1] {
if (t_was_cancelled()) {
xlog("L_INFO", "[$ci] $rm:$ru t_was_cancelled in
failure_route\n");
exit;
}
if ( t_check_status("486") ) {
xlog("L_INFO","[$ci] 486 Received\n");
}
if (t_check_status("603")) {
xlog("L_INFO","[$ci] 603 Received\n");
if
(!next_gw()) {
t_reply("503", "Service not available, no more gateways");
xlog("L_INFO", "[$ci] No hay mas gateways para
$rm:$ou\n");
exit;
} else {
xlog("L_INFO",
"[$ci] $rm cambiando $ou por $ru en failure_route");
}
t_on_failure("1");
}
t_relay();
}
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
Sep 2 16:43:41 ERROR:tm:w_t_relay:
t_forward_nonack failed
So it seems that tries to forward the ACK
with t_relay?
Caller Proxy
Callee
------>
INVITE
----->
INVITE
<------
486
------->
ACK
<------
486
-----> (error?)
ACK
But…
When I modified the next lines in the
failure_route
if ( t_check_status("486") ) {
xlog("L_INFO","[$ci] 486 Received\n");
exit;
}
And add the “exit” parameter, i
don’t have the above error and the “486” is passed back to
the caller as “expected”.
Can someone explain me this?
Thanks in advance..
Regards
Ricardo Martinez.-