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<abalas...@evaristesys.com>
Subject: Re: [SR-Users] noack and t_relay erros errors
To: sr-users@lists.sip-router.org
Message-ID:<4cdc1f45.1000...@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


_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to