The twilio.js Library: Twilio in the Browser

Overview

Twilio.js allows you to make voice calls to and from a web browser and a Twilio TwiML Voice Application. This means you can open inbound and outbound audio connections to Twilio for building softphones, walkie-talkies, conference calls, click-to-talk systems, and more, all from the browser.

How It Works

You setup your device and establish a connection to Twilio. Audio from your device's microphone is sent to Twilio, and Twilio plays audio through your device's speakers, like on a normal phone call. But with Twilio Client, your device need not be a phone.

When you initiate a connection using Twilio Client, you're not connecting to another phone directly. Rather, you're connecting to Twilio and instructing Twilio to fetch TwiML from your server to handle the connection. This is analogous to the way Twilio handles incoming calls from a real phone. All the same TwiML verbs and nouns that are available for handling Twilio Voice calls are also available for handling Twilio Client connections. We've also added a new <Client> noun for dialing to a Client.

Twilio Applications

Because Twilio Client connections aren't made to a specific phone number, Twilio relies on a Twilio Application within your account to determine how to interact with your server. A Twilio Application is just a convenient way to store a set of URLs, like the VoiceUrl and SmsUrl on a phone number, but without locking them to a specific phone number. This makes Twilio Applications perfect for handling connections from Twilio Client (which is actually why we created them in the first place).

So when your device initiates a Twilio Client connection to Twilio, a request is made to the VoiceUrl property of an Application within your account. You specify the Application you're connecting to with a Capability Token. Twilio uses the TwiML response from its request to that Application's VoiceUrl to direct what happens with the Client connection.

WebRTC Security

Channel Type
Signaling TLS
Media SRTP

Current Twilio.js Releases

Twilio.js is currently available under the following releases:

  • twilio.js 1.4. This is the currently Generally Available (GA) release. It receives regular improvements and bug fixes. This is the release to use for new projects, and the one to upgrade to from older versions.
  • twilio.js 1.3. This release is in maintenance mode. Only security and critical bug fixes are backported to this release. Customers are encouraged to upgrade to the 1.4 release at their convenience. This release will begin its end-of-life process once a new, future minor release of twilio.js, e.g. 1.5, goes live (becomes Generally Available).

Deprecated Twilio.js Releases

The following older releases of twilio.js are deprecated. Customers are strongly encouraged to upgrade to twilio.js 1.4. We have provided a detailed Migration Guide to assist with the upgrade:

  • twilio.js 1.2. This release is deprecated. The end-of-life for twilio.js 1.2 will take place on February 14, 2018. On this date the library will no longer be available on Twilio's CDN, and connections from this version of the library will no longer be accepted.
  • twilio.js 1.1. This release is deprecated. The end-of-life for twilio.js 1.1 will take place on February 14, 2018. On this date the library will no longer be available on Twilio's CDN, and connections from this version of the library will no longer be accepted.

Please use the Migration Guide to upgrade to twilio.js 1.4.

Supported Browsers

twilio.js requires recent versions of Chrome, Firefox, and Safari 11 or greater.

Want to get started right away? Jump right in with our Twilio Client Quickstart!

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.