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

Rahul MathuR rahul.ultimate at gmail.com
Thu Jun 5 11:16:47 CEST 2014


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 at gmail.com>
wrote:

> Can you share your configuration file?
>
>
> On Wed, Jun 4, 2014 at 1:03 AM, Rahul MathuR <rahul.ultimate at 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 at 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 at 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 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
>>>>
>>>> _______________________________________________
>>>> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20140605/c974b145/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: kamailio.cfg
Type: application/octet-stream
Size: 30880 bytes
Desc: not available
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20140605/c974b145/attachment-0001.obj>


More information about the sr-dev mailing list