--- title: "Choking an Extension" slug: "choking-an-extension" updated: 2024-12-19T05:38:15Z published: 2024-12-19T05:38:15Z canonical: "docs.telosalliance.com/choking-an-extension" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.telosalliance.com/llms.txt > Use this file to discover all available pages before exploring further. # 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. > [!WARNING] > *Information provided here regarding "Asterisk" or "FreePBX" servers refers only to Telos-commissioned FreePBX (Asterisk) servers used with Telos Alliance telephony products. While these are third-party servers and software, we can provide limited pointers and advice (like this article) under regular support.* 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 Number - `LINES` = Number of line positions containing this extension ## Syntax Here's the format for a normal choke script: ```plaintext [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: ```plaintext [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 ``` > [!NOTE] > Don't forget to use PJSIP/EXT instead of SIP/EXT if the extension is using the PJSIP driver. For example: **exten => s,4,Dial(PJSIP/****1011****,180)** ## 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: ```plaintext 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](https://www.telosalliance.com/support-request).