Scroll export button | ||||||||
---|---|---|---|---|---|---|---|---|
|
Info |
---|
This guide explains in detail each Dialplan application and provides practical examples and use cases. Updated: October 2021 Permalink: https://confluencewildix.wildixatlassian.comnet/wiki/x/UwI8AQahDOAQ |
Table of Contents |
---|
Basic information on how Dialplan works: Dialplan: How does it work?
...
- 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 Dialplan application “Dial trunk” is executed.
...
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.
...
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.
...
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.
...
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).
...
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.
...
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.
...
- 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.
...
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.
...
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
...
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.
...
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 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 |
---|
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.
...
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:
- Edit a Dialplan procedure “conference”
An example of configuration for this Dialplan procedure is provided below:
- The user is invited to enter the PIN code of the conference ("Play sound and wait for digits")
- The system waits for 4 seconds ("Wait for digits")
- In case the user has entered the valid conference PIN number, the call is routed to the conference room (“called number –> XXXX” (Conference PIN code), “Jump to” –> “pbxfeatures” procedure –> “98” (Feature code to access to the conference)
- In case the user has entered a wrong number, he is invited to try again ("Play sound and wait for digits")
- After the second unsuccessful attempt, the call is hung up ("Hangup")
...
Insert manually the string DIAL_OPTIONS into the first input field and g (or another option) into the second input field
Then add the Dialplan application to which it should be applied, e.g. “Dial the phone”, “Dial the trunk”, “Trunk group”
Case 2: Run shell commands or scripts. For example, you can run data base query command:
Add Set -> USERID -> ${SHELL(/usr/bin/sqlite3 /mnt/cticonnect/cticonnectdb “select username from cti_contacts where phonebook_id = 6 and mobile = ‘${EXTEN:1}’”)}
Case 3: Display a different phone number instead of a real caller / called ID to user in call dialog and CDR:
...
Note |
---|
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
...
- Add Set -> SKIP_PUSH_NOTIFICATION -> yes before Call group application:
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:
...
Add Set -> INTRUSION_NOTIFICATION -> yes
Case 8 (WMS 5.02). Continue recording of an outgoing call after it is transferred to another user:
...
Add Set -> RECORD_ON_CALLEE_SIDE -> true
Warning Current limitation: Direct RTP must be disabled. To disable it, edit the config file /etc/callweaver/sip-general-custom.conf and add direct_rtp=no parameter
Dialplan example:
Case 9 (WMS 5.03). Configuremissed calls notifications to be sent to Call Group notifications manager’s email:
- Add Set -> CG_MANAGER_MAIL_NOTIFY -> yes before the Call group application:
Case 10 (WMS 5.03). For Call All 10/ 32 Call group strategy: configure a Call group member to receive an incoming call as soon as they get available, without waiting till the Call group timeout is reached:
- Add Set -> QUEUE_FAST_RECALL -> yes/true before the Call group application:
More about the Call Group notifications manager feature: How to set up the Call Group notifications manager feature.
...
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:
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).
...
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.
...
Example of Users procedure configuration.
Caelor panel macro |
---|
Not finding the help you need? |
Button macro | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|