Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Clase 14
AGI
Temas:
1.-Introduccion a AGI
2.- Casos Prcticos
Introduccin
La interface AGI nos permite extender las funcionalidades del plan de discado utilizando lenguajes diferentes de programacin. Esto nos permite interactuar con bases de datos y realizar planes de discado mas complejos como IVRs monitoreo de llamadas, etc.
Objetivos
Conocer los entornos de aplicacin de AGI. Conocer los comandos de la interface AGI.
Programar scripts que utilicen la interface AGI para implementar funciones avanzadas en el plan de discado.
Asterisk utiliza estos canales para enviar y recibir informacin del programa en ejecucin.
Variables
Cuando Asterisk inicia un script AGI, enva una serie de variables al canal de entrada. Estas variables comienzan con agi_. Algunas de estas variables son: agi_channel canal llamado. agi_callerid CALLERID(num) agi_calleridname CALLERID(name)
Variables
Tambin son pasadas variables de entorno relacionadas con el sistema de archivos que apuntan a carpetas que contienen archivos de asterisk. AST_CONFIG_DIR AST_CONFIG_FILE AST_MODULE_DIR AST_SPOOL_DIR AST_MONITOR_DIR
Secuencia de comunicacin
La comunicacin entre el servidor asterisk y el script AGI se realiza siguiendo una secuencia que se mantendr hasta que el script termine su ejecucin.
Al iniciarse el script Asterisk enva una lista de variables que son ledas a travs del STDIN. Despus de terminar el envo de variables, enva una lnea en blanco para indicar que termino el envo de variables.
1)
Secuencia de comunicacin
2) Luego asterisk le da el control del plan de discado al script AGI y queda a la espera de recibir comandos por parte del script a travs del STDOUT. 3) El script enva comandos a travs del STDOUT, despus de cada comando enviado Asterisk enva un a respuesta a travs del canal STDIN. (Estas acciones continuarn durante la ejecucin de todo el script AGI)
Paso de Argumentos
Los scripts AGI pueden recibir argumentos desde el plan de discado utilizando la siguiente sintaxis: AGI(prueba2.php,arg1,arg2,arg3 ) Ejemplo: exten => 2001,1,Answer() exten => 2001,2,AGI(prueba2.php,${EXTEN})
Comandos AGI
Utilizando la funcin fwrite y el manejador $stdout (creado con la funcin fopen) podemos pasar una serie de comandos que listamos a continuacin: channel status: Devuelve el status del canal conectado. exec: Ejecuta una aplicacin del plan de discado. get variable: Captura las variables del canal. hangup: Cuelga el canal actual. noop: No hace nada.
Resumen de la Unidad
Los scripts AGI se guardan en el directorio /var/lib/asterisk/agi-bin/, y son llamados desde el plan de discado. Utilizan STDIN, STDOUT y STDERR para comunicarse con el servidor enviando comandos y recibiendo respuestas.
Hay una gran variedad de comandos que pueden ser utilizados desde los scripts AGI que nos permiten controlar el plan de discado.