Descargas y versiones

Descarga el código. Conoce los cambios.

Descarga el código de una versión concreta, consulta sus cambios y elige por dónde empezar. Todas las descargas enlazan directamente con el repositorio oficial de GitHub.

Última versión pública

GABPBX 1.8.2

Publicada el 8 de septiembre de 2026 · GPLv2 · Código fuente

Estos archivos contienen código, no un instalador. Necesitan dependencias de compilación y configuración.

¿Qué incluye la descarga?

  • El código público etiquetado, ejemplos de configuración, scripts de compilación y avisos de licencia.
  • La versión actual no adjunta paquetes .deb o .rpm, instaladores ejecutables, imágenes de máquina virtual ni un panel web preparado.
  • Sofia-SIP y las bibliotecas opcionales se instalan por separado.
Consultar la guía de instalación →

Archivos de las releases comprobados en la API de GitHub el 2026-09-11.

Un punto de partida identificable

¿Prefieres Git? Fija la etiqueta.

Obtener el código de la versión
git clone --depth 1 --branch v1.8.2 https://github.com/garacil/gabpbx.git
cd gabpbx
git rev-parse HEAD

Commit de la etiqueta verificado: 57bcb502e6bc789f8d0576becde18131189f5cb5. Los bytes de los archivos generados por GitHub pueden cambiar con el tiempo; aquí no se afirma disponer de una suma firmada por el proyecto. Identifica el código por la etiqueta y el commit.

Cada versión, con sus detalles.

Todas las notas en GitHub ↗

39 releases publicadas revisadas. Los resúmenes describen los cambios de cada versión, no recomiendan instalar versiones antiguas. El trabajo de desarrollo de las series 1.6/1.7 está incluido en las versiones publicadas de la serie 1.8.

v1.8.2

Cambio de red durante la llamada

Actualiza la selección de rutas ICE-lite y el tratamiento de DTLS para que una llamada móvil establecida pueda seguir una nueva ruta de red autenticada. Corrige también el motivo de cancelación de llamadas bifurcadas y la comprobación de listas de User-Agent permitidos.

  • Acepta un nuevo par ICE autenticado y seleccionado durante la llamada, permitiendo cambiar entre wifi y datos móviles sin exigir un re-INVITE ni reiniciar ICE.
  • Separa el par seleccionado para los medios de la última comprobación de conectividad autenticada. Las comprobaciones de consentimiento, por sí solas, dejan de redirigir los medios.
  • Mantiene la ruta de medios previamente seleccionada mientras un reinicio ICE negocia su sustituta.
  • Elimina de la selección ICE-lite el desempate de prioridades propio de ICE completo y evita confirmar una selección sin aplicar realmente el par elegido.
  • Acepta DTLS desde cualquier tupla autenticada mediante MESSAGE-INTEGRITY de ICE, en lugar de limitarlo a la última tupla comprobada.
  • Impide que la dirección de conexión del SDP sobrescriba el destino de medios seleccionado por ICE.
  • Sitúa a=ice-lite en el nivel de sesión e incorpora la emisión y lectura de la opción ice2.
  • Marca como atendidas en otro dispositivo las ramas perdedoras canceladas, con causa SIP 200, tanto en Dial con varios canales como con varios contactos registrados, independientemente de la opción Q.850.
  • Aplica lockuseragent a prefijos configurados separados por comas. Una lista vacía mantiene el acceso sin esta restricción; los valores aprendidos o truncados de User-Agent dejan de provocar bloqueos involuntarios.
v1.8.1

Envío push nativo por HTTP/2

Añade un emisor push integrado para APNs y FCM, con conexiones HTTP/2 persistentes y autenticación en caché. La eliminación de tokens duplicados reconoce una misma instalación aunque cambie su identificador de dispositivo.

  • Envía notificaciones mediante una cola nativa acotada y un hilo de eventos, con trabajos concurrentes y conexiones persistentes a APNs de producción, APNs de pruebas y FCM.
  • Firma y mantiene en caché las credenciales JWT/OAuth con OpenSSL, evitando iniciar un proceso Python por notificación cuando se utiliza el emisor nativo.
  • Permite elegir push_sender=native o script; native es el valor predeterminado y sip reload vuelve a leer la selección.
  • Recurre al script para cada trabajo si faltan requisitos nativos, como soporte HTTP/2 de cURL, el recurso cURL o credenciales legibles del proveedor. Esta alternativa sigue necesitando su script y sus credenciales configurados.
  • Muestra el emisor activo y la profundidad de la cola pendiente mediante sip show push.
  • Mantiene los formatos de las notificaciones, la eliminación de tokens inválidos y el comportamiento del registro push en ambos emisores.
  • Trata las filas de dispositivos de una misma cuenta que comparten el mismo token push válido como una única instalación cuyo identificador ha cambiado. Retira la fila obsoleta de la caché, el almacenamiento y el historial para evitar notificaciones duplicadas.
