Ir al contenido principal

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.agi gestiona 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.agi gestiona 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_url
  • dead_trigger
  • amd_agent_route

Conceptos relacionados