DEV Community

Tahir Almas
Tahir Almas

Posted on • Originally published at ictpbx.com

No App, No Desk Phone: Making Calls in the Browser With the ICTPBX WebRTC Softphone

Originally published at ictpbx.com

You don't need a desk phone or a desktop app to make a call on ICTPBX. Open a browser tab, log in, and you get a full softphone: dial pad, hold, transfer, mute, DTMF, and pop-ups for incoming calls. It runs on WebRTC, so the browser is the phone. For hosted PBX users in 2026, that's exactly what they expect, and it's a live feature today.

What browser calling means for your PBX software

For years, softphones meant installing something: a desktop client, drivers, sometimes a plugin. Every install was a support ticket waiting to happen. WebRTC removed that. Modern browsers can capture the mic, negotiate media, and carry real-time audio natively, so a well-built PBX can put a working phone inside a tab.

ICTPBX is multi-tenant, white-label IP PBX software, and the WebRTC softphone is a first-class part of it. New users don't download anything. An admin creates the extension, the user signs in, and they're taking calls. That single change removes the biggest friction point in rolling out hosted PBX to a distributed team.

  • Dial pad for outbound calls, no handset required.
  • Hold and transfer so users manage calls like they would on a desk phone.
  • Mute and DTMF for muting audio and navigating IVR menus.
  • Incoming call pop-ups that surface the call right in the browser.

How the WebRTC softphone works under the hood

The softphone uses JsSIP, a SIP library that runs in the browser, talking over a secure WebSocket (WSS) to FreeSWITCH. SIP signaling, the messages that set up, ring, and tear down a call, travels over that encrypted WebSocket. The audio itself flows as an encrypted media stream between the browser and the media server.

ICTPBX runs on ICTCore plus FreeSWITCH with an Angular portal, and the softphone lives inside that portal. When you sign in, JsSIP registers your extension with FreeSWITCH just like a hardware phone would. From there, FreeSWITCH handles routing, so a browser call and a desk-phone call behave identically inside the same PBX.
Browser to FreeSWITCH over WSSBrowser tabJsSIP softphone(Angular portal)FreeSWITCHmedia and routing(ICTCore)SIP signaling over secure WebSocketEncrypted audio media streamRegisters like anySIP extensionJsSIP carries SIP over WSS to FreeSWITCH, with an encrypted audio stream alongside it.

Why this matters for multi-tenant onboarding

In a multi-tenant deployment, you're onboarding many separate organizations, each with their own users. If every user has to install and configure a client, onboarding drags and support load climbs with every new tenant. Browser calling collapses that. A tenant admin provisions extensions, users open a URL, and the tenant is live.

ICTPBX pairs the softphone with zero touch provisioning, so the path from new account to first call is short. And because ICTPBX is designed so one platform hosts many customers, that low-friction onboarding scales across every tenant without a separate rollout each time.
Onboarding: install path vs browser pathTraditional softphoneDownload clientInstall and configureEnter SIP credentialsFirst callICTPBX WebRTC softphoneOpen browser tabSign inFirst callFewer steps, no support ticketBrowser calling cuts the steps between a new user and their first call.

Install it as a PWA, and what's still rolling out

If your users want the softphone to feel like a native app, ICTPBX installs as a Progressive Web App. That gives them an icon on the desktop or home screen and a standalone window, while still running the same browser engine underneath. No app store, no separate build, just an install prompt from the browser.

One thing to be clear about: the AI Voice Agent is an optional Enterprise add-on that's still rolling out. It isn't part of the standard softphone, so don't plan around it as a default. The WebRTC softphone itself is live and shipping now, which is what makes browser calling something you can deploy today.

Frequently Asked Questions

Do users need to install anything to use the ICTPBX softphone?

No. The softphone runs in a standard browser tab. Users sign in to the Angular portal and start calling. If they prefer an app-like experience, they can install it as a PWA, but that's optional.

Which browsers support the WebRTC softphone?

Any modern browser with WebRTC support handles it, which covers current versions of the mainstream browsers. The user grants microphone permission once, and the softphone registers with the PBX from there.

Is the call audio encrypted?

Yes. SIP signaling runs over a secure WebSocket (WSS), and the media stream between the browser and FreeSWITCH is encrypted. Browser calls get the same protection you'd expect from a properly configured SIP endpoint.

Can browser calls transfer to desk phones or other extensions?

Yes. Because the softphone registers as a normal SIP extension on FreeSWITCH, it can hold, transfer, and route to any other extension in the tenant, whether that's another browser user or a hardware phone.

Does the softphone include the AI Voice Agent?

No. The AI Voice Agent is an optional Enterprise add-on that's still rolling out. The WebRTC softphone is a separate, live feature. Treat the AI add-on as something to evaluate later, not a standard part of the softphone.

If you're evaluating PBX software and want your users calling from day one without installs, take the ICTPBX WebRTC softphone for a spin and see how quickly a new tenant gets on the phone.

Top comments (0)