Twilio Changelog

Additions and changes to the Twilio platform

Filter by:Clear all

We have updated all Flex projects that use Automatic Updates to Flex UI 1.20.

This release of Flex UI introduces image and file sharing for chat channels in Flex. Agents and webchat users can now share images, documents, and other files during a chat conversation. This is currently available as a Pilot feature. You can learn more about this feature and how to enable it within our documentation

Other notable features include:

  • Notification to signal connectivity issues: Users will now be notified if Flex UI has lost network connectivity and is trying to reconnect.
  • Initialization error page:  If Flex UI encounters an error during initialization, users will now see details of the error and they can download a report which will provide technical details for troubleshooting.
  • FlexError class:  Developers can use a new API to unify the experience when working with Flex exceptions.

For a full changelog, visit client libraries release notes:

Flex UI 1.20

Flex WebChat 2.5

Reminder: You can pin to individual versions of the Flex UI or manage your Automatic Updates within the Flex Admin UI.


Programmable Messaging

Twilio Edge Locations Available for Programmable Messaging & Notify GA

This release includes support for the expansion of Twilio’s Global Infrastructure via Edge Locations which allows connectivity control into and out of Twilio’s platform. These changes will provide an improved experience bringing Twilio’s public and private connectivity closer to your application. 

Note: All these changes are backward compatible and will not impact existing configurations. 

Programmable Messaging supports Edge Locations for connections to Twilio’s infrastructure via the Base URL in Twilio's API api.{edge}.us1.twilio.com.

Example

// eg: api.{edge}.us1.twilio.com

https://api.ashburn.us1.twilio.com/2010-04-01

Notify supports  Edge Locations for connections to Twilio’s infrastructure via the Notify Base URL in Twilio’s API notify.{edge}.us1.twilio.com. 

Example

//eg: notify.{edge}.us1.twilio.com

https://notify.ashburn.us1.twilio.com/2010-04-01

Click here to see the Edge Locations Blog Post and here for additional details on Edge Locations.


Programmable Voice

Twilio Edge Locations Available for Programmable Voice GA

This release includes support for the expansion of Twilio’s Global Infrastructure via Edge Locations which allows connectivity control into and out of Twilio’s platform. These changes will provide an improved experience bringing Twilio’s public and private connectivity closer to your application. 

Note: All these changes are backward compatible and will not impact existing configurations. 

Programmable Voice supports Edge Locations for connections to Twilio’s infrastructure via the Base URL in Twilio's API api.{edge}.us1.twilio.com.

Example

// eg: api.{edge}.us1.twilio.com

https://api.ashburn.us1.twilio.com/2010-04-01

Receiving SIP from Twilio using the edge parameter. To specify the geographic edge from which Twilio will send SIP-out traffic towards your communication infrastructure, you must include the edge parameter in your SIP URI.

Example

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Dial>
        <Sip>sip:alice@example.com;edge=frankfurt</Sip>
    </Dial>
</Response>

Click here to see the Edge Locations Blog Post and here for additional details on Edge Locations.


Elastic SIP Trunking

Twilio Edge Locations Available for Elastic SIP Trunking GA

This release includes support for the expansion of Twilio’s Global Infrastructure via Edge Locations which allows connectivity control into and out of Twilio’s platform. These changes will provide an improved experience bringing Twilio’s public and private connectivity closer to your application. 

Note: All these changes are backward compatible and will not impact existing configurations. 

The Elastic SIP Trunking API supports  Edge Locations for connections to Twilio’s infrastructure via the Trunking Base URL in Twilio's API https://trunking.{edge}.us1.twilio.com.

Example

// eg: trunking.{edge}.us1.twilio.com

https://trunking.ashburn.us1.twilio.com/2010-04-01

Termination and Origination calls will also leverage Edge Locations

Example

Termination over an Edge

// eg: {example}.pstn.{edge}.twilio.com

INVITE sip:+15108675309@{example}.pstn.ashburn.twilio.com SIP/2.0

Origination with an Edge parameter

//eg: sip:tom@172.56.42.132;edge={edge}

sip:tom@172.56.42.132;edge=frankfurt

Click here to see the Edge Locations Blog Post and here for additional details on Edge Locations.


Programmable Voice

Open Source Voice Notification App GA

