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