Hello.
I have the next situation with kamailio
3.0.0
In my config file I have something like
this :
route
If INVITE
then route(AUTH_REQUEST)
. . .
route[AUTH_REQUEST]
. . .
if (client_nat_test("3")) {
append_hf("P-hint:
route(AUTH_REQUEST)|setflag7,forcerport,fix_contact\r\n");
if (setbflag("7")) {
xlog("L_INFO","[$ci]:[AUTH_REQUEST] : setbflag(7)");
}
force_rport();
fix_contact();
xlog("L_INFO","[$ci]:[AUTH_REQUEST] :
CLIENT_NAT_TEST-3");
};
. . .
route(IN_TO_IN)
route[IN_TO_IN]
.
. .
route(LOCAL_CALL)
. . .
route[LOCAL_CALL]
. . .
if (isbflagset("7") ) {
xlog("L_INFO","[$ci]:[LOCAL_CALL] : flag 7 SET begin");
} else {
xlog("L_INFO","[$ci]:[LOCAL_CALL] : flag 7 NO SET begin");
}
if ( !lookup("location") ) {
if ( avp_check("$avp(s:4)", "eq/s:1/g") ) {
if( !avp_pushto("$br", "$avp(s:5)/g") ) {
sl_send_reply("403","Forbidden - Forward Number NULL");
exit;
};
prefix("222");
route(TO_VOICEMAIL_NODISP);
exit;
};
if ( avp_check("$avp(s:3)", "eq/s:1/g") ) {
xlog("L_INFO", "[$ci]:[LOCAL_CALL]: $rm - From:$fu ; To:$ru ;
Call-ID:$ci ; Desde:$si - VOICEMAIL ON\n");
route(TO_VOICEMAIL_NODISP);
exit;
} else {
sl_send_reply("480", "Usuario fuera de Servicio");
xlog("L_INFO", "[$ci]:[LOCAL_CALL]: $rm -
From:$fu ; To:$ru ; Call-ID:$ci ; Desde:$si - VOICEMAIL OFF\n");
exit;
};
};
if (isbflagset("7") ) {
xlog("L_INFO","[$ci]:[LOCAL_CALL] : flag 7 SET end");
} else {
xlog("L_INFO","[$ci]:[LOCAL_CALL] : flag 7 NOT SET end");
}
. . .
For some reason in the route[LOCAL_CALL]
the flagb “7” is changed from “SET” to “NOT SET”.
According to my debugs this unset is made in the “lookup(location)”
part.
But I don’t understand why.
Can someone help me here?
Thanks in advance,
Ricardo Martinez.-