On Jun 16, 2011, at 2:03 PM, IƱaki Baz Castillo ibc@aliax.net wrote:
2011/6/16 Daniel-Constantin Mierla miconda@gmail.com:
that function is probably for ser-like AVPs.
back to your original need, you can use directly if conditions like:
if($var(x) & 2) { ... }
will be true if the second bit is set. You have to use the power of two for the appropriate integer value to match the bit position.The master branch has bitwise left/right shift operations as well
Ok, so the above example if($var(x) & 2) { ... } will just work because the number 2 has the bit 2 with value 1 (well, in fact the bit 1 as the first one is the bit 0). But if I want to compare the bit 5 I need first to get 2^5 (for the second & operator) which I can get using bitwise left/right shift functions, am I right? (since there is no way in kamailio to calculate 2^N directly).
You can do 2*2*2... to get the power of two. Doing it in a while loop gives dynamic power parameter. Other option is to use Lua for example.
... until the left shift gets in 3.1 - if you can test the patch from master and all goes fine, then it may happen faster :-)
Cheers, Daniel