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 <[email protected]> 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 < > [email protected]> wrote: > >> Can you share your configuration file? >> >> >> On Wed, Jun 4, 2014 at 1:03 AM, Rahul MathuR <[email protected]> >> 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 < >>> [email protected]> 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 <[email protected]> >>>> 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 < >>>>> [email protected]> 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 < >>>>>> [email protected]> 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 < >>>>>>> [email protected]> 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 < >>>>>>>> [email protected]> 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 < >>>>>>>>> [email protected]> 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 < >>>>>>>>>> [email protected]> 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 < >>>>>>>>>>> [email protected]> 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 >>>>>>>>>>>> [email protected] >>>>>>>>>>>> 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 >>>>>>>>>>> [email protected] >>>>>>>>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Warm Regds. >>>>>>>>>> MathuRahul >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> sr-dev mailing list >>>>>>>>>> [email protected] >>>>>>>>>> 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 >>>>>>>>> [email protected] >>>>>>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Warm Regds. >>>>>>>> MathuRahul >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Warm Regds. >>>>>>> MathuRahul >>>>>>> >>>>>>> _______________________________________________ >>>>>>> sr-dev mailing list >>>>>>> [email protected] >>>>>>> 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 >>>>>> [email protected] >>>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Warm Regds. >>>>> MathuRahul >>>>> >>>>> _______________________________________________ >>>>> sr-dev mailing list >>>>> [email protected] >>>>> 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 >>>> [email protected] >>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev >>>> >>>> >>> >>> >>> -- >>> Warm Regds. >>> MathuRahul >>> >>> _______________________________________________ >>> sr-dev mailing list >>> [email protected] >>> 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 >> [email protected] >> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev >> >> > > > -- > Warm Regds. > MathuRahul > -- Warm Regds. MathuRahul
_______________________________________________ sr-dev mailing list [email protected] http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
