Skip to content

Releases: twilio/twilio-voice.js

2.18.3

Choose a tag to compare

@charliesantos charliesantos released this 11 May 17:38

2.18.3 (May 11, 2026)

Bug Fixes

  • Fixed an issue where preflight report samples contained NaN or undefined values for bytesSent, packetsSent, bytesReceived, packetsReceived, packetsLost, and jitter when running on Chrome 141+. Starting in Chrome 141, the outbound-rtp stats entry is omitted from RTCPeerConnection.getStats() while ICE has not yet connected; counter fields are now initialized to 0 so the sample shape matches pre-141 behavior.

2.18.2

Choose a tag to compare

@charliesantos charliesantos released this 21 Apr 23:52

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:ts build fails when the repository is inside a monorepo or workspace due to TypeDoc picking up conflicting @types from parent node_modules. Thanks @taf2 for your contribution.

2.18.1

Choose a tag to compare

@charliesantos charliesantos released this 17 Mar 17:26

2.18.1 (March 17, 2026)

Bug Fixes

  • Fixed an issue where Device constructor registers deprecated unload event listener, causing Permissions Policy violation in Chrome 146+. Thanks @lorandcompany for your contribution.

2.18.0

Choose a tag to compare

@kpchoy kpchoy released this 05 Jan 20:54

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

Choose a tag to compare

@kpchoy kpchoy released this 01 Dec 20:31

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

Choose a tag to compare

@mhuynh5757 mhuynh5757 released this 25 Sep 23:37

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

Choose a tag to compare

@kpchoy kpchoy released this 14 Jul 19:00

2.15.0 (July 14, 2025)

Changes

  • Replaced SDP munging with the setCodecPreferences API for setting preferred codecs in the SDK.

2.14.0

Choose a tag to compare

@kpchoy kpchoy released this 25 Jun 18:14

2.14.0 (June 25, 2025)

Changes

  • Upgraded Typescript dependency to 5.x
  • Replaced Karma test runner with Cypress
  • Added @types/events as a dependency. This resolves issues regarding missing Intellisense hinting for SDK objects that extend EventEmitters.

Bug Fixes

  • Fixed md5 and rtcpeerconnection-shim build 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

Choose a tag to compare

@kpchoy kpchoy released this 06 May 17:47

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

Choose a tag to compare

@kpchoy kpchoy released this 12 Mar 21:04

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 publisher would be null upon destruction of an AudioProcessorObserver.

Changes

  • Added an API for testing PreflightTest in realms other than prod. Users can now pass chunderw and eventgw values within the options object when constructing a PreflightTest. Note that these new options are meant for internal testing by Twilio employees only, and should not be used otherwise.