Choking an Extension
Scope
During phone contests in large markets, the number of inbound calls can overwhelm the phone system and the VX. So it becomes necessary sometimes to limit the number of inbound calls that are allowed to hit the phone system. Sometimes this needs to be done at the provider's side, but here's how it works in the Asterisk.
This file can be used to create custom call contexts such as "choke scripts." It is located at /etc/asterisk/extensions_custom.conf
You add your context to this file, save it, then go to Admin > Custom Destinations in FreePBX to be able to use it as a destination within FreePBX
Variables
EXT
= Extension NumberLINES
= Number of line positions containing this extension
Syntax
Here's the format for a normal choke script:
[EXT-Script-Name]
exten => s,1,Set(GROUP()=EXT)
exten => s,2,GotoIf($[${GROUP_COUNT(EXT)} > LINES]?103)
exten => s,3,Dial(SIP/EXT,180)
exten => s,103,Busy
You can also do other things with a context. Here's an example "choke script" that also removes personal info from a contest line for legal compliance reasons by setting CID name and number (all
) to a new string:
[1011-WXYZ-choke]
exten => s,1,Set(CALLERID(all)="WXYZ Listener" <1999>)
exten => s,2,Set(GROUP()=1011)
exten => s,3,GotoIf($[${GROUP_COUNT(1011)} > 10]?103)
exten => s,4,Dial(SIP/1011,180)
exten => s,103,Busy
Enabling the Script
Once the extensions_custom.conf file is saved with the desired scripting, go to Admin > Custom Destinations in FreePBX to be able to use it as a destination within FreePBX. For the our example context where "1011-WXYZ-choke" is the name of the context, you would enter the following:
Target: 1011-WXYZ-choke,s,1
Description: 1011-WXYZ-choke
Notes: (not required)
Return: No (may not appear in all versions of FreePBX).
Save and Apply Config
Then set the destination within the desired inbound route to Custom Destination > 1011-WXYZ-choke.
Submit and Apply Config.
Let us know how we can help
If you have further questions on this topic or have ideas about improving this document, please contact us.