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 <i...@aliax.net> _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users