How to enable callers to dial an extension from IVR

This Article describes how to allow customers to dial extension numbers when they reach your company via IVR. This functionality can be implemented by configuring Dialplan procedure using DID and DISA services.

Created: October 2018

Permalink: https://wildix.atlassian.net/wiki/x/1g7OAQ


Introduction

The most common scenario is allowing an external caller to dial an extension during an execution of an IVR, e.g. "Press 1, if you know the extension, press 2 to speak with a Sales representative, press 3 to speak with Tech support". To do it, you can use DID (Direct Inward Dialing) and DISA (Direct Inward System Access) services. Below we explain how to use both services and provide examples.

First of all, you don't need to set up an IVR tree to configure this scenario, it is easy to do it directly in the Dialplan. In this article we will explain both scenarios: how to set up a basic IVR directly in Dialplan to allow callers to dial an extension, or, if you prefer, how to set up a separate IVR tree and allow callers to dial an extension from it.

The scope of this document is to provide you with practical examples of IVR and Dialplan configuration. You can customize these examples to match your specific needs.


More information on DID and DISA services

Example of DID configuration:

First 8 digits are removed from the called number. Depending on the last two digits of the called number (1XX) incoming call is routed to the extension, examples:

  • Incoming call to 04611715111 is routed to extension 111

  • Incoming call to  04611715112 is routed to extension 112

  • Incoming call to  04611715122 is routed to extension 122

Example of DISA configuration:


  • Called number default:
    • The message is played inviting the caller to enter the extension number
    • The system waits for digits for 5 seconds
    • In case of no input within the specified timeout, call is routed to call group
  • Called number XXX:

    • In case caller entered extension number, call is routed to the corresponding user

Option 1: Basic IVR inside Dialplan with possibility to dial an extension

As mentioned above, you can configure a basic IVR in the Dialplan and allow callers to dial an extension from it. You can do it using DISA service. In this case there is no need to create an IVR tree in WMS → Dialplan → IVR.

DISA configuration 

Dialplan configuration example:

default - a called number to be dialed by a customer. It is associated with the Dialplan procedure used for receiving incoming calls (main; so at some step of the main Dialplan execution, there is a "Jump to" to this context with "default" called number). 

  • Play sound and wait for digits -> select an audio file/ generate it dynamically via TTS (consult Wildix Business Intelligence documentation), for example: "Press 1 for Sales, 2 for Support or enter the extension number you wish to call"

  • Wait for digits -> specify the timeout in seconds to give more time to the customer for entering the extension

1 -  DTMF tone

  • Call group -> select a call group for routing the call in case the caller presses 1

2 - DTMF tone

  • Call group -> select a call group for routing the call in case the caller presses 2 

X. - a called number to be matched with the dialed extension

  • Dial the phone -> the application allows entering an extension number if the customer knows it
  • Play sound -> this step is completed if the customer enters an invalid extension. Select an audio file/ generate it dynamically via TTS to announce the entered extension is invalid, for example: "The extension you entered is not valid"
  • Jump to if congested/ busy -> in case the dialed extension number is not valid, the call is routed to default step of the current Dialplan procedure
  • Jump to -> if the customer enters a valid extension, but a user is busy/ unavailable, the call is routed to default step of the current Dialplan procedure

Option 2: IVR tree with possibility to exit and dial an extension 

In case you would like to configure an IVR tree in WMS Dialplan → IVR, you can create a separate Dialplan procedure that allows callers to exit form the IVR tree and dial extension numbers. This can be done either with DID or with DISA service. Both scenarios are explained below. If you don't know yet how to create an IVR tree, first read WMS Start Guide: Create an IVR tree.

DID configuration

Here is an example which is valid for dialing extensions consisting of three digits and starting with 1 (e.g. 100, 101, 112, etc). We have created an IVR tree, where by pressing DTMF 2, caller can speak with Sales, by pressing 3 - with Tech support, otherwise, caller can enter an extension number to speak with PBX user. 

This is what our IVR looks like:

The first node of our IVR tree is a submenu, inviting callers to make their choice: "Press 2 to speak with Sales, 3 to speak with Tech support, or enter an extension number". Note with DTMF 1 is an "Action" which routes the caller to the Dialplan procedure IVR1 with called number 9999.



9999 - called number with which the call is routed from the IVR tree to the current Dialplan procedure

  • Wait for digits -> the timeout is short because caller has already started to enter an extension number during IVR execution (caller has already entered 1 before arriving here, so at this point the system expects the remaining two digits)
  • Call group -> in case the timeout has been reached and no number was entered, the call is forwarded to a call group

XX - a called number to match with a dialed extension (for extensions consisting of three digits)

  • Dial the phone -> as mentioned above, caller has already entered the 1 during IVR execution, so at this point we expect the caller to enter the remaining two digits; we prepend 1 to the called number, like that if the caller enters 00, the call is routed to user 100, if the caller enters 12, the call is routed to user 112, etc.

    As mentioned above, this configuration is valid to dial extensions starting from 1, because callers enter 1 during IVR execution and then they enter the remaining digits when they arrive at this Dialplan. To allow entering extensions starting from 2 or 3, you can add nodes with DTMF 2 and 3 to the IVR and create separate Dialplan procedures for each IVR node, where you respectively prepend the digit 2 or the digit 3 to the called number XX. But in this case it is easier to use DISA as explained in the next chapter.

  • Jump to if congested/ busy ->  this step is added to make sure caller can speak with somebody in case the dialed user is not available/busy. The call is routed to reception step of the current Dialplan procedure

reception - specify the destination number to route the call in case the customer enters the invalid extension number

  • Call group -> select a call group to which the call is routed in case the dialed user is not available.


At this point we have allowed callers to exit IVR and dial an extension. Now let's go back to our IVR tree and make sure they can make other choices from IVR, e.g. speak to a call group: node with DTMF 2 is an "Action" routing the caller to the Dialplan procedure IVR1 with called number 3333. Node with DTMF 3 is an "Action" routing the caller to the same Dialplan procedure with called number 4444.

  Add called numbers 3333 and 4444 to the same Dialplan procedure to allow routing caller to call groups:

 

DISA configuration

With DISA you are much more flexible, since callers are able to dial extensions of any length and starting from any digit. 

The IVR tree in this case only has the same structure as in the previous chapter:

The first node is a submenu containing a greeting, e.g. "Press 1, if you know the extension, press 2 to speak to the Sales department, press 3 to speak to the Tech support". The node with DTMF 1 routes the call to Dialplan IVR1 with called number 9999.

The nodes with DTMF 2 and DTMF 3 route the call to the same Dialplan IVR1 with called numbers 3333 and 4444, respectively.

Here is the Dialplan configuration:


9999a called number to route a call from the IVR tree to the current Dialplan procedure

  • Play sound and wait for digits -> invite caller to enter an extension 
  • Wait for digits -> specify the timeout in seconds to give more time to the customer for entering the extension
  • Call group -> in case the timeout is reached and no number is entered, the call is forwarded to a call group

X.a called number to be matched with the dialed extension

  • Dial the phone -> the application allows entering an extension number if the customer knows it
  • Jump to -> in case the dialed extension number is not valid, the call is routed to reception step of the current Dialplan procedure

receptionspecify the destination number to route the call in case the customer enters the invalid extension number

  • Play sound -> select an audio file/ generate it dynamically via TTS to announce the customer that the entered extension is invalid, for example: "The extension you entered is not valid"
  • Call group -> select a call group to which the call is routed in case the entered extension is not valid

3333 and 4444 - route calls to Sales and Tech call groups respectively, in case caller enters DTMF 2 and 3 from IVR tree