System information
IVR Design Considerations
When designing your own IVR, there are some important things to keep in mind. We’ve
put together this list of some things to do, and things not to do in your IVR.
Do
• Keep it simple.
• Have an option to dial 0 to reach a live person.
• Handle errors gracefully.
Don’t
• Think that an IVR can completely replace people.
• Use your IVR to show people how clever you are.
• Try to replicate your website with an IVR.
• Bother building an IVR if you can’t take numeric input. Nobody wants to have to
spell her name on the dialpad of her phone.
‡
• Force your callers to listen to advertising. Remember that they can hang up at any
moment they wish.
Asterisk Modules for Building IVRs
The “front end” of the IVR (the parts that interact with the callers) can be handled in
the dialplan. In theory, it might be possible to build an IVR system using the dialplan
alone (perhaps with the astdb to store and retrieve data). In practice, your IVR is going
to need to communicate with something external to Asterisk.
CURL
The CURL() dialplan function in Asterisk allows you to span entire web applications
with a single line of dialplan code. We’ll use it in our sample IVR later in this chapter.
While you’ll find CURL() itself to be quite simple to use, the creation of the web appli-
cation will require experience with web development.
func_odbc
Using func_odbc, it is possible to develop extremely complex applications in Asterisk
using nothing more than dialplan code and database lookups. If you are not a strong
‡ Especially if it’s something like Van Meggelen.
392 | Chapter 17: Interactive Voice Response