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_CHANNELxlog("RAHUL : CNXCC ROUTE: $var(client1) has $var(count1) call(s)");
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("L_INFO", "CNXCC ROUTE: $var(client1) has $var(count1) call(s)");exit;
if ($var(count1) == $var(max_chan1)) {
xlog("Too many channels for customer");
sl_send_reply(403, "Forbidden");
}
#!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.cfgrequest_route {setflag(DLG_FLAG);# per request initial checksroute(REQINIT);# NAT detectionroute(NATDETECT);
...if (is_method("INVITE")) {route(CNXCC);}}#Below lines added by Rahul for Concurrent Call Restrictionroute[CNXCC]{$var(client1) = "x.y.z.a";#!ifdef CNXCC_CHANNELxlog("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;}#!endifCould 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,CarlosOn 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 ?
Warm Regds.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].
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
--
_______________________________________________
sr-dev mailing list
sr-dev@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
--
MathuRahul
_______________________________________________
sr-dev mailing list
sr-dev@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
--
_______________________________________________
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
--
_______________________________________________
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