v1.8.0

Llamadas móviles y correcciones de medios

Reúne el desarrollo previo de push móvil con correcciones para llamar a tus otros dispositivos, puentes SRTP, inactividad RTP, transferencia atendida y temporización DTLS. La lista pública no contiene publicaciones independientes 1.6 o 1.7; ese trabajo se describe aquí como desarrollo incorporado.

  • Permite que una llamada a la misma cuenta haga sonar sus otros dispositivos registrados, excluyendo el contacto de origen mediante la dirección del INVITE o +sip.instance.
  • Excluye el dispositivo de origen de la activación push y de la bifurcación reanudada. busy_on_active ignora el contacto del propio llamante, pero sigue teniendo en cuenta otros dispositivos ocupados.
  • Utiliza el puente genérico en llamadas SRTP a SRTP cuando la retransmisión local reutilizaría estados de cifrado y RTP incompatibles; regenera el SSRC y la secuencia de salida para el otro extremo.
  • Aplica rtptimeout, rtpholdtimeout y rtpkeepalive en la revisión periódica de dos segundos. Su valor predeterminado, cero, los mantiene desactivados; la comprobación de inactividad excluye medios que todavía no han comenzado y sesiones T.38.
  • Admite REFER/Replaces atendido cuando la consulta termina en una aplicación como IVR, eco, buzón de voz o cola, incluido el caso de transferencia con tres canales.
  • Si DTLS termina antes de recibir la huella remota en el SDP, conserva el intercambio completado sin instalar claves de medios. Instala las claves solo después de validar la huella y rechaza cualquier discrepancia.
v1.5.18

Compatibilidad de señalización de control

Amplía sofia_indicate para actualizaciones de identidad conectada y desvío, progreso, flash y cambios del interlocutor RTP. Incorpora las rutas de señalización compatibles de identidad y desvío; Advice of Charge sigue limitado a su terminación, sin un nuevo emisor AOC-D/E.

v1.5.17

Conservación de causas de colgado entre canales

Propaga al llamante la causa de colgado del canal llamado al terminar una llamada contestada y puenteada, respetando una causa positiva existente. Corrige decisiones del dialplan basadas en la causa que podían provocar reintentos involuntarios.

v1.5.16

Hints BLF automáticos y supervisión fiable

Crea hints BLF para los usuarios configurados, incluidos los no registrados, y los materializa cuando una suscripción los necesita. La creación de contextos actualiza coherentemente la tabla de consulta principal y aplica las mismas reglas de alternativa entre subscribecontext y context.

v1.5.15

Encaminamiento de presencia y limpieza de espera

Hace encaminables los contactos de SUBSCRIBE BLF para la extensión supervisada, también al renovar la suscripción. Libera el estado de espera al cerrar la llamada para evitar que un usuario siga ocupado tras colgar o transferir una llamada en espera.

v1.5.14

Consulta de la versión Sofia-SIP cargada

Añade sip show version para mostrar la versión Sofia-SIP de compilación, la de ejecución y la ruta de la biblioteca compartida cargada. Facilita detectar diferencias entre la biblioteca utilizada al compilar y la que carga el proceso.

v1.5.13

Corrección de fugas al descartar peticiones bloqueadas

Libera los manejadores SIP al descartar peticiones fuera de diálogo incluidas en la lista de bloqueo, ampliando la limpieza anterior de OPTIONS. Cierra una vía de acumulación de memoria bajo tráfico no deseado.

v1.5.12

Colas acotadas y refuerzo de autenticación

Corrige la liberación de manejadores OPTIONS, limita las colas de recepción DataChannel y hace más uniforme el rechazo de usuarios desconocidos y contraseñas incorrectas. Refuerza también los rechazos diferidos, el análisis de nonce, los bloqueos de identidad y el tratamiento de REFER malformados o fuera de diálogo.

v1.5.11

re-INVITE opcional al poner en espera

Introduce la opción experimental hold_reinvite, desactivada de forma predeterminada, para usar SDP sendonly o inactive durante una espera local y restablecer la oferta al reanudar. Las notas distinguen esta opción del comportamiento habitual basado solo en música de espera e indican que entonces no estaba validada de extremo a extremo.

v1.5.10

Medios tempranos opcionales con una sola rama restante

