One more piece of info, I found out that cr_next_domain is failing when i reach the last carrier failure route.
I'm loading this on carrierroute and carrierfailureroute: CR 5544 2 0 105411609187 0 0 120 4 192.168.200.23 900210540 J10 5545 2 1 105411609187 0 0 30 4 192.168.200.14 900210540 J10 CFR 9240 2 0 105411609187 192.168.200.23 ... 0 0 1 J10 9241 2 1 105411609187 192.168.200.14 ... 0 0 J10
This is what I get on syslog:
Mar 26 10:16:23 cc1pri /usr/local/sbin/kamailio[25163]: Carrier encontrado; ruteando sip:9002105401160918752@192.168.200.23sip%3A9002105401160918752@192.168.200.23 Mar 26 10:16:23 cc1pri /usr/local/sbin/kamailio[25163]: Carrier fallo ruteando sip:9002105401160918752@192.168.200.23sip%3A9002105401160918752@192.168.200.23 Mar 26 10:16:23 cc1pri /usr/local/sbin/kamailio[25163]: Se encontre otro carrier para rutear 9002105401160918752 Mar 26 10:16:23 cc1pri /usr/local/sbin/kamailio[25163]: Carrier fallo ruteando sip:9002105401160918752@192.168.200.14sip%3A9002105401160918752@192.168.200.14 Mar 26 10:16:23 cc1pri /usr/local/sbin/kamailio[25163]: ERROR:carrierroute:cr_load_next_domain: during set_next_domain_recursor, prefix '10541160918752', carrier 2, domain 1
Using this peace of code:
route[2] {
t_on_failure("2"); t_relay(); exit; }
route[20] {
# ----- Rutear menasje con CR -----
$avp(s:rutaindice) := 0; if(!cr_route("$avp(s:routeTree)", "$avp(s:rutaindice)", "$oU", "$oU", "call_id", "$avp(s:cr_host)")) { sl_send_reply("480", "Temporarily unavailable"); } else { xlog("L_ERR", "Carrier encontrado; ruteando $ru\n"); route(2); }; }
failure_route[2] {
# ----- Re-Rutear menasje con CR -----
xlog("L_ERR", "Carrier fallo ruteando $ru\n"); if (t_check_status("408|404|5[0-9][0-9]|6[0-9][0-9]")) { if (!cr_next_domain("$avp(s:routeTree)", "$avp(s:rutaindice)", "$oU", "$avp(s:cr_host)", "$T_reply_code", "$avp(s:cfr_domain)")) { t_reply("404", "Not found"); exit; };
$avp(s:rutaindice) = $avp(s:cfr_domain);
if(!cr_route("$avp(s:routeTree)", "$avp(s:rutaindice)", "$oU", "$oU", "call_id")){ xlog("L_ERR", "No se encontraron mas carrier para rutear $rU\n"); t_reply("404", "Not found"); } else { xlog("L_ERR", "Se encontre otro carrier para rutear $rU\n"); append_branch(); route(2); }; }; }
On Wed, Mar 25, 2009 at 10:53 AM, Uriel Rozenbaum <uriel.rozenbaum@gmail.com
wrote:
Guys,
I'm getting this error on the logs for failure route but just for some of the calls I pass. If I call afterwards to that number it rings OK, so it is a random event:
ERROR:carrierroute:cr_load_next_domain: during set_next_domain_recursor, prefix '1054111547533610', carrier 2, domain 1
I'm filling carrierfailureroute with an empty string when I want taht route to be the final one; is it OK to do that?
Thanks in advance, Uriel