La versión 2.7.1 es el primer lanzamiento público de PearlPBX2: llega la licencia, documentación
de inicio rápido y un stack Docker Compose completo que levanta todo el backend con un solo
docker compose up.
Licencia y archivos públicos
El proyecto se publica bajo la PolyForm Shield License 1.0.0 — el código fuente está
disponible, y su uso está permitido para cualquier propósito, incluyendo tu propio despliegue
comercial, excepto vender un producto o servicio que compita con PearlPBX2. Junto con la licencia
se añadieron LICENSE, NOTICE, CONTRIBUTING.md y QUICKSTART.md, con las rutas de
instalación por Ansible y Docker Compose, además de cabeceras SPDX en los módulos clave.
Un stack Docker Compose completo
docker-compose.yml ahora levanta más que Django y Asterisk: todo el backend — fastagi,
dashboard-listener y un callback-service opcional (vía --profile callback), cada uno con su
propio Dockerfile. Un nuevo servicio asterisk-init prepara un manager.conf mínimo con AMI
habilitado y parchea modules.conf para cargar res_crypto.so antes del primer arranque de
Asterisk — la imagen oficial andrius/asterisk:22 viene con AMI deshabilitado, y sin
res_crypto ni siquiera el healthcheck propio de la imagen pasa. docker-entrypoint.sh ejecuta
migrate y collectstatic de forma idempotente en cada arranque del contenedor django, y
docker-compose.override.yml añade un bind mount del código fuente y uvicorn --reload para
desarrollo local.
Correcciones menores, pero que se notan
- Los archivos estáticos por fin se sirven bajo Docker: se añadió
whitenoise, ya queDEBUG=Falseincluso en modo desarrollo, y no hay nginx delante del contenedordjango. REDIS_URLendocker-compose.ymlse construía mal a partir de las variablesREDIS_HOST/REDIS_PORT, que no se usaban — esto rompía/dashboard/ulines/y potencialmente el dashboard por WebSocket; ahora la variable se define directamente.- Las llamadas salientes ahora también se comparan con los webhooks por la tabla de enrutamiento, no solo por el contexto del dialplan — antes, los webhooks que solo escuchaban contextos entrantes nunca se disparaban para llamadas salientes.
FASTAGI_HOST/FASTAGI_PORTpermiten ejecutar el servidor FastAGI en algo distinto de127.0.0.1:4573— necesario cuando Asterisk corre en un contenedor separado.