SIP Interconnect

Overview

Session Initiation Protocol (SIP) Interconnect refers to the setup where two or more different SIP-based networks or systems are connected to enable the flow of voice traffic between them.

100ms SIP Interconnect makes it easy to integrate VoIP calls from external third-party services into 100ms WebRTC meetings, ensuring a seamless bridge to participants connected through 100ms Client SDKs over WebRTC.

SIP Credentials

SIP Credentials are required to authenticate your requests to connect to 100ms’ SIP bridge in addition to our SIP Address. These credentials consist of a username and password for an account. These credentials are available in the 'Developer' section of the dashboard.

SIP Credentials

This feature has restricted access*. Please drop a message to us through the Support center on the 100ms dashboard or book a meeting with us to get your account whitelisted for SIP Interconnect.

SIP Address

Following is 100ms’ SIP Address that can be inputted in a SIP trunk service to connect to our SIP bridge and consequently, 100ms rooms.

sip:<room_code>@sip.100ms.live

To connect to a specific room on 100ms, you’re required to provide a room code in the SIP address. This is a unique encrypted shortcode generated by 100ms for a given Role and Room. A Room Code represents a unique role and room_id combination. To get a room code, you can refer to the following documentation:

  1. Getting room codes from the dashboard and authentication
  2. Room Code API

Once you have a 100ms account setup, SIP credentials, and our SIP address, you can dial-in using SIP with the username and password shared with you.

Identifying peers joining through SIP

Specific SIP headers can be included in the SIP invite to distinguish different users, facilitating the identification of peers joining via phone. This capability enables the identification of these peers in events and webhooks. Currently, the following SIP headers can be passed in the invite (note that they are case insensitive and optional):

HeaderDescription
X-100ms-Display-NameThis attribute determines the display name shown for the peer upon joining the call. Should no name be provided, the user's masked phone number will be displayed instead.
X-100ms-UserIDA 'user_id' is an internal identifier that you can use to map a 100ms peer object to your internal user object. It's a unique identifier for each user in your system. You can pass the 'user_id' to 100ms when you generate an auth token for a user to join a room.

Example Integration

Integration with Twilio Voice

The simplest way to integrate with 100ms is to use TwiML to perform the SIP dial-in.

Guide

  1. Get a Twilio account. You can do that by going here and creating an account.

  2. Buy a VOIP number. Refer to this.

  3. Configure the VOIP number to use TwiML bin to handle incoming calls.

  4. Create a TwiML app that uses this bin.

    configure TwiML App

  5. Update the phone number associated with the previously created TwiML app.

    configure TwiML App

  6. You can configure the TwiML webhook to respond with below XML -

    <?xml version="1.0" encoding="UTF-8"?> <Response> <Dial> <Sip username="<USERNAME>" password="<PASSWORD>">sip:<ROOM_CODE>@sip.100ms.live?X-100ms-Display-Name=John%20Doe&amp;X-100ms-UserID=xyz</Sip> </Dial> </Response>

    configure TwiML App


Have a suggestion? Recommend changes ->

Run in postman

Was this helpful?

1234