You may be on an older freeswitch version. Type the command "version" at fs_cli and see what it says. Also, if you want *only* to limit calls made to user 11 then you need to have a separate extension that handles just the limit for 11. Instead of trying to do the limit in the same extension where you do the bridge, just create a separate extension and put it near the top of your dialplan: <extension name="limit user 11" continue="true"> <condition field="destination_number" expression="^(11)$"> <action application="limit" data="db ${domain} $1 1 handle_over_limit XML over_limit_actions"/> </condition> </extension> Take the limit app out of the "PBX extension" and have just the bridge app and anything else you normally do there. Also, you can put the "handle_over_limit" extension in your same context as the rest of your stuff, but personally I like to have special stuff like that in its own context so that the dialplan doesn't have to evaluate so many extensions. -MC On Thu, Jul 14, 2011 at 11:38 AM, ran zhang <rzhang@gosilverplus.com> wrote:
** Mike:
I have added 'limits.xml' as u said. If i use 'hash', FS generates error "limit subsystem hash not found!", so i changed to 'db', following is my local extension in my dialplan, i changed '$1' to '11' since i just want to limit user/11, but its still limiting incoming calls on all the extensions.
Also, is creating 'limits.xml' required?
Would it work if i can just add 'handle_over_limit' extension in 'default.xml', omit the 'XML over_limit_actions' part in the limit action?
<extension name="PBX Extension"> <condition field="destination_number" expression="^(1[0-9]{1})$">
<action application="limit" data="db ${domain} 11 1 handle_over_limit XML over_limit_actions"/> <action application="bridge" data="user/$1"/>
</condition> </extension> On 7/13/2011 11:22 PM, Michael Collins wrote:
On Wed, Jul 13, 2011 at 6:24 PM, ran zhang <rzhang@gosilverplus.com>wrote:
hi all:
I'm trying to limit each registered user's active calls, so if that particular registered user pass the limit, FS stops sending any new incoming call to it and it can't make any new calls.
I looked into 'limit' api, the counter increment everytime a call FS receives, regardless of which user it is for, and counter doesnt reset itself after the call is finished.
I presume you mean the limit "dialplan app" 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:
<action application="limit" data="hash ${domain} $1 1 handle_over_limit XML over_limit_actions"/>
Then add this new file as "limits.xml" in conf/dialplan/ :
<include>
<context name="over_limit_actions">
<extension name="oops, too many calls for this one">
<condition field="destination_number" expression="handle_over_limit">
<action application="answer"/>
<action application="playback" data="ivr/ivr-no_no_no.wav"/>
<action application="playback" data="ivr/ivr-no_no_no.wav"/>
<action application="playback" data="ivr/ivr-no_no_no.wav"/>
<action application="hangup" data="USER_BUSY"/>
</condition>
</extension>
</context>
</include>
Save, then do F6 or reloadxml. Now when you call a local extension it won't allow more than one call. Note that you can change the value in the limit's data argument. For example, this would cause a limit of 4 concurrent calls, sending the 5th call into "oops, too many calls" extension:
<action application="limit" data="hash ${domain} $1 4 handle_over_limit XML over_limit_actions"/>
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's an example; put it right after the "global" extension in default.xml:
<!-- set outound caller limit -->
<extension name="set outbound limit" continue="true">
<condition field="destination_number" expression="^1?\d{7}" break="on-false"/>
<condition field="caller_id_number" expression="^(10[01][0-9])">
<action application="limit" data="hash ${domain} $1 4 handle_over_limit XML over_limit_actions"/> <action application="log" data="INFO Added limit for caller $1"/>
</condition>
</extension>
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't add to his limit. (Adjust this as you see fit.)
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.
-MC
_______________________________________________ Join us at ClueCon 2011, Aug 9-11, Chicago http://www.cluecon.com 877-7-4ACLUE
FreeSWITCH-users mailing listFreeSWITCH-users@lists.freeswitch.orghttp://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-usershttp://www.frees...
_______________________________________________ Join us at ClueCon 2011, Aug 9-11, Chicago http://www.cluecon.com 877-7-4ACLUE
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org