Article by Apstel LLC

IVR (Interactive Voice Response) is technology that automates interactions with telephone callers.

Enterprises are increasingly turning to IVR to reduce the cost of common sales, service, collections, inquiry and support calls to and from their company.

In this article, asterisk voip how to make company IVR, we will discuss about Asterisk and how to create IVR without prior knowledge of Asterisk nor dial plan (call flow) development.

The two pieces of software you would need are Asterisk open source PBX and Apstel Visual Dialplan.
Asterisk PBX is open source project, free to use, and Apstel Visual Dialplan is commercial software but it can be downloaded free of charge and used free of charged since the trial limit is set to some high level and the tool can be used to develop simple and moderate IVRs for free.

1. How to download and install Asterisk PBX

Asterisk PBX can be downloaded as a standalone Asterisk PBX without GUI, which we do not recommend you to use since it is designed for advanced users, or as a Asterisk PBX with GUI which is the right way to proceed.

There are several Asterisk GUIs, all free and open source, so pick one of the following: Elastix, AsteriskNOW or PBX In Flash. My personal recommendation would be Elastix. After succesful download, run it on spare PC or at some virtual machine. Each of these Asterisk GUIs is downloaded as ISO image and will require separate machine (or virtual machine) to install. Installation is simple as following on screen instructions.

2. How to download and install Apstel Visual Dialplan

Apstel Visual Dialplan is easy to use tool for dial plan (call flow) development. It is intuitive tool, you do not need to have prior dial plan experience to create IVR. In addition, it comes with several ready to use dial plan examples. One of provided examples is IVR dial plan ;).

Here is the URL to download Apstel Visual Dialplan


How to start you company IVR development

Now that you have both software products installed, Asterisk PBX and Visual Dialplan, we can proceed and create the IVR.

The easiest way to start is to use the IVR example provided with Visual Dialplan. Select “File” then “Open Sample…” from Visual Dialplan menu and load 05_simple-ivr.vdp dial plan sample.

IVR application is developed using Apstel Visual Dialplan and pre-configured to be used with Elastix or any other compatible Asterisk GUI (AsteriskNOW, PBX in Flash, trixbox).

The output of the Visual Dialplan is standard Asterisk dial plan (extensions.conf file), automatically deployed and loaded to the Asterisk PBX. However, you will need to manually place the sound files in the /var/lib/asterisk/sounds/  folder so the Asterisk PBX can use it.

IVR dial plan application consists of four contexts: vdp-inbound (vdp-outbound), IVR-mainmenuCustomerSupport and SalesDepartment.

vdp-inbound/vdp-outbound context
The entry point for this dial plan is the vdp-inbound context.
This context (vdp-inbound) is the default entry point for all incoming calls to Elastix PBX, so we decided to use the default context to start our IVR dial plan.
The only purpose of this context is to accept calls coming to DID (extension) 6789 and to forward those calls to the IVR-mainmenu context.
In case you want to handle outgoing calls with the same IVR dial plan, like we decided to do in this demo, you should use vdp-outbound context with the same dial plan logic like vdp-inbound context.
In other words, if you dial 6789 from your phone registered at Elastix PBX or you dial your Elastix PBX external number and DID 6789, your call will go to IVR-mainmenu context.

Creating Asterisk PBX IVR

IVR-mainmenu context

In this context the caller hears the main IVR menu and needs to choose one of the following options:
0) Company representative,
1) Company latest news ,
2) Customer support,
3) Sales department
or three digit number to dial company extension (_XXX dial plan pattern).

If caller picks option 0, dial-plan passes the call directly to the company representative.
If caller choose option 1, dial-plan plays the latest company news.
If caller picks option 2, dial-plan passes the call to the CustomerSupport context.
If caller choose option 3, dial-plan passes the call to the SalesDepartment context.
In case the caller enters three digits number, dial plan will dial the three digits company extension and the phone on that extension will ring. If nobody answers or the line is busy, the voice mail application will be called and the caller will leave the voicemail.

In case of choosing invalid option, for example if caller enters 4, the dial plan will go back to the beginning of this context and the caller will be presented with IVR options again.

IVR Main Menu

CustomerSupport context

In this context the caller hears the support IVR menu and needs to choose one of the following IVR options:
1) Standard product user (goes to standard product users queue),
2) Professional product user (goes to professional product users queue)
3) Go back to the main IVR menu (IVR-mainmenu context)

In this case, exceptions such as timeout and invalid extension are also handled.

Asterisk voip how to make IVR for customer support

SalesDepartment context

In this context the caller is presented with the sales IVR menu and needs to choose one of the following options:
1) Individual licensing (goes to sales queue for individual users),
2) Enterprise licensing (goes to sales queue for enterprise users)
3) Go back to the main IVR menu (IVR-mainmenu context)

IVR sales menu

The above IVR will surely not match your company IVR requirements so you would need to do some changes.
After you are happy with the updates, proceed to the dial plan deployment.
In order to be used, IVR needs to be deployed to the Asterisk PBX.


How to deploy IVR

Before deploying the dial plan you should first check it against errors.
To validate the dial plan select Validate button. This button can be found both in the title menu, and in the icons at the top of the window.

One very convenient feature of Visual Dialplan is the ability to remotely deploy Asterisk dial plan to Asterisk server. This is good option when you want to test your dial plans quickly.

Simply select “Dialplan” and then “Deploy” from the main many and Visual Dialplan will SSH to your remote Asterisk server, deploy the dial plan, and reload it into the Asterisk PBX. You’ll be presented with a box to confirm the remote deployment. Just click yes and few seconds later a confirmation window will appear.

Make sure you validate your Asterisk dial plan before you deploy it to Asterisk server. This will make the whole process go a lot smoother.

You can verify the deployed Asterisk dial plan by editing the file at Asterisk server,  or you can simply call 6789 and enjoy the IVR ;).