Twilio is open sourcing a Voice Notification App built in ReactJS for the Web. This reference app can be deployed to Heroku in minutes and demonstrates how to leverage Programmable Voice and Twilio SDKs to create a voice notification system to make calls to your customers to deliver time-sensitive messages. Whether you are building a voice notifications solution for Emergency Alerts, Appointment Reminders or Sales & Marketing use cases, this reference app can be used as a starting point.

Access to the source code will help customers understand how to use Twilio “building blocks” and Programmable Voice APIs to build an application for their own notification use case and accelerate development.

For additional information on getting started see the source code repo here.


This release of Flex UI and WebChat UI introduces a pilot release of image and file sharing for chat channels in Flex. Agents and webchat users can now share images, documents, and other files during a chat conversation. Visit our web chat documentation for more details and steps to enable this feature.

Other notable changes in this release:

  • Notification to signal connectivity issues - Users will now be notified if Flex UI has lost network connectivity and is trying to reconnect.

Connection notification.png

  • Initialization error page - If Flex UI encounters an error during initialization, users will now see details of the error and they can download a report which will provide technical details for troubleshooting.

Flex-Supportability.png

  • FlexError class - Developers can use a new API to unify the experience when working with Flex exceptions.


For more details on this release, please visit the release notes for Flex UI and WebChat UI.


Programmable Messaging

Messaging Insights General Availability GA

We are excited to announce the General Availability of Messaging Insights for all customers in console. Messaging Insights offers unprecedented transparency for customers to monitor, troubleshoot, and optimize message deliverability and engagement on Twilio.     

The GA launch enables multidimensional filters, a Message List view and the following four reports. 

  1. Overview: high-level view of your outgoing and incoming messages
  2. Delivery & Errors: deep dive into factors that affect deliverability to help you identify what is causing an issue 
  3. Responses: visualize and filter the inbound messages that you’re receiving back from your end users
  4. OTP Conversion: aggregate and visualizes the information that you have sent to Twilio about successful OTP messages

Messaging Insights is available on the Twilio console for all customers. To learn more see the Messaging Insights docs.


Programmable Video

Default Concurrency Limits for Rooms & Participants GA

We are introducing limits for the number of Rooms and Participants that an account can have in flight at the same time. These concurrency limits ensure a smooth consistent operation of the Twilio Video platform and prevent erroneous behavior on any one account from impacting the experience of other accounts. 

The limits for all existing accounts have been set to at least double their peak production traffic, which ensures sufficient headroom for growth. These account limits can be increased on request. If a limit is reached an error code (53119, 53206) is returned and it is also displayed in the Console Debugger.    

To learn more, visit the Programmable Video Limits page in our developer documentation.


Programmable Voice

Jitter buffer controls for Conferences GA

Twilio Conferences use a jitter buffer to smooth out irregularity in voice packet arrival times to conference participants. This results in better audio quality but introduces a fixed delay for each participant. 

When a participant's media stream displays extremely high jitter the jitter buffer may swell to compensate, and at sizes of ~250ms the jitter buffer can be perceived by the conference participants as audio latency. 

We have added a parameter to conferences that allows the buffer setting to be configured. The buffer size can be explicitly set or the buffer can be disabled outright which will reduce the perceived latency at the expense of potentially introducing degraded audio artifacts. For more information see our blog post.


Programmable Voice

Conference Participant Labels GA

The Programmable Voice Conference REST API and <Conference> TwiML now supports adding custom labels when creating and adding participants into a conference. Prior to this change, developers were required to use Participant’s Call Sid to read or update specific participants in a conference. Developers can now provide a label to a participant at the time of adding them into the conference. The label can then be used to read, update or delete participants. The custom participant label means developers no longer have to use Twilio identifiers, and instead use participant labels that make sense for your specific use case. 


For example, if you have access to the Participant’s CallSid, this code snippet shows how to mute a participant using the CallSid. Alternatively, this code snippet demonstrates how to mute a participant that was given the label of Customer at the time of being added  into the conference.


Programmable Voice

CallerId Parameter with Conference Create Participant API GA

The Programmable Voice Conference REST API now supports a new CallerId Parameter with Conference Create Participant REST API. This change allows developers to set the CallerId to a different phone number from the one used for the identity of the call in the From parameter. Prior to this change, the phone number in the From parameter was the Caller Id displayed on the end device, as well as the identifier used by carriers to calculate charges for that call. This change is specifically important for outbound dialing in European destinations where you could take advantage of Origin-Based Pricing for lower rates. 

