[OpenSIPS-Users] Help with max concurrent call limit

Michele Pinassi michele.pinassi at unisi.it
Thu Nov 5 09:09:45 EST 2020


Hi all,

Opensips 1.11 here. I've tried implementing max concurrent calls
limitation for some of our users, inspired by tutorial found at
https://www.opensips.org/Documentation/Tutorials-ConcurrentCallsLimitation
and using AVP to set per-account calls limit.

In table usr_preferences i've a row like:

id
	uuid
	username
	domain
	attribute
	type
	value
1298
	
	6911
	voip.xxxx.it
	maxcalls
	0
	1

and on dialplan i've:

####  AVP module
loadmodule "avpops.so"
modparam("avpops","db_url","mysql://voip:7PDzZ2ADNxZzmzfA@192.168.1.1/opensips")
modparam("avpops","avp_table","usr_preferences")
modparam("avpops","uuid_column", "uuid")
modparam("avpops","use_domain",0)
modparam("avpops","domain_column","domain")
modparam("avpops","attribute_column","attribute")
modparam("avpops","value_column","value")
modparam("avpops","type_column","type")

...

route() {
[...]
    if (is_method("INVITE")) {
        set_dlg_profile("caller", "$ru");
        get_profile_size("caller", "$ru", "$var(size)");

        ## <-- CONCURRENT CALLS LIMIT BASED ON DESTINATION
        if(avp_db_load("$ru/username","$avp(maxcalls)")) {
        if($var(size) > $avp(maxcalls)) {
            xlog("L_INFO","$ci - User $rU has $var(size) calls (max $avp(maxcalls) calls): BUSY\n");
            sl_send_reply("486", "Busy: try later");
            exit;
        } else {
            xlog("L_INFO","$ci - User $rU has $var(size) calls (max $avp(maxcalls) calls): ALLOW\n");
        }
     }
[...]
}

This way seems to work perfectly except when calls come from our
mediagateways, that append port to signals, like (captured with sngrep):

INVITE     333xxxx at 172.20.1.4:506 5xxx at voip.xxxx.it:5060   28    172.20.1.4:5060        193.xxxxxxx:5060     REJECTED   28ad94e804782466                                              0:10

INVITE     5023 at voip.xxxx.it        5050 at voip.xxx.it        20    193.205.4.182:5060     193.xxxxxxx:5060     CANCELLED 455244b218fec81c1f90036f3890af3e at voip.xxx.it                0:05

INVITE     3527 at 172.20.1.4:5060      2282 at voip.xxx.it:5060   20    172.20.1.4:5060        193.xxxxxxx:5060     COMPLETED  7758dace18b36325 

I suppose, but maybe i'm wrong, that the problem is the domain part of
the RURI that were not correctly matched in dialog profile.

Any hint or help kindly appreciated


-- 
Michele Pinassi - Responsabile Cybersecurity Università di Siena
Ufficio Esercizio e Tecnologie - CSIRT
irt at unisi.it

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20201105/66734262/attachment-0001.html>


More information about the Users mailing list