[SR-Users] continue processing route script if no response from gateway

Uriel Rozenbaum uriel.rozenbaum at gmail.com
Thu May 27 20:24:56 CEST 2010


JR,

Maybe for subsequent routes you'd like to use $oU (original URI Username)
that is the original number you intend to route.

Rgds,
Uriel

On Thu, May 27, 2010 at 1:23 PM, JR Richardson <jmr.richardson at gmail.com>wrote:

> On Thu, May 27, 2010 at 10:09 AM, Henning Westerholt
> <henning.westerholt at 1und1.de> wrote:
> > On Thursday 27 May 2010, JR Richardson wrote:
> >> > i assume according your description that the GW in question don't send
> a
> >> > provisional response. Then the tm module should generate a internal
> 408
> >> > after fr_timer interval which you could then catch in a failure_route.
> Do
> >> > you armed the appropriate failure_route in your cfg?
> >>
> >> Yes, the gateway is totally off-line so no response comes back.  I do
> >> have failure_route in the config.  This is related to another active
> >> post from me "Carrierroute failover domain not working" so I'm sure
> >> this is a redundant post, but your input is appreciated.
> >>
> >> The pastebin has my kamailio.cfg, the kamailio debug trace and the
> >> error received by sipp and the ngrep capture.
> >>
> >> http://pastebin.com/VQziKYjE
> >
> > Hi JR,
> >
> > from the logs:
> >
> > INFO:carrierroute:cr_do_route: rewrite_uri_recursor doesn't complete, uri
> 65,
> > carrier 1, domain 2
> >
> > this means that there was an error during the invocation of the cr_route
> in
> > the failure_route[2]. Can you check if you've a rule with domain 2 in
> your
> > carrierroute table?
> >
> > And you probably also want to use revert_uri() and append_branch(); in
> the
> > failure_route before respectivly after the new cr_route, otherwise you'll
> > probably run in to problems as well. I just noticed that there is an
> error in
> > the first example in the cr docs, i'll fix it now. The second example
> uses
> > this two commands.
> >
> > Regards,
> >
> > Henning
> >
> Ok, so I think we are on to something, in the first transaction the
> uri was 3465@ which matched the database entry 34 in carrier 1 domain
> 1, but I also had strip_prefix-2 in there as well, so when the call
> goes to the failure route the uri changes to 65@, which did not have a
> match in carrier 1 domain 2.
>
> So to test, I took the prefix matching and the strip_prefix out and
> simplified the database entry to this:
>
> carrierroute table:
> carrier 1, domain 1, host A
> carrier 1, domain 1, host B
> carrier 1, domain 2, host C
> carrier 1, domain 2, host D
>
> carrierfailureroute table:
> carrier 1, domain 1, host A, next domain 2
> carrier 1, domain 1, host B, next domain 2
> carrier 1, domain 2, host C, next domain 1
> carrier 1, domain 2, host D, next domain 1
>
> So now I see a call come in to kamailio and if host A & B are
> off-line, I see in the debug the failure_route try to send the call to
> host C & D, but I still have an error because I don't have a proper
> branch route setup, and this is confusing, I don't understand what
> that means?  Here is the error:
>
> The uri is 3477@, call come in and hits the route[2], then goes to
> failure_route.
>
> May 27 11:04:04 [25716] INFO:carrierroute:cr_do_route: uri 3477 was
> rewritten to sip:3477 at 10.10.14.104 <sip%3A3477 at 10.10.14.104>, carrier 1,
> domain 2
> May 27 11:04:04 [25716] ERROR:tm:t_forward_nonack: no branch for forwarding
> May 27 11:04:04 [25716] ERROR:tm:w_t_relay: t_forward_nonack failed
> May 27 11:04:04 [25716] ERROR:tm:t_forward_nonack: no branch for forwarding
> May 27 11:04:04 [25716] ERROR:tm:w_t_relay: t_forward_nonack failed
>
> Here is the config snip:
>
> route[2] {
>        if(!cr_route("1", "1", "$rU", "$rU", "call_id")){
>                sl_send_reply("403", "Not allowed");
>        } else {
>                t_on_failure("2");
>                        t_relay();
>        }
> }
>
> failure_route[2] {
>        revert_uri();
>        if (t_check_status("404|408|5[0-9][0-9]")) {
>                if(!cr_route("1", "2", "$rU", "$rU", "call_id")){
>                        t_reply("403", "Not allowed");
>                } else {
>                        t_relay();
>                }
>       }
> }
>
> So I guess I'm stuck on the error "ERROR:tm:t_forward_nonack: no
> branch for forwarding".  I'm not sure how to setup a branch route from
> the failure route.
>
> Thanks
>
> JR
> --
> JR Richardson
> Engineering for the Masses
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20100527/416d3bd4/attachment-0001.htm>


More information about the sr-users mailing list