[sr-dev] Fwd: Create multiple profiles using dialog module

Rahul MathuR rahul.ultimate at gmail.com
Tue Jun 3 14:01:48 CEST 2014


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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at 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 at lists.sip-router.org
>>>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Warm Regds.
>>>>> MathuRahul
>>>>>
>>>>> _______________________________________________
>>>>> sr-dev mailing list
>>>>> sr-dev at 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 at 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 at 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 at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>
>


-- 
Warm Regds.
MathuRahul
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20140603/6d1ab02f/attachment-0001.html>


More information about the sr-dev mailing list