[Serusers] parallel fork woes

Daniel Poulsen dpoulsen at gmail.com
Fri Apr 15 17:50:06 CEST 2005


Hi-

I am having a problem where if I parallel fork a call, my failure_route gets 
called after the caller hangs up. I thought adding t_check_status("487") to 
the failure_route would take care of that, but it still t_relays when I 
don't want it to. This only seems to be a problem if it parallel forks and 
one of the SIP targets is not available. If I dial an alias with a single 
[not forked] target the t_check_status("487") works fine.

Here is my code.. any thoughts?

Thanks much.

Dan

route {

<<<< Registration code snipped for brevity >>>>

if(lookup("aliases")) {
xlog("L_NOTICE", "%ci: alias lookup changed uri to %ru\n");

# If alias points outbound, forward it without question.
if (!(uri==myself)) {
xlog("L_NOTICE", "%ci: outbound alias\n");
route(4); # relay with hunt on failure
break;
};
};


if ( (uri=~"^sip:911 at .*") | (uri=~"^sip:011[0-9]+ at .*") |
(uri=~"^sip:1[0-9]{10}@.*") ) {

route(3); 
break;
};

# Local location
route(4); # relay with hunt on failure

} /* end of initial routing logic */

route[4] {
xlog("L_INFO", "r4: Relay with Hunt\n");
# If an invitation, we want to hunt on failure
if(method == "INVITE") {
t_on_failure("1"); # first hunt
};

if (!lookup("location")) {
xlog("L_NOTICE", "%ci: no location for %ru\n");
};

append_hf("P-hint: relay\r\n");
if (!t_relay()) {
sl_reply_error();
break;
};
}


failure_route[1] {

xlog("L_INFO", "failure+route+1 %ru\n");

revert_uri();
setflag(9);

# Check to see if the call was cancelled
if( t_check_status("487") | method == "CANCEL") {
xlog("L_INFO", "t_check_status is 487\n");
break;
}

prefix("h1-");
if(lookup("hunt")) { # Hunt table is an exact copy of aliases
xlog("L_NOTICE",
"%ci: fail_r_1: hunt changed URI to %ru, relaying\n");
append_branch();
append_hf("P-hint: pt-hunt\r\n");
t_relay();
break;
} else {
xlog("L_NOTICE",
"%ci: r8: no further hunts, giving up\n");
break;
};

}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20050415/9c3f64b4/attachment.htm>


More information about the sr-users mailing list