🚀 Taller 5 - CallerID Dinámico con AGI y Python
Siguiente paso práctico: Implementaremos lógica externa con AGI en Python para ruletear dinámicamente el CallerID de salida, y modularizaremos el dialplan con #include.
El mapa interno de tu central y cómo orquestar cada componente
Hasta ahora, hemos instalado Asterisk. Puede parecer una “caja negra” que simplemente funciona. Pero para construir soluciones de producción robustas e integrar IA, debemos dejar de ser simples usuarios y convertirnos en arquitectos de comunicaciones.
La imagen que ves es nuestro mapa. Entenderla es la diferencia entre “editar un archivo de configuración” y “diseñar un flujo de llamadas”.

Figura: Visión general de la arquitectura de Asterisk 22
El diagrama se divide lógicamente en cuatro capas verticales, desde el mundo exterior hasta el corazón de Asterisk.
El Core es el motor central. Orquesta a todos los demás componentes.
modules.conf y habilita funcionalidades (drivers, apps, códecs).pjsip.conf, extensions.conf, etc.Analogía: el Core es el director de orquesta. No toca instrumentos, pero hace que todo suceda a tiempo.
Asterisk no entiende de forma nativa los protocolos de telefonía. Necesita “traductores”.
chan_pjsip.so (SIP moderno): Traduce SIP a eventos internos. En Asterisk 22 es el único driver SIP disponible.chan_dahdi.so (TDM): Interfaz con hardware de telefonía analógica/digital (DAHDI).chan_iax2.so (nativo Asterisk): Ideal para interconectar servidores Asterisk de forma eficiente.extensions.conf)Si el Core es el director, el Dialplan es la partitura de la llamada.
Dial(PJSIP/1002) para enrutar llamadas.Donde Asterisk pasa de PBX a plataforma de desarrollo.
codec_ulaw.so, codec_opus.so, format_wav.so, format_gsm.so.res_musiconhold.so para MOH, entre otros.cdr_odbc.so para CDR, cel_odbc.so para CEL.res_odbc.so como puente genérico a PostgreSQL y otros.INVITE llega a NIC → OS → Asterisk.chan_pjsip valida y crea canal de entrada.1002 en el contexto apropiado.Dial() establece la llamada.Ahora extensions.conf deja de ser un archivo plano; es tu partitura. pjsip.conf no es solo una lista de usuarios; es el manual del traductor. Y las APIs son los puntos precisos donde puedes inyectar inteligencia en tiempo real.
🚀 Taller 5 - CallerID Dinámico con AGI y Python
Siguiente paso práctico: Implementaremos lógica externa con AGI en Python para ruletear dinámicamente el CallerID de salida, y modularizaremos el dialplan con #include.