Bulk Extensions Module User Guide
In FreePBX 13, this module is deprecated in favor of Bulk Handler. The two modules are not compatible. Please use Bulk Handler with FreePBX 13+.
Overview
The Bulk Extension module allows you to easily import all your extensions from a CSV. This will save you time if you need to create a large number of extensions on the system.
Bulk extension changes can take a long time to complete. It can take 30-60 seconds to add 100 extensions on a small system. However, on a system with 2,000 extensions, it can take about 5 minutes to add 100 new extensions.
Logging in
From the top menu click Applications
In the drop down click Bulk Extensions
Exporting Extensions
You can choose to export all your existing extensions to CSV. This will allow you to modify anything on each extension and re-import them.
Pressing the “Export Extensions” button on the main page should allow you to download the CSV of all your current extensions.
You can now open this file in a CSV-friendly program, like Microsoft Excel, and make changes or add new entries.
Bulk Extensions CSV File Columns
The table below explains each column in the CSV file. You can change the column order of the CSV file as you like, however, the column names must be preserved.
# | Name | Default | Allowed | On Extensions page | Details |
---|---|---|---|---|---|
1 | action |
| add, del, edit |
| Add, Delete, or Edit an Extension. |
2 | extension |
|
| User Extension | The extension number to dial to reach this user. |
3 | name |
|
| Display Name | The caller id name for calls from this user will be set to this name. Only enter the name, NOT the number. |
4 | cid_masquerade |
|
| CID Num Alias | The CID Number to use for internal calls |
5 | sipname |
|
| SIP Alias | If you want to support direct sip dialing of users internally or through anonymous sip calls, you can supply a friendly name that can be used in addition to the user's extension to call them. |
6 | outboundcid |
|
| Outbound CID | Overrides the caller id when dialing out a trunk. Any setting here will override the common outbound caller id set in the Trunks admin. Format: "caller name" <#######> Leave this field blank to disable the outbound CallerID feature for this user. |
7 | ringtimer | 0 | 0-120 | Ring Time | Number of seconds to ring prior to going to Voicemail. 0 (Default) will use the value set in the General Tab. If no Voicemail is configured this will be ignored. |
8 | callwaiting | enabled | enabled, disabled | Call Waiting | Set the initial/current Call Waiting state for this user's extension. |
9 | call_screen | 0 | 0, nomemory, memory | Call Screening | Call Screening requires external callers to say their name, which will be played back to the user and allow the user to accept or reject the call. Screening with memory only verifies a caller for their caller-id once. Screening without memory always requires a caller to say their name. Either mode will always announce the caller based on the last introduction saved with that CallerID. If any user on the system uses the memory option, when that user is called, the caller will be required to re-introduce themselves and all users on the system will have that new introduction associated with the caller's CallerID.Set the initial/current Call Waiting state for this user's extension. |
10 | pinless |
| enabled, disabled | Pinless Dialing" | Enabling Pinless Dialing will allow this extension to bypass any pin codes normally required on outbound calls |
11 | password |
|
|
| For logging in and out of devices in deviceanduser mode, not available on Extensions page. |
12 | noanswer_dest |
| Text in the format context,exten,priority that is an active dialplan destination on the system | Optional Destinations, No Answer (Extensions page) | Optional: Setting a destination here where to send the call if the called extension was not answered |
13 | noanswer_cid |
|
| Optional Destinations, CID Prefix (Extensions page) | You can optionally prefix the Caller ID name when sending the call to the above destination. ie: If you prefix with 'No Answer:', a call to John Doe that was not answered would display as 'No Answer:John Doe' on the extensions belonging to the destination selected |
14 | busy_dest |
| Text in the format context,exten,priority that is an active dialplan destination on the system | Optional Destinations, Busy (Extensions page) | Optional: Setting a destination here where to send the call if the extension was busy |
15 | busy_cid |
|
| Optional Destinations, CID Prefix (Extensions page) | You can optionally prefix the Caller ID name when sending the call to the above destination. ie: If you prefix with 'Busy:', a call to John Doe that was busy would display as 'Busy:John Doe' on the extensions belonging to the destination selected |
16 | chanunavail_dest |
| Text in the format context,exten,priority that is an active dialplan destination on the system | Optional Destinations, Not Reachable (Extensions page) | Optional: Setting a destination here where to send the call if the extension was not reached |
17 | chanunavail_cid |
|
| Optional Destinations, CID Prefix (Extensions page) | You can optionally prefix the Caller ID name when sending the call to the above destination. ie: If you prefix with 'Not Reached:', a call to John Doe that was busy would display as 'Not Reached:John Doe' on the extensions belonging to the destination selected |
18 | emergency_cid |
|
| Emergency CID | This caller id will always be set when dialing out an Outbound Route flagged as Emergency. The Emergency CID overrides all other caller id settings. |
19 | tech |
| sip, iax2, zap, custom |
| Device channel type. |
20 | hardware |
| generic, custom, (can leave blank) |
|
|
21 | devinfo_channel |
|
| channel | See zapata.conf. |
22 | devinfo_secret |
|
| secret | See sip.conf file or iax.conf file. |
23 | devinfo_notransfer | yes |
| notransfer | See iax.conf file. |
24 | devinfo_dtmfmode | rfc2833 |
| dtmfmode | See sip.conf file. |
25 | devinfo_canreinvite | no |
| canreinvite | See sip.conf file. |
26 | devinfo_context | from-internal |
| context | Device context. |
27 | devinfo_immediate | no |
| immediate | See zapata.conf file. |
28 | devinfo_signalling | fxo_ks |
| signalling | See zapata.conf file. |
29 | devinfo_echocancel | yes |
| echocancel | See zapata.conf file. |
30 | devinfo_echocancelwhenbridged | no |
| echocancelwhenbridged | See zapata.conf file. |
31 | devinfo_echotraining | 800 |
| echotraining | See zapata.conf file. |
32 | devinfo_busydetect | no |
| busydetect | See zapata.conf file. |
33 | devinfo_busycount | 7 |
| busycount | See zapata.conf file. |
34 | devinfo_callprogress | no |
| callprogress | See zapata.conf file. |
35 | devinfo_host | dynamic |
| host | See sip.conf file or iax.conf file. |
36 | devinfo_type | friend |
| type | See sip.conf file or iax.conf file. |
37 | devinfo_nat | yes |
| nat | See sip.conf file. |
38 | devinfo_port |
|
| port | See sip.conf file or iax.conf file. Default for sip is 5060, iax2 is 4569. |
39 | devinfo_qualify | yes |
| qualify | See sip.conf file or iax.conf file. |
40 | devinfo_callgroup |
|
| callgroup | See sip.conf file. |
41 | devinfo_pickupgroup |
|
| pickupgroup | See sip.conf file. |
42 | devinfo_disallow |
|
| disallow | See conf file for device tech. Codec(s) to disallow. |
43 | devinfo_allow |
|
| allow | See conf file for device tech. Codec(s) to allow. |
44 | devinfo_dial |
|
| dial | See conf file for device tech. Default is TECH/exten, i.e SIP/101. For zap it is TECH/channel, i.e. ZAP/1. |
45 | devinfo_accountcode |
|
| accountcode | See conf file for device tech. |
46 | devinfo_mailbox |
|
| mailbox | See conf file for device tech. Default is exten@device, i.e 101@device. |
47 | devinfo_deny |
|
| deny | Network/Mask of IP address range to deny. Default is 0.0.0.0/0.0.0.0 (or everything). |
48 | devinfo_permit |
|
| permit | Network/Mask of IP address range to permit. Default is 0.0.0.0/0.0.0.0 (or everything). Valid examples would be: 192.168.1.0/255.255.255.0 (all IP addresses from 192.168.1.0-255) or 10.1.0.42/255.255.255.255 (a single address). |
49 | devicetype | fixed | fixed, adhoc |
| Extensions require that devicetype be fixed. If devicetype is adhoc, FreePBX must manage it in Device and Users mode, not Extensions mode. |
50 | deviceid |
|
|
| Defaults to be the value of extension (see item 2 of this table). |
51 | deviceuser |
|
|
| Fixed devices will always be mapped to this user. Adhoc devices will be mapped to this user by default. If selecting 'New User', a new User Extension of the same Device ID will be set as the Default User. |
52 | description |
|
|
| The caller id name for this device will be set to this description (until it is logged into - possible when adhoc devicetype is used). |
53 | dictenabled | disabled | enabled, disabled | Dictation Service |
|
54 | dictformat | ogg | ogg, gsm, wav | Dictation Format |
|
55 | dictemail |
|
| Email Address | The email address that completed dictations are sent to. |
56 | langcode |
|
| Language Code | The language code for this user. This will result in messages such as voiclangcode prompts to use the selected language if installed. |
57 | vm | disabled | enabled, disabled | Status | Set Voicemail status for this user. |
58 | vmpwd |
|
| Voicemail Password | This is the password used to access the Voicemail system. This password can only contain numbers. A user can change the password you enter here after logging into the Voicemail system (*98) with a phone. |
59 |
|
| Email Address | The email address that Voicemails are sent to. | |
60 | pager |
|
| Pager Email Address | Pager/mobile email address to which short Voicemail notifcations are sent. |
61 | attach | attach=no | attach=yes, attach=no | Email Attachment | Option to attach Voicemails to email. |
62 | saycid | saycid=no | saycid=yes, saycid=no | Play CID | Read back caller's telephone number prior to playing the incoming message, and just after announcing the date and time the message was left. |
63 | envelope | envelope=no | envelope=yes, envelope=no | Play Envelope | Envelope controls whether or not the Voicemail system will play the message envelope (date/time) before playing the Voicemail message. This settng does not affect the operation of the envelope option in the advanced Voicemail menu. |
64 | delete | delete=no | delete=yes, delete=no | Delete Vmail | If set to "yes" the message will be deleted from the Voicemailbox (after having been emailed). Provides functionality that allows a user to receive their Voicemail via email alone, rather than having the Voicemail able to be retrieved from the Web interface or the Extension handset. CAUTION: MUST HAVE attach Voicemail to email SET TO YES OTHERWISE YOUR MESSAGES WILL BE LOST FOREVER. |
65 | options |
|
| VM Options | Separate options with pipe ( | ) ie: review=yes|maxmessage=60 |
66 | vmcontext | default |
| VM Context | This is the Voicemail Context which is normally set to default. Do not change unless you understand the implications. |
67 | vmx_state |
| checked, (leave blank to disable) | VmX Locater™ | Enable/Disable the VmX Locater feature for this user. When enabled all settings are controlled by the user in the User Portal (ARI). Disabling will not delete any existing user settings but will disable access to the feature |
68 | vmx_unavail_enabled |
| checked, (leave blank to disable) | Use When: unavailable |
|
69 | vmx_busy_enabled |
| checked, (leave blank to disable) | Use When: busy |
|
70 | vmx_play_instructions |
| checked, (leave blank to disable) | Voicemail Instructions: Standard Voicemail prompts. | Uncheck to play a beep after your personal Voicemail greeting. |
71 | vmx_option_0_system_default |
| checked, (leave blank to disable) | Go To Operator | Pressing 0 during your personal Voicemail greeting goes to the Operator. Uncheck to enter another destination here. This feature can be used while still disabling VmX to allow an alternative Operator extension without requiring the VmX feature for the user. |
72 | vmx_option_0_number |
|
| Press 0: | Pressing 0 during your personal Voicemail greeting goes to the Operator. Uncheck to enter another destination here. This feature can be used while still disabling VmX to allow an alternative Operator extension without requiring the VmX feature for the user. |
73 | vmx_option_1_system_default |
| checked, (leave blank to disable) |
|
|
74 | vmx_option_1_number |
|
| Press 1: | The remaining options can have internal extensions, ringgroups, queues and external numbers that may be rung. It is often used to include your cell phone. You should run a test to make sure that the number is functional any time a change is made so you don't leave a caller stranded or receiving invalid number messages. |
75 | vmx_option_2_number |
|
| Press 2: | Use any extensions, ringgroups, queues or external numbers. Remember to re-record your personal Voicemail greeting and include instructions. Run a test to make sure that the number is functional. |
76 | account |
|
| Follow Me: (Follow Me page) | Extension of account. |
77 | ddial |
| checked, (or leave blank) | Disable: (Follow Me page) | By default (not checked) any call to this extension will go to this Follow-Me instead, including directory calls by name from IVRs. If checked, calls will go only to the extension. |
78 | pre_ring | 0 | 0-60 | Initial Ring Time: (Follow Me page) | This is the number of seconds to ring the primary extension prior to proceeding to the follow-me list. The extension can also be included in the follow-me list. A 0 setting will bypass this. |
79 | strategy | ringallv2 | ringallv2, ringallv2-prim, ringall, ringall-prim, hunt, hunt-prim, memoryhunt, memoryhunt-prim, firstavailable, firstnotonphone | Ring Strategy: (Follow Me page) | ringallv2: ring primary extension for initial ring time followed by all additional extensions until one answers |
80 | grptime | 20 | 0-60 | Ring Time (max 60 sec) (Follow Me page) | Time in seconds that the phones will ring. For all hunt style ring strategies, this is the time for each iteration of phone(s) that are rung |
81 | grplist | User's own extension | List of extensions (hyphen separated) | Follow-Me List: (Follow Me page) | extension-extension-extension-... (extension is numeric; multiple extensions separated by '-') You can include an extension on a remote system, or an external number by suffixing a number with a pound (#). ex: 2448089# would dial 2448089 on the appropriate trunk (see Outbound Routing). |
82 | annmsg_id | blank or 0 (means None) | any recording id active on system | Announcement: (Follow Me page) | Message to be played to the caller before dialing this group. To add additional recordings please use the 'System Recordings' MENU to the left |
83 | ringing | Ring | Ring, default, none, or any active Music On Hold class on the system | Play Music On Hold? (Follow Me page) | If you select a Music on Hold class to play, instead of 'Ring', they will hear that instead of Ringing while they are waiting for someone to pick up. |
84 | grppre |
|
| CID Name Prefix: (Follow Me page) | You can optionally prefix the Caller ID name when ringing extensions in this group. ie: If you prefix with 'Sales:', a call from John Doe would display as 'Sales:John Doe' on the extensions that ring. |
85 | dring |
| Valid alert info text recognized by SIP phone | Alert Info: (Follow Me page) | You can optionally include an Alert Info which can create distinctive rings on SIP phones. |
86 | needsconf |
| CHECKED or (blank) | Confirm Calls: (Follow Me page) | Enable this if you're calling external numbers that need confirmation - eg, a mobile phone may go to Voicemail which will pick up the call. Enabling this requires the remote side push 1 on their phone before the call is put through. This feature only works with the ringall/ringall-prim ring strategy |
87 | remotealert_id | blank or 0 (means Default) | any recording id active on the system | Remote Announce: (Follow Me page) | Message to be played to the person RECEIVING the call, if 'Confirm Calls' is enabled. To add additional recordings use the 'System Recordings' MENU to the left |
88 | toolate_id | blank or 0 (means Default) | any recording id active on the system | Too-Late Announce: (Follow Me page) | Message to be played to the person RECEIVING the call, if the call has already been accepted before they push 1. To add additional recordings use the 'System Recordings' MENU to the left |
89 | postdest |
| Text in the format context,exten,priority that is an active dialplan destination on the system | Destination if no answer: (Follow Me page) |
|
90 | faxenabled |
| true or blank | Enabled | Enables fax if setting is set to true. If left blank fax settings are removed |
91 | faxemail |
| Valid email address | Fax Email | Email address where fax should be emailed to |
92 | cfringtimer | 0 | -1-120 | Call Forward Ring Time | Number of seconds to ring during a Call Forward, Call Forward Busy or Call Forward Unavailable call prior to continuing to voicemail or specified destination. Setting to Always will not return, it will just continue to ring. Default will use the current Ring Time. If voicemail is disabled and their is not destination specified, it will be forced into Always mode |
93 | concurrency_limit | 0 | 0-120 | Outbound Concurrency Limit | Maximum number of outbound simultaneous calls that an extension can make. This is also very useful as a Security Protection against a system that has been compromised. It will limit the number of simultaneous calls that can be made on the compromised extension. |
94 | answermode | disabled | disabled,intercom | Internal Auto Answer | When set to Intercom, calls to this extension/user from other internal users act as if they were intercom calls meaning they will be auto-answered if the endpoint supports this feature and the system is configured to operate in this mode. All the normal white list and black list settings will be honored if they are set. External calls will still ring as normal, as will certain other circumstances such as blind transfers and when a Follow Me is configured and enabled. If Disabled, the phone rings as a normal phone. |
95 | qnostate | usestate | usestate,ignorestate | Queue State Detection | If this extension is part of a Queue then the Queue will attempt to use the user's extension state or device state information when determining if this queue member should be called. In some uncommon situations such as a Follow-Me with no physical device, or some virtual extension scenarios, the state information will indicate that this member is not available when they are. Setting this to 'Ignore State' will make the Queue ignore all state information thus always trying to contact this member. Certain side affects can occur when this route is taken due to the nature of how Queues handle Local channels, such as subsequent transfers will continue to show the member as busy until the original call is terminated. In most cases, this SHOULD BE set to 'Use State'. |
96 | devinfo_trustrpid | yes | yes,no | trustrpid | Whether Asterisk should trust the RPID settings from this device. Usually should be yes for CONNECTEDLINE() functionality to work if supported by the endpoint. |
97 | devinfo_sendrpid | no | no,yes,pai | sendrpid | Whether Asterisk should send RPID (or PAI) info to the device. Usually should be enabled to the settings used by your device for CONNECTEDLINE() functionality to work if supported by the endpoint. |
98 | devinfo_qualifyfreq | 60 |
| qualifyfreq | Frequency in seconds to send qualify messages to the endpoint. |
99 | devinfo_transport | udp | 'udp,tcp,tls','tcp,udp,tls','tls,udp,tcp','udp','tcp','tls' | transport | This sets the allowed transport settings for this device and the default (Primary) transport for outgoing. The default transport is only used for outbound messages until a registration takes place. During the peer registration the transport type may change to another supported type if the peer requests so. In most common cases, this does not have to be changed as most devices register in conjunction with the host=dynamic setting. If you are using TCP and/or TLS you need to make sure the general SIP Settings are configured for the system to operate in those modes and for TLS, proper certificates have been generated and configured. |
100 | devinfo_encryption | no | no,yes | encryption | Whether to offer SRTP encrypted media (and only SRTP encrypted media) on outgoing calls to a peer. Calls will fail with HANGUPCAUSE=58 if the peer does not support SRTP. Defaults to no. |
101 | devinfo_vmexten |
|
| vmexten | Asterisk dialplan extension to reach voicemail for this device. Some devices use this to auto-program the voicemail button on the endpoint. If left blank, the default vmexten setting is automatically configured by the voicemail module. Only change this on devices that may have special needs. |
102 | cc_agent_policy | generic | never,generic,native | Caller Policy | Asterisk: cc_agent_policy. Used to enable Camp-On for this user and set the Technology Mode that will be used when engaging the feature. In most cases 'Generic Device' should be chosen unless you have phones designed to work with channel specific capabilities. |
103 | cc_monitor_policy | generic | never,generic,native | Callee Policy | Asterisk: cc_monitor_policy. Used to control if other phones are allowed to Camp On to this extension. If so, it sets the technology mode used to monitor the availability of the extension. If no specific technology support is available then it should be set to a 'Generic Device'. In this mode, a callback will be initiated to this extension when it changes from an InUse state to NotInUse. If it was busy when first attempted, this will be when the current call has ended. If it simply did not answer, then this will be the next time this phone is used to make or answer a call and then hangs up. It is possible to set this to take advantage of 'Native Technology Support' if available and automatically fallback to the 'Generic Mode' when not. |
104 | recording_in_external |
| always,dontcare,never | Inbound External Calls | Recording of inbound calls from external sources. |
105 | recording_out_external |
| always,dontcare,never | Outbound External Calls | Recording of outbound calls to external sources. |
106 | recording_in_internal |
| always,dontcare,never | Inbound Internal Calls | Recording of calls received from other extensions on the system. |
107 | recording_out_internal |
| always,dontcare,never | Outbound Internal Calls | Recording of calls made to other extensions on the system. |
108 | recording_ondemand |
| enabled, disabled | On Demand Recording | Enable or disable the ability to do on demand (one-touch) recording. The overall calling policy rules still apply and if calls are already being recorded they can not be paused. |
109 | recording_priority |
| 0-20 | Record Priority Policy | Call recording policy priority relative to other extensions when there is a conflict between an extension wanting recording and the other not wanting it. The higher of the two determines the policy, on a tie the global policy (caller or callee) determines the policy. |
110 | add_xactview |
|
|
|
|
111 | xactview_autoanswer |
|
|
|
|
112 | xactview_email |
|
|
|
|
113 | xactview_cell |
|
|
|
|
114 | jabber_host |
|
|
|
|
115 | jabber_domain |
|
|
|
|
116 | jabber_resource |
|
|
|
|
117 | jabber_port |
|
|
|
|
118 | jabber_username |
|
|
|
|
119 | jabber_password |
|
|
|
|
120 | xactview_createprofile |
|
|
|
|
121 | xactview_profilepassword |
|
|
|
|
122 | xmpp_user |
|
|
|
|
123 | xmpp_pass |
|
|
|
|
Importing Extensions
You can import a new CSV of extensions at any time. To do this, we suggest you start with exporting at least one extension created on your PBX so you can see the proper CSV format.
At the top of the CSV will be each field that you can define information for. These fields are the same fields you will see in the Admin GUI of the PBX, and each field is explained in the Extension module user guide. The only column in the CSV that is not a field in your Extensions module is the action field. The action field lets you define what action you want to take for each entry.
Your options are:
add - If the entry is a new extension, you would set this to “add.”
del - If you want to remove the entry from the PBX, you would set this to “del.”
edit - If you want to edit the entry from what it has now for settings, you would set this to “edit.”
To import your new CSV, click on the “Choose File” option and pick the CSV you want to import from your local computer. Then press the “Load File” button when done.