[Kamailio-Users] cfgutils module
Daniel-Constantin Mierla
miconda at gmail.com
Wed Aug 5 12:57:00 CEST 2009
On 05.08.2009 12:03 Uhr, Alex Balashov wrote:
> Alex Balashov wrote:
>> Daniel-Constantin Mierla wrote:
>>
>>> IIRC, the mi command takes a bitmask as value while the config
>>> function takes the index in bitmask. So, if you want to test flag 2:
>>>
>>> if(is_gflag("2"))
>>>
>>> kamctl fifo set_gflag 4
>>>
>>> 4 = 2^2
>>>
>>> For flag ten you have to set it via mi to 2^10 which is 1024.
>>>
>>> Try and see if works.
>>
>> This seems inconsistent and needlessly complicated and does not
>> follow from the documentation at all. I would recommend changing the
>> set_gflag MI function to take the bit offset as an argument rather
>> than the bitmask if is_gflag() checks the offset.
>
> Well, OK, I take that back -- it does follow from the documentation,
> if the parenthetical statements are payed careful attention. I still
> think it should be changed on the MI side to be more consistent and
> easier to work with.
>
> The other problem with the current situation is that in order to set a
> particular bit to 1 without wiping out any other flags that may have
> been set in the past, it is necessary to first get the current value
> from get_gflags and manually do the math. That's needlessly complex
> for users who aren't programmers; not everybody has the powers of 2
> and the common products of powers of 2 memorised.
indeed, awkward and this is prone to errors and races if script sets
also the flag. Personally, I have been using $shv(x) to control config
behavior and there I dealt with values not flags.
Cheers,
Daniel
--
Daniel-Constantin Mierla
* SIP Router Bootcamp
* Kamailio (OpenSER) and Asterisk Training
* Berlin, Germany, Sep 1-4, 2009
* http://www.asipto.com/index.php/sip-router-bootcamp/
More information about the Users
mailing list