Releases: twilio/twilio-voice.js
Release list
2.18.3
2.18.3 (May 11, 2026)
Bug Fixes
- Fixed an issue where preflight report samples contained
NaNorundefinedvalues forbytesSent,packetsSent,bytesReceived,packetsReceived,packetsLost, andjitterwhen running on Chrome 141+. Starting in Chrome 141, theoutbound-rtpstats entry is omitted fromRTCPeerConnection.getStats()while ICE has not yet connected; counter fields are now initialized to0so the sample shape matches pre-141 behavior.
2.18.2
2.18.2 (April 21, 2026)
Bug Fixes
- Fixed an issue where multiple PeerConnections are created when
device.connect()is called multiple times. - Fixed an issue where the
docs:tsbuild fails when the repository is inside a monorepo or workspace due to TypeDoc picking up conflicting@typesfrom parentnode_modules. Thanks @taf2 for your contribution.
2.18.1
2.18.1 (March 17, 2026)
Bug Fixes
- Fixed an issue where
Deviceconstructor registers deprecated unload event listener, causing Permissions Policy violation in Chrome 146+. Thanks @lorandcompany for your contribution.
2.18.0
2.18.0 (January 5, 2026)
Improvements
Previously, the SDK relied solely on a backoff mechanism when reconnecting the signaling connection. With this update, the SDK will use a server-provided Retry-After value, if available, when a connection attempt is rejected.
2.17.0
2.17.0 (December 1, 2025)
New Features
Remote Audio Processor APIs
In version 2.9.0, the SDK introduced the Audio Processor APIs, allowing access to raw audio input and enabling modifications to audio data before it is sent to Twilio. This release also extends similar capabilities to remote audio streams, giving developers the ability to modify audio before it is played on the speaker.
With these enhancements, a range of client-side audio use cases can now be implemented more easily, including:
- Background noise removal using any noise cancellation library of your choice
- Custom audio filters
- AI-powered audio classification
- ...and much more!
Please visit this page for more details about the Audio Processor APIs.
Example
import { AudioProcessor, Device } from '@twilio/voice-sdk';
class OutputAudioProcessor implements AudioProcessor {
async createProcessedStream(stream: MediaStream): Promise<MediaStream> {
// Implementation
}
async destroyProcessedStream(stream: MediaStream): Promise<void> {
// Cleanup
}
}
const processor = new OutputAudioProcessor();
const device = new Device(token, options);
// Pass “true” as second argument to apply processor to remote output audio stream
await device.audio.addProcessor(processor, true);
// To remove it later:
// device.audio.removeProcessor(processor, true);2.16.0
2.16.0 (September 25, 2025)
ECMAScript Module Support GA
The experimental ESM support introduced in 2.7.0 has been fully integrated is now included by default in the SDK. ESM is no longer experimental and now considered Generally Available (GA). You no longer need to import a separate path and should now work with the standard import:
import { Device } from '@twilio/voice-sdk';Changes
- Removed support for the deprecated Plan-B SDP semantics.
- Removed outdated tests.
2.15.0
2.15.0 (July 14, 2025)
Changes
- Replaced SDP munging with the setCodecPreferences API for setting preferred codecs in the SDK.
2.14.0
2.14.0 (June 25, 2025)
Changes
- Upgraded Typescript dependency to 5.x
- Replaced Karma test runner with Cypress
- Added
@types/eventsas a dependency. This resolves issues regarding missing Intellisense hinting for SDK objects that extend EventEmitters.
Bug Fixes
- Fixed
md5andrtcpeerconnection-shimbuild warnings (as reported in this Github Issue) when using the Twilio Voice JS SDK in an Angular webapp. See our Common Issues document for more information.
2.13.0
2.13.0 (May 6, 2025)
New Features
In version 2.5.0, the SDK introduced a mechanism to override WebRTC APIs, enabling support for redirection technologies like Citrix HDX. In this release, the SDK extends this capability by allowing the override of the native MediaStream API, making it possible to create custom media streams tailored for such environments. Please check this page for an example.
2.12.4
2.12.4 (March 12, 2025)
Bug Fixes
- Fixed an issue where
device.destroy()does not work for Chrome Extension V3. - Addressed an issue where the
publisherwould benullupon destruction of anAudioProcessorObserver.
Changes
- Added an API for testing
PreflightTestin realms other than prod. Users can now passchunderwandeventgwvalues within the options object when constructing aPreflightTest. Note that these new options are meant for internal testing by Twilio employees only, and should not be used otherwise.