On Thu, Nov 11, 2010 at 1:05 PM, Daniel-Constantin Mierla
<miconda(a)gmail.com> wrote:
On 11/11/10 7:42 PM, JR Richardson wrote:
Hi All,
I'm still getting these errors and I'm struggling to resolve the
problem. I think I'm missing an append_branch or something simple in
my config, a little guiedance will be appriciated.
The error:
Nov 11 10:23:26 sip-router1 /usr/local/sbin/kamailio[23739]: ERROR: tm
[t_fwd.c:1379]: ERROR: t_forward_nonack: no branches for forwarding
Nov 11 10:23:26 sip-router1 /usr/local/sbin/kamailio[23739]: ERROR: tm
[tm.c:1300]: ERROR: w_t_relay_to: t_relay_to failed
The sip graph causing the error:
http://pastebin.com/VHhQ1sJY
My config:
http://pastebin.com/BYn4g5ur
Do I need to have a mechanism to deal with a 486 form the carrier?
Thanks.
JR
--
JR Richardson
Engineering for the Masses
------------------------------
Message: 4
Date: Thu, 11 Nov 2010 11:52:21 -0500
From: Alex Balashov<abalashov(a)evaristesys.com>
Subject: Re: [SR-Users] noack and t_relay erros errors
To: sr-users(a)lists.sip-router.org
Message-ID:<4CDC1F45.1000704@evaristesys.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
1. One problem may be that you are calling route[RELAY] from your
failure route and using sl_send_reply(). The route[RELAY] is still
being invoked in a failure route execution context, even if you have
managed to contextually invoke another route, or subroutine if you will.
Stateless replies (sl_reply_error()) cannot be sent from within a
failure route.
2. Yes. throw an append_branch() into your failure route.
--
Alex Balashov - Principal
Evariste Systems LLC
1170 Peachtree Street NE
12th Floor, Suite 1200
Atlanta, GA 30309
Tel: +1-678-954-0670
Fax: +1-404-961-1892
Web:
http://www.evaristesys.com/
Well, that seemed to help greatly, so far no more errors after
changing my failure route to:
failure_route[FAIL_ONE] {
if (t_is_canceled()) {
exit;
}
ds_mark_dst("P");
ds_next_dst();
you should wrap ds_next_dst() in an 'if' condition so you don't create new
branches when there is no destination address left to try.
if(ds_next_dst()) {
append_branch();
t_relay();
}
Also, if you have more that 2 addresses in the destination group and want to
try all, re-arm the failure route
if(ds_next_dst()) {
append_branch();
t_on_failure("FAIL_ONE");
t_relay();
}
append_branch();
This is needed for version less or equal to 3.0.x if ds_append_branch
parameter is 0. Starting with 3.1.0 is no longer needed (if still used is
harmless).
Cheers,
Daniel
t_relay();
}
Thanks Alex, right on target again.
JR
--
Daniel-Constantin Mierla
http://www.asipto.com
That makes sense. Thank you for the suggestion.
JR
--
JR Richardson
Engineering for the Masses