Recommended Free Tools
Browser calling in a CRM works by running a SIP softphone inside the browser and sending only call setup (signaling) through the CRM’s backend. Voice audio takes a separate WebRTC media path, direct when the network allows it and through a TURN relay when it does not. In the walkthrough that Artem of Eurodoo published on DEV Community about FARA CRM, an open-source CRM built with FastAPI and React, this design lets an employee click a phone number in the CRM and talk in the browser, using an existing Asterisk or FreePBX system. The sections below cover the PBX settings, the signaling proxy, the browser code path, and the TURN fallback.
How the pieces fit together
The design uses two paths that never share a connection. The signaling path runs from the browser’s JsSIP client over WSS to a FastAPI WebSocket endpoint at /ws/sip, which forwards frames over a WebSocket to Asterisk. The media path carries encrypted RTP audio (DTLS-SRTP) between the browser and the PBX’s media endpoint. It goes directly when a route exists and through coturn when a relay is needed. The author’s stated rule is that the application web server never carries voice. In the author’s words: “The key idea: only SIP signaling goes through the backend.”
As an Amazon Associate I earn from qualifying purchases.
| Traffic | What it carries | Route in the author’s design |
|---|---|---|
| Signaling | SIP messages over a secure WebSocket | Browser, then CRM proxy, then Asterisk |
| Media | Encrypted RTP audio | Browser and PBX directly when possible; via coturn when UDP is blocked or NAT prevents a direct path |
PBX prerequisites
A conventional SIP extension is not enough for a browser. The author recommends enabling WebRTC on a PJSIP extension by setting webrtc=yes, which in their configuration turns on the DTLS, ICE and AVPF behavior that browsers expect.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsUse a separate extension for the browser
If the same employee also uses a desk phone, the author recommends a second extension for the browser client. The media settings for a hardware phone and a WebRTC client differ, so the write-up does not suggest sharing one extension between them.
#1 Best Overall
- Digital Stereo Sound: Fine-tuned drivers provide enhanced digital audio for music, calls, meetings and more
- Rotating Noise Canceling Mic: Minimizes unwanted background noise for clear conversations; the rotating boom arm can be tucked out of the way when you’re not using it
- Handy In-line Controls: Simple in-line controls on the headset cable let you adjust the volume or mute calls without disruption
- Plug-and-Play USB Computer Headset: Simply plug the USB-A connector into your computer and you’re ready to talk or listen without the need to install software
- Padded Comfort: Comfortable headphones with adjustable headband features swivel-mounted, leatherette ear cushions for hours of comfort and is easy to clean
Ports and firewall values
The author’s deployment uses two values. Both are defaults in that setup, and the PBX and firewall must be checked before reuse.
| Port or range | Purpose | Value in the author’s setup | What to check |
|---|---|---|---|
| TCP 8089 | Secure WebSocket (WSS) for SIP signaling | Default port | The port Asterisk or FreePBX actually listens on, and that the CRM proxy can reach it |
| UDP 10000–20000 | RTP media | Default range | That it matches the RTP range configured on the PBX and is open on the firewall |
Certificates and HTTPS
Browsers only grant microphone access in a secure context. The write-up therefore requires HTTPS for the CRM page and a trusted certificate on the WSS endpoint. Plan certificates for both hostnames before testing audio.
Rank #2
- High Quality Audio Experience - Made for calls and music, UH34 Wired Headset is kitted out with a high signal-to-noise ratio speaker and independent cavity design. The noise cancelling microphones creates a richer and clearer conversation with reduced background noise.
- Wide Compatibility– Certified by Microsoft Teams. Auto-configure once plugged in to be your default audio device. This carries over to your Microsoft Teams software or app allowing you to be up and going in seconds with your new headset.Also Compatible with Zoom Skype, Whatsapp, and the other popular online voice call services.
- LightWeight & Portable – Yealink UH34 USB Headset is just 5 oz, no matter in your case or bag, always convenient. The USB-A lets you connect the Yealink headset with your device, such as Computer PC or Laptop,Compatible with Win8/Win10/XP, or MacOS operating system.
- All-Day Wearing Comfort –Designed for all-day, everyday use with soft and breather foamy cushions. Plus, simply wearing them even so much noise, such as fitment voices, still keeps you comfortable and connected stable.The 6.89 ft (2.1 m) cable let you move freely.
- Yealink Headset: 2-year our dedicated technical support and customer service teams ensure reliable assistance.This Package including 1pcs headset , 1pcs cable, 1 pcs collecting bag, 1 pcs user manual, More than 2,000,000 users have a good conference experience with YEALINK, Redefine Your Workspace.
The FastAPI signaling proxy
For each WebSocket connection, the proxy does four things before any SIP frame moves:
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →- authenticates a token for the logged-in CRM user;
- resolves the connector, meaning which PBX the request targets;
- checks that the user owns a line on that PBX;
- obtains the PBX WebSocket endpoint and forwards frames in both directions.
The author gives three reasons for routing signaling through the CRM instead of letting the browser connect straight to the PBX: the PBX endpoint stays behind the CRM domain, the design fits the site’s connection policy, and access control is enforced in one place.
Rank #3
- Crystal - Clear Audio: Our headset features a 150 - ohm speaker, engineered to deliver pristine voice quality. Every word comes through loud and clear, ensuring seamless communication. Paired with a noise - proof microphone, it filters out background noise, enhancing voice clarity for both you and the person on the other end of the line.
- Universal Compatibility: Designed to work with most telephones in call centers, compatibility issues are a thing of the past. There's no need to fuss with installation drivers. It auto - identifies and supports hot - plugging, so you can get up and running in seconds.
- All - Day Comfort: Thanks to its compact appearance and human - engineering design, this headset is a breeze to wear. The headset clip can be freely stretched to fit any head size comfortably, allowing for uninterruptible use throughout long work shifts.
- Convenient Controls: Take control of your audio experience with external volume control. Adjust the volume in 25 digital levels for the headset speaker. The external intelligent mute button, complete with an LED indicator, provides easy - to - see status updates.
- Simple Setup: Just plug directly into your headset - ready telephone! Insert the modular plug into the headset jack on your phone, and you're good to go. The adjustable microphone with noise - cancellation technology further refines voice clarity, making this headset an essential tool for any call center professional.
The sip subprotocol
The proxy must accept and echo the sip WebSocket subprotocol. The author reports that when this is omitted, the browser closes the connection. If registration drops immediately after the socket opens, check this first.
The browser softphone
The frontend runs the softphone with JsSIP. The author’s code path runs in this order:
Rank #4
- Exceptional call quality - Revel in crystal-clear conversations with the Lenovo USB-A Wired Stereo Headset Gen 2. Powered by Lenovo Accessories and Device Manager (LADM) software that enhances noise-cancelation, ensuring clarity even in the busiest environments.
- Effortless controls - No more fumbling with complicated settings. This headset’s intuitive control box simplifies your life with easy access to call functions, volume, and mute, allowing you to stay focused and productive.
- Supreme comfort - At just 140 g, experience the featherlight embrace of thoughtfully designed earcups. Relish the perfect blend of function and comfort that supports you through every task, making this headset a transformative addition to any professional’s toolkit.
- USB-A Plug & Play Compatible with: Teams, Zoom, Google Meet (Hangout), Google Voice, Slack, GoTo Meeting, WeChat, Cisco Webex
- Create a JsSIP WebSocket interface that points at the CRM proxy, not at Asterisk.
- Construct a JsSIP user agent with the line’s SIP URI and credentials.
- Register and start the user agent.
- For an outbound call from a CRM phone number, place the call with audio constraints and video disabled, passing the ICE server configuration the backend returns.
- For an inbound call, listen for
newRTCSessionand answer with the session’sanswer()method. - When the employee answers, the CRM opens the client card for the caller.
TURN fallback and relay protection
TURN is a fallback, not the normal path. It is needed on restrictive NAT, on mobile or corporate networks, and wherever UDP is blocked. The author runs coturn beside the CRM in Docker Compose.
Short-lived credentials
The backend generates short-lived TURN credentials from a shared secret and returns UDP and TCP relay endpoints. The TCP option matters when UDP is blocked outright.
Best Value
- Microsoft Teams Certified & UC Optimized: Ensure crystal-clear communication with Microsoft Teams Open Office certification and UC platform compatibility, perfect for hybrid workspaces and virtual meetings. Use of USB-A receiver required for all Microsoft Teams functionality.
- Bluetooth 5.3 & Multipoint Technology: Seamlessly switch between two devices with dual Bluetooth connections or use the USB-A receiver for plug-and-play convenience
- Advanced Noise Cancellation: Three-mic noise suppression technology blocks distractions, delivering unmatched audio clarity for professional calls or casual gaming
- Ergonomic & Lightweight Design: At only 140g, the headset features adjustable memory foam earcups and a flexible headband for extended comfort during long workdays or gaming sessions
- Unmatched Battery Life: Stay powered with up to 31 hours of talk time or 60 hours of music playback on a single charge, ensuring productivity and entertainment without interruptions
Constraining the relay
The author’s sample coturn configuration does three things: it enables shared-secret authentication, disables the command-line interface, and blocks private and loopback address ranges as relay destinations, so the relay cannot be used to reach private networks. If Asterisk sits on the same private network as the relay, the author says to allow its address explicitly. The write-up presents this configuration as an illustration, and the ranges need review against your own network.
Design choices and their trade-offs
| Decision | Option the author chose | Alternative | Reason given or implied |
|---|---|---|---|
| Media path | Direct WebRTC media, with TURN only when needed | Relaying all audio through TURN | Direct media keeps the relay and application server out of the audio path in the common case |
| Signaling route | Backend proxy to the PBX | Browser connects straight to the PBX WebSocket | The proxy enforces per-user line access and keeps the PBX behind the CRM domain |
| Extension for a browser user with a desk phone | Separate browser extension | Reusing the desk-phone extension | Media settings differ between the two, per the author |
What this account does not establish
- It gives no software versions for Asterisk, FreePBX, JsSIP, coturn or FARA CRM, so compatibility must be checked against your own releases.
- It includes no browser compatibility matrix.
- It describes no test method and reports no call-quality or reliability measurements.
- The production use it describes is the author’s own report and has not been independently verified.
The walkthrough itself is at DEV Community, published by Artem (Eurodoo).
The Bottom Line
This pattern suits a CRM team that already runs Asterisk or FreePBX, can enable WebRTC on a PJSIP extension, and is willing to operate a signaling proxy and, where networks require it, a TURN server. Its main advantages are that the CRM controls which user reaches which line and that voice never passes through the application server. A USB headset with a microphone is a practical optional accessory for browser audio, though the write-up does not test or recommend a specific model.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




