Hello,

 

Not sure if I understood your question 100%. If you want to work on 480 replies in the failure_route, you should also include this in the t_check_status(..) function call.

 

Cheers,

 

Henning

 

--

Henning Westerholt – https://skalatan.de/blog/

Kamailio services – https://gilawa.com

 

From: sr-users <sr-users-bounces@lists.kamailio.org> On Behalf Of Liviu ANDRON
Sent: Thursday, October 28, 2021 11:51 AM
To: sr-users@lists.kamailio.org
Subject: [SR-Users] Does failure_route for redirection covers all error cases ?

 

Hello,

We are routing calls to FreeSWITCH servers.
We have a failure routing mechanism in place, which looks pretty common from my research around:

route[INVITE] {

...
t_on_failure("REROUTE");

and
failure_route[REROUTE] {
    if (t_is_canceled()) {
        exit;
    }
    //  also 6xx ?
    if (t_check_status("5[0-9][0-9]") or (t_branch_timeout() and !t_branch_replied())) {
        // re-route to another available FreeSWITCH server
    }
}

The problem is that we don't capture all the failures we would like to, one such example being 480 sent by FreeSWITCH in various cases (even default in hangup_cause_to_sip, mod_sofia.c, https://github.com/signalwire/freeswitch/blob/master/src/mod/endpoints/mod_sofia/mod_sofia.c#L369), like a Python script crash, but also legitimate cases like "user not registered" (USER_NOT_REGISTERED).
Are there other cases? Like a timeout replied (t_branch_timeout() and t_branch_replied()) which never recovers ? Shouldn't any t_branch_timeout() re-arm the failure route ?

 

Thanks,

Liviu