Repository navigation
SIPBXGO 1.0: the "personal server" edition. A small, self-hosted SIP PBX for extension-to-extension calling between phones anywhere on the internet. It's one Go binary in a small Docker container, with one SQLite file for state.
This version is deliberately small, and complete for its job: family homes, a WAN office, or a pop-up location, connected through a VPS.
What's in 1.0
Calling
- Extension-to-extension calls, with audio relayed through the server, so phones behind NAT work with no router, STUN or ICE setup.
- Several phones per extension: all ring, and the first to answer wins.
- Hold with hold music: a generated, royalty-free loop, or your own WAV. The PBX handles hold itself, so it works the same with every phone.
- Conference rooms: dial a room number to join. Optional PIN (keypad tones in-band or by SIP INFO), join/leave chimes, and music while you're alone in the room.
- DTMF, busy, decline, no-answer and cancel all behave properly.
- Call history.
Security
- Digest authentication on registrations and calls. Caller ID can't be spoofed between extensions.
- Encrypted calls: SIP over TLS with SRTP audio. The certificate is shared from Traefik's Let's Encrypt
acme.jsonor read from PEM files, and renewals are picked up automatically. - A per-extension Require encryption switch.
- Auto-ban of password guessers and SIP scanners; banned IPs get no response at all.
- Web UI: bcrypt admin passwords, hashed session tokens, login lockout, CSRF protection, and a strict CSP.
Management
- A web UI with a live dashboard, extensions (with a copy-paste phone setup card), conference rooms, call history, and security (bans and certificate status).
- A CLI for everything:
ext,room,reg,call,admin.
Tested with Poly/Obihai OBi phones (UDP and TLS/SRTP) and Linphone on iOS, both on and off network. The test suite runs full SIP calls end to end under the race detector.
Install / upgrade
See the README for the step-by-step install, phone setup, configuration reference and troubleshooting. Upgrading from any earlier build is git pull && docker compose up -d --build; the database migrates itself.
Deliberately not in 1.0
- No outside line (no trunks, no calls to or from the phone network).
- No voicemail, call transfer, busy lamps (BLF), or phone auto-provisioning.
- No video.
Next: the "Small Org" edition
A future version for bigger groups is planned, with voicemail, call transfer (blind and attended), busy lamp fields, phone auto-provisioning (OBi config files, Linphone QR codes), and more. v1.0.0 stays here as the lean personal-server baseline to return to or build from.