La arquitectura por dentro
Cómo PearlPBX2 convierte modelos de Django en una configuración de Asterisk funcional, la valida antes de aplicarla y te permite revertir cualquier cambio.
Stack
Generación de configuración
Más de 30 modelos de Django, cada uno editable desde el admin, y un generador de configuración (core/conf.py, ~950 líneas) los convierte en archivos de configuración de Asterisk. Apply Changes muestra una vista previa de cada archivo antes de escribirlo, versiona la configuración en la base de datos y solo entonces recarga suavemente o reinicia por completo Asterisk vía AMI. Se crea una copia de seguridad automática antes de sobrescribir.
El validador de dialplan AEL
core/validators.py(más de 1000 líneas) analiza la estructura de bloques if/else/while/for/switch, equilibra llaves, comillas y expresiones ${...}, y contrasta cada llamada de aplicación contra una lista de ~150 comandos de Asterisk. Los patrones de extensión se validan con la sintaxis correcta y se muestran ordenados por especificidad — coincidencias exactas antes que los comodines. Un dialplan incorrecto se rechaza en el formulario web antes de llegar a Asterisk.
Ansible y reversión de despliegues
Instalación, actualización y reversión son scripts separados (install.sh,update.sh,rollback.sh) sobre 10 roles de Ansible. Un cuarto script,update-asterisk.sh, actualiza el propio Asterisk en caliente: hace copia de seguridad de la configuración, los binarios y los módulos, compila la nueva versión mientras la actual sigue atendiendo llamadas, drena las llamadas activas con cuidado y puede revertir a los binarios anteriores si hace falta. El instalador compila Asterisk 22 desde el código fuente, genera todos los secretos, configura las tareas cron que el sistema necesita (backup de base de datos, backup de configuración de Asterisk, rotación de logs, conversión y descarga de grabaciones, monitoreo del sistema) y configura nftables, detectando y registrando el puerto SSH antes de aplicar las reglas.rollback.sh -n <pasos>revierte el código, las migraciones de base de datos y los servicios a un estado anterior usando el historial de despliegues. El instalador automático está pensado solo para Debian o Ubuntu — probado en Debian 13 y Ubuntu 24.04; el stack de Docker Compose para evaluación y desarrollo no depende de la distribución, y un archivo compose de pruebas de integración separado ejecuta la suite de pruebas contra un contenedor real de Asterisk 22 en CI.
API REST
Autenticación por token (Authorization: Token <key>): click-to-call, conferencias ad-hoc, control de pausa de agentes de cola, descarga de grabaciones. El listado completo de endpoints está en el esquema OpenAPI en vivo con Swagger UI y ReDoc. Documentación de la API REST →