Del código a tu primera llamada.
Una guía para administradores y desarrolladores. Empieza en un entorno de pruebas, compila los módulos necesarios y verifica la señalización y los medios antes de exponer el servicio.
Prepara las dependencias adecuadas.
La guía oficial documenta una instalación desde código fuente en Debian 13. GABPBX no es una centralita preconfigurada: tú eliges los módulos, la configuración, la cuenta del servicio, la exposición de red y las integraciones.
Compila primero el fork de Sofia-SIP documentado por el proyecto e instálalo en /usr/local.
Herramientas de compilación y cabeceras de desarrollo para los módulos elegidos.
Bibliotecas opcionales para transcodificación Opus, medios cifrados y fax.
Compila los controladores que necesites para realtime, CDR/CEL y el almacén push.
Necesarios para el envío APNs/FCM nativo, junto con las credenciales y el aprovisionamiento de tu app.
Dependencia opcional para los DataChannels WebRTC; hay que activar la función expresamente.
Compila una versión concreta.
Estos comandos resumen la compilación en un laboratorio preparado. Instala primero las dependencias de la guía oficial. Los comandos de instalación escriben en directorios del sistema: no los ejecutes en una PBX en servicio sin copia de seguridad y un plan de mantenimiento.
1. Sofia-SIP
git clone --depth 1 --branch v2.0.4 https://github.com/garacil/sofia-sip.git
cd sofia-sip
./autogen.sh
./configure --prefix=/usr/local
make -j$(nproc)
sudo make install
sudo ldconfig
pkg-config --modversion sofia-sip-ua
cd ..2. GABPBX 1.8.2
git clone --depth 1 --branch v1.8.2 https://github.com/garacil/gabpbx.git
cd gabpbx
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib/x86_64-linux-gnu/pkgconfig:${PKG_CONFIG_PATH:-}
./configure
make menuselect.makeopts
menuselect/menuselect --enable chan_sofia menuselect.makeopts
make menuselect
make -j$(nproc)
sudo make install
gabpbx -VUtiliza menuselect para revisar los módulos adicionales y sus dependencias. Activar un módulo en la configuración no instala sus bibliotecas. La guía oficial explica Opus, la puesta en marcha del servicio y la resolución de problemas.
No ejecutes make samples sobre una instalación existente: puede sobrescribir la configuración de /etc/gabpbx. Utiliza los ejemplos únicamente en un laboratorio nuevo y prescindible y revísalos antes de usarlos.
Configura con criterio. Verifica ambos sentidos.
- Prepara una cuenta de servicio, directorios de ejecución con los permisos adecuados y una unidad de servicio adaptada a tu instalación. No copies una unidad systemd sin revisar a producción.
- Configura en sofia.conf los peers, contextos del dialplan, puertos de escucha, dirección externa y redes locales. Carga chan_sofia o chan_sip, nunca ambos.
- Define una política de autenticación explícita: desactiva las llamadas de invitados que no necesites, usa credenciales robustas, limita el acceso con ACL y verifica los certificados TLS. Los valores de compatibilidad no son una base de seguridad.
- Para WebRTC, activa webrtc y configura los certificados y una dirección de medios accesible. Para vídeo en navegadores max-bundle, activa además webrtc_video_bundle=yes y negocia un códec común. Los DataChannels necesitan usrsctp y datachannel=yes.
- Para activar móviles mediante push, configura la integración de la app, las credenciales APNs/FCM y el esquema SQLite y habilita push. El envío nativo usa HTTP/2; los scripts alternativos no están incluidos en el repositorio público.
- Prueba el registro, audio entrante y saliente, DTMF, espera y reanudación, transferencias, vídeo y todas las combinaciones de dispositivos y transportes previstas. Recoge registros sin exponer credenciales ni datos de clientes.
gabpbx -rx 'core show version'
gabpbx -rx 'module show like sofia'
gabpbx -rx 'sip show version'
gabpbx -rx 'sip show settings'
gabpbx -rx 'sip show peers'
gabpbx -rx 'sip show push'Una interfaz compatible no justifica una actualización a ciegas.
La migración conserva SIP/<peer>, las familias realtime sippeers/sipregs, los comandos sip y las acciones AMI habituales. Aun así, requiere revisar la configuración y reiniciar para cambiar el canal.
noload => chan_sip.so
load => chan_sofia.so- Guarda una copia de la configuración y registra los módulos cargados y las versiones de las bibliotecas.
- Prepara sofia.conf, los mapeos realtime, los puertos, los certificados y las políticas NAT y de medios. Mantén directmedia desactivado hasta verificar la ruta de medios.
- Revisa los tiempos de inactividad RTP: las versiones actuales aplican los valores configurados. El valor 0 desactiva el límite; elige una política adecuada a tus llamadas.
- Planifica el reinicio: sustituir el canal SIP no es un cambio en caliente durante una llamada. Prueba los contactos, eventos AMI y llamadas tras la migración y conserva un plan de reversión.
Amplía la información en la wiki oficial.
La wiki se mantiene junto al código. Si un ejemplo histórico contradice la implementación actual, consulta el código y las notas de la versión concreta.