Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk5 min

How to Add Browser Calling to a CRM with Asterisk and WebRTC

A walkthrough of browser calling for an open-source CRM: a JsSIP softphone, a FastAPI signaling proxy, WebRTC media on Asterisk, and a TURN fallback.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use 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
Sale
Logitech H390 Wired Headset PC/Laptop Stereo Headphones, USB-A, Black | For PC/Laptop, stereo headphones, microphone, in-line controls, works with Chromebook
  • 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
Yealink UH34 Lite Wired Headset,USB-A, Noise Canceling Mic,in-Line Controls
  • 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:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • 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
TriPro Monaural USB VoIP Headset for Computer Internet Calls, VoIP Communication, Skype, Webinar, Softphone, Call Center with Noise Cancelling Microphone and Volume Adjuster
  • 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
Sale
Lenovo USB-A Wired Stereo Headset for PC/Laptop, AI Noise Canceling via APP, 140g Lightweight, Replaceable Earcups, Double-Sided Boom Mic, in-line Controls with Mute for Call. Work with Teams/Zoom
  • 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
  1. Create a JsSIP WebSocket interface that points at the CRM proxy, not at Asterisk.
  2. Construct a JsSIP user agent with the line’s SIP URI and credentials.
  3. Register and start the user agent.
  4. 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.
  5. For an inbound call, listen for newRTCSession and answer with the session’s answer() method.
  6. When the employee answers, the CRM opens the client card for the caller.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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
Sale
Lenovo Wireless VoIP Headset Teams Certified, Noise-Canceling Mic, Bluetooth 5.3 Multipoint, USB-A Receiver, 31-Hour Talk & 60-Hour Playback, Lightweight Over-Ear Design, Replaceable Earcups
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.