Introduce fork_early_media, experimental y desactivado por defecto, para recibir medios tempranos cuando solo queda una rama apta, sin WebRTC y con SDP. No mezcla medios de varias ramas; las notas señalan que la opción activada aún no estaba validada de extremo a extremo.

v1.5.9

Motivos Q.850 en INVITE rechazados

Amplía la opción use_q850_reason a las respuestas finales de rechazo de INVITE, además de BYE y CANCEL. La opción continúa desactivada de forma predeterminada.

v1.5.8

Correcciones de SDP, progreso, MWI y RTCP

Amplía la capacidad de construcción de SDP y corrige progressinband tras la señalización provisional. Agrega más clases de mensajes pendientes y selecciona los bloques de informe RTCP correspondientes al SSRC local real.

v1.5.7

Robustez de SRTP, concurrencia y SDP

Refuerza el tratamiento de claves SRTP y la validación de cambios de clave, protege el estado compartido de transmisión y códecs y corrige el orden del SDP y la negociación de medios. Incluye ajustes en respuestas T.38, nuevas ofertas de vídeo, códecs de ramas y asociación de respuestas de registro.

v1.5.6

Seguridad de medios y ciclo de vida de transacciones

Elimina el registro de claves SRTP sensibles y refuerza la validación de suites de cifrado, junto con correcciones de medios y bloqueos. Corrige las respuestas finales a INVITE entrantes sin contestar y asocia UPDATE y NOTIFY a sus transacciones correspondientes.

v1.5.5

Sustitución explícita del usuario From

Hace que fromuser sustituya la parte de usuario de la URI From, en lugar de actuar solo como alternativa. Mantiene separado el tratamiento del nombre visible y RPID/PAI, y corrige el encaminamiento anónimo y user=phone.

v1.5.4

Evitar nombres internos en la identidad de llamada

Evita que la identidad From use como alternativa el nombre interno del usuario o de su sección de configuración. El ajuste general callerid actúa como último recurso, con gabpbx como valor predeterminado.

v1.5.3

Identidad de llamada configurada por usuario

Interpreta nombres y números de callerid para usuarios estáticos y realtime e incorpora el comportamiento apply_peer_callerid. La identidad configurada se aplica por defecto salvo que tenga prioridad una identidad RPID/PAI de confianza.

v1.5.2

Compatibilidad Digest y su compromiso de seguridad

Añade auth_qop para controlar la compatibilidad MD5: el modo heredado predeterminado omite qop y su protección antirrepetición basada en nonce-count; al activarlo se comprueban nc/cnonce. SHA-256 sigue exigiendo qop=auth; cada instalación debe valorar explícitamente este compromiso de compatibilidad MD5.

v1.5.1

Valores TLS coherentes al recargar

Corrige un valor predeterminado incoherente de tls_min_version que detectaba falsamente cambios al recargar. TLS 1.2 se usa de forma coherente como valor predeterminado; un cambio real del TLS del listener sigue requiriendo reinicio.

v1.5.0

Puente de vídeo entre SIP y WebRTC

Añade puentes de vídeo entre SIP y WebRTC con códecs compatibles, incluida negociación H.264 y traducción de solicitudes de fotogramas clave, sin transcodificación de vídeo. Mejora la conservación del estado de medios al renegociar, el diagnóstico DTMF opcional y el rechazo seguro de descarga del módulo.

v1.4.3

Separación de ajustes NAT de señalización y medios

Separa force_rport, destinado al encaminamiento de respuestas SIP, de comedia, destinado al aprendizaje simétrico de medios. Los usuarios heredan el ajuste nat general cuando el propio no existe o está vacío, incluidos los registros realtime.

v1.4.2

Espera y reanudación WebRTC

Corrige la dirección de oferta y respuesta y el tratamiento de líneas de medios al poner en espera o reanudar WebRTC, conservando la identidad de los flujos y los mapas de payload. Incorpora la negociación y retransmisión correspondientes de solicitudes RTCP de fotogramas clave, sin transcodificar vídeo.

v1.4.1

Medios de la rama ganadora y mensajería SIP nativa

Corrige la limpieza de sockets que podía dejar sin medios a la rama WebRTC ganadora. Añade retransmisión SIP MESSAGE nativa y autenticada a contactos activos, con respuestas para usuarios desconectados y una alternativa opcional mediante message_context.

v1.4.0

BUNDLE WebRTC, DTMF y registro por contacto

Introduce BUNDLE opcional para WebRTC y mejora DTMF y la caducidad o eliminación de contactos individuales en REGISTER. También cambia la selección temprana de rutas de medios y añade diagnósticos opcionales; versiones posteriores, especialmente 1.8.2, refinan la selección ICE.

