Jerome Martin escreveu:
On Fri, 2006-12-15 at 12:07 -0200, Juan Carlos Castro y Castro wrote:
OK, now I'm trying to do something along the lines of:
if ("$hdr(expires)" > 3600) { avp_db_query("UPDATE sip_conf SET ipaddr='$si', port='$sp', regseconds=$Ts+$hdr(expires), useragent='$ua' WHERE name='$au'"); } else { avp_db_query("UPDATE sip_conf SET ipaddr='$si', port='$sp', regseconds=$Ts+3600, useragent='$ua' WHERE name='$au'"); };
But I get a syntax error at the "if". How can I do such a comparison?
Take a look at avpcheck() :
OK, now I'm doing the following, but the "if" always yields false regardless of the passed Expires value. At first I thought the problem was interpreting values as strings, but in that case it would yield true for an Expires of zero. It doesn't. Could it be some flags problem? Using "/g" at the end does no good.
if (avp_check("$hdr(expires)","lt/3600")) { avp_db_query("UPDATE sip_conf SET ipaddr='$si', port='$sp', regseconds=$Ts+$hdr(expires), useragent='$ua' WHERE name='$au'"); } else { avp_db_query("UPDATE sip_conf SET ipaddr='$si', port='$sp', regseconds=$Ts+3600, useragent='$ua' WHERE name='$au'"); };
I also tried writing the value to an AVP beforehand. Still always false:
avp_write("$hdr(expires)","$avp(i:777)"); if (avp_check("$avp(i:777)","lt/3600/g")) { avp_db_query("UPDATE sip_conf SET ipaddr='$si', port='$sp', regseconds=$Ts+$hdr(expires), useragent='$ua' WHERE name='$au'"); } else { avp_db_query("UPDATE sip_conf SET ipaddr='$si', port='$sp', regseconds=$Ts+3600, useragent='$ua' WHERE name='$au'"); };