The Rocket.Chat Voice is currently in beta. Report any issues to Rocket.Chat support.
The standard WebRTC configuration offers the simplest way to enable voice calls directly within your Rocket.Chat workspace. It uses the built-in WebRTC capabilities of modern browsers, allowing users to make and receive voice calls without needing external telephony or SIP infrastructure. It’s ideal for teams that want a quick and easy voice call solution for internal communication.
This guide explains how to enable and configure Rocket.Chat Voice for intra-workspace calls using the standard WebRTC configuration.
How Rocket.Chat Voice Works with WebRTC
Rocket.Chat Voice uses WebRTC to establish a secure, direct, peer-to-peer media link between the calling and receiving users’ browsers. Once this connection is successfully negotiated, it enables the exchange of audio data directly between users.
The Rocket.Chat server acts as a signaling server, managing the call setup process. It coordinates the call request, notifies the recipient, and facilitates the exchange of WebRTC parameters (such as ICE candidates) for connection negotiation. After signaling is complete, the two user clients establish a direct peer-to-peer WebRTC connection, allowing them to exchange audio without the Rocket.Chat server ever handling or relaying the media stream.
Overcoming network challenges (NAT traversal)
One of the main technical challenges in peer-to-peer communication is Network Address Translation (NAT), since users are often located behind firewalls or private networks. NAT can prevent browsers from discovering each other’s real network addresses, making direct communication difficult.
To ensure a reliable connection, Rocket.Chat strongly recommends servers for ICE (Interactive Connectivity Establishment) to negotiate a network path. ICE includes two key servers:
STUN (Session Traversal Utilities for NAT): Helps a client discover its own public IP address and port when behind a NAT, allowing it to attempt a direct, low-latency connection to another peer.
TURN (Traversal Using Relays around NAT): When a direct P2P connection is impossible (e.g., due to restrictive firewalls), the TURN server acts as an audio relay, routing the entire media stream to guarantee the call connects.
By default, STUN is enabled using the public service provided by Google. It is recommended to configure your own STUN/TURN servers and provide their addresses in the ICE Servers settings for better control and reliability.
Prerequisites
Before you begin, confirm you have the following:
An active Enterprise plan. If you don’t have one, request a trial or contact the Sales Team to purchase a license.
The Rocket.Chat Voice add-on is enabled on your workspace.
Configure WebRTC settings
Once the prerequisites are met, the next step is to configure the WebRTC network settings in your workspace.
In your Rocket.Chat workspace, navigate to Administration > Workspace > Settings > Team Voice Calls.
Enable Team Voice Calls.
Go to WebRTC settings and update the following fields:
Field
Description
Ice Servers
Enter a comma-separated list of STUN and/or TURN servers used to gather network address candidates for Voice calls. Only one working address is needed for a call, but all configured servers are contacted before the call starts.
Format:
[username:password@]stun:host:portor[username:password@]turn:host:port.Usernames and passwords may be HTML-encoded.
By default, STUN is enabled using the public service provided by Google.
ICE Gathering Timeout
Specify how long (in milliseconds) the system should wait for ICE candidate gathering to complete before starting a call.
A longer timeout ensures TURN servers have time to respond, but may delay call setup. For local or STUN-only setups, a shorter timeout may reduce call startup delays.
Click Save Changes.
After saving the configuration, your workspace is now ready to handle voice calls using the standard WebRTC engine.
Next steps
After configuring WebRTC, Set up Rocket.Chat Voice Permissions to define which users can access calling features. Once permissions are set, end users can follow the Rocket.Chat Voice User Guide to start making calls.