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:
My config:
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@evaristesys.com Subject: Re: [SR-Users] noack and t_relay erros errors To: sr-users@lists.sip-router.org Message-ID: 4CDC1F45.1000704@evaristesys.com Content-Type: text/plain; charset=ISO-8859-1; format=flowed
- 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.
- 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(); append_branch(); t_relay(); }
Thanks Alex, right on target again.
JR
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:
My config:
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 Balashovabalashov@evaristesys.com Subject: Re: [SR-Users] noack and t_relay erros errors To: sr-users@lists.sip-router.org Message-ID:4CDC1F45.1000704@evaristesys.com Content-Type: text/plain; charset=ISO-8859-1; format=flowed
- 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.
- 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
On Thu, Nov 11, 2010 at 1:05 PM, Daniel-Constantin Mierla miconda@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:
My config:
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 Balashovabalashov@evaristesys.com Subject: Re: [SR-Users] noack and t_relay erros errors To: sr-users@lists.sip-router.org Message-ID:4CDC1F45.1000704@evaristesys.com Content-Type: text/plain; charset=ISO-8859-1; format=flowed
- 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.
- 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