This guide explains in detail each Dialplan application and provides practical examples and use cases.


<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = 'https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.11';
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>



<span class="page-title-pdf">Dialplan applications User Guide - English</span>



<div class="fb-like" data-href="https://confluence.wildix.com/x/UwI8AQ" data-layout="button_count" data-action="recommend" data-size="large" data-show-faces="true" data-share="true"></div>


 <div class="lang-box-pdf">
	<div>
		<div class="google-lang">
			<div id="google_translate_element">
			</div>
			<script type="text/javascript">
					function googleTranslateElementInit() {
						new google.translate.TranslateElement({pageLanguage: 'en', includedLanguages: 'de,es,fr,it,nl', autoDisplay: false}, 'google_translate_element');
						}
			</script>
			<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
		</div>
		
		<div class="pdf-button">
			<a href="https://confluence.wildix.com/spaces/flyingpdf/pdfpageexport.action?pageId=20709971" alt="Convert to .pdf" title="Convert to .pdf"><img src="https://confluence.wildix.com/download/attachments/14549012/pdf-button-download-wildix-documentation.png"></a>
		</div>
	</div>
</div>


This guide explains in detail each Dialplan application and provides practical examples and use cases.

Updated: August 2020

Permalink: https://confluence.wildix.com/x/UwI8AQ


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.

Example:


The caller is asked for the user password and only in case the entered password is correct, the next Dialplan application “Dial trunk” 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.

Example:
Suppose our local PBX is situated in Italy and remote one in France.
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, the Dialplan procedure “users”.
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.

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.

Example:

For instance, 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.

Example:
The options “timeout” and “max number of calls” allow you to decide when to stop dialing one trunk and try another one, here is an example of “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).

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 Dial Status «No Answer».

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).

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.

Examples:
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 enteringInstead 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.


Note: the feature is also available via 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 email

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 Dialplan application “Detect fax” before this one.

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:




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. 

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.

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). 

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.

