Hi, Thanks David,
I was trying an alternate way as Mr. Daniel presented in ClueCon. Pasting below the snippet from my configuration. Somehow the code is not working. kacmd htable.dump acalls returning empty results. What might be wrong? modparam("htable", "htable", "acalls=>size=8;autoexpire=7200;") modparam("cfgutils", "lock_set_size", 8) request_route { # per request initial checks route(REQINIT); # NAT detection route(NATDETECT); # CANCEL processing if (is_method("CANCEL")) { if (t_check_trans()) t_relay(); exit; } # handle requests within SIP dialogs route(WITHINDLG); ### only initial requests (no To tag) t_check_trans(); # authentication route(AUTH); # record routing for dialog forming requests (in case they are routed) # - remove preloaded route headers remove_hf("Route"); if (is_method("INVITE|SUBSCRIBE")) record_route(); # account only INVITEs if (is_method("INVITE")) { setflag(FLT_ACC); # do accounting } if(is_method("BYE")) { $sht(acalls=>$ci) = $null; } # dispatch requests to foreign domains route(SIPOUT); ### requests for my local domains # handle presence related requests route(PRESENCE); # handle registrations route(REGISTRAR); if ($rU==$null) { # request with no Username in RURI sl_send_reply("484","Address Incomplete"); exit; } route(ACLIMIT); # dispatch destinations to LOADBALANCE #!ifdef WITH_LOADBALANCE if($rU=~"^([0-9]{10}|1[0-9]{10}|37051[0-9]{10}|3706[0-9]{10})$") { route(LOADBALANCE); } route(ACLIMIT); route(RELAY); #!endif reply_route { if(is_method("INVITE") && $rs>=300) { $sht(acalls=>$ci) = $null; } route[ACLIMIT] { if(is_method("INVITE") && !has_totag()) { lock("$fU"); $var(ac) = $shtcv(acalls=>eq$fU); if($var(ac) >= 4) { unlock("$fU"); send_reply("403", "Too many active calls"); exit; } $sht(acalls=>$ci) = $fU; unlock("$fU"); } } #!ifdef WITH_LOADBALANCE route[LOADBALANCE] { if(!ds_select_dst("0", "4")) { xlog("L_NOTICE", "No destination available!"); send_reply("404", "No destination"); exit; } xlog("L_DBG", "--- SCRIPT: going to <$ru> via <$du>\n"); t_set_fr(0,2000); t_on_failure("RTF_DISPATCH"); route(RELAY); return; } #!endif ##Failure route failure_route[RTF_DISPATCH] { if (t_is_canceled()) { exit; } # next DST - only for 500 or local timeout if (t_check_status("500") or (t_branch_timeout() and !t_branch_replied())) { if(ds_next_dst()) { t_on_failure("RTF_DISPATCH"); route(RELAY); exit; } } } > On 16-Dec-2016, at 6:34 PM, David Villasmil <david.villasmil.w...@gmail.com> > wrote: > > you can achieve that with the dialog module. > http://www.kamailio.org/docs/modules/4.4.x/modules/dialog_ng.html > <http://www.kamailio.org/docs/modules/4.4.x/modules/dialog_ng.html> > > Regards, > > David Villasmil > email: david.villasmil.w...@gmail.com <mailto:david.villasmil.w...@gmail.com> > phone: +34669448337 > > On Fri, Dec 16, 2016 at 10:33 AM, Cibin Paul <paul_ci...@me.com > <mailto:paul_ci...@me.com>> wrote: > Hi, > > Is there a way to limit the number of active calls per cli or dst number > basis? Yesterday my system had a ddos attack in which 123456 (CLI) was > hitting 2345 (DID) at a rate of 100-200 calls per minute. I would like to > restrict to 2-4 simultaneous calls per CLI/DST. > > Any help would be appreciated. > > Thanks, > Cibin > > > > _______________________________________________ > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list > sr-users@lists.sip-router.org <mailto:sr-users@lists.sip-router.org> > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users > <http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users> > > _______________________________________________ > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list > sr-users@lists.sip-router.org > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users