PBX

PBX — WebRTC Softphone and Browser Calling

Overview

The SipLive softphone enables calls from any modern web browser using WebRTC. No software install needed. Signaling uses SIP over WebSocket (WSS); media uses SRTP.

How It Works

  1. Browser connects to wss://<pbx-host>:8089/ws.
  2. Authenticates using the extension's -wss endpoint credentials.
  3. Incoming calls arrive as SIP INVITE over WebSocket; browser handles audio via WebRTC API.
  4. Media flows as SRTP between browser and PBX.

Requirements

  • Valid CA-signed TLS certificate — Browsers reject self-signed certs for WSS.
  • SRTP enabled on the WSS endpoint — WebRTC mandates encrypted media.
  • Separate -wss endpoint and auth — Sharing auth between UDP and WSS causes silent failures.
  • Port 8089/TCP open in the firewall.
  • Modern browser — Chrome 80+, Firefox 78+, Edge 80+, Safari 14+. Microphone permission required.

WSS Endpoint Settings (ps_endpoints)

  • transport = transport-wss
  • media_encryption = sdes
  • webrtc = yes
  • dtls_verify = no

These are set automatically when creating a WebRTC extension via the admin portal.

Opening the Softphone

Users click the Phone button in the portal nav bar. It opens in a popup, auto-registers, and stays active while open. Browser notifications alert for incoming calls.

Troubleshooting

  • Connection refused on 8089 — Check asterisk.conf [http] has enabled=yes and firewall allows TCP 8089.
  • Registered but no audio — Verify RTP ports 10000–20000 are open and SRTP is negotiating.
  • 401 on WSS — The -wss endpoint is missing its own ps_auths row.
  • One-way audio — NAT issue. Set external_media_address and external_signaling_address to the PBX's public IP.