<br><br><div class="gmail_quote">On Wed, Jul 13, 2011 at 6:24 PM, ran zhang <span dir="ltr">&lt;<a href="mailto:rzhang@gosilverplus.com" target="_blank">rzhang@gosilverplus.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

hi all:<br>
<br>
            I&#39;m trying to limit each registered user&#39;s active calls, so<br>
if that particular registered user pass the limit, FS stops sending any<br>
new incoming call to it and it can&#39;t make any new calls.<br>
<br>
            I looked into &#39;limit&#39; api, the counter increment everytime a<br>
call FS receives, regardless of which user it is for, and counter doesnt<br>
reset itself after the call is finished.<br></blockquote><div><br></div><div>I presume you mean the limit &quot;dialplan app&quot; and not API. In any case, if you have the default configs then locate the Local_Extension in conf/dialplan/default.xml. Add this line right after the condition:</div>

<div><br></div><div><div><font face="&#39;courier new&#39;, monospace">&lt;action application=&quot;limit&quot; data=&quot;hash ${domain} $1 1 handle_over_limit XML over_limit_actions&quot;/&gt;</font></div>
</div><div><br></div><div>Then add this new file as &quot;limits.xml&quot; in conf/dialplan/ :</div><div><br></div><div><div><font face="&#39;courier new&#39;, monospace">&lt;include&gt;                                                                                                                                                       </font></div>

<div><font face="&#39;courier new&#39;, monospace">  &lt;context name=&quot;over_limit_actions&quot;&gt;                                                                                                                           </font></div>

<div><font face="&#39;courier new&#39;, monospace">    &lt;extension name=&quot;oops, too many calls for this one&quot;&gt;                                                                                                        </font></div>

<div><font face="&#39;courier new&#39;, monospace">      &lt;condition field=&quot;destination_number&quot; expression=&quot;handle_over_limit&quot;&gt;                                                                                     </font></div>

<div><font face="&#39;courier new&#39;, monospace">        &lt;action application=&quot;answer&quot;/&gt;                                                                                                                          </font></div>

<div><font face="&#39;courier new&#39;, monospace">        &lt;action application=&quot;playback&quot; data=&quot;ivr/ivr-no_no_no.wav&quot;/&gt;                                                                                            </font></div>

<div><font face="&#39;courier new&#39;, monospace">        &lt;action application=&quot;playback&quot; data=&quot;ivr/ivr-no_no_no.wav&quot;/&gt;                                                                                            </font></div>

<div><font face="&#39;courier new&#39;, monospace">        &lt;action application=&quot;playback&quot; data=&quot;ivr/ivr-no_no_no.wav&quot;/&gt;                                                                                            </font></div>

<div><font face="&#39;courier new&#39;, monospace">        &lt;action application=&quot;hangup&quot; data=&quot;USER_BUSY&quot;/&gt;                                                                                                         </font></div>

<div><font face="&#39;courier new&#39;, monospace">      &lt;/condition&gt;                                                                                                                                              </font></div>

<div><font face="&#39;courier new&#39;, monospace">    &lt;/extension&gt;                                                                                                                                                </font></div>

<div><font face="&#39;courier new&#39;, monospace">  &lt;/context&gt;                                                                                                                                                    </font></div>

<div><font face="&#39;courier new&#39;, monospace">&lt;/include&gt;</font></div></div><div><br></div><div>Save, then do F6 or reloadxml. Now when you call a local extension it won&#39;t allow more than one call. Note that you can change the value in the limit&#39;s data argument. For example, this would cause a limit of 4 concurrent calls, sending the 5th call into &quot;oops, too many calls&quot; extension:</div>

<div><br></div><div><div><font face="&#39;courier new&#39;, monospace">&lt;action application=&quot;limit&quot; data=&quot;hash ${domain} $1 4 handle_over_limit XML over_limit_actions&quot;/&gt;</font></div>
</div><div><br></div><div>The limit application handles everything for you. Note that this only covers calls made *to* the extension. If you want to handle calls made *from* the extension you will need to add another limit app to the dialplan. Here&#39;s an example; put it right after the &quot;global&quot; extension in default.xml:</div>

<div><br></div><div><div><font face="&#39;courier new&#39;, monospace">    &lt;!-- set outound caller limit --&gt;                                                                                                                           </font></div>

<div><font face="&#39;courier new&#39;, monospace">    &lt;extension name=&quot;set outbound limit&quot; continue=&quot;true&quot;&gt;                                                                                                       </font></div>

<div><font face="&#39;courier new&#39;, monospace">      &lt;condition field=&quot;destination_number&quot; expression=&quot;^1?\d{7}&quot; break=&quot;on-false&quot;/&gt;                                                                            </font></div>

<div><font face="&#39;courier new&#39;, monospace">      &lt;condition field=&quot;caller_id_number&quot; expression=&quot;^(10[01][0-9])&quot;&gt;                                                                                          </font></div>

<div><font face="&#39;courier new&#39;, monospace">        &lt;action application=&quot;limit&quot; data=&quot;hash ${domain} $1 4 handle_over_limit XML over_limit_actions&quot;/&gt;</font>                </div>
<div><font face="&#39;courier new&#39;, monospace">        &lt;action application=&quot;log&quot; data=&quot;INFO Added limit for caller $1&quot;/&gt;                                                                                       </font></div>

<div><font face="&#39;courier new&#39;, monospace">      &lt;/condition&gt;                                                                                                                                              </font></div>

<div><font face="&#39;courier new&#39;, monospace">    &lt;/extension&gt;                                                                                                                                                </font></div>

<div>  </div></div><div>Again, save, press F6 or do reloadxml. Now when this person makes a call to a 7-digit number or does 1+ 7 or more digits, it will add to his limit totals. However, if he just calls another 4-digit extension on the system then it won&#39;t add to his limit. (Adjust this as you see fit.)</div>

<div><br></div><div>Let me know if this works for you (it worked for me in my little lab setting) and I will throw it up on the wiki and maybe add it to the cookbook.</div><div><br></div><div>-MC</div><div><br></div><div>

<br></div><div><br></div></div>