Chapter 9. The Asterisk Gateway
Interface (AGI)
Even he, to whom most
things that most people
would think were pretty smart were pretty dumb,
thought it was pretty smart.
Douglas Adams, The
Salmon of Doubt
The Asterisk Gateway Interface, or AGI, provides
a standard interface by which external programs may control the
Asterisk dialplan. Usually, AGI scripts are used to do advanced
logic, communicate with relational databases (such as PostgreSQL or
MySQL), and access other external resources. Turning over control
of the dialplan to an external AGI script enables Asterisk to
easily perform tasks that would otherwise be difficult or
impossible.
This chapter covers the fundamentals of AGI
communication. It will not teach you how to be a programmerrather,
we'll assume that you're already a competent programmer, so that we
can show you how to write AGI programs. If you don't know how to do
computer programming, this chapter probably isn't for you, and you
should skip ahead to the next chapter.
Over the course of this chapter, we'll write a
sample AGI program in each of the Perl, PHP, and Python programming
languages. Note, however, that because Asterisk provides a standard
interface for AGI scripts, these scripts can be written in almost
any modern programming language. We've chosen to highlight Perl,
PHP, and Python because they're the languages most commonly used
for AGI programming.
|