v1.3.5

Audio WebRTC entrante y diagnóstico SDP

Corrige las ofertas entrantes de navegadores, las respuestas a conflictos de rol ICE y la secuencia DTLS anterior a la validación de huellas. Añade diagnósticos SDP e identificadores de transacción y evita que el fallo del vídeo provoque el fallo de la llamada de audio.

v1.3.4

Limpieza de conexiones e inspección de usuarios

Retira los contactos al cerrarse su conexión de transporte RFC 5626, con eventos de baja opcionales. Mejora la información de usuarios en la CLI y refuerza los límites de los búferes T.140 RED.

v1.3.3

Correcciones de registro WebRTC y medios tras NAT

Utiliza el transporte WebSocket real de los contactos registrados y mejora su reasociación tras recargar el navegador. Hace que ICE controle el encaminamiento de medios WebRTC en lugar del aprendizaje comedia; versiones posteriores revisan más detalles de selección.

v1.3.2

Nonce Digest y reasociación de contactos

Introduce nonce autenticados sin estado y una caché antirrepetición acotada por nonce para evitar bucles de autenticación. Mejora el encaminamiento de respuestas y la reasociación de contactos mediante identificadores de instancia SIP, Call-ID y alternativas conservadoras para NAT.

v1.3.1

Medios según transporte y encaminamiento NAT

Selecciona el perfil de medios según el transporte real de cada contacto, diferenciando DTLS-SRTP de WebRTC del transporte SIP convencional. Corrige el encaminamiento inicial hacia extremos aprendidos tras NAT y añade duración configurable de bloqueo.

v1.3

Hash XXH3 y diagnóstico de tablas hash

Sustituye el hash de cadenas del núcleo por una implementación integrada XXH3-64, ajusta el tamaño de las tablas hash y añade core test hash para mediciones locales. Limita el índice de troncales por IP de origen a troncales con host estático para evitar identidades ambiguas tras NAT compartido.

v1.2.2

Correcciones de troncales realtime y registro

Reconoce troncales IP realtime aún no almacenadas en caché por la IP y el puerto de origen y usa el nombre de autenticación configurado en Digest. Ajusta nonce-count en REGISTER para teléfonos que reinician el contador, manteniendo comprobaciones más estrictas para métodos no idempotentes.

v1.2.1

Refuerzo de RTP, texto y DataChannel

Refuerza el análisis de informes RTCP, los límites de redundancia T.140, la validación de paquetes DTMF y las huellas DTLS. También sanea User-Agent en eventos AMI y limita los búferes de recepción DataChannel.

v1.2

Refuerzo de seguridad SIP y WebRTC

Refuerza las comprobaciones Digest, la autenticación de MESSAGE fuera de diálogo, la validación DTLS-SRTP y la secuencia DataChannel. Incluye validación estructural de oferta y respuesta SDP y ajustes de suscripciones, RTCP-mux y encaminamiento SIP; versiones posteriores refinan la compatibilidad y el tratamiento antirrepetición.

v1.1.2

Vídeo WebRTC bidireccional y correcciones de transporte

Añade vídeo WebRTC bidireccional con negociación compatible VP8/H.264 y retransmisión Opus sin transcodificar, junto con documentación ampliada. Corrige peticiones de troncales estáticas y realtime que antes ignoraban su transporte TLS/TCP/WS/WSS configurado.

v1.1.1

Ampliación del canal Sofia-SIP

Amplía el registro de troncales, SIP Outbound/Path/GRUU, respuestas provisionales, presencia, MWI, transferencia y diagnóstico, conservando las interfaces SIP existentes. Añade refuerzo TLS configurable y reorganiza el controlador en subsistemas, con correcciones de concurrencia y ciclo de vida.

v1.1

Controlador Sofia-SIP modular

Divide el controlador en archivos de subsistemas Sofia manteniendo un único módulo cargable. Añade publicación de presencia, autenticación de registro, mantenimiento de conexiones, controles TLS y comandos operativos de CLI, junto con correcciones de concurrencia.

v1.0

Primera versión pública etiquetada

Publica la primera base etiquetada de chan_sofia, conservando la tecnología de canal SIP, las interfaces CLI/AMI conocidas, usuarios realtime y funciones de dialplan. El trabajo de esta versión se centra en registro, llamadas y medios, además de bloqueos, cierre y recarga; la migración sigue requiriendo comprobar compilación, dependencias y configuración.

Algunas referencias antiguas son históricas. En particular, CHANGELOG.md no enumera todas las versiones actuales; esta actualización se ha contrastado con las releases, CHANGES, la wiki y la implementación.