Twilio Changelog
See additions and changes to the Twilio platform.
You can also subscribe to our Changelog RSS feed below.
(In order to subscribe to our Changelog RSS feed, an RSS feed reader is required.)
See additions and changes to the Twilio platform.
You can also subscribe to our Changelog RSS feed below.
(In order to subscribe to our Changelog RSS feed, an RSS feed reader is required.)
Jun 18, 2020
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.
Jun 18, 2020
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.
Jun 17, 2020
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.
Jun 15, 2020
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.
Jun 05, 2020
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.
Jun 03, 2020
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
Jun 03, 2020
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
Jun 01, 2020
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:
To learn more, visit the SDK specific changelogs for the Javascript SDK, iOS SDK, and Android SDK.
May 21, 2020
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.
May 21, 2020
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' });
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