Voice Menus and IVR in AsteriskNOW

Exclusive offer: get 50% off this eBook here
AsteriskNOW

AsteriskNOW — Save 50%

A practical guide for deploying and managing an Asterisk-based telephony system using the AsteriskNOW Beta 6 software appliance

$23.99    $12.00
by Nir Simionovich | January 2009 | Linux Servers Networking & Telephony Open Source

Interactive Voice Response (IVR)-enabled telephony platforms are the pivot elements of the telephony industry. You must be familiar with several IVR telephony platform—your cellular provider's top-up system, your bank's call distribution system, or your Internet service provider's technical support line—IVR systems are everywhere. As you may already know, IVR systems can be a hell to use, but as Winston Churchill said, you just have to keep on going to get to your destination.

In this article by Nir Simionovich, we will learn about the human dynamics of IVR systems, the implementation and the deployment of an IVR environment to your AsteriskNOW PBX system.

Four Rules of IVR

IVR systems can be hell to use; the main reason for this is that people designing IVR systems tend to complicate their functionality beyond the normal usage scope of a human being. The following four rules will enable you to implement a usable, humanly accessible, and maintainable IVR.

  • Rule 1—Keep it narrow: Your IVR should be kept as simple as possible. Make sure that each of your steps in the IVR environment is not longer than five options. Most IVR users aren't able to remember all the options of an IVR system, when presented with a multitude of IVR options.
  • Rule 2—Keep it shallow: Your IVR system's depth is in direct relation to the complexity of the IVR application. If your application has more than four levels, you need to revise your IVR plan. Most people (including yours truly) become extremely aggravated when confronted with an IVR system that is asking for too much information.
  • Rule 3—Enable escape routes: Always give your IVR user the ability to break out of the IVR flow and talk to a live person. Some people simply can't handle the usage of an IVR system.
  • Rule 4—If it works, don't fix it!: For some reason, companies tend to change their IVR flows every other day to support a new business model. An IVR system that constantly changes is a nightmare for users, as they never get used to the options of the system. If you must perform an update, make sure that your update doesn't affect that system in such a way that the users need to re-learn the system.

Voice Menus—AsteriskNOW's IVR Generator

AsteriskNOW provides a highly simplistic IVR generator, rightfully named—Voice Menus. The main usage of an IVR in a PBX is the implementation of an "Auto Attendant".

Some PBX systems refer to auto-attendant and IVR as two different things. In AsteriskNOW, they are one and the same.

At this point, click the Voice Menus link, located on your left-hand main menu. The following should appear on your screen:

Voice Menus and IVR in AsteriskNOW

This interface enables editing, creation, or deletion of voice menus. Each menu is built from a set of operational directives (Steps) and functional keys (Keypress Events). Each voice menu also receives a mandatory name (Name), a form of logical entity description, and an Extension number (optional). The extension number enables PBX extensions or external users to dial into the specific voice menu indicated by the extension number.

Voice Menu Steps—The Voice Menu Flow

Steps are performed one after the other, in the order they appear on the screen. There are seventeen possible steps, available through the AsteriskNOW GUI.

Once a step had been selected, the GUI will change, indicating the requirement for additional fields to be filled. The seventeen available steps are as follows:

AsteriskNOW A practical guide for deploying and managing an Asterisk-based telephony system using the AsteriskNOW Beta 6 software appliance
Published: March 2008
eBook Price: $23.99
Book Price: $39.99
See more
Select your format and quantity:

Step Type

Description

Parameters

Answer

Answers the call-usually the first step of every voice menu

 

Authenticate

Asks the user to enter a password using the keypad. The password is compared with the information in the step directive.

Password to authenticate against-numeric only.

Background

Plays a voice file, allowing the user to interrupt the playback by pressing a key.

File to playback from the AsteriskNOW recordings database.

Busy Tone

Generates a busy tone to the calling user.

 

Congestion

Indicates congestion to the calling user.

 

DigitTimeout

Sets the maximum timeout between digit presses.

Time in seconds.

DISA

Activates the DISA application (DISA-Direct Inward System Access).

DISA authentication password-numeric only.

ResponseTimeout

Sets the maximum timeout waiting for a response from the user.

Time in seconds.

Playback

Plays a voice file - without interruptions from the user

File to playback from the AsteriskNOW recordings database.

Wait

Waits a certain amount of time.

Time in seconds.

WaitExten

Waits a certain amount of time for the user to dial a new extension number.

Time in seconds.

Goto Menu

