[SR-Users] setflag and hash table variables

Daniel-Constantin Mierla miconda at gmail.com
Wed Oct 14 15:37:27 CEST 2015


Hello,

On 14/10/15 15:32, Asgaroth wrote:
> Hi Daniel,
>
> Thanks for the info, I'm not familiar with $mf.
>
> Is "$mf = $mf | (1 << $sht(core_setid=>$var(ds_setid)) );"
> functionally equivilent to "setflag( $sht(core_setid=>$var(ds_setid)));"?

yes -- $mf is the value representing (all) the flags, so the line above
is more or less what happens in the c code of setflag(). Be sure that
the sht value is an integer between 0 and 31.
>
> Can I still use the isflagset function to check if certain flags are
> set when using your alternative approach?

yes.

Cheers,
Daniel

>
>
>
> On 14/10/2015 14:20, Daniel-Constantin Mierla wrote:
>> Hello,
>>
>> the function might not accept pseudo-variables, perhaps we should
>> update it. For now you can use script bitwise operations with $mf:
>>
>> $mf = $mf | (1 << $sht(core_setid=>$var(ds_setid)) );
>>
>> Cheers,
>> Daniel
>>
>> On 14/10/15 14:35, Asgaroth wrote:
>>> I originally sent this to sr-dev in error, I am resending to
>>> sr-users instead, thanks
>>>
>>> Hi All,
>>>
>>> Quick question, is it possible to use variables in the setflag
>>> function, I am trying to set a flag that is stored in a hash table
>>> using the setflag function, but I keep getting syntax errors. I am
>>> using kamailio 4.3.3.
>>>
>>> Here's what I am trying to do:
>>>
>>> htable core_setid defines a dispatcher setid key and its value is
>>> associated with a flag as follows:
>>>
>>> id:key:key_type:value_type:value:expires
>>> 1:102:0:1:7:0
>>>
>>> so, simple hash table type with an integer key of value 7 and no expiry
>>>
>>> In dispatcher I have the following modparams set, so that
>>> ds_is_from_list() will set them if found:
>>>
>>> modparam("dispatcher", "setid_pvname", "$var(ds_setid)")
>>> modparam("dispatcher", "attrs_pvname", "$var(ds_setid_attrs)")
>>>
>>> Then in my routing logic I have the following code block:
>>>
>>> if ( ds_is_from_list() ) {
>>>         if ( $sht(core_setid=>$var(ds_setid)) != $null ) {
>>>             setflag( $sht(core_setid=>$var(ds_setid)) );
>>>             return;
>>>         } else {
>>>             send_reply("403", "No flag set for source");
>>>             exit;
>>>         }
>>> }
>>>
>>> When I test this using kamailio -c -f <filename> I get the following
>>> error:
>>>
>>>  0(20629) : <core> [cfg.y:3432]: yyerror_at(): parse error in config
>>> file /shared/kamailio/etc/routing_logic.cfg, line 175, column 21-52:
>>> syntax error
>>>  0(20629) : <core> [cfg.y:3432]: yyerror_at(): parse error in config
>>> file /shared/kamailio/etc/routing_logic.cfg, line 175, column 21-52:
>>> missing '(' or ')'?
>>>  0(20629) : <core> [cfg.y:3432]: yyerror_at(): parse error in config
>>> file /shared/kamailio/etc/routing_logic.cfg, line 175, column 21-52:
>>> bad command: missing ';'?
>>>  0(20629) : <core> [cfg.y:3435]: yyerror_at(): parse error in config
>>> file /shared/kamailio/etc/routing_logic.cfg, line 175, column 53:
>>> bad command
>>> ERROR: bad config file (4 errors)
>>>
>>> If I change the setflag line to setflag(7), then I dont get the error.
>>>
>>> I was wondering if its possible to have hashtable variables as
>>> parameters to the setflag function, or am I going about this in the
>>> wron way.
>>>
>>> Any thoughts would be appreciated.
>>>
>>> Thanks
>>>
>>>
>>> _______________________________________________
>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>> sr-users at lists.sip-router.org
>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>
>> -- 
>> Daniel-Constantin Mierla
>> http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
>> Book: SIP Routing With Kamailio - http://www.asipto.com
>>
>>
>> _______________________________________________
>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>> sr-users at lists.sip-router.org
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Book: SIP Routing With Kamailio - http://www.asipto.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20151014/9f9996f0/attachment.html>


More information about the sr-users mailing list