Alexey, My guess would be that the cache fetch is retrieving the value as a string, while rl_check is expecting an integer. When you set it explicitly as an integer in the script, it works. Have you tried converting the retrieved cache value to an integer using a transformation [1]?
[1] https://www.opensips.org/Documentation/Script-Tran-2-4#toc3 Ben Newlin On 5/8/19, 7:27 AM, "Users on behalf of Alexey Kazantsev via Users" <[email protected] on behalf of [email protected]> wrote: Hi list ! The idea is to store limit value in local cache, to be able to change it without OpenSIPS restart. But when I store it in local cache, it is not applied to 'limit' parameter of rl_check [1] function. Though it is fetched successfully. [1] https://opensips.org/html/docs/modules/2.4.x/ratelimit.html#func_rl_check ------------------------------------------------ working: # initial INVITE if(is_method("INVITE")) { ... ... $var(rl) = 1; xlog("L_NOTICE", "cfg_line $cfg_line ; var(rl) is $var(rl)"); if (!rl_check("pipe_$rU", "$var(rl)", "SBT")) { sl_send_reply("503", "Server Unavailable"); exit; }; ------------------------------------------------ NOT working: # initial INVITE if(is_method("INVITE")) { ... ... cache_fetch("local", "incoming:ratelimit", $var(rl)); xlog("L_NOTICE", "cfg_line $cfg_line ; var(rl) is $var(rl)"); if (!rl_check("pipe_$rU", "$var(rl)", "SBT")) { sl_send_reply("503", "Server Unavailable"); exit; }; ----------------------------------------------- BR, Alexey http://alexeyka.zantsev.com/ _______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users _______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
