Interfaz de puerta de enlace Asterisk


Asterisk Gateway Interface ( AGI ) es una interfaz de software y un protocolo de comunicaciones para el control a nivel de aplicación de funciones seleccionadas del Asterisk PBX .

AGI permite que un programa externo escrito por el usuario, lanzado desde el plan de marcación de Asterisk a través de conductos , controle las operaciones de telefonía en sus canales de voz y control asociados. Es similar a la función CGI de los servidores web al permitir que se use cualquier idioma para escribir el programa externo que se comunica con Asterisk a través de stdin y stdout .

Si bien el conjunto de funciones inicial de AGI incluía solo un control de procedimiento de las operaciones de Asterisk a través de comandos y un protocolo de enlace de respuesta, Enhanced AGI (EAGI) también proporcionó acceso fuera de banda a la transmisión de audio entrante.

FastAGI es una extensión de AGI que permite que el programa externo se ejecute en un host de red separado para evitar la sobrecarga de crear un nuevo proceso para cada llamada en el servidor Asterisk. Utiliza un socket TCP para la comunicación con el host externo que proporciona la función de un servicio AGI, a la manera del modelo cliente-servidor . El puerto TCP predeterminado para FastAGI es 4573 . Similar a los identificadores de recursos uniformes (URI) de HTTP , FastAGI emplea un formato URI deagi://nombre de host[:puerto][/programa/ruta].

El conjunto de funciones AGI de Asterisk se implementa como un módulo cargable de Asterisk ( res_agi ). Se puede acceder a las funciones mediante una variedad de interfaces de programación de aplicaciones en varios lenguajes, como phpagi , Perl AGI Library, CAGI , NanoAGI y PyST.