Getting started
Everything you need to go from sign-up to users on the phone, usually in under an hour.
Quick start
Stylish Softphone connects to your existing WebRTC-enabled PBX. Here's the 3-step overview:
Create an account at app.stylishsoftphone.com/register. Your admin portal is immediately available, no configuration needed before you can start adding users.
In Admin → PBX Settings, enter your SIP domain and WebSocket URI. Stylish Softphone will use these to register each user's JsSIP UA when they log in.
Add users in Admin → Users & Extensions. Assign an extension, set their SIP username and password, and send the invite. They log in at your portal URL; no SIP config, no app install.
That's it. Users open the link in any modern browser and the phone registers automatically using their stored credentials.
Prerequisites
Stylish Softphone works with any Asterisk-based PBX that has chan_pjsip with WebRTC transport enabled. This includes:
- FreePBX / Sangoma: 15+, with the WebRTC module or manual pjsip transport
- FusionPBX: any recent version with chan_pjsip + TLS/WSS transport
- VitalPBX: WebRTC companion module recommended
- Vanilla Asterisk: 16+ with pjsip.conf WSS transport configured
- OpenSIPS: with WebSocket module enabled
chan_sip is not supported. The legacy chan_sip driver does not support WebRTC. Your PBX must be using chan_pjsip with a WSS (WebSocket Secure) transport.
Network requirements
- TLS certificate on your PBX domain (Let's Encrypt works fine)
- WebSocket port open (default: 8089 on Asterisk)
- STUN/TURN server configured if users are behind NAT (Google STUN works for most cases)
- Port 443 or an alternate WSS port accessible from client browsers
PBX setup (FreePBX example)
If you're using FreePBX, the fastest path is to use the Advanced Settings → SIP Settings (PJSIP) panel to enable a WSS transport, then create extensions with the WebRTC codec checkbox enabled.
pjsip.conf transport stanza
If you're configuring Asterisk directly, add a WSS transport to your pjsip.conf:
Extension endpoint stanza
Setting webrtc=yes on an endpoint automatically enables ICE support, DTLS-SRTP, and rtcp-mux, all required for WebRTC media.
Provisioning users
Once your PBX connection is saved in Admin → PBX Settings, navigate to Admin → Users & Extensions to add your users.
Adding a user manually
- Click Add User
- Enter the user's name and email address
- Assign an extension number (must match what's configured on your PBX)
- Set a SIP username and password (or use the auto-generate button)
- Click Send Invite to email the user their login link and credentials
The user clicks the link, logs in with their email and the temporary password you set, and the softphone registers automatically using the stored SIP credentials; no SIP knowledge required on their end.
Setting a park range
In Admin → PBX Settings, set your Park Range Start and Park Range End to match the park extension range configured on your PBX (e.g., 701–706). Park slots will then appear in each user's BLF panel automatically.
BLF & park configuration
BLF (Busy Lamp Field) keys are provisioned automatically; every user added to your tenant appears as a BLF key for all other users. The softphone subscribes to each extension's presence via SIP SUBSCRIBE/NOTIFY.
Quick dials
You can add Quick Dial presets (name + extension) in the user's Settings panel within the softphone. These appear in the BLF panel as one-click dial buttons. They're stored in user preferences server-side.
BLF subscriptions are scoped to your PBX domain. Make sure your PBX allows SUBSCRIBE requests from the softphone's WebRTC UA (no extra ACL configuration is usually needed for chan_pjsip).
White-label settings
White-label branding is available on the Pro plan. Navigate to Admin → White-Label to configure:
- Company name: shown in the top bar and invite emails
- Logo: upload a PNG/SVG, or use the phone icon with a custom color
- Custom domain: point your DNS CNAME to
app.stylishsoftphone.com/registerand enter the subdomain here. SSL is provisioned automatically. - Color theme: choose the accent color for BLF keys, buttons, and badges
Once a custom domain is configured, your users land on phone.yourcompany.com with no Stylish Softphone or Answer Anywhere branding visible anywhere in the UI.
FAQ
Why won't my extension register?
The most common cause is a WebSocket connectivity issue. Check:
- WSS port is open in your firewall (typically 8089 or 443)
- TLS certificate is valid and not self-signed (browsers block WebSocket connections to untrusted certs)
- The SIP domain in Admin → PBX Settings matches the hostname in your pjsip.conf cert exactly
Audio works one-way: what's wrong?
One-way audio is almost always an ICE/STUN negotiation failure due to NAT. Add a STUN server to your pjsip.conf ice_host_candidates or set up a TURN server. Google's public STUN (stun:stun.l.google.com:19302) resolves most cases.
Can I use a self-signed certificate for local testing?
Technically yes, but you'll need to add a browser exception for the WebSocket WSS URL first. For production, always use a publicly trusted cert (Let's Encrypt is free and works perfectly).
How many BLF subscriptions can I have?
Up to 100 BLF keys per user. The softphone subscribes to each extension individually via SIP SUBSCRIBE.