...
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