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.23
Mar 26 10:16:23 cc1pri /usr/local/sbin/kamailio[25163]: Carrier fallo ruteando sip:9002105401160918752@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.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