[SR-Users] noack and t_relay erros errors

JR Richardson jmr.richardson at gmail.com
Thu Nov 11 21:51:26 CET 2010


On Thu, Nov 11, 2010 at 1:05 PM, Daniel-Constantin Mierla
<miconda at 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 at evaristesys.com>
>>> Subject: Re: [SR-Users] noack and t_relay erros errors
>>> To: sr-users at lists.sip-router.org
>>> Message-ID:<4CDC1F45.1000704 at 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



More information about the sr-users mailing list