The CallerId parameter is already supported when making an outbound call using the REST API and now also when making outbound calls from a conference using Create Participant REST API

Click here to learn more about how to reduce your bill with Origin-Based Pricing.

Please note that the phone number used in both the CallerId and From number must be a Twilio verified Phone number


Programmable Voice

Bi-directional Streaming support with Media Streams GA

Twilio Media Streams is now bi-directional. Developers can now stream audio from their own or third party apps back to Twilio enabling use cases such as conversational IVR, integrations with a regional provider for custom Text-to-Speech, and a lot more. This builds on existing support for forking the audio stream of your Programmable Voice calls in real-time and sending the stream to the destination of your choosing to build use cases such as real-time transcriptions, voice authentication, sentiment analysis, speech analytics, and more.

Bi-directional streaming with <Connect> <Stream> TwiML is a synchronous API, giving developers full control over the phone call. In addition, the new <Connect><Stream> API supports new event messages such as Mark and Clear allowing you to build barge-in functionality from within your application.

Check out connect-basic for basic use of the bi-directional streaming API. To learn more about building a conversational IVR using Dialogflow and using mark & clear to implement barge-in functionality, please visit Dialogflow integration GitHub code sample. 


Twilio Voice Client JS SDK (twilio.js) Connection class now has Connection.callerInfo.isVerified, that can be used to display a trust indicator to the recipient when an incoming call, say from the public telephone network, has been verified under the SHAKEN/STIR framework.

A verified call that has been given the highest attestation under SHAKEN/STIR means that the carrier that originated the call both (1) knows the identity of the caller, and (2) knows the caller has the right to use the phone number as the caller ID.

When your application receives a request webhook that has the new StirStatus parameter, all you have to do is <Dial><Client> and Twilio will implicitly pass the StirStatus to the Javascript Client.


Programmable Video

Network Bandwidth Profile API for Mobile SDKs GA

Network Bandwidth Profile API is now available in our mobile SDKs starting with Android SDK 5.8 and iOS SDK 3.4. Javascript support has been available since December 2019.  

The Network Bandwidth Profile API and associated Track Priority API provide developers with fine grained control over the allocation of bandwidth used by video tracks. Furthermore, the three profiles, “grid”, “collaboration”, and “presentation”, specify when tracks should be switched on or off to conserve bandwidth for the highest priority tracks. Using these controls developers can ensure their end users have the best possible experience. 

To learn more visit the documentation on Using the Network Bandwidth Profile API and Using the Track Priority API. To see an example of how to use Network Bandwidth Profile API in a mobile application, visit the Video iOS Collaboration App or the Video Android Collaboration App.


Network and Audio Warnings

Network degradation warnings were previously only logged to Insights. With this release, a new TVOCallDelegate method call:didReceiveQualityWarnings:previousWarnings: is also invoked when the SDK detects those degradations. Use these to relay network conditions to the user in order to provide better user experience or for debugging purposes. See the delegate method: and callQualityWarnings for more information.

Mean Opinion Score (MOS)

This release also adds the Mean Opinion Score (MOS)  measurement to TVOStatsReport. Use [TVOCall getStatsWithBlock:] during a call to retrieve the score. Since the MOS is calculated from network performance measurements, it can be used to indicate the current network condition to the user to provide better usability. 

Edge Locations

This release includes support for the expansion of Twilio’s Global Infrastructure via Edge Locations which allows customers to control their connectivity into and out of Twilio’s platform. The Voice iOS SDK uses these Edges to connect to Twilio’s infrastructure via the new property TwilioVoice.edge. This new property supersedes the now deprecated TwilioVoice.region. See the new Edge names and how they map to the old region names.

Release Information

Download Programmable Voice iOS SDK5.4 [Carthage], [Cocoapods], [Dynamic Framework], [Static Library].

See the iOS quickstart for an example of how to use these new API

See API docs for more information about this new API


Network and Audio Warnings

Network degradation warnings were previously only logged to Insights. With this release, a new Call.Listener callback method onCallQualityWarningsChanged(Call call, Set<CallQualityWarnings> currentWarnings, Set<CallQualityWarnings> previousWarnings) is invoked when the SDK detects those degradations. Use these to relay network conditions to the user in order to provide better user experience or for debugging purposes. See the callback method and CallQualityWarnings for more information.

