<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;
        mso-fareast-language:EN-US;}
pre
        {mso-style-priority:99;
        mso-style-link:"Préformaté HTML Car";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New",serif;
        color:black;
        mso-fareast-language:FR;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;
        mso-fareast-language:EN-US;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;
        color:black;
        mso-fareast-language:FR;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.PrformatHTMLCar
        {mso-style-name:"Préformaté HTML Car";
        mso-style-priority:99;
        mso-style-link:"Préformaté HTML";
        font-family:Consolas;
        color:black;
        mso-fareast-language:EN-US;}
span.EmailStyle23
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor="white" lang="FR" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">Great thanks to answer so quickly.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">I tested the $vn ….in the 5.0.x script instead of $var…., and the results look good. 
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">So I have to review the entire script to change all the ‘$var…. == $null’ entries to ‘$vn…. == $null’. I assume I have to do the same for the ‘!= $null” case. Am I correct ?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">Now regarding my old kamailio 3.3.1 script, I notice that the ‘$var…. == $null’ works fine but no more with kamailio 5.0.x . So It’s something that has changed more recently. The 3.3.1 cookbooks
 doesn’t reference a ‘$vn’ variable.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">But may be I misread it.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">So if you have comments on this for my understanding, that would be fine.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:FR">Cordialement<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:FR">Patrick GINHOUX<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="color:windowtext;mso-fareast-language:FR">De :</span></b><span lang="EN-US" style="color:windowtext;mso-fareast-language:FR"> sr-users [mailto:sr-users-bounces@lists.sip-router.org]
<b>De la part de</b> Daniel-Constantin M</span><span style="color:windowtext;mso-fareast-language:FR">ierla<br>
<b>Envoyé :</b> lundi 27 mars 2017 15:31<br>
<b>À :</b> Kamailio (SER) - Users Mailing List <sr-users@lists.sip-router.org><br>
<b>Objet :</b> Re: [SR-Users] Important problem with this test : if ($var(i:maxRangeInx)==$null)<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p>Hello,<span style="font-size:12.0pt;mso-fareast-language:FR"><o:p></o:p></span></p>
<p>$var(...) don't hold null values, they start initialed to 0 and they are reset to 0 (when assigning $null to them) -- this is the design from the beginning which brings benefits in many situation when one doesn't get a chance to init.<o:p></o:p></p>
<p>If you want a similar variable that works with null, then use $vn(...):<o:p></o:p></p>
<p>  - <a href="https://www.kamailio.org/wiki/cookbooks/5.0.x/pseudovariables#vn_name_-_private_memory_variables_null">
https://www.kamailio.org/wiki/cookbooks/5.0.x/pseudovariables#vn_name_-_private_memory_variables_null</a><o:p></o:p></p>
<p>Cheers,<br>
Daniel<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">On 27/03/2017 15:22, Ginhoux, Patrick wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">I’m continue my job to ‘migrate’ my 3.3.1 kamailio.cfg script on a RHEL 6.2 server to the 5.0.x kamailio version on a RHEL 7.1 server, and I encounter a major problem with the ‘== $null’ test in the script.</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">My original script (3.3.1) contains this sequence :</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">        $var(i:rangeInx)=0;</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">        $var(i:maxRangeInx) = $sht(mbxrangeHash=>"maxrange");</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">        xlog(" imbxRangeInx value before test : '$var(i:maxRangeInx)' ");</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">        if ($var(i:maxRangeInx)==$null) {</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">                $var(i:maxRangeInx)=99;</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">        }</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">        xlog(" imbxRangeInx after test : '$var(i:maxRangeInx)' ");</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:21.3pt"><span lang="EN-US" style="font-family:Wingdings">è</span><span lang="EN-US"> The results are :</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-US">imbxRangeInx value before test : ‘0’</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:70.8pt"><span lang="EN-US">imbxRangeInx value after test : ‘99’</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">I run the same script on my new server and I get ‘0’ before and after the test.</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">I attempted another kind of test to try to figure out where the problem is. So I write the simple test (with kamailio 5.0.x) :</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">        $var(i:rangeInx)=0;</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">        $var(i:maxRangeInx) = $sht(mbxrangeHash=>"maxrange");</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">        $var(toto) = $null;</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">        if ($var(toto) == $null)</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">                xlog ("toto true");</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">        else</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">                xlog ("toto false");</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">The result I got is always ‘toto false’.</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">So it appears to me that the test ‘== $null’ doens’ that gives a good result with kamailio 3.3.1, doesn’t return the same with kamailio 5.0.x.</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">That is a major issue for me and it let me confused about the possibility to move to kamailio 5.0.x.</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US">Have people an idea / explanation, why this issue ?</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US"> </span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:FR">Cordialement</span><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:FR">Patrick GINHOUX</span><o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif;mso-fareast-language:FR"><br>
<br>
<br>
<o:p></o:p></span></p>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list<o:p></o:p></pre>
<pre><a href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a><o:p></o:p></pre>
<pre><a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a><o:p></o:p></pre>
</blockquote>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif;mso-fareast-language:FR"><br>
<br>
<o:p></o:p></span></p>
<pre>-- <o:p></o:p></pre>
<pre>Daniel-Constantin Mierla<o:p></o:p></pre>
<pre><a href="http://www.twitter.com/miconda">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda">www.linkedin.com/in/miconda</a><o:p></o:p></pre>
<pre>Kamailio Advanced Training - Mar 6-8 (Europe) and Mar 20-22 (USA) - <a href="http://www.asipto.com">www.asipto.com</a><o:p></o:p></pre>
<pre>Kamailio World Conference - May 8-10, 2017 - <a href="http://www.kamailioworld.com">www.kamailioworld.com</a><o:p></o:p></pre>
</div>
</body>
</html>