Configure Rocket.Chat Voice via SIP Integration

Prev Next

The Rocket.Chat Voice  is currently in beta. Report any issues to Rocket.Chat support.

By default, Rocket.Chat uses WebRTC for peer-to-peer calls between users within the workspace. While this is ideal for intra-workspace calling, it does not support calls to or from the Public Switched Telephone Network (PSTN). The SIP Integration extends Rocket.Chat's capabilities beyond intra-workspace calling to an enterprise-grade telephony. This advanced approach allows organizations to route all Rocket.Chat voice calls through a controlled SIP-based telephony infrastructure. It enables:

  • PSTN connectivity: Placing and receiving calls from traditional external phone numbers.

  • Centralized control and compliance: Route calls through a single system for logging, recording, and regulatory compliance.

  • PBX integration: Connecting to existing PBX or VoIP systems.

This guide explains the architecture and workspace setup for configuring Rocket.Chat Rocket.Chat Voice via SIP.

Architecture

At its core, the SIP integration architecture connects Rocket.Chat to the external telephony world. It does this by bridging the WebRTC protocol (used by Rocket.Chat clients) with the standard SIP protocol (used by SIP providers and the PSTN). This process is facilitated by two primary components: Drachtio and a SIP Provider.

Dratchio

Drachtio serves as a signaling translator between Rocket.Chat and your SIP provider. It converts Rocket.Chat’s internal call signaling into standard SIP messages and translates SIP responses back into Rocket.Chat’s protocol.

Once your Drachtio server is operational, configure a dedicated Drachtio password on the server itself. This password is required for the Rocket.Chat server to authenticate its connection to the Drachtio signaling gateway.

SIP provider

The SIP provider is the engine of the telephony system. It handles SIP registration, routes calls, manages RTP media, and connects to external networks such as the PSTN. It decides where a call should go — whether to another Rocket.Chat user, an internal extension, or the PSTN.

Rocket.Chat has verified FreeSWITCH as a compatible SIP provider. However, any WebRTC-compatible SIP provider that supports SRTP and ICE will also work. We’re currently testing more providers and will publish a verified list soon.

ICE server

ICE servers are highly recommended but not strictly required. They help establish reliable audio connections between participants who may be behind firewalls or NATs.

  • STUN allows clients to discover their public IP addresses.

  • TURN relays media traffic when direct connections fail.

If no ICE servers are configured, calls will still work only if clients or the SIP provider can directly reach one another, for example, in simple local networks. In most real-world deployments, using an ICE server is necessary to maintain reliable connectivity.

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.

How calls work through SIP integration

When a user initiates a call on the SIP integration, it works through a series of handoffs:

  1. A user initiates a call in Rocket.Chat.

  2. The Rocket.Chat server sends a signaling request to Drachtio using its internal socket connection.

  3. Drachtio translates that request into SIP and forwards it to your SIP provider.

  4. The SIP provider routes the call, handling media negotiation and RTP streams between itself and the user’s browser.

Prerequisites

Before you begin the setup, verify that you have the following:

  1. An active Enterprise plan. If you don’t have one, request a trial or contact the Sales Team to purchase a license.

  2. The Rocket.Chat Voice add-on enabled on your workspace.

  3. An active Dratchio server deployed and running on an accessible IP address.

  4. A SIP provider deployed and configured to accept traffic from Drachtio.

  5. ICE server setup (optional)

To simplify the process of setting up the necessary dependencies, Rocket.Chat has a preconfigured Docker setup that bundles FreeSWITCH and Drachtio to accelerate your deployment.

Configure SIP settings

Once the prerequisites are ready, proceed to configure the SIP integration settings within your workspace.

Step 1: Enable Team Voice Calls

  1. Go to Administration > Workspace > Settings > Team Voice Calls.

  2. Enable Team Voice Calls.

Step 2: Configure WebRTC (ICE)

Go to WebRTC settings and update the following fields to ensure call connectivity across firewalls.:

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.

Step 3: Configure SIP Integration

  1. Go to SIP integration settings and update the following fields to configure your Drachtio and SIP Provider connection:

    Field

    Description

    SIP Integration Enabled

    Toggle ON to enable all related configuration fields and route external calls through the provider.

    Route internal calls through the SIP integration

    When enabled, intra-workspace calls between Rocket.Chat users also pass through the SIP provider. It is useful for call recording or unified routing policies.

    Dratchio Host

    The hostname or IP address where your Drachtio signaling gateway is running. Rocket.Chat connects here to send call signaling.

    Dratchio Port

    The port on which Drachtio listens for WebSocket signaling traffic (typically 9022 or as configured).

    Dratchio password

    The authentication password Rocket.Chat uses to communicate securely with Drachtio.

    SIP Server Host

    The hostname or IP address of your SIP provider (e.g., FreeSWITCH). This defines where Drachtio forwards SIP requests.

    SIP Server Port

    The SIP port your provider uses for incoming signaling (commonly 5060 for UDP/TCP or 5061 for TLS).

  2. After completing the configuration, click Save Changes.

Every SIP environment is unique, and network architecture plays a key role in achieving stable and compliant voice call integration. To ensure a successful deployment, contact the Sales team for guidance with your SIP integration setup.

Next steps

After successfully setting up SIP integration, the next step is to Set up Rocket.Chat Voice Permissions. Once the permissions have been set up, users can follow the Rocket.Chat Voice User Guide to start making calls in Rocket.Chat.