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(a)gmail.com>wrote;wrote:
On Thu, May 27, 2010 at 10:09 AM, Henning Westerholt
<henning.westerholt(a)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@10.10.14.104 <sip%3A3477(a)10.10.14.104>04>, 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(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users