Browser softphone setup
The softphone is the floating widget in Praxi that lets you receive calls and place outbound calls without a desk phone. It uses the Twilio Voice JavaScript SDK and runs entirely in your browser — no software install.
Browser support
| Browser | Status | Notes |
|---|---|---|
| Chrome / Edge (desktop) | Full | Primary target. Use this for production reception. |
| Safari (desktop) | Partial | WebRTC + AudioWorklet have known limitations. Banner shown. |
| Firefox | Partial | Some codec quirks. Banner shown. |
| Mobile Safari / Chrome | Limited | Background tabs cut audio. Keep the tab in the foreground. |
For consistent reception experience, use Chrome on a desktop machine.
Microphone permission
The softphone needs microphone access. The first time you receive or place a call, the browser will prompt you for permission. If you accidentally deny:
- Click the lock icon in the address bar.
- Set Microphone to Allow.
- Reload the page.
If the prompt never appears, your browser may have a global mic block (System Settings → Privacy & Security → Microphone on macOS; Windows Settings → Privacy → Microphone).
Receiving calls
When a call comes in:
- The softphone widget pops up at the bottom-right.
- The caller's E.164 number displays, plus a client snippet if the CallerLookup node matched the number to a client.
- Click Answer to take the call, Reject to send it to the next ringdown target, or wait — the call will time out per the flow's settings.
The widget shows mute, hold, hang-up, and a dialpad for IVR navigation.
Placing outbound calls
Two paths:
- From the client record, click the phone icon next to the client's phone number. The call shows up in the client's history automatically.
- From the softphone widget, type any E.164 number into the dialpad.
Outbound calls are billed to the practice — they show up on your Twilio invoice at the per-minute rate above.
Multi-tab behaviour
If you sign in to Praxi in multiple browser tabs, the softphone follows the most-recently-registered tab. When you open a new tab:
- The new tab's softphone activates.
- The old tab's softphone shows a "Softphone moved to another tab." banner with a Reclaim button.
- Calls will ring on the new tab only.
This avoids the "every tab rings simultaneously" anti-pattern. Click the "reclaim" banner to switch back to an older tab.
Presence and ring priority
Open Settings → AI Phone → Receptionists to set:
- Accept inbound — toggle to opt out of ringdown for the rest of the day.
The settings take effect on the next inbound call.
What the softphone cannot do (yet)
- iOS / Android native softphone — deferred to v1.1. Practitioners can use the web app on mobile Safari/Chrome in the meantime, with the foreground-tab caveat above.
- Multi-line concurrency (Hold-A-Answer-B with queue parking) — deferred to v1.2 ("Call Centre").
- Recording / voicemail capture pipeline — deferred to v1.1; the data model is shipped, the playback UI is gated on the capture pipeline landing.