Dialplan applications - Admin Guide
This Guide explains in detail each Dialplan application and provides practical examples and use cases.
Created: January 2018
Updated: October 2025
Permalink: https://wildix.atlassian.net/wiki/x/ahDOAQ
- 1 Call control
- 1.1 Answer the call
- 1.2 Authenticate user
- 1.3 Call through remote PBX
- 1.4 Correct called number
- 1.5 Dial the phone
- 1.6 Dial the trunk
- 1.7 Hangup
- 1.8 Trunk group
- 2 Services
- 2.1 Automatic Call Back
- 2.2 Call group
- 2.3 Conference
- 2.4 Dial by name / Directory
- 2.5 Fax to e-mail
- 2.6 Go to voicemail
- 2.7 Intercom
- 2.8 Paging group
- 2.9 Record call
- 2.10 Voicemail access
- 2.11 Speech to Text
- 2.12 Voice Bot
- 3 Conditions
- 4 Contacts
- 5 Sounds / IVR
- 6 Set
- 6.1 Set
- 7 DTMF
- 7.1 Generate DTMF
- 7.2 Generate Flash Hook
- 8 Other
- 8.1 Custom application
- 8.2 Remote script
Basic information on how Dialplan works: Dialplan: How does it work?
Call control
Answer the call
Enables the system to answer the call.
Authenticate user
Asks the caller for the user password.
Set Number: set up the system to ask for the password associated to another user if you indicate another user
Set Options: set up the system to ask for the password only if phone is blocked
Example:
The caller is asked for the user password and only in case the entered password is correct, the next Dial trunk Dialplan application is executed.
Call through remote PBX
Routes the call through another PBX of WMS Network. As a rule, this option is used to route the call through the trunk present on the remote PBX at minor cost.
PBX: select the PBX from your WMS Network
Procedure: enter the Dialplan procedure name to follow, present on remote PBX
Set Number: modify the called number (to match the selected Dialplan procedure on remote PBX)
Timeout: enter timeout in seconds, in case of no success within the specified timeout, the system proceeds to the next Dialplan application
Set Options: provide music on hold instead of ringing tone
Example:
Suppose our local PBX is situated in Italy and remote one in France. Here is the users Dialplan configuration on local (Italian) PBX:
In case the French number is entered, the call is routed via a remote PBX located in France, users Dialplan procedure. Here is the users Dialplan configuration on remote (French) PBX:
On the remote PBX situated in France, the number is normalized (the first 5 digits standing for the French international prefix are eliminated) and the call is routed via a local trunk.
Correct called number
Verifies if the called number contains international prefix, and if it’s the one defined in Settings -> PBX -> Language & region -> Country Code. If matched, the prefix is substituted by the parameter indicated in Outgoing prefix. If the international prefix is not recognized, + is eliminated, outgoing prefix and international prefix are added.
Outgoing Prefix: enter the prefix to be added to called number after it’s corrected
Procedure: select the Dialplan procedure to follow after the called number is corrected
Example:
Suppose the international prefix is 39 (Italy). Here is the users Dialplan configuration example:
If the called number is +3904611715112, the system removes +39 and adds 0, the number after normalization is: 004611715112 and it matches the number 00[1-9], so the call is routed via the local trunk.
If the called number is +380481234567, the system removes + and adds 000 (00 as International prefix and 0 as Outgoing prefix), the number after normalization is: 000380481234567 and it matches the called number 000[1-9] present in Dialplan procedure, so the call is routed via the international trunk.
Dial the phone
Routes the call to the selected user.
Set Number: modify the called number
Timeout: enter timeout in seconds, in case of no success within the specified timeout, the system proceeds to the next Dialplan application
Set Options: provide music on hold instead of ringing tone
Message For Operator: click the button … to access the Sounds menu of the PBX to be able to select or record the message to be played back to the call group member after the call is answered (before connecting to the caller) (this message, for example, can notify an operator present in several call groups, on the type of the call; e.g. one call agent is present both in Tech Support and in Sales group, the message can notify the user that this call is addressed to Tech Support group)
Example:
Call coming from 021234567 must be routed to the user 100: Set number -> Custom: 100.
Call coming from 021234533 must be routed to the user 133, call coming from 021234532 must be routed to the user 132, etc: Set number -> remove – 7 -> prepend digits – 1 (DID management). Here is an example of Dialplan configuration for incoming calls (main) in this case:
Dial the trunk
Routes the call through the specified trunk.
Select trunk: select the trunk from the list through which the call must be routed
Set Number: modify the called number
Class: assign the call class for this call to manage the permissions via ACL groups
Timeout: enter timeout in seconds, in case of no success within the specified timeout, the system proceeds to the next Dialplan application
Max Calls: specify max number of calls on trunk
Set Options: provide music on hold instead of ringing tone
Example:
The Timeout and Max Calls options allow you to decide when to stop dialing one trunk and try another one, here is an example of the users procedure configuration:
In our example, the system first tries to dial one trunk, in case the timeout of 30 seconds or the maximum number of 2 calls is reached on this trunk, the system tries to route the call via another trunk.
Hangup
Enables the system to terminate the call. Choose the reason from the list at which the system will terminate the call.
Trunk group
Routes the call through the specified Trunk group (Read the chapter of WMS Start Guide, dedicated to Trunk groups).
Select trunk group: select the trunk group from the list through which the call must be routed
Set Number: modify the called number
Class: assign the call class for this call to manage the permissions via ACL groups
Strategy: change the order of trunk occupation within the specified hunt group
Services
Automatic Call Back
Routes the incoming call directly to the user who had made an outgoing call to this number (within one hour) with No Answer Dial Status.
Note: the CDR must be enabled on the PBX.
Example: User 100 made a call to the number 39123456789 but no one replied. In forty minutes the called party has noticed a missed call and calls the number displayed on the screen (the office number, e.g. 04611715112). The system routes the call directly to the user 100 who had previously made an outgoing call. To do this, we must edit the Dialplan for incoming calls (main), by adding the Automatic Call Back Dialplan application to the office number (04611715112):
Call group
Routes the call to the selected Call Group. Call Groups are set up in Dialplan -> Call Groups (Read the chapter of WMS Start Guide, dedicated to Call groups).
Select Call group: select the call group from the list to which the call is routed
Message For Operator: click the button … to access the Sounds menu of the PBX to be able to select or record the message to be played back to the call group member after the call is answered (before connecting to the caller) (this message, for example, can notify an operator present in several call groups, on the type of the call; e.g. one call agent is present both in Tech Support and in Sales group, the message can notify the user that this call is addressed to Tech Support group)
Timeout: enter timeout in seconds, in case of no success within the specified timeout, the system proceeds to the next Dialplan application; note that in case you enter no timeout, call will remain in queue forever
Music On Hold Class: select the music on hold to be played to the caller
Example:
Here is an example of the Dialplan procedure for incoming calls (main), where an incoming call to the tech support number is first routed to the tech support group, if no one answered within the timeout of 20 seconds, the call is routed to the sales group:
Conference
Puts the call into multiconference.
Room Number: enter the conference room ID number; in case the room number with such ID doesn’t exist, it is automatically created
Example:
In the first example of the main Dialplan configuration, the incoming calls to the number 021234567 are routed to the conference room 123:
The second example demonstrates DISA configuration in which we have three different conference rooms (1, 2, 3) and the caller is asked to enter the number in order to enter each conference room: e.g. caller must enter 11234 to enter the conference room number 1, 11567 to enter the conference room number 2, 11890 to enter the conference room number 3.
By the way, any user of the system can access these conference room by simply dialing a Feature code for Conference access (98 by default) + the conference room number, e.g. 981 for conference room number 1.
To enable an external user to participate in the conference without DISA configuration, you can call this external user and then make a blind transfer of this call to the conference (e.g. 981, to enable an external user to participate in the conference with the room number 1).
Dial by name / Directory
Invites caller to enter a part of the name or surname for the search and routes the call to the user in case a match is found. Use DTMF for entering. Instead of letters, press corresponding digits. Press the digit just once to enter any option corresponding to this digit. For example, for the user John Smith, you need to enter 5646 which stands for the name/ 76484 which stands for the surname.
Starting from WMS 6.04.20231012.1, in case more than 5 matches are found, an announcement is played to the caller, which allows the caller to review the matches. To exit the Dial by name service, the caller can press asterisk. The default interdigit timeout for DTMF is 3 seconds. If needed, interdigit timeout can be configured in WMS -> Dialplan -> General settings -> Interdigit timeout (the max. value can be 10 seconds).
Note: Interdigit timeout set in WMS is applied on WP 5 phones starting from WMS 6.09.20250107.2.
Note: the feature is also available via the Feature code Directory 82. To dial users by name, they should have their names previously recorded via another Feature code Voicemail 81 (call 81, press 0 for mailbox options, then press 3 to record your name). For more information, refer to Feature Codes Admin Guide, Directory section.
Fax to e-mail
Answers an incoming call using FAX Server and sends the fax to email or to the user, indicated in Set.
Note: in case the number is used both to receive voice calls and faxes, you can add the Detect fax Dialplan application before this one.
Set email address: specify one or several email addresses (separated by space) where to route the fax
Format: select the format (pdf / tiff)
ID Fax: enter the fax machine ID (to identify faxes received from different numbers)
Example:
Suppose the office fax number is 021234567. Edit the Dialplan for incoming calls (main):
You can enter several extension numbers / email addresses into the field, separated by spaces, in this case the copy of received faxes is sent to multiple destinations:
Note: Only spaces can be used as separator between extension numbers/ emails in the Custom/E-mail field. Other characters are not supported.
Read the FAX/ SMS Server Quick Admin Guide for more information on sending and receiving faxes with Wildix Fax Server.
Go to voicemail
Routes the call to the voicemail.
Set Number: modify the called number/ email address of the voicemail destination. You can enter several extension numbers/ email addresses into the field, separated by comma, space or semicolon. In this case the voicemail will be sent to multiple destinations
Set Options: select to Play beep/ Play busy or unavailable message automatically/ Play unavailable message/ Play busy message to the caller
Intercom
The phone indicated in the Number field answers automatically in speaker mode enabling the caller to talk to the user without his/her intervention.
Set Number: modify the called number
Timeout: enter timeout in seconds, in case of no success within the specified timeout, the system proceeds to the next Dialplan application
Set Options: provide music on hold instead of ringing tone
Message For Operator: click the button … to access the Sounds menu of the PBX to be able to select or record the message to be played back to the call group member after the call is answered (before connecting to the caller) (this message, for example, can notify an operator present in several call groups, on the type of the call; e.g. one call agent is present both in Tech Support and in Sales group, the message can notify the user that this call is addressed to Tech Support group)
Note: if you use web phone, the Intercom Dialplan application is supported only in Chrome web browser.
Calls are no longer interrupted by Paging / Intercom on all devices; a user who is already on the phone, receives Paging / Intercom calls as a normal second incoming call. This behavior can be changed via Dialplan Custom application:
SIPAddHeader(Call-Info: sip:wildixgw;answer-after=0;force) - old behavior, enables the phone to answer Paging / Intercom call automatically, even if user is busy on the phone
SIPAddHeader(Call-Info: sip:wildixgw;answer-after=5;force) - enables the phone to answer Paging / Intercom call automatically, even if user is busy on the phone after the timeout of five seconds
Paging group
Similar to Intercom, but applied to a group of users (Dialplan -> Paging Groups); the phones of users present in the selected Paging group answer automatically in speaker mode enabling the caller to talk to the users without their intervention (e.g. in this way you can quickly broadcast an urgent message to the group of listeners).
Paging group: select the paging group from the list
Calls are no longer interrupted by Paging / Intercom on all devices; a user who is already on the phone, receives Paging / Intercom calls as a normal second incoming call. This behavior can be changed via Dialplan Custom application:
SIPAddHeader(Call-Info: sip:wildixgw;answer-after=0;force) - old behavior, enables the phone to answer Paging / Intercom call automatically, even if user is busy on the phone
SIPAddHeader(Call-Info: sip:wildixgw;answer-after=5;force) - enables the phone to answer Paging / Intercom call automatically, even if user is busy on the phone after the timeout of five seconds
Record call
Records the call and sends the record to the specified email/user.
A copy of the conversation is also sent in the folder defined in Settings -> System -> Storages.
Note: section Storages is available only in Hardware and Virtual systems.
Set Options: start recording only after the call has been answered
Send To Email – User: enter the email address or extension number where to send a copy of the call recording
Example:
To enable call recording of outgoing calls, modify the Dialplan procedure used for managing outgoing calls (users):
In our example the call recording starts as soon as the call is answered (specified in Set Options), and the copy of the recording is sent to the email address of user 100. To enable call recording of incoming calls, modify the Dialplan procedure used for managing incoming calls (main):
In this case all the incoming calls to the line 021234567 are recorded and the copy of the conversation is sent to the email address info@wildix.com.
Note: in Dialplan -> General Settings it is possible to define whether to save the call recordings in *.wav or in *.mp3 quality.
You can enable call transcription directly in the Dialplan. To enable transcription of outgoing or incoming calls without recording, in the Service Mode field select Transcribe only. In this mode, the transcription is available in real time and is sent to email.
Other available options in the Record call application:
Record + Transcribe (default): The call is recorded and transcribed.
Record only: The call is recorded without transcription.
Note: Starting from WMS version 7.05.20251006.1, the transcription feature is available with the x-bees Basic / UC-Essential subscription plan, while receiving transcriptions via email requires an x-bees Standard / UC-Business subscription plan or higher.
Note: Сalls with transcription only (without a recording) are not displayed in Sales Intelligence.
Voicemail access
Accesses the specified voicemail number. It is possible to enable Voicemail access without password request.
Access Voicemail Number: set the user for Voicemail access; if empty, the system requests the extension number
Set Options: skip pin check
Speech to Text
Notes:
The support starts from WMS 6.01.20221019.4
Besides configuring Speech-to-Text in Dialplan, you can use a script that saves all recorded data into one file and passes to a database. See the document for details: How to Set Up Wildix Speech to Text
Allows creating an automatic system that asks the caller some questions, recognizes the answers, and lets you save the recorded files.
Question: enter the text that will be played for the caller, choose an audio file, or leave the field empty (in this case just a beep is played)
Retries: enter the number of attempts to recognize a caller’s answer before the application ends. Available values: 0-3. Default value: 1
Error Message: type the message that is played after an unsuccessful recognition attempt, choose an audio file, or leave the field empty (in this case, the default message “I didn’t not understand your response” is played)
Repeat Question: if enabled and if Retries parameter is other than 0, the question is repeated after the error message in case of unsuccessful recognition attempt
Max Length (Seconds): the maximum length of an answer. Available values: 1-60 seconds. Default value: 10 seconds
Max Silence (Seconds): the maximum length of silence allowed during speech recognition. Available values: 1-60 seconds. Default value: 3 seconds
Save Audio: if the checkbox is enabled, file with the answer is saved on the disk. Default path: /dev/shm/var/spool/callweaver/monitor/stt/ (can be changed using RECOGNITION_AUDIOPATH variable, see details below).
Allow DTMF Selection (available starting from WMS 6.07.20240906.1): if enabled, allows DTMF selection
The application can receive and handle the following values as channel variables (can be set via the Set Dialplan application):
RECOGNITION_RESULTS_PATH = path to the file where Speech to Text recognition results should be stored
RECOGNITION_LABEL = “name“ - a custom parameter that allows to mark specific speech-to-text application entries (e.g. name, age, etc.) in order to be able to create complicated Dialplans and parse results
RECOGNITION_DICTIONARY = “Yes, No, or other words“ - additional channel variable that lets improve speech-to-text recognition
RECOGNITION_AUDIOPATH = “path to directory with saved audio files“ - allows to change the default path for saving audio files. Default path is: /dev/shm/var/spool/callweaver/monitor/stt/
Example:
The application returns the following values as channel variables:
RECOGNITION_STATUS = SUCCESS / NOT_RECOGNIZED / EMPTY_FILE / SERVICE_FAIL
RECOGNITION_RESULT = returns result of the speech recognition, e.g. ”My name is Alex”
RECOGNITION_AUDIO = returns name of the audio file, e.g.:
/dev/shm/var/spool/callweaver/monitor/stt/20220916-170648-+380487770777-wildixbox-1663340800.21-1-name.wav
Where:
a) “20220916-170648” = date and time
b) “+380487770777” = Caller ID
c) “wildixbox-1663340800.21” = Linked ID, which is a unique variable of the call (can be found in CDR)
d) “1” = number of question in the Dialplan (1- for the first question, 2- for the second and so on)
e) “name” = variable of the RECOGNITION_LABEL, if setRECOGNITION_RESULTS = a separate channel variable that stores JSON with all the recognition results for the current channel
Example:
RECOGNITION_RESULTS = {
"questions":[
{
"question":"Hello, what is your name?",
"status":"SUCCESS",
"audio_file":"/rw2/backups/20220916-170648-+380487770777-wildixbox-1663340800.21-1-name.wav",
"result":"i'm alex",
"label":"name"
},
{
"question":"What is your age?",
"status":"NOT_RECOGNIZED",
"audio_file":"/rw2/backups/20220916-170706-+380487770777-wildixbox-1663340800.21-2-age.wav",
"result":"",
"label":"age"
}
],
"timestamp":"2022-09-16 17:06:48",
"linkedid":"wildixbox-1663340800.21"
}Voice Bot
Notes:
The support starts from WMS 6.08.20241101.1
Allows to use a pre-configured Voice Bot (for more details, check out the documentation: https://x-hoppers.atlassian.net/wiki/x/DAD8B).
Once you add a Voice Bot application, you can choose the necessary Voice Bot from the list:
Example:
Voice Bots can be used in a variety of ways. E.g. when a customer calls a company, the Voice Bot can handle routine calls and reduce wait times, so that human agents can focus on more complex issues. Or assist with Customer service by answering common questions of the customers, providing account information, or helping with troubleshooting over the phone, etc.
Conditions
Detect fax
Answers the call and within a timeout specified in Fax Detect Time waits for the tones of a remote fax. Usually 3 seconds is enough. If the fax is detected, the call is passed to another procedure with the possibility to change the number.
Fax Detect Time: enter the timeout for fax detection in seconds
Continue The Execution: if enabled, the Dialplan execution continues without waiting for the number of seconds specified in Fax Detect Time field before the fax is detected (to avoid silence while the fax is being detected)
Procedure: select the procedure to route the call in case the fax is detected
Set Number: modify called number (to match the selected Dialplan procedure)
Example:
Suppose the company phone and fax number is 021234567. Modify the Dialplan procedure used to manage incoming calls:
In our example the system tries to detect fax during 4 seconds, while the execution of the Dialplan procedure proceeds to the next step and the call is routed to the call group. In case within the 4 seconds the fax is detected, the system stops the execution of Call group application and the call is forwarded to the fax called number as defined in Set Number option), in which the fax is being sent to email info@wildix.com.
Jump to
Jump to another procedure with the possibility to modify the number.
Procedure: select the procedure to route the call
Set Number: modify the called number (to match the selected Dialplan procedure)
Example:
Suppose we have Sales and Tech Support departments and they both use the same trunk for outgoing calls, but they want to receive call recordings to different email addresses (sales@wildix.com and support@wildix.com) and to have different caller number for outgoing calls (04611715111 for sales and 04611715112 for tech support). For this purpose we must create two different Dialplan procedures for managing outgoing calls (users_sales and users_support). Don’t forget to assign these procedures to users belonging to each group in Users, Dialplan (by default users is set).
In both cases the system starts the call recording of the outgoing call, but the copy of call recording is sent to different email addresses; the caller number set on trunk is different for Sales and Tech support. At the third step Jump to, the system routes the call to the users Dialplan procedure, where both types of calls (the one made by Sales or by Tech Support department), use the Dial the trunk Dialplan application:
Jump to if
Jump to another procedure in case matched the condition with the possibility to modify the number.
Condition: select from the list of available conditions or enter your own one (read Smart Dialplan Guide - use of Custom Applications for more information on conditions)
Procedure: select the procedure to route the call
Set Number: modify the called number (to match the selected Dialplan procedure)
Jump to if 3 state switch is on
Verifies the state of the 3 state switch (set up in Dialplan -> Timetable / Switch). If the switch status is ON, the Dialplan routes the call to another procedure and number, otherwise proceeds to the next step.
Select switch: select the 3 state switch from the list
Is On: Procedure: select the procedure to route the call in case the switch status is Enabled
Set Number: modify the called number (to match the selected Dialplan procedure)
Or Blinking: Procedure: select the procedure to route the call in case the switch status is Extra
Set Number: modify the called number (to match the selected Dialplan procedure)
Note: it is possible to change the status of the switch by calling a Feature code 3 state switch (94 by default) or by pressing a corresponding BLF button on WP your phone (BLF keys can be added via WMS -> Users or via Wildix Collaboration -> Settings -> Function keys or via Collaboration 7/ x-bees -> Favorites).
Example:
In our example, in case the switch status is ON, the incoming calls are routed to the Closed procedure, in case the switch is in Extra status, the incoming calls are routed to another Mobile_number Dialplan procedure (modify the procedure used for incoming calls, main by default):
In case the 3 state switch (called Switch1) is OFF, the Dialplan continues its execution and the call is routed to the Call group application.
In case the switch status is ON, the call is routed to the Closed procedure, where the message is played to the caller that the offices are closed and the caller is invited to leave the Voicemail message.
In case the switch status is EXTRA (blinking), the call is routed to the mobile_number procedure , where the call is sent to the predefined mobile number via the GSM trunk.
Jump to if call type is
Verifies the type of call, if matched, jumps to another procedure with the possibility to modify the number.
Note: you can set the call type for each contact in Collaboration -> Phonebooks -> Type of contact field.
Select call type: select the type of call (internal / external / blacklist / whitelist)
Procedure: select the procedure to route the call in case of matching the selected type of call
Set Number: modify the called number (to match the selected Dialplan procedure)
Note: you can associate each contact to call type in Phonebook (whitelist / blacklist); otherwise, in case you have imported a phonebook from some DB where you have some custom call class, e.g. myclass, you can set up this custom call class in Select call type section:
Jump to if congested / busy
Analyses the status of the call. If the state (BUSY, NOANSWER, CONGESTION, CHANUNAVAIL.) corresponds to the call, Dialplan jumps to another procedure with the possibility to modify the number. If no match was found, Dialplan proceeds to the next step.
Select Dial status: select the dial status (BUSY, NOANSWER, CONGESTION, CHANUNAVAIL)
Procedure: select the procedure to route the call in case of matching the selected dial status
Set Number: modify the called number (to match the selected Dialplan procedure)
Jump to if switch is on
Verifies the state of the switch (set up in Dialplan -> Timetable / Switch). If the switch status is ON, the Dialplan routes the call to another procedure and number, otherwise proceeds to the next step.
The Jump to if switch is on Dialplan application works in the same way as Jump to if 3 state switch is on, but the usual switch has only two statuses: Off/On (Read the chapter of WMS Start Guide, dedicated to Switches)
Note: it is possible to change the status of the switch by calling a Feature code Switch (93 by default) or by pressing a corresponding BLF button on WP your phone (BLF keys can be added via WMS -> Users or via Wildix Collaboration -> Settings -> Function keys or via Collaboration 7/ x-bees -> Favorites).
Select switch: select the switch from the list
Procedure: select the procedure to route the call in case the switch status is Enabled
Set Number: modify the called number (to match the selected Dialplan procedure)
Jump to if user status is
Verifies the user status (DND / away) and based on the result routes the call to the specified Dialplan procedure with the possibility to edit the called number.
DND / away: select the user status
User (called number): set up the user extension number whose status you wish to verify
Procedure: select the procedure to route the call in case the user status is DND / Away