Examples:
To enable call recording of outgoing calls, modify the Dialplan procedure used for managing outgoing calls (e.g. “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.

Voicemail access

Accesses the voicemail number specified in “access voicemail number” value. In “Set” (Options) field it is possible to enable Voicemail access without password request.

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.

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 application “Call group” and the call is forwarded to the called number “fax” (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.

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 Dialplan procedure “users”, where both types of calls (the one made by Sales or by Tech Support department), use the Dialplan application “Dial the trunk”:



Jump to if

 Jump to another procedure in case matched the condition with the possibility to modify the number.

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.


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).


Example:
In our example, in case the switch status is "ON", the incoming calls are routed to the procedure “Closed”, in case the switch is in status “Extra”, the incoming calls are routed to another Dialplan procedure “Mobile_number” (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 procedure "Call group".

In case the switch status is ON, the call is routed to the procedure “Closed”, 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 procedure “mobile_number”, 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.

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.

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 Dialplan application “Jump to if switch is on” 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).

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.

Verify caller

Jump to another procedure, if the number or the caller name contains certain symbols.

Verify number of calls

Jumps to another procedure, if the number of calls exceeds a certain quantity.

Verify timetable

Checks the timetable status (set up in Dialpan -> Timetable / Switch). If the selected timetable’s status is “always on”, the call is routed to the specified Dialplan procedure, if the selected timetable’s status is “check time”, the system checks if the actual date and time matches the intervals specified in the timetable, and if the match is found, the call is routed to the specified Dialplan procedure. If the match is not found or if the timetable’s status is “never active”, the Dialplan execution proceeds to the next step. (Read the chapter of WMS Start Guide, dedicated to Timetables)

Contacts

Lookup called name in phonebook

Searches for the called name in the specified phonebook with the option to modify the called number in case the match is found.

Lookup caller name in phonebook

Searches for the caller name in the specified phonebook with the option to modify the called number in case the match is found.

Mobility extension lookup

If the caller number (modifiable via the option “Set – caller number”) corresponds to the mobile number of one of the users, Dialplan jumps to the procedure predefined for the outgoing calls of this user, as if the call was made from this user’s extension number. User is asked to dial the number to call and the call is treated as a usual outgoing call made by this user.


Note: to make it work, make sure that the mobile number is present in User profile (WMS -> Users).

Sounds / IVR

IVR

Starts the execution of the selected IVR (set up IVR in Dialplan -> IVR).

(Read the chapter of WMS Start Guide, dedicated to IVR)

IVR via ASR with Directory (WMS 4.0X/ WMS 5.0X)

Extends the capabilities of Dial by name / Directory application and allows you to create IVRs with voice control.

The full description: How to configure IVR via ASR with Directory in Dialplan.

Play sound

Reproduces an audio file to the user.

(Read the chapter of WMS Start Guide, dedicated to audio messages)

You can select an existing audio file or create dynamically a new audio file using TTS (Text-to-Speech) upon execution of this Dialplan context. 


How to use TTS in Dialplan:

  • It is necessary to first set the language using “Set” application
  • if required, you can change the default voice parameter for TTS message. Add "Set" application and use channel variable "TEXTTOSPEECH_VOICE" indicating the new voice parameter. Supported voices list can be found in WMS -> Sounds (secondary top menu)-> Text-to-speech page. Note, that the language of the voice parameter should match the language selected in "Set" application
  • Write a text using “Play sound” / “Play sound and wait for digits” applications. In case you need to insert a pause between words/ phrases, use a variable <break time="1s"/>, where the value "1s" can be changed to any number of seconds
  • To learn more about variables, read Smart Dialplan Guide - use of Custom Applications
  • You can jump to another Dialplan procedure based on TTS result: use “Jump to if” application with Condition "${TTSSTATUS}"!="SUCCESS" ("UNDEFINED"/"FAILURE")

Note, that this message will not be saved on the PBX and will be generated dynamically upon the execution of this Dialplan application.

Example:

Read more about Wildix Business Intelligence (WBI) services: https://confluence.wildix.com/x/3QM8AQ

Prerequisites:

  • Per User systems (monthly / yearly / five years subscription) (support for Virtual and Hardware PBXs has been added in WMS version 3.88.40314.18  (WMS-4362)
  • Premium license
  • Supported starting from WMS 3.87 (reference ticket WMS-3685)
  • It's necessary to set the language using "Set" application


Play sound and wait for digits

Reproduces an audio file to the user. During the playback, the system analyses the DTMF tones received from the caller and searches for the match to called numbers present in the current Dialplan procedure or in the Included procedures.

This Dialplan application is very useful for DISA management, e.g. the message invites the caller to enter an extension number and then the call is routed to the number entered. (Read the chapter of WMS Start Guide, dedicated to DID and DISA (Post Selection) configuration)

With the help of this Dialplan application you can enable external users to participate in the audio conference:

  1. Create a new Dialplan procedure “Conference” and edit a Dialplan procedure for incoming calls (“Main” by default) by specifying an office number devoted to conference management as “Called number” (in our example, 04611715109) and adding an operation “Jump to” –> “Conference” procedure:



  2. Edit a Dialplan procedure “conference”

An example of configuration for this Dialplan procedure is provided below:


Wait for digits

Normally this Dialplan application used to give more time to the caller after the audio file is reproduced

Set

Set

Set up different parameters for the current call:

Tags are added in Settings -> PBX -> Call and char history, “Tags”.

Tags can be also set via Wildix Collaboration (read the Wildix Collaboration Guide). Tags set via Collaboration have more priority over tags set up via Dialplan.

In this language the system audio messages are played to the caller.

Type of call can be also set in Wildix Collaboration -> Phonebook, “Type of contact” field.

This Dialplan application allows you to rewrite or edit the caller number of the incoming call, it is often used for number normalization (e.g. so that it’s possible to call back the number right away)

Usually used for outgoing calls (“users” procedure) before the Dialplan application “Dial trunk”, allowing you to set the caller number on this trunk.

In case the option you would like to set is not available in the drop-down list of the "Set" applicaton, you can enter it manually. Below you can find some examples of using "Set" application with options which are not available in the drop-down list. Find some examples below.


Case 1: Set custom dial parameters (e.g. “g” – proceed with Dialplan execution at the next priority in the current extension if the destination channel hangs up):


Case 2: Run shell commands or scripts. For example, you can run data base query command:

Case 3: Display a different phone number instead of a real caller / called ID to user in call dialog and CDR:

For outgoing external calls:

For incoming external calls:

Case 4: Display Caller ID in “Company” field for calls from trunks on Wildix devices:

To make it work: add Diaplan application "Lookup caller name in phonebook", specify in which phonebook to search and in "Set" caller number, tick off "Custom" instead of "Default"

The search is performed in the following priority:

  1. Search in LDAP (colleagues phonebook) - in case it is a colleague calling with Mobility service, the value specified in "Department" field is displayed
  2. Search in the selected phonebook - in case it is a phonebook contact, the value specified in "Organization" field is displayed
  3. Search in external resources, in the Worldwide Phonebook service is active - in this case the company name is not displayed

It is also possible to customize the way caller ID name is displayed:

Known issue (temporary limitation): these two variables are not applied for Cloud PBX on WMS 3.88.


You can add these variables in Dialplan context or as a Global Dialplan variable; in the latter case it is not necessary to add "Lookup caller name in phonebook" application.


Example:


1 - display caller ID in format company / name

2 - display only 5 first digits of the caller name / [company]

3 - display custom information: name / W

Case 5. Disable push notifications for Call group calls:

It is possible to disable push notifications (mobile and web push) for Call group calls.

Case 6  (WMS 4.0X/ WMS 5.0X). Search for a specified parameter of a contact in shared phonebooks in order to route a call to its owner:

Example of usage: How to automatically route calls to contact owners.

Case 7 (WMS 5.0X). Enable audio notification (beep) for call intrusion:

When enabled, a beep sound is played when any type of call intrusion (including silent intrusion) is started.

DTMF

Generate DTMF

Generates a DTMF tone.

This Dialplan application allows you to insert the DTMF that can be used during a call, for example, in case you are often asked to enter the same code while calling a particular number, via this Dialplan application, you can enable the system to enter the code automatically when calling this number.

Generate Flash Hook

Generates Flash Hook.

Flash Hook is used for integration with legacy PBX and legacy phones. Read the FXO White Paper to find examples of usage.

Other

Custom application

Used to execute custom Dialplan applications, not present in the standard list of Dialplan applications, if recommended by Wildix Support Team or in Tech Wizards FB group.

Read Smart Dialplan Guide - use of Custom Applications to learn more about the use of custom applications for interaction with external software, MySQL server, PHP, CURL request, TAPI, MySQL Microsoft Database.

Remote script

Enter the path to the remote script.

Example:
Wildix PBXs can interact with external programs via AGI interface. You can create for example, a script that includes a PHP AGI library (already present in the WMS) and execute it via this Dialplan application.

Script example: 

agiexapmple1


When this script is executed, the system pronounces the number (1234), reproduces the file (in your script use the name of the audio file that exists on your PBX) and then dials the user (340).

Make sure that the owner is wms (chown) and give the permissions to execute the script (chmod).

Indicate the path to the place where the remote script is located in the Dialplan application:



In our case, when calling 333, the script “php.test” is executed. 

Note: This topic on Wildix Forum describes how to run a script from Dialplan via “Custom application”, however with WMS 3.80.x it’s possible to run the same script using the application “Remote script”.


Example
 of Main procedure configuration.

Example of Users procedure configuration.


<div class="fb-like" data-href="https://confluence.wildix.com/x/UwI8AQ" data-layout="button_count" data-action="recommend" data-size="large" data-show-faces="true" data-share="true"></div>



<div class="ask-question">
		<div class="text-before-buttons">
			<span style="font-size: 24px; text-align: center;">Not finding the help you need?</span><br>
Join the Facebook group to ask a question!
		</div>
<div class="fb-buttons">
<span style="align: center;"><a href="https://www.facebook.com/groups/wildixtechwizards" target="_blank"><img src="https://manuals.wildix.com/wp-content/uploads/2017/03/facebook_tech-wizards.png" alt="facebook_tech-wizards" width="282" height="80" align="center"/></a></span></div>
	</div>
</div>