Hello Daniel,
I think your guess about failure_route is correct. Here is the related piece
of config. Actually I can not find any append_branch() call in config (which
is not originally developed by me).
failure_route[1] {
if (t_was_cancelled()) {
exit;
}
if (t_check_status("408|403|404|488|480|415|50[0-4]")) {
if (next_gw()) {
t_on_failure("1");
route(6);
}
else
{
route(6);
}
}
}
route[6] {
if (!t_relay()) {
sl_reply_error();
}
exit;
}
Cheers,
Max.
On Tue, Jul 19, 2011 at 3:37 PM, Daniel-Constantin Mierla <miconda(a)gmail.com
Hello,
On 7/13/11 5:51 PM, Max Doronin wrote:
Hello guys,
I have strange behavior on my Kamailio-1.5.1-notls instance.
I have LCR and TM modules enabled.For a particular destination I have
4 routes to try. When I call to non-existing number, it tries
- route 1 (404 Not Found)
- route 2 (404 Not Found)
- route 3 (503 Service unavailable)
And the problem is with the last 503.
Kamailio ACKs it, immediately drops these 2 lines into syslog
Jul 13 04:14:47 /usr/local/sbin/kamailio[**23572]:
ERROR:tm:t_forward_nonack: no branch for forwarding
Jul 13 04:14:47 /usr/local/sbin/kamailio[**23572]: ERROR:tm:w_t_relay:
t_forward_nonack failed
And sends
SIP/2.0 500 Server error occurred (19/SL).
To the call originator.
30 microseconds later it sends
SIP/2.0 500 Service Unavailable.
to the originator again
Latter 500 looks like the relayed original "503 Service unavailable".
I think so because the Reason header is the same:
Reason: SIP;cause=503;text="Service
Unavailable";icodetext="**NoCircuitAvailable";iintcode=**
10034;isubsystem=3.
Obviously call is terminated.
I noticed that that last peer rewrites my Via headers like this:
Original:
==
Via: SIP/2.0/UDP 187.45.214.132;branch=**z9hG4bK3dac.fae9b793.2.
Via: SIP/2.0/UDP
192.168.2.33:5622;received=49.**49.59.23;branch=z9hG4bK-**
d8754z-a6ba40014f97fb7c-1---**d8754z-;rport=23832.
==
Rewritten
==
Via: SIP/2.0/UDP
187.45.214.132;received=187.**45.214.132;branch=z9hG4bK3dac.**
fae9b793.2,SIP/2.0/UDP
192.168.2.33:5622;received=49.**49.59.23;branch=z9hG4b
==
I tried to modify via1_matching parameter (1 -> 0) but no changes.
My questions are:
- What can be the reason of that 500 with 19/SL
- Can kamailio properly handle this 1 line Via header?
- What can be the reason of that "t_forward_nonack: no branch for
forwarding"?
it seems you try to forward one more time, but there is no new branch where
to send. I guess there is some issue in the failure_route, like calling
t_relay() even if the new branch is not added. If you can paste it here, I
can tell more clear if something is wrong there.
Cheers,
Daniel
--
Daniel-Constantin Mierla --
http://www.asipto.com
Kamailio Advanced Training, Oct 10-13, Berlin:
http://asipto.com/u/kat
http://linkedin.com/in/miconda --
http://twitter.com/miconda