I am having trouble setting up a failure route to roll over to another on failure. I have failure_route[1] set up to catch 302 redirects and act accordingly. If no redirect is detected then the INVITE should roll to failure route 2, as per the line that says t_on_failure("2");. This is however not what occurs. When an INVITE comes in, and hits failure_route[1] I can see in /var/log/messages that it hit that route, however it never gets to failure_route[2] even though there is no 302, instead the 408 is sent to my sip provider, they ack it, and the call is dropped. Any help is as always greatly appreciated.
#########################################################################################################
# FAILURE ROUTE 1 --- 302 REDIRECT ---
########################################################################################################
failure_route[1]
{
xlog("got to failure route 1");
t_on_failure("2");
if(t_check_status("302")){
xlog("$tU has a forward");
get_redirects("*", "redirect");
t_relay("my.sip.proxy");
exit;
};
}
#######################################################################################################
# FAILURE ROUTE 2 ----- VOICEMAIL -------
########################################################################################################
failure_route[2]
{
xlog("got to failure route 2");
xlog("$tU getting a vmail");
if (t_check_status("408|486|487")){
revert_uri();
strip(1);
prefix("201");
rewriteport("5070");
append_branch();
t_relay();
exit;
};
}