I am having issues with LCR failure route. I have two gateways specified in LCR table, if I change the address of the gateway with highest priority to a bogus IP, the failure route never seems to takes place and call is never routed to second gateway.

Also, I have tested successful calls to both gateways by switching the priorities around.

 

Here is what I receive after the first gateway times out:

 

U kamailio:5060 -> asterisk:5060

SIP/2.0 408 Request Timeout.

Via: SIP/2.0/UDP asterisk:5060;branch=z9hG4bK633b44d8;rport=5060.

From: "user" <sip:user@asterisk>;tag=as67c0037f.

To: <sip:dialednumber@domain>;tag=d7177f97ed67076dddc3163c85ab0656-f2e5.

Call-ID: 248d69ed6495d0a65315458e2ba6c528@asterisk:5060.

CSeq: 102 INVITE.

Server: SIP Proxy.

Content-Length: 0.

 

Config:

 

modparam("tm", "fr_timer", 10000)

modparam("tm", "fr_inv_timer", 120000)

 

modparam("lcr", "db_url", DBURL)

modparam("lcr", "gw_uri_avp", "$avp(i:709)")

modparam("lcr", "ruri_user_avp", "$avp(i:500)")

modparam("lcr", "flags_avp", "$avp(i:712)")

modparam("lcr", "lcr_id_avp", "$avp(s:lcr_id_avp)")

 

route[LCR] {

        if (!load_gws(1)) {

                sl_send_reply("503", "Internal Server Error, Unable to load gateways");

        exit;

        } else {

                if (next_gw()) {

                        t_on_failure("LCR_FAIL");

                        route(RELAY);

                } else {

                        sl_send_reply("503", "Service Unavailable, No available gateways");

                        exit;

                };

        };

        exit;

}

 

failure_route[LCR_FAIL] {

                if (next_gw()) {

                        t_on_failure("LCR_FAIL");

                        route(RELAY);

                } else {

                        t_reply("503", "Service Unavailable, No gateways");

                        exit;

                };

               exit;

}