On Thu, May 27, 2010 at 10:09 AM, Henning Westerholt <henning.westerh...@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:3...@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@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users