On Mon, Oct 8, 2012 at 8:09 PM, Daniel-Constantin Mierla <mico...@gmail.com> wrote: > Hello, > > what version are you using? at some point it was an issue adding a call in a > profile after creating its associated dialog. >
i'm using 3.2 branch of the git repository. > Also, it might be better to check the quota before creating the dialog, > because if the limit is reached, then you will just reject the call, so you > avoid quite some internal operations -- but it is not really something > crucial. I'm under the impression that my idea behind this implementation is somewhat flawed. The idea was to count calls per "domain". If the the idea is reflected in my approach then i will head for minor tweaking. But if my implementation is just plain wrong, then i will have to do it manually, like using sqlops and do the dialog accounting myself. cheers. > > Cheers, > Daniel > > > On 10/8/12 11:40 AM, Aft nix wrote: >> >> Hi, >> >> I'm trying to implement a "callquota" based on destination domains. >> >> The idea is following: >> >> every destation domain has a limit of, say 50 calls. >> >> As the sip clients are registered with the "destination domains", i've >> extracted >> the domain using "$fd" because it results as same value as destination >> domain. >> >> Problem is, i wanted to have separate quota for each domains. But it >> seems, >> that the quota is reached "as total" not as per domain basis. >> >> Another thing is, the number of calls reported by it is also unusually >> large than >> actual calls. >> >> This is implemenated as bellow: >> >> >> #!ifdef WITH_CALL_LIMIT >> modparam("dialog","enable_stats",1) >> modparam("dialog","dlg_flag", DLG_FLAG) >> modparam("dialog","hash_size", 4096) >> modparam("dialog", "profiles_with_value","callquota") >> modparam("dialog", "default_timeout", 300) >> modparam("dialog", "dlg_match_mode", 2) >> modparam("dialog", "detect_spirals", 1) >> modparam("dialog", "db_mode", 0) >> #!endif >> >> #!ifdef WITH_CALL_LIMIT >> if (is_method("INVITE")) { >> dlg_manage(); >> $var(100) = 0; >> get_profile_size("callquota", "$fd", "$var(100)"); >> if ($var(100) >= 50 ) { >> xdbg("DEBUG: Simultaneous calls limit >> reached"); >> sl_send_reply("503","Simultaneous calls >> limit reached"); >> exit; >> } >> >> set_dlg_profile("callquota","$fd"); >> if (get_profile_size("callquota","$fd", "$var(100)")) { >> xdbg("DEBUG: there are $var(100) total calls >> for $fd"); >> } >> } >> #!endif >> >> Thanks in advance. > > > -- > Daniel-Constantin Mierla - http://www.asipto.com > http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda > Kamailio Advanced Training, Berlin, Nov 5-8, 2012 - http://asipto.com/u/kat > Kamailio Advanced Training, Miami, USA, Nov 12-14, 2012 - > http://asipto.com/u/katu > -- -aft _______________________________________________ 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