[sr-dev] setflag and hash table variables

Asgaroth 00asgaroth00 at gmail.com
Wed Oct 14 14:12:29 CEST 2015


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



More information about the sr-dev mailing list