Skip to content

SIPBXGO 1.0.0: the personal server edition

Latest

Choose a tag to compare

@JustSparx JustSparx released this 24 Sep 20:59
· 13 commits to main since this release
476849a

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.json or 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.