[Serusers] Re: t_pick_branch failed

Daniel Poulsen dpoulsen at gmail.com
Fri Apr 8 23:40:50 CEST 2005


Sorry- forgot to include these blocks. The hunt table is basically a 
duplicate of aliases that we use to store hunt sequence info.

###
# Hunt to the next number in sequence
route[8] {
# See if we're in a hunt
if(search("P-hint: pt-hunt")) {
xlog("L_NOTICE",
"wanted to hunt, but hunt already in progress\n");
break;
};

# Assumes URI has been revert and prefixed with "h#-"
# Also assumes t_on_failure (#+1) has been set.
xlog("L_NOTICE", "%ci: r8: hunt on %ru\n");
if(lookup("hunt")) {
xlog("L_NOTICE",
"%ci: r8: hunt changed URI to %ru, relaying\n");
append_branch();
append_hf("P-hint: pt-hunt\r\n");
setflag(9);
t_relay();
break;
} else {
xlog("L_NOTICE",
"%ci: r8: no further hunts, giving up\n");
};

break;

}

failure_route[1] { revert_uri(); prefix("h1-"); t_on_failure("2"); route(7); 
}
failure_route[2] { revert_uri(); prefix("h2-"); t_on_failure("3"); route(7); 
}
failure_route[3] { revert_uri(); prefix("h3-"); t_on_failure("4"); route(7); 
}
failure_route[4] { revert_uri(); prefix("h4-"); t_on_failure("5"); route(7); 
}
failure_route[5] { revert_uri(); prefix("h5-"); t_on_failure("6"); route(7); 
}
failure_route[6] { revert_uri(); prefix("h6-"); t_on_failure("7"); route(7); 
}
failure_route[7] { revert_uri(); prefix("h7-"); t_on_failure("8"); route(7); 
}
failure_route[8] { revert_uri(); prefix("h8-"); t_on_failure("9"); route(7); 
}
failure_route[9] { xlog("L_ERR", "too many hunts!\n"); }


On Apr 8, 2005 5:24 PM, Daniel Poulsen <dpoulsen at gmail.com> wrote:
> Could this:
> 
> Apr 8 17:14:58 sip2 ser[17542]: BUG:t_check_status: t_pick_branch
> failed to get a final response in MODE_ONFAILURE
> 
> explain why this:
> 
> if (t_check_status("408") | t_check_status("404") |
> t_check_status("486")) { route(8); }
> 
> fails? Pertinant config follows.
> 
> --------------------------
> Route logic:
> --------------------------
> 
> # Translate local address according to aliases table
> if(lookup("aliases")) {
> xlog("L_NOTICE", "%ci: alias lookup changed uri to %ru\n");
> 
> };
> 
> # Handle offline or non-existent users
> if (!lookup("location")) {
> xlog("L_NOTICE", "%ci: no location for %ru\n");
> };
> 
> route(4); # relay with hunt on failure
> 
> --------------------------
> 
> route[4] {
> 
> # If an invitation, we want to hunt on failure
> if(method == "INVITE") {
> t_on_failure("1"); # first hunt
> };
> if (!t_relay()) {
> sl_reply_error();
> break;
> };
> }
> 
> ###
> # Hunt (8), but only on 404/408/487
> route[7] {
> if (t_check_status("408") | # Timeout
> t_check_status("404") | # Not found
> t_check_status("486")) # Busy
> {
> route(8);
> } else {
> xlog("L_NOTICE",
> "%ci: r7: hunt but not 404/408/486\n");
> };
> }
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20050408/ee62951f/attachment.htm>


More information about the sr-users mailing list