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.-