Asterisk Gateway Interface (AGI)
Definición
AGI es un protocolo que permite a Asterisk ejecutar programas externos durante el procesamiento de una llamada. Cuando una llamada llega a un paso de AGI en el dialplan, Asterisk lanza un script externo (en Perl, PHP, Python, etc.) y se comunica con él a través de stdin/stdout. Estos scripts pueden gestionar el flujo de la llamada, reproducción de audio, captura de DTMF, consultas a bases de datos y lógica de enrutamiento.
Cómo lo implementa VICIdial
VICIdial depende fuertemente de scripts AGI para sus operaciones centrales de llamada. El sistema usa scripts en Perl almacenados en /var/lib/asterisk/agi-bin/. Implementaciones clave incluyen:
- Llamadas salientes:
agi-VDAD_ALL_outbound.agigestiona el procesamiento de llamadas atendidas, la detección de AMD, la búsqueda en la base de datos de leads, la selección de agente y el enrutamiento a ConfBridge. - Llamadas entrantes:
agi-VDADfirstreq.agigestiona el enrutamiento de DID, la ejecución del menú de llamada y la colocación en cola. - Cada llamada concurrente genera un proceso AGI independiente, consumiendo memoria, CPU y manejadores de archivo.
Por qué importa
AGI extiende a Asterisk más allá de la funcionalidad básica de PBX. Permite integración con CRM, enrutamiento dinámico basado en datos externos, lógica de IVR personalizada y búsqueda de leads en tiempo real durante la llamada. Para los administradores, entender AGI ofrece capacidades de personalización profundas, pero requiere pruebas cuidadosas: un error en un script AGI afecta a todas las llamadas. Para escenarios sensibles al rendimiento se recomienda FastAGI (FastAGI).
Configuraciones relacionadas
start_call_urldead_triggeramd_agent_route