-
Notifications
You must be signed in to change notification settings - Fork 2
Home
GABPBX is a GPLv2 open source PBX based on the Asterisk architecture and maintained as the Germán Aracil Boned PBX project.
This wiki documents GABPBX as a system: architecture, modules, configuration, operation and implementation notes taken from the source tree.
The current release is GABPBX 1.4.2. It completes chan_sofia as a broad,
production-grade, drop-in replacement for chan_sip, and delivers reliable
two-way WebRTC media — DTLS-SRTP, an ICE-lite STUN responder, rtcp-mux,
BUNDLE and RTCP keyframe feedback — so a browser can register, call, be called,
hold and resume over secure WebSocket with audio and video, no pjproject and
no libnice in the tree.
A modern SIP channel driver built on the Sofia-SIP NUA stack. Drop-in for
chan_sip (same SIP channel, sip show … CLI, SIPpeers AMI, sippeers
realtime), with capabilities chan_sip never had:
- Registration: SIP Outbound (RFC 5626), Path (RFC 3327), Service-Route (RFC 3608), GRUU.
- Presence/voicemail: outbound PUBLISH (RFC 3903), generic outbound SUBSCRIBE, an outbound MWI watcher, solicited and unsolicited MWI, presence/BLF dialog-info.
- Signaling: PRACK/100rel (RFC 3262), in-dialog UPDATE (RFC 3311), Q.850 Reason (RFC 3326), REFER transfer (blind and attended), out-of-dialog MESSAGE.
- Media: SRTP/SDES (RFC 4568), DTLS-SRTP (RFC 5763/5764), WebRTC audio and two-way video, Opus passthrough, T.38 fax with a state machine.
- Security: mutual TLS, TLS hardening, SHA-256 digest auth, a local anti-abuse SIP blacklist.
-
Diagnostics: per-call SIP history with verbose call analysis, plus a
richer
sip …CLI.
Start at Chan-Sofia, then Features for the full catalogue, WebRTC for the browser story, Migrating-from-chan_sip for the swap, and Security for the hardening posture.
-
WebRTC call hold/resume works end to end. Pressing Hold on a WebRTC phone
no longer tears the call down, and video resumes by itself on unhold, exactly
like audio — in every combination of WebRTC and desk-phone endpoints, on
either side of the call. Five fixes: the SDP answer now mirrors the offered
per-media direction (RFC 3264 §6.1); answers mirror every offered m-line
using the current offer/answer transaction role (RFC 3264 §6); the fork-winner
handover preserves the SDP stream identity (
cname/msid, RFC 7022/8830); negotiated video payload types survive renegotiation (RFC 3264 §8.3.2); and RTCP keyframe feedback (PSFB PLI/FIR, RFC 4585/5104) is implemented end to end — advertised asa=rtcp-fb, relayed across the bridge, and transmitted SRTCP-protected over the ICE-selected tuple. See WebRTC.
- WebRTC fork-winner media fix. When a call forks to an extension registered from both a browser (wss) and a desk phone (udp) and the browser answers first, the call now carries two-way audio and video (previously the winning leg's DTLS never completed because stale media descriptors starved its socket). See WebRTC.
-
Native peer-to-peer SIP text messaging. An out-of-dialog
MESSAGEbetween two registered users is delivered to the recipient's live devices, resolved through the same auto-created hint namespace as BLF and fanned out to every registered contact (RFC 3428). New optionmessage_autorelay(default on); themessage_contextdialplan route remains available as a fallback. See Features.
- Reliable WebRTC audio. The ICE media tuple is now latched on every integrity-authenticated connectivity check, not only the nominated pair, removing intermittent one-way audio and the 10–20 s startup gap and making inbound calls to a browser come up cleanly (RFC 8445 / RFC 7675). See WebRTC.
-
Bundled WebRTC video. A new option
webrtc_video_bundle(per-peer and[general], default off, requireswebrtc=yes) carries audio and video over a single ICE/DTLS transport with payload-type demux and the RTP MID header extension (RFC 8843 max-bundle, RFC 8285). See WebRTC. -
Per-Contact registration. Each Contact in a REGISTER now binds, refreshes
and de-registers independently with its own
;expires(RFC 3261 §10.3), and a call to a peer whose bindings have all expired returnsCHANUNAVAILinstead of routing to a stale binding. See Chan-Sofia. -
DTMF parity with
chan_sip. The negotiated DTMF mode is reflected end to end: telephone-event is advertised only for RFC 2833 modes,dtmfmode=autoresolves at SDP commit with a fax-safe detector reconfigure, and inbound SIP INFO signals are parsed. See Features. -
TLS 1.2 accepted by default.
tls_min_versionnow defaults to TLS 1.2 (1.2 and 1.3) instead of 1.3-only, so endpoints that cap at TLS 1.2 connect. See Security. -
Live decrypted SIP capture.
sip_capture_addressstreams every decrypted SIP message (udp/tcp/tls/ws/wss, with SDP) as HEP to a Homer/sipcapture server,sip_capture_filewrites the same to a text file, andrtp set debug ice/sip set debug forkadd targeted tracers. See Operations.
-
Inbound WebRTC calls now connect. A call placed to a wss-registered
browser (GABPBX as the SDP offerer) comes up with two-way audio, alongside the
already-working browser-originated calls. Two RFC-grounded fixes make it work:
an ICE role-conflict repair (GABPBX replies
487 Role Conflictso the browser flips to controlling and nominates a pair, RFC 8445), and deferring inbound DTLS until the answer'sa=fingerprintis installed instead of failing closed (RFC 5763/8842). Rejected video tears down only its own pre-armed DTLS/ICE and never drops the audio call. See WebRTC. -
SDP/ICE diagnostics.
sip set debug sdp [on|off]traces the generated offer SDP, the WebRTC offer-gate decision, the incoming answer SDP and the offerer answer-apply path — the WSS/TLS signalling already decrypted. EverySofia: …debug line now carries a[from-user|to-user|callid]transaction tag. See Operations.
- WebRTC media is no longer roadmap. Two WSS browsers can hold a real two-way audio call, with two-way video (VP8/H.264) on top. See WebRTC.
- Opus relays without transcoding. Three core fixes (codec selection, the 48 kHz clock rate, and the RTP smoother) let a both-Opus call pass through cleanly. See Features → Opus.
- The full
chan_sofiaSIP and media catalogue is documented one feature at a time in Features.
-
Chan-Sofia - the Sofia-SIP based SIP channel driver and
chan_sipreplacement. -
Features - the complete
chan_sofiacapability catalogue, one by one. - WebRTC - browser SIP over WSS, DTLS-SRTP, ICE-lite, audio and video.
- Migrating-from-chan_sip - the two-line swap and what carries over.
- Security - the security and robustness posture.
- Architecture
- Build-and-Installation
- Module-Families
- Channel-Drivers
- Applications
- Dialplan-Functions
- Codecs-and-Formats
- Realtime-and-Resources
- CDR-CEL
- PBX-and-Bridges
- Operations
Documentation in this wiki follows the source code first. When a behavior is uncertain, the source file and sample configuration are authoritative.
SIP — chan_sofia
Subsystems
Realtime & data
Operations