Ingeniero en Telecomunicaciones, Conectividad y Redes
Asterisk Gateway Interface
AGI
La AGI (o Asterisk Gateway Interface) provee
una interfaz estándar para que programas
externos puedan controlar el plan de marcación.
Generalmente,los scripts AGI se utilizan para
realizar lógica avanzada, comunicarse con base
de datos relacionales, etc.
Los lenguajes más comunes de programación
de scripts AGI son: PHP, Python y Perl, aunquese puede utilizar cualquier otro lenguaje.
Julián Dunayevich, Lázaro Baca,
Andrés Brassara, Santiago Alberch,
Antonio Lobo
2
AGI
El intercambio de información del script con
Asterisk serealiza vía los canales de
comunicación: STDIN, STDOUT y STDERR.
Lee desde STDIN para obtener información.
Escribe en STDOUT para enviar información.
Escribe en STDERR para enviar información dedebugging.
El script AGI envía comandos a Asterisk
escribiendo en el STDOUT. Seguidamente
Asterisk envía una respuesta por cada uno de
ellos que es leída por el script.
Julián Dunayevich, LázaroBaca,
Andrés Brassara, Santiago Alberch,
Antonio Lobo
3
AGI
La respuesta del servidor Asterisk ante un pedido es de
la sig forma:
result= [data]
donde
code es un código de respuestasimilar a HTTP (200 en caso de
éxito, 5XX en caso de error).
result es el resultado del comando (los valores más
convencionales son -1 para errores, 0 si fue exitosa la ejecución)
data es unconjunto de datos adicionales que pueden ser
enviados por comando específicos (por ej, “timeout” para un
comando temporizado)
Julián Dunayevich, Lázaro Baca,
Andrés Brassara, Santiago Alberch,
AntonioLobo
4
AGI
Cuando Asterisk comienza la llamada al script,
envía un conjunto de variables relacionadas con
el canal en el STDIN.
Por ejemplo:
agi_request: nombre del script
agi_channel:nombre del canal
agi_language: lenguaje del canal (en, es)
agi_type: tipo de canal (sip, iax, etc.)
etc.
Julián Dunayevich, Lázaro Baca,
Andrés Brassara, Santiago Alberch,
Antonio Lobo
5...
Regístrate para leer el documento completo.