Hi, Pat!
The way you are using $rl_count is wrong, because the $rl_count pseudo
variable only accepts strings or other pvars, not formatted strings
(such as "cps_$avp(trunk_group)").
To achieve what you are trying to do is to assign the name to a pvar and
feed it in the $rl_count's name:
$var(rl_name) = "cps_" + $avp(trunk_group);
$json(call_details/tg_cps) = $rl_count($var(rl_name));
Let me know how this goes.
Best regards,
Răzvan Crainea
OpenSIPS Solutions
www.opensips-solutions.com
On 01/13/2017 12:48 AM, Pat Burke wrote:
Hello,
I am trying to get the current rate limit value using $rl_count, but
it is giving the following error.
ERROR:ratelimit:pv_get_rl_count: invalid name
WARNING:core:do_assign: no value in right expression at
/etc/opensips/opensips_proxy.cfg:598
4024438929 SCRIPT:CCLIMIT:INFO: rl_limit for cps_90761 = 0
Here is the code
$json(call_details/tg_cps) = 0; # Default to 0
...
if ($avp(maxcps) != NULL && $avp(maxcps) > 0) {
if (!rl_check("cps_$avp(trunk_group)", "$avp(maxcps)")) {
xlog("L_NOTICE", "$rU SCRIPT:CPSLIMIT:DBG: Max
$avp(maxcps) cps reached for trunk group $avp(trunk_group) \n");
$avp(error_reason) = $avp(error_reason) +
$avp(trunk_group) + " CPS limit reached.";
send_reply("403", "Max CPS limit reached");
exit;
}
}
$json(call_details/tg_cps) = $rl_count("cps_$avp(trunk_group)");
xlog("L_INFO", "$rU SCRIPT:CCLIMIT:INFO: rl_limit for
cps_$avp(trunk_group) = $json(call_details/tg_cps) \n");
From the command opensipsctl fifo rl_list | grep cps_90761, I get
PIPE:: id=cps_90761 algorithm=TAILDROP limit=2 counter=0
What am I missing?
Regards,
*Pat Burke*
_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users