[SR-Users] Handling quota/call limits - kamailio 1.5
Graham Wooden
graham at g-rock.net
Sat Oct 1 04:50:02 CEST 2011
Ok, I expanded on that example and got this working; for the most part.
What is the best way to get that MAX_NUMBER_OF_CALLS to be a value that is
set per subscriber? Or keep my quota table and just pull the value from
there?
modparam("dialog", "profiles_with_value", "callquota")
.
.
.
if (is_method("INVITE")) {
$var(SIZE) = 0;
get_profile_size("callquota", "$rU", "$var(SIZE)");
if( $var(SIZE) >= MAX_NUMBER_OF_CALLS ){
sl_send_reply("503", "Simultaneous calls limit
reached");
exit;
}
set_dlg_profile("callquota","$rU");
if (get_profile_size("callquota","$var(SIZE)")) {
xlog("DEBUG: there are $var(SIZE) total calls for
$rU\n");
}
On 9/30/11 8:36 PM, "Graham Wooden" <graham at g-rock.net> wrote:
> I agree - I actually tried to use the dialog module, taken from an mailist
> post back from Aug 2009,
>
> http://www.mail-archive.com/users@lists.kamailio.org/msg04127.html
>
> But ran into issues implementing it. With that, I will focus back on that.
>
> Thanks Alex,
>
> -graham
>
>
> On 9/30/11 8:26 PM, "Alex Balashov" <abalashov at evaristesys.com> wrote:
>
>> You really, really, really want to use the "dialog" module to simplify and
>> automate this.
>>
>> --
>> This message was painstakingly thumbed out on my mobile, so apologies for
>> brevity, errors, and general sloppiness.
>>
>> Alex Balashov - Principal
>> Evariste Systems LLC
>> 260 Peachtree Street NW
>> Suite 2200
>> Atlanta, GA 30303
>> Tel: +1-678-954-0670
>> Fax: +1-404-961-1892
>> Web: http://www.evaristesys.com/
>>
>> On Sep 30, 2011, at 9:08 PM, Graham Wooden <graham at g-rock.net> wrote:
>>
>>> Hi there,
>>>
>>> Finally getting around to introducing some call limits and starting with the
>>> inbound calls. However, I ran into an issue about how to get the "in use"
>>> count to be updated in my quota table.
>>>
>>> What is the best way to get s:in_use to update so it can be calculated?
>>> Here is my snippet of code:
>>>
>>> if (is_method("INVITE")) {
>>> avp_db_query("select quota, in_use from quota where
>>> username='$rU'","$avp(s:quota);$avp(s:in_use)");
>>>
>>> if ($avp(s:in_use) >= $avp(s:quota)){
>>> xlog ("DEBUG: Trunk $rU is over quota");
>>> sl_send_reply("503","User over quota");
>>> }
>>> .
>>> .
>>> }
>>>
>>>
>>> This opens up two more questions: How to decrease the call count when a BYE
>>> is received - maybe do a subtraction and the do a avp_db_query to update the
>>> table?
>>>
>>> And of course there is the BYE that won't be present (ie. When a call just
>>> rings and hangs up before it gets answered). Maybe ACC's missed_calls can
>>> somewhat be used to help determine?
>>>
>>> Thanks for any pointers and guidance. I am running Kamailio 1.5.
>>>
>>> Thanks,
>>>
>>> -graham
>>>
>>>
>>>
>>> _______________________________________________
>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>> sr-users at lists.sip-router.org
>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>
>> _______________________________________________
>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>> sr-users at lists.sip-router.org
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
More information about the sr-users
mailing list