Configure Rocket.Chat Voice via Standard WebRTC

Prev Next

The standard WebRTC configuration provides the simplest path to enabling voice calls directly within your Rocket.Chat workspace. It leverages the built-in WebRTC capabilities of modern browsers, allowing users to make real-time voice calls without any external telephony system or SIP infrastructure.

This setup is ideal for teams that want a fast, lightweight voice solution for internal communication. Once enabled, users can make and receive calls directly inside Rocket.Chat rooms , allowing real-time voice collaboration to happen where conversations already live.

This guide explains how to enable and configure Team Voice Calls for in-app, internal communication using the standard WebRTC configuration.

How WebRTC works: peer-to-peer connectivity

Team Voice Calls rely on WebRTC to establish a direct, peer-to-peer media link between the users' browsers. The primary technical challenge for any peer-to-peer communication is Network Address Translation (NAT), as users are often behind different firewalls and private networks.

To overcome this, a crucial component known as the ICE (Interactive Connectivity Establishment) server is required to negotiate a reliable network path for a direct connection. It includes:

  1. STUN (Session Traversal Utilities for NAT): It assists a client in finding its own public IP address and port when behind a NAT. This allows clients to attempt a direct, low-latency connection.

  2. TURN (Traversal Using Relays around NAT): When a direct peer-to-peer connection is impossible (e.g., due to highly restrictive firewalls), the TURN server acts as a relay, routing the entire media stream between the two users to guarantee the call connects.

Rocket.Chat does not include or provide STUN or TURN servers. You are responsible for deploying, configuring, and providing the addresses for these servers to ensure reliable connectivity, particularly in complex or air-gapped network environments. For basic testing, you may use publicly available STUN servers.

Prerequisites

Before you begin, confirm 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 Team Voice Calls 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.

  1. In your Rocket.Chat workspace, navigate to Administration > Workspace > Settings > Team Voice Calls.

  2. Enable Team Voice Calls.

  3. Go to WebRTC settings and update the following fields:

    Field

    Description

    Ice Servers

    A comma-separated list of STUN and/or TURN servers used to gather network address candidates for Voice calls.

    Use the format: [username:password@]stun:host:port   or [username:password@]turn:host:port .

    Usernames and passwords may be HTML-encoded. Only one working address is needed for a call, but all configured servers are contacted before the call starts.

    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.

  4. Click Save Changes.

After saving the configuration, your workspace is now ready to handle voice calls using the standard WebRTC engine.

Next steps

After successfully configuring your WebRTC settings, the next step is to Set up Team Voice Call Permissions  to define which users have access to the calling features. Once permissions are set, users can refer to the Team Voice Calls User Guide to start making calls within Rocket.Chat.