Mean Opinion Score (MOS)

This release also adds the Mean Opinion Score (MOS)  measurement to StatsReport. Use Call.getStats() during a call to retrieve the score. Since the MOS is calculated from network performance measurements, it can be used to indicate the current network condition to the user to provide better usability. 

Edge Locations

This release includes support for the expansion of Twilio’s Global Infrastructure via Edge Locations which allows customers to control their connectivity into and out of Twilio’s platform. The Voice Android SDK uses these Edges to connect to Twilio’s infrastructure via the new property Voice.edge. This new property supersedes the now deprecated Voice.region. See the new Edge names and how they map to the old region names.

Release Information

Download Programmable Voice Android SDK 5.3 [bintray].

See the Android quickstart for an example of how to use these new API

See API docs for more information about this new API


Programmable Video

Improved Connection Handling in Programmable Video SDKs GA

We have enhanced how Programmable Video client SDKs connect to the Video Signaling servers. All SDKs now perform a back-off and retry if they receive a busy signal from the server. Additional error codes have been added to help developers troubleshoot client connection issues. The time for the JavaScript client SDK to connect has been reduced by over 250 milliseconds for connections originating outside of the us1 Twilio Region. 

These changes will reduce the connection failure rate and help developers to manage the end user experience if connection failures do occur. The SDK versions are as follows:

  • Twilio Video Javascript 2.5.0
  • Twilio Video iOS 3.3.0
  • Twilio Video Android 5.7.0

To learn more, visit the SDK specific changelogs for the Javascript SDK, iOS SDK, and Android SDK


Twilio Edge Locations

This release includes support for the expansion of Twilio’s Global Infrastructure via Edge Locations which allows connectivity control into and out of Twilio’s platform. The Voice Client JS SDK uses these Edges to connect to Twilio’s infrastructure via the new parameter Twilio.Device.Options.edge. This new parameter supersedes the now deprecated Twilio.Device.Options.region. See Twilio.Device.Options.edge API documentation for more information.

Example

const device = new Device(token, { edge: 'ashburn' });

Support for Edge Fallback (Beta)

Deployments designed to connect to multiple Twilio Edge locations can take advantage of the new fallback mechanism. To enable the edge fallback, specify an array of edge names via Twilio.Device.Options.edge. When enabled and a connection failure is encountered, the SDK will reattempt the connection to the next Edge location in the array. For more details about how the fallback works, see the Edge fallback documentation.

Example

const device = new Device(token, { edge: ['ashburn-ix', 'san-jose-ix', 'roaming' ] });

For download instructions see this page

To get started with Twilio Voice Client JS SDK, see our quickstart


Twilio Conference resource now includes two additional fields that describe the reason why the conference has ended. A Voice Conference can end for several reasons. It can end when all participants have left, when the moderator has left, or it may also end programmatically via an API request. It can sometimes be difficult to determine the reason why the Conference ended. The new fields reason_conference_ended and call_sid_ending_conference on the Conference resource will make it easier to troubleshoot why the conference ended either via API or console.

Click here to learn more about the different reasons a conference can end in our Conference Resource documentation.


We have updated all Flex projects that use Automatic Updates to Flex UI 1.19.

This Flex UI release brings the following new features to Flex:

  • Support for using Yarn as a package manager: Developers can manage their project dependencies using Yarn package manager. Yarn is now supported in the client libraries Flex UI 1.19 and Flex WebChat UI 2.4. Yarn can be used by updating any plugins to use the latest version of the Flex Plugin Builder. Visit our Yarn documentation for more details.
  • Data sorting for Real-time Queues View: Developers have more control over the sorting and customization options for columns they add to the Real-time Queues View. You can learn more about this feature within our documentation.
  • Handlebars dependency upgrade: We have upgraded Handlebars to 4.7.3 to fix critical security vulnerabilities exposed in previous versions of Handlebars. This may be a breaking change if you use certain undocumented Handlebars features. You can find more information about this change in the Handlebars changelog.
  • Flex UI and WebChat API Reference: API references describe all available public interfaces, methods and properties. Refer to the Flex UI API Reference and Webchat API Reference for more details. This is currently available as a Pilot feature.

For a full changelog, visit client libraries release notes:

Flex UI 1.19

Flex WebChat 2.4

Reminder: You can pin to individual versions of the Flex UI or manage your Automatic Updates within the Flex Admin UI.


Show more