Hi Carlos,
Please find attached the configuration file which I am using.
Kindly refer route[CNXCC] where I have tried to put the channel
limitation per SIP Server.
Thanks !
On Wed, Jun 4, 2014 at 3:07 PM, Carlos Ruiz Díaz <
carlos.ruizdiaz(a)gmail.com> wrote:
Can you share your configuration file?
On Wed, Jun 4, 2014 at 1:03 AM, Rahul MathuR <rahul.ultimate(a)gmail.com>
wrote:
> HI Carlos,
>
> Thanks for reply.
>
> In my case the key is SIP Server IP. My kamailio Proxy is connected to
> many sip server IPs say 5. I want to limit maximum channels per sip server
> ip. So I set max channels per sip server ip as
> cnxcc_set_max_channels("$var(client1)", "$var(max_chan)"); and
my
> $var(client1) = "10.97.116.36"; is one of 5 sip servers connected to
> Kamalio.
>
> Now I use your cnxcc_get_channel_count("$rd", "$var(count1)"))
> value(count1) to compare to the max_limit of the channels allowed for this
> sip server. Psuedo Variable $rd is coming correctly that is same as sips
> erver IP[$var(client1)].
> But the problem is that cnxcc_get_channel_count("$rd",
> "$var(count1)")) is always setting the value 1 in $var(count1) variable
> even though there are more calls runnning than what was set to be max_chan
> (which was 100 in my case).
>
> Any pointers to achieve this matter ?
>
>
>
>
>
> On Tue, Jun 3, 2014 at 2:18 PM, Carlos Ruiz Díaz <
> carlos.ruizdiaz(a)gmail.com> wrote:
>
>> Hi Rahul,
>>
>> I don't understand your example. In that case, you are always using
"10.97.116.36"
>> as key, meaning that all calls will be hanging from same root.
>>
>> If you want to use the request-uri domain part, use $rd, not the full
>> $ru. This will of course lead to 1 call being reported always, since
>> request-URIs tend to be different from each other.
>>
>> Regards,
>> Carlos
>>
>>
>>
>>
>> On Tue, Jun 3, 2014 at 7:01 AM, Rahul MathuR <
>> rahul.ultimate(a)gmail.com> wrote:
>>
>>> Hi Carlos,
>>>
>>> Sorry for coming late on this one.
>>>
>>> the ruri value in my example is '10.97.116.36'
>>> and i have tried to configure kamailio to only cater 100
>>> simultaneous calls on this SIP Server (10.97.116.36), after that it is to
>>> send 403.
>>>
>>> Below is the sample logic from kamailio.cfg
>>>
>>>
***********************************************************************************************************************
>>> #Below lines to show an example of how I am maintaining the
>>> business for Concurrent Call Restriction
>>> route[CNXCC]
>>> {
>>>
>>> $var(client1) = "10.97.116.36";
>>> $var(max_chan) = 100;
>>> #!ifdef CNXCC_CHANNEL
>>> xlog("L_INFO", "Setting up channel based credit
control");
>>>
>>> $var(max_chan1) = 0;
>>> $var(retcode) =
cnxcc_set_max_channels("$var(client1)",
>>> "$var(max_chan)");
>>>
>>> if ($var(retcode) == -1) {
>>> xlog("Error setting up credit control");
>>> return;
>>> }
>>>
>>> $var(count1) = -1;
>>>
>>> if (!cnxcc_get_channel_count("$rd",
"$var(count1)")) {
>>> xlog("Error getting customer's channel
count");
>>> }
>>> xlog("RAHUL : CNXCC ROUTE: $var(client1) has $var(count1)
>>> call(s)");
>>> xlog("L_INFO", "CNXCC ROUTE: $var(client1) has
>>> $var(count1) call(s)");
>>>
>>>
>>> if ($var(count1) == $var(max_chan1)) {
>>> xlog("Too many channels for customer");
>>> sl_send_reply(403, "Forbidden");
>>>
>>> exit;
>>> }
>>> #!endif
>>>
>>>
******************************************************************************************************************************************************
>>>
>>> Now the problem that I am facing is that with multiple UACs (all
>>> with same ruri - 10.97.116.36) dialing some pstn numbers, the value of
>>> "count1" remains 1 for all cases. Hence, my purpose is defeated
because the
>>> restriction is not being laid and more than 'max_chan' no. of callers
are
>>> able to make the call.
>>>
>>> Could you please help me achieve this goal.
>>>
>>> Thanks !
>>>
>>>
>>>
>>> On Sat, May 17, 2014 at 2:22 AM, Carlos Ruiz Díaz <
>>> carlos.ruizdiaz(a)gmail.com> wrote:
>>>
>>>> max_chan is equal to zero? You should put a positive value in here
>>>> in order to make sense the function call.
>>>>
>>>> Also, you are using for one call the ID "x.y.z.a", and for the
>>>> other one $rd. Both should be the same for calls that suppose to be
>>>> organized in the same group.
>>>>
>>>> Please take a look at the docs.
>>>>
>>>>
>>>> On Fri, May 16, 2014 at 7:52 PM, Rahul MathuR <
>>>> rahul.ultimate(a)gmail.com> wrote:
>>>>
>>>>> Further, from the logs it seems that cnxcc_set_max_channels is
>>>>> returning -1 and I have no idea why it is failing.
>>>>>
>>>>>
>>>>> On Sat, May 17, 2014 at 5:48 AM, Rahul MathuR <
>>>>> rahul.ultimate(a)gmail.com> wrote:
>>>>>
>>>>>> Hello Carlos,
>>>>>>
>>>>>> Many thanks for your help.
>>>>>> I followed the steps you mentioned for CNXCC. But even after
>>>>>> making the max. calls to 0, I am still able to connect the call.
Below is
>>>>>> the excerpt from kamailio.cfg
>>>>>>
>>>>>> request_route {
>>>>>> setflag(DLG_FLAG);
>>>>>> # per request initial checks
>>>>>> route(REQINIT);
>>>>>> # NAT detection
>>>>>> route(NATDETECT);
>>>>>> .
>>>>>> .
>>>>>> .
>>>>>>
>>>>>> if (is_method("INVITE")) {
>>>>>> route(CNXCC);
>>>>>> }
>>>>>> }
>>>>>>
>>>>>> #Below lines added by Rahul for Concurrent Call Restriction
>>>>>> route[CNXCC]
>>>>>> {
>>>>>>
>>>>>> $var(client1) = "x.y.z.a";
>>>>>>
>>>>>> #!ifdef CNXCC_CHANNEL
>>>>>> xlog("L_INFO", "Setting up channel based
credit control");
>>>>>>
>>>>>> $var(max_chan1) = 0;
>>>>>> $var(retcode) =
cnxcc_set_max_channels("$var(client1)",
>>>>>> "$var(max_chan)");
>>>>>>
>>>>>> if ($var(retcode) == -1) {
>>>>>> xlog("Error setting up credit
control");
>>>>>> return;
>>>>>> }
>>>>>>
>>>>>> $var(count1) = -1;
>>>>>>
>>>>>> if (!cnxcc_get_channel_count("$rd",
"$var(count1)")) {
>>>>>> xlog("Error getting customer's channel
count");
>>>>>> }
>>>>>> xlog("RAHUL : CNXCC ROUTE: $var(client) has
$var(count)
>>>>>> call(s)");
>>>>>> xlog("L_INFO", "CNXCC ROUTE: $var(client)
has $var(count)
>>>>>> call(s)");
>>>>>>
>>>>>> if ($var(count1) == $var(max_chan1)) {
>>>>>> xlog("Too many channels for
customer");
>>>>>> sl_send_reply(403, "Forbidden");
>>>>>>
>>>>>> #if
(!cnxcc_terminate_all("$var(client)")) {
>>>>>> # xlog("Error terminating
customer's
>>>>>> calls");
>>>>>> #}
>>>>>>
>>>>>> exit;
>>>>>> }
>>>>>> #!endif
>>>>>>
>>>>>>
>>>>>> Could you please guide me where am I doing wrong ?
>>>>>>
>>>>>>
>>>>>> On Sat, May 17, 2014 at 3:01 AM, Carlos Ruiz Díaz <
>>>>>> carlos.ruizdiaz(a)gmail.com> wrote:
>>>>>>
>>>>>>> Any pseudo variable should work.
>>>>>>>
>>>>>>> I don't exactly know how your business work, but I'd
suggest
>>>>>>> that instead of using from header domain, use the domain part
of the
>>>>>>> request-uri, $rd.
>>>>>>>
>>>>>>> Regards,
>>>>>>> Carlos
>>>>>>>
>>>>>>>
>>>>>>> On Fri, May 16, 2014 at 4:28 PM, Rahul MathuR <
>>>>>>> rahul.ultimate(a)gmail.com> wrote:
>>>>>>>
>>>>>>>> Thank you very much Carlos !
>>>>>>>>
>>>>>>>> One last thing, can I use $fd in cnxcc_set_max_channels
as
>>>>>>>> below -
>>>>>>>> cnxcc_set_max_channels("$fd",
"$var(max_chan)");
>>>>>>>> to restrict the simultaneous calls hitting a particular
domain ?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sat, May 17, 2014 at 2:03 AM, Carlos Ruiz Díaz <
>>>>>>>> carlos.ruizdiaz(a)gmail.com> wrote:
>>>>>>>>
>>>>>>>>> Create a profile [1], and count the number of calls
of that
>>>>>>>>> profile [2].
>>>>>>>>>
>>>>>>>>> Alternatively, you can use cnxcc module [3].
>>>>>>>>>
>>>>>>>>> [1]
>>>>>>>>>
http://kamailio.org/docs/modules/stable/modules/dialog.html#idp1919576
>>>>>>>>> [2]
>>>>>>>>>
http://kamailio.org/docs/modules/stable/modules/dialog.html#idp1964064
>>>>>>>>> [3]
>>>>>>>>>
http://kamailio.org/docs/modules/stable/modules/cnxcc.html#idp132608
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, May 16, 2014 at 3:28 PM, Rahul MathuR <
>>>>>>>>> rahul.ultimate(a)gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> *Hello,*
>>>>>>>>>>
>>>>>>>>>> *Please accept my apologies for asking a simple
question - Is there any example which shows how can I create the dialog profile **value
based on the SIP domain or SIP Server IP (IP like- 112.23.134.5). I** need to control many
SIP Server IPs with limited channels to each with my** Kamailio Proxy.*
>>>>>>>>>>
>>>>>>>>>> *I am a newbie to kamailio world.*
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *-- Warm Regds.MathuRahul*
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> sr-dev mailing list
>>>>>>>>>> sr-dev(a)lists.sip-router.org
>>>>>>>>>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Carlos
>>>>>>>>>
http://caruizdiaz.com
>>>>>>>>>
http://ngvoice.com
>>>>>>>>> +52 55 3048 3303
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> sr-dev mailing list
>>>>>>>>> sr-dev(a)lists.sip-router.org
>>>>>>>>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Warm Regds.
>>>>>>>> MathuRahul
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> sr-dev mailing list
>>>>>>>> sr-dev(a)lists.sip-router.org
>>>>>>>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Carlos
>>>>>>>
http://caruizdiaz.com
>>>>>>>
http://ngvoice.com
>>>>>>> +52 55 3048 3303
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> sr-dev mailing list
>>>>>>> sr-dev(a)lists.sip-router.org
>>>>>>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Warm Regds.
>>>>>> MathuRahul
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Warm Regds.
>>>>> MathuRahul
>>>>>
>>>>> _______________________________________________
>>>>> sr-dev mailing list
>>>>> sr-dev(a)lists.sip-router.org
>>>>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Carlos
>>>>
http://caruizdiaz.com
>>>>
http://ngvoice.com
>>>> +52 55 3048 3303
>>>>
>>>> _______________________________________________
>>>> sr-dev mailing list
>>>> sr-dev(a)lists.sip-router.org
>>>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>>>
>>>>
>>>
>>>
>>> --
>>> Warm Regds.
>>> MathuRahul
>>>
>>> _______________________________________________
>>> sr-dev mailing list
>>> sr-dev(a)lists.sip-router.org
>>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>>
>>>
>>
>>
>> --
>> Carlos
>>
http://caruizdiaz.com
>>
http://ngvoice.com
>> +52 55 3048 3303
>>
>> _______________________________________________
>> sr-dev mailing list
>> sr-dev(a)lists.sip-router.org
>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>
>>
>
>
> --
> Warm Regds.
> MathuRahul
>
> _______________________________________________
> sr-dev mailing list
> sr-dev(a)lists.sip-router.org
>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>
>
--
Carlos
http://caruizdiaz.com
http://ngvoice.com
+52 55 3048 3303
_______________________________________________
sr-dev mailing list
sr-dev(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev