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.
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 application
will require experience with web development.
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
programmer but are very adept with Asterisk dialplans and databases,
you’ll love func_odbc
just as much as we do. Check it
out in Chapter 16, Relational Database Integration.
The Asterisk Gateway Interface is such an important part of integrating external applications with Asterisk that we gave it its own chapter. You can find more information in Chapter 21, Asterisk Gateway Interface (AGI).
The Asterisk Manager Interface is a socket interface that you can use to get configuration and status information, request actions to be performed, and get notified about things happening to calls. We’ve written an entire chapter on AMI, as well. You can find more information in Chapter 20, Asterisk Manager Interface (AMI).