Goes to a predefined voice menu.

Voice menu name from the database.

Goto Directory

Goes to the PBX directory system.

 

Goto Extension

Rings a specific extension.

Extension number from the AsteriskNOW users database.

Goto TimeBasedRule

Goes to a predefined time based rule.

Time Based Rule from the AsteriskNOW time rule database.

Dial RingGroup

Rings a predefined number of extensions.

Ring group number from the AsteriskNOW ring group database.

Hangup

Hangs up the call.

 

 

 

At this point, you may have encountered new elements, about which you have no knowledge of what they are and how they work. These include the following: DISA, Recordings, Time Based Rules and Ring Groups. Let's learn more about the step types—what they are, how they are configured in AsteriskNOW, and later, how they are used within the Voice Menu construct.

DISA—Direct Inward System Access

DISA operation enables an enterprise to allow its users to dial in to the enterprise PBX system, authenticate via a personal code, and then utilize the enterprise PBX system to perform dialling functions, as if they were located back at their office desk.

Most installations utilize DISA services to allow their employees access to long distance calling facilities, without enabling these calling facilities from their cellular phones. DISA services became especially popular with the introduction of cellular VPN (Virtual Private Network) services, creating a zero-charge group between an enterprise's PBX system and an employee's cellular phone.

Recordings—Menus and System Playbacks

Like any normal PBX, AsteriskNOW requires recorded messages to provide the various menus and user messages building up the user interaction. Now, while the following may sound a little confusing, message recording is performed utilizing the Record a Menu link, from the main menu—don't let the name of the link fool you—once a file is recorded, it can be utilized as either a menu or a regular announcement.

The process of recording a new announcement or voice menu works as follows:

Step 1: Where am I?

To record a new voice menu or announcement, you need one of the PBX extensions next to you. The phone's handset is used as the means of recording your voice menu or announcement.

Assume that you are currently located next to extension number 6501.

Step 2: Prepare Your Text

For a small office PBX the text played back isn't crucial, however, for enterprises the spoken text can be crucial. If you want to have a well formulated text, use the services of a copy writer. Write your announcement on a piece of paper, and when recording simply read it from the paper, don't think about what you're saying while recording—it will simply sound bad.

For the purpose of our task, record the following messages:

Message name: AsteriskNOW_Announce

"Congratulations—you have successfully installed and executed the AsteriskNOW PBX system."

Message name: AsteriskNOW_Select

"You may now dial the user extension number you wish to dial."

Step 3: Recording

Now you will perform the actual recording of the audio file. First, click the Record a Menu link, located in the main menu. The following should appear on your screen:

Voice Menus and IVR in AsteriskNOW

Click the Record a new Voice Menu button. The following dialog should appear on your screen:

Voice Menus and IVR in AsteriskNOW

The above information doesn't appear on your screen, so fill out the relevant information in the dialog box. Once you have entered the information, pressing the Record button will ring the extension number indicated—in your case, extension number 6501. A prompt indicating you to start recording at the sound of the beep will be heard (this is a fairly fast prompt, so wait for the beep). Once you have finished your recording, simply press the # button on your keypad, or hang up.

BUG Note:
The version of AsteriskNOW used for this article is Beta-6. This version contains a small bug in regards to refreshing the list of recorded messages. Once you have recorded your message, do no forget to switch to another section, and then back to Record a Menu, to refresh the interface—hitting the refresh button on your browser will refresh everything
.

Once you have refreshed your screen, the following should appear on your screen:

Voice Menus and IVR in AsteriskNOW

At this point, you can re-record your message, using the Record Again button, Play the recording, or Delete it. Recording/Playing is performed via a connected phone, so make sure you have a phone next to you.

Time Based Rules

Time based rules are a means of letting a certain portion of the PBX behave in some way during specific time frames and another way in others. A good thing about time based rules is that they can be cascaded to perform a very complicated time selection scenario.

In order to create a new time based rule, click the Time Based Rules option; the following screen should appear:

Voice Menus and IVR in AsteriskNOW

When defining a new time based rule, the following information should be taken into consideration (all fields below are mandatory):

Voice Menus and IVR in AsteriskNOW

 

 

Field Name

Description

Applicable Values

Rule Name

A descriptive name for your time based rule.

Any string of characters.

Start Time & End Time

The time period in the day the rule applies in.

Time selection by hours and minutes from the selection box.

Start Day & End Day

The days of the week the rule applies in.

Consecutive days period of the week.

Start Date & End Date

The period of the month the rule applies in.

Consecutive dates period of the month.

Start Month & End Month

The months of the year the rule applies in.

Consecutive months period of the year.

Destination if time matches

A destination within the PBX to which to route the call, if the time period matches.

An already configured resource of the PBX.

Destination if time did not match

A destination within the PBX to which to route the call, if the time period doesn't match.

An already configured resource of the PBX.

 

 

IMPORTANT:
If you wish to configure cascading time based rules, upon completing each rule, you must click the Activate Changes button, so that the last created rule becomes available in the selection box
.

For the purpose of configuring your PBX create a time based rule to indicate the 4th of July. Create a new time based rule, called July 4th and fill in the information provided below:

Voice Menus and IVR in AsteriskNOW

Ring Groups

Ring groups are sometimes referred to as "hunt-groups" (especially in Europe). The purpose of a ring group is to provide a facility in which multiple connected handsets can ring at the same time. Ring groups are not limited by the technology of the connected handset, meaning that a ring group can contain a mixture of analog and VoIP handsets at the same time.

To create a new ring group, click the Ring Groups option; the following screen should appear:

Voice Menus and IVR in AsteriskNOW

Now, click the New Ring Group button, in order to open the Add Ring Group dialog box:

Voice Menus and IVR in AsteriskNOW

As you can see in the above screenshot, the dialog box contains two lists and some configurable options. The list on the left indicates the members of the configured ring group, while the list on the right indicates the available extensions that are, currently not part of the current ring group. The options available are as follows:

Field Name

Description

Applicable Values

Name(Mandatory)

Descriptive name for your ring group.

Any string of characters.

Strategy(Mandatory)

The methodology with which the extensions ring in the ring group.

Ring In Order-Ring the extensions one after the other.Ring All-Ring all configured extensions together.

Extension for this ring group(optional)

A virtual extension; when dialled it will ring the configured ring group.

A numeric value.

Ring (each/all) for these many seconds(Mandatory)

Ring each extension on the ring group, or the entire ring group (depending on the strategy) for this many seconds.

A numeric value. Recommended values are between 15 and 20 seconds.

If a ring group is rung and no extension picks up the call, the call is flagged as "not-answered", immediately failing into the "If not answered" rule. If a call is not answered, the call falls back to one of the following three options:

  • Goto Voicemail of this user: Will automatically direct the un-answered call to the voicemail indicated by the selection box.
  • Goto an IVR menu: Will automatically direct the un-answered call to a pre-configured voice menu.
  • HangUp: Simply hang up the un-answered call.

Enough Theory, Back to Voice Menus

Last time, your voice menu section included a single voice menu, designated as mainmenu. First of all, assign a PBX extension to your main menu, so that you can listen to it.

Click the Voice Menus menu item and then select the Voicemenu-mainmenu from the selection box on the left side of the screen. The form on the right should now be filled with the various steps of the mainmenu voice menu. The following should appear on your screen:

Voice Menus and IVR in AsteriskNOW

Enter the number 7501 in the text box designated Extension then click the Save button. Activate your changes (as always) and try dialling 7501 from a phone connected to the PBX. If all goes well, you should be listening to the main menu. Pay attention to the announcement you listen to and the contents of the Steps list.

As you may have noticed, each of the steps corresponds to a specific voice announcement you have heard on your phone. AsteriskNOW simply goes through the steps list, one by one, and performs the steps as they are indicated. If we were to translate the current mainmenu voice menu into a flow chart, it would look something like the flow chart below.

Voice Menus and IVR in AsteriskNOW

The flowchart is not a complete one, it is a partial look into the mainmenu pre-configured voice menu.

As you may have noticed, the mainmenu currently configured isn't very useful to us, as it doesn't really wait for information to be entered, and if no information is entered, it simply hangs up. You shall now modify the mainmenu to a voice menu that will serve your PBX better.

The behavior of your main menu as a simple step-based list is as follows:

Step 1: Answer the call.

Step 2: Play the "thank-you-for-calling" recording, allowing playback to be interrupted by input.

Step 3: Play the "if-u-know-ext-dial" recording, allowing playback to be interrupted by input.

Step 4: Play the "otherwise" recording, allowing playback to be interrupted by input.

Step 5: Play the "please-hold-while-try" recording, allowing playback to be interrupted by input.

Step 6: Wait for an extension number to be entered for 5 seconds.

If no extension had been entered during the course of your voice menu, ring the operator, located at extension 6500.

Most of the above is already configured, but you are most probably wondering how to transfer the call to extension 6500, if no extension has been selected and if the 5 seconds has timed out.

To configure the above:

Step 1: Remove the last step from the pre-configured steps list (this step is not required).

Step 2: Add the "WaitExten" step, indicating a 5 seconds delay.

Step 3: Scroll down the "Keypress Events" select box and locate the "t" event" – indicating a timeout has occurred.

Step 4: Modify the event from "Disabled" to "Goto Extension" and select the extension to be 6500.

Step 5: Modify the event of the "i event" to be identical to that of the "t event". The "i event" indicates that an invalid extension number was entered.

At this point, your VoiceMenu mainmenu should look as follows:

Voice Menus and IVR in AsteriskNOW

After modifying the configuration, click the Save button and then activate the changes. Now, pick up your phone and dial the 7501 extension, if all goes well, you should hear the announcements, and then if you haven't pressed anything, you should be transferred to extension 6501.

Playback and Background Steps
Playback and background require a recorded file name to work. As you may have noticed, if you add one of these steps, you will be asked to fill a text box. If you click on the text box, a small window will pop up. This is a scroll window, although it may not look like it (browser issues with some browser versions), simply use the arrow keys to scroll up and down to locate your recording
.

Summary

We have just mastered one of the basic elements of modern PBX systems. A proper combination of voice menus and carefully planned recordings will provide a very enjoyable IVR experience for your PBX users, making sure that they don't get aggravated by your PBX system. Try to avoid the concept of making your company look bigger than it really is, by complicating your voice menus—keep it simple; don't add a menu when it's not required.

 

AsteriskNOW A practical guide for deploying and managing an Asterisk-based telephony system using the AsteriskNOW Beta 6 software appliance
Published: March 2008
eBook Price: $23.99
Book Price: $39.99
See more
Select your format and quantity:

About the Author :


Nir Simionovich

Nir Simionovich has been involved with the Open Source community in Israel since 1997. His involvement with the Open Source community started back in 1997, when he was a student in the Technion—Israel’s Technology Institute—in Haifa. Nir quickly became involved in organizing Open Source venues and events, promoting the usage of Linux and Open Source technologies in Israel.

In 1998, Nir started working for an IT consulting company (artNET experts Ltd), where he began to introduce Linux-based solutions for enterprises and banks. By the year 2000, Nir had become a SAIR/GNU certified Linux trainer and administrator, slowly educating the future generations of Linux admins.

In 2001, Nir moved to the cellular content market, working for a mobile content delivery company (m-Wise Inc.—OTC.BB: MWIS.OB). During his commission at m-Wise, Nir successfully migrated a company that was built purely on Windows 2000 and ColdFusion to open source technologies, such as Mandrake Linux (today Mandriva), Apache Tomcat, and Kannel (open source SMS/WAP gateway).

 

Coming to 2006, Nir had co-founded Atelis (Atelis PLC—AIM: ATEL). Atelis is a Digium distributor and integrator. During the course of 2006, Nir developed an Asterisk-based international operator services platform for Bezeq International, which replaced a Nortel DMS-300 switch. This platform is currently in use by Bezeq International in Israel, serving over 4000 customer a day.

 

In mid 2007, Nir left Atelis to become a freelance Asterisk promoter and consultant. Nir is currently providing Asterisk consulting and development services for various companies, ranging from early-stage start-up companies, through VoIP service providers and VoIP equipment vendors. In his spare time, Nir is the founder of the Israeli Asterisk users group, the website maintainer of the group, and an Asterisk developer, dealing mainly with the localization aspects of Asterisk to Israel.

Coming to 2008, Nir's company (Greenfield Technologies Ltd) won the Digium Innovation award at AstriCon 2008, in the pioneer division—for its implementation of a phone-based prayer system, allowing people from around the world to pray at the western wall in Jerusalem.

Books From Packt

Learning FreeNAS
Learning FreeNAS

Learning Nagios 3.0
Learning Nagios 3.0

Zenoss Core Network and System Monitoring
Zenoss Core Network and System Monitoring

Building Telephony Systems with OpenSER
Building Telephony Systems with OpenSER

Active Directory Disaster Recovery
Active Directory Disaster Recovery

Linux Thin Client Networks Design and Deployment
Linux Thin Client Networks Design and Deployment

Xen Virtualization
Xen Virtualization

Lighttpd
Lighttpd

No votes yet

Post new comment

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
e
X
3
5
m
T
Enter the code without spaces and pay attention to upper/lower case.
Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software