[Serusers] Call forwarding domain table error

Maciej Żwirski mzwirek at poczta.fm
Fri Oct 13 11:58:08 CEST 2006


Hi!

I've seen this problem raised several times, but couldn't quite find an 
answer... I have a problem while trying to redirect the call on no 
answer. Namely I get the following error on the console:
1(10197) use_table(): Invalid parameter value
1(10197) is_local(): Error while trying to use domain table
I tracked it down to this line:

if (!is_uri_host_local()) {  <-----
       if (!isflagset(22)) {
               append_branch();
       };
       route(4);
       route(1);
       break;
};

Funny enough, when I do not use the route_failure block, everything 
seems fine... Does anyone have any idea, what might be wrong? The rest 
of the code involved is given below. Thanks

Regards,
Maciek

# INVITE Message Handler
#-----------------------

if (client_nat_test("3")) {
       setflag(7);
       force_rport();
       fix_nated_contact();
};

if (!allow_trusted()) {
       if(!proxy_authorize("","subscriber")) {
               proxy_challenge("","0");
               break;
       }
       else if (!check_from()){
               sl_send_reply("403","Use From=ID");
               break;
       };
       consume_credentials();
};

if(uri=~"^sip:1[0-9]{10}@") {
       strip(1);
};

lookup("aliases");
if(!is_uri_host_local()) {
       route(4);
       route(1);
       break;
};

if (uri=~"^sip:00[0-9]*@") {  #Int'l PSTN
       route(4);
       route(5);
       break;
};

if (avp_db_load("$ruri/username", "s:callfwd")) {
       setflag(22);
       avp_pushto("$ruri", "s:callfwd");
       route(6);
       break;
};

if (!lookup("location")) {      #Domestic PSTN
       if (uri=~"^sip:[0-9]{10}@") {
               xlog("L_INFO","Push outside \n");
               route(4);
               route(5);
               break;
       };
       sl_send_reply("404", "User Not Found");
       break;
};

if (avp_db_load("$ruri/username", "s:fwdbusy")) {
       if (!avp_check("s:fwdbusy", "eq/$ruri/i")) {
               setflag(26);
       };
};

if (avp_db_load("$ruri/username", "s:fwdnoanswer")) {
       if (!avp_check("s:fwdnoanswer", "eq/$ruri/i")) {
               setflag(27);
       };
};

t_on_failure("1");

xlog("L_INFO","Else");

route(4);
route(1);
}

route[6] {
# -------------------------
# Call Forwarding Handler
# -------------------------

xlog("L_INFO","Call forward\n");

if (uri=~"^sip:1[0-9]{10}@") {
       strip(1);
};

lookup("aliases");
if (!is_uri_host_local()) {
       if (!isflagset(22)) {
               append_branch();
       };
       route(4);
       route(1);
       break;
};
if (uri=~"^sip:00[0-9]{10}@") {
       route(4);
       route(1);
       break;
};
if (!lookup("location")) {
       if (uri=~"^sip:[0-9]{10}@") {
               route(4);
               route(1);
               break;
       };

       sl_send_reply("404", "User Not Found");
};

route(4);
route(1);
}

failure_route[1] {
if (t_check_status("487")) {
       break;
};
if (isflagset(26) && t_check_status("486")) {
       if (avp_pushto("$ruri", "s:fwdbusy")) {
               avp_delete("s:fwdbusy");
               resetflag(26);
               route(6);
               break;
       };
};

if (isflagset(27) && t_check_status("408")) {
       if (avp_pushto("$ruri", "s:fwdnoanswer")) {
               avp_delete("s:fwdnoanswer");
               resetflag(27);
               route(6);
               break;
       };
};

end_media_session();
}





More information about the sr-users mailing list