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