Primeros pasos

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.

Sofia-SIP 2.0.4

Compila primero el fork de Sofia-SIP documentado por el proyecto e instálalo en /usr/local.

C / GNU make / pkg-config

Herramientas de compilación y cabeceras de desarrollo para los módulos elegidos.

Opus / SRTP / SpanDSP

Bibliotecas opcionales para transcodificación Opus, medios cifrados y fax.

PostgreSQL / ODBC / SQLite

Compila los controladores que necesites para realtime, CDR/CEL y el almacén push.

libcurl + HTTP/2 / OpenSSL

Necesarios para el envío APNs/FCM nativo, junto con las credenciales y el aprovisionamiento de tu app.

usrsctp

Dependencia opcional para los DataChannels WebRTC; hay que activar la función expresamente.

Consultar la lista completa de dependencias y paquetes ↗

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

Compilar la pila SIP documentada
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

Configurar, seleccionar módulos y compilar
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 -V

Utiliza 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
Consultas de solo lectura en tu laboratorio activo
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.

modules.conf [modules]
noload => chan_sip.so
load   => chan_sofia.so
  1. Guarda una copia de la configuración y registra los módulos cargados y las versiones de las bibliotecas.
  2. 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.
  3. 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.
  4. 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.
Referencia completa de migració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.