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

Carlos Ruiz Díaz carlos.ruizdiaz at gmail.com
Mon Jun 9 16:54:24 CEST 2014


Hi Rahul,

*if($var(client1)!="null") *should be *if($var(client1)!="$null"). *You are
doing a string comparison with the string value "*null*".

Also make sure the dialog matching is correct: append these event routes to
your config file:

*event_route[dialog:start] {*
*        xlog("Dialog started");*
*}*

*event_route[dialog:end] {*
*        xlog("Dialog ended");*
*}*

*event_route[dialog:failed] {*
*        xlog("Dialog failed");*
*}*

You should see a "dialog started" and "dialog ended" for every successful
call.

Please do those modifications and see what happens.

Regards,
Carlos




On Mon, Jun 9, 2014 at 6:55 AM, Rahul MathuR <rahul.ultimate at gmail.com>
wrote:

> Hello Carlos,
>
> Were you able to look at my configuration file ?
>
>
> Thanks !
>
>
> On Fri, Jun 6, 2014 at 5:04 AM, Carlos Ruiz Díaz <
> carlos.ruizdiaz at gmail.com> wrote:
>
>> Hi Rahul,
>>
>> sorry, I couldn't find time to do it. I will take a look tomorrow, or
>> most possibly during the weekend.
>>
>> Regards,
>> Carlos
>>
>>
>> On Thu, Jun 5, 2014 at 8:28 PM, Rahul MathuR <rahul.ultimate at gmail.com>
>> wrote:
>>
>>> 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 at 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 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
>>>>
>>>
>>>
>>>
>>> --
>>> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20140609/d896f642/attachment-0001.html>


More information about the sr-dev mailing list