[OpenSIPS-Users] when does a var goes out of scope.

johan johan at democon.be
Wed Sep 2 10:41:24 EST 2020


I forgot to say that I use opensips 3.01 migrated from 2.4.

version: opensips 3.0.1 (x86_64/linux)
flags: STATS: On, EXTRA_DEBUG, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, 
PKG_MALLOC, Q_MALLOC, F_MALLOC, HP_MALLOC, DBG_MALLOC, 
FAST_LOCK-ADAPTIVE_WAIT
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, 
MAX_URI_SIZE 1024, BUF_SIZE 65535
poll method support: poll, epoll, sigio_rt, select.
git revision: 675a10e2f
main.c compiled on 16:29:47 Mar 31 2020 with gcc 6.3.0

On 2/09/2020 12:35, johan wrote:
> As you can see I use dialpan to strip 0,00 or + from fU result is 
> $var(fU).
>
> I seem to get strange and incomprehensible results :
>
> Sep  1 09:41:58 hendrix /data/opensips/sbin/opensips[6327]: 
> callid=7ocl48d3Gi: Route[normalizeforoutbound]: we change rU +3315 to 
> E.164; as the call is outbound, base is fU 33757935187
> Sep  1 09:41:58 hendrix /data/opensips/sbin/opensips[6327]: 
> callid=7ocl48d3Gi: Route[normalizeforoutbound]: we drop 0,00,+ from 
> 33757935187, result is var(fU)
> Sep  1 09:41:58 hendrix /data/opensips/sbin/opensips[6327]: 
> callid=7ocl48d3Gi: Route[normalizeforoutbound]: result dp_translate 
> var(fU) +32460200570
>
> As you can see in the script snippet, $var(fU) is not initialized.
>
>
> So : would initialization of var(fU) to '' solve my issue.
>
> As a more general question : when does a variable goes excatly out of 
> scope ?
>
>
>
> dialplan:
>
> *************************** 1. row ***************************
>          id: 4
>        dpid: 1
>          pr: 1
>    match_op: 1
>   match_exp: ^(00|\+|0).*
> match_flags: 0
>   subst_exp: ^(00|\+|0)(.*)
>    repl_exp: \2
>     timerec: NULL
>    disabled: 0
>       attrs:
>
> script :
>
> route[normalizeforoutbound]
> {
>     xlog("callid=$ci: Route[normalizeforoutbound]: we change rU $rU to 
> E.164; as the call is outbound, base is fU $fU");
>     xlog("callid=$ci: Route[normalizeforoutbound]: we drop 0,00,+ from 
> $fU, result is var(fU)");
>     $var(i)=1;
>     dp_translate($(var(i){s.int}),"$fU",$var(fU));
>     if ($var(fU)==NULL or $var(fU)=='' or $var(fU)=='<null>')
>     {
>         xlog("callid=$ci: Route[normalizeforoutbound]: result 
> dp_translate var(fU) $var(fU) == NULL -> from header fU $fU has 
> correct format, we use fU $fU in query");
>         avp_db_query("SELECT country,channels FROM subscriber where 
> username like '%$fU'","$avp(countryoutbound);$avp(channels)");
>         xlog("callid=$ci: Route[normalizeforoutbound]: SELECT 
> country,channels FROM subscriber where username like '%$fU'  -> 
> avp(countryoutbound) $avp(countryoutbound), avp(channels) 
> $avp(channels) ");
>     }
>     else
>     {
>         xlog("callid=$ci: Route[normalizeforoutbound]: result 
> dp_translate var(fU) $var(fU) -> from header fu $fU has incorrect 
> format, we use var(fU) $var(fU) in query");
>         avp_db_query("SELECT country,channels FROM subscriber where 
> username like '%$var(fU)'","$avp(countryoutbound);$avp(channels)");
>         xlog("callid=$ci: Route[normalizeforoutbound]: SELECT 
> country,channels FROM subscriber where username like '%$var(fU)' -> 
> avp(countryoutbound) $avp(countryoutbound), avp(channels) 
> $avp(channels) ");
>     }
>
>
> output:
>
> Sep  1 09:41:58 hendrix /data/opensips/sbin/opensips[6327]: 
> callid=7ocl48d3Gi: Route[normalizeforoutbound]: we change rU +3315 to 
> E.164; as the call is outbound, base is fU 33757935187
> Sep  1 09:41:58 hendrix /data/opensips/sbin/opensips[6327]: 
> callid=7ocl48d3Gi: Route[normalizeforoutbound]: we drop 0,00,+ from 
> 33757935187, result is var(fU)
> Sep  1 09:41:58 hendrix /data/opensips/sbin/opensips[6327]: 
> callid=7ocl48d3Gi: Route[normalizeforoutbound]: result dp_translate 
> var(fU) +32460200570 -> from header fu 33757935187 has incorrect 
> format, we use var(fU) +32460200570 in query
>



More information about the Users mailing list