[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