[SR-Users] About avp's, var's, null, 0 and empty string
Iñaki Baz Castillo
ibc at aliax.net
Wed Sep 15 15:57:40 CEST 2010
Hi, I would like to summarize how $avp's and $var's handle the null
value, 0 and empty string. For this I've writen the following test
I've checked in Kamailio 1.5.4:
--------------------------
$var(null) = null;
$avp(s:null) = null;
$var(empty) = "";
$avp(s:empty) = "";
xlog("var(null): '$var(null)'\n");
if $var(null) == null
xlog("*** if var(null) == null \n");
if $var(null)
xlog("*** if var(null) \n");
if $var(null) != null
xlog("*** if var(null) != null \n");
if ! $var(null)
xlog("*** if ! var(null) \n");
if $var(null) == ''
xlog("*** if var(null) == '' \n");
if $var(null) == 0
xlog("*** if var(null) == 0 \n");
xlog("\n");
xlog("avp(s:null): '$avp(s:null)'\n");
if $avp(s:null) == null
xlog("*** if avp(s:null) == null \n");
if $avp(s:null)
xlog("*** if avp(s:null) \n");
if $avp(s:null) != null
xlog("*** if avp(s:null) != null \n");
if ! $avp(s:null)
xlog("*** if ! avp(s:null) \n");
if $avp(s:null) == ''
xlog("*** if avp(s:null) == '' \n");
if $avp(s:null) == 0
xlog("*** if avp(s:null) == 0 \n");
xlog("\n");
xlog("var(empty): '$var(empty)'\n");
if $var(empty) == null
xlog("*** if var(empty) == null \n");
if $var(empty)
xlog("*** if var(empty) \n");
if $var(empty) != null
xlog("*** if var(empty) != null \n");
if ! $var(empty)
xlog("*** if ! var(empty) \n");
if $var(empty) == ''
xlog("*** if var(empty) == '' \n");
if $var(empty)== 0
xlog("*** if var(empty) == 0 \n");
xlog("\n");
xlog("avp(s:empty): '$avp(s:empty)' \n");
if $avp(s:empty) == null
xlog("*** if avp(s:empty) == null \n");
if $avp(s:empty)
xlog("*** if avp(s:empty) \n");
if $avp(s:empty) != null
xlog("*** if avp(s:empty) != null \n");
if ! $avp(s:empty)
xlog("*** if ! avp(s:empty) \n");
if $avp(s:empty) == ''
xlog("*** if avp(s:empty) == '' \n");
if $avp(s:empty) == 0
xlog("*** if avp(s:empty) == 0 \n");
-------------------------
The result is:
-------------------------
var(null): '0'
*** if var(null) != null
*** if ! var(null)
*** if var(null) == 0
avp(s:null): '<null>'
*** if avp(s:null) == null
*** if ! avp(s:null)
var(empty): ''
*** if var(empty) != null
*** if ! var(empty)
*** if var(empty) == ''
CRITICAL:core:comp_scriptvar: invalid operation 20/3/4!!
WARNING:core:do_action: error in expression (l=356)
avp(s:empty): ''
*** if avp(s:empty) != null
*** if ! avp(s:empty)
*** if avp(s:empty) == ''
CRITICAL:core:comp_scriptvar: invalid operation 20/3/4!!
WARNING:core:do_action: error in expression (l=372)
-------------------------
Conclusions:
- $var cannot store null value. If so it converts it to 0.
- When cheking "if $avp(...) {" the result is false in case the
content of the $avp is null, 0 or an empty string.
- When cheking "if $var(...) {" the result is false in case the
content of the $var is 0 or an empty string.
Any thoughts on this?
Regards.
--
Iñaki Baz Castillo
<ibc at aliax.net>
More information about the sr-users
mailing list