Hello Carlos,
Did you get a chance to look at the attached configuration file ?
Warm Regds,
Rahul Mathur
On Thu, Jun 5, 2014 at 2:46 PM, Rahul MathuR <rahul.ultimate(a)gmail.com>
wrote:
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
>
>
--
Warm Regds.
MathuRahul
--
Warm Regds.
MathuRahul
_______________________________________________
sr-dev mailing list
sr-dev(a)lists.sip-router.org