Skip to content

Releases: twilio/twilio-voice-react-native

1.6.1

08 Jul 05:19
Compare
Choose a tag to compare

1.6.1 (July 7, 2025)

Changes

Platform Specific Changes

Android

  • Added Bluetooth permissions to the Twilio Voice RN SDK manifest.

Fixes

Platform Specific Fixes

Android

  • Updated Audioswitch library to version 1.2.2. This should fix missing Bluetooth audio devices on Android platforms.

1.6.0

18 Jun 22:04
Compare
Choose a tag to compare

1.6.0 (June 18, 2025)

Features

  • Added support for React Native applications using the New Architecture. If you are migrating your app from the Old Architecture to the New Architecture, and are already using the Twilio Voice React Native SDK, you will need to adjust your MainApplication.java file. Please see the updated Getting Started docs for Java or Kotlin.

    • If you are encountering this error:
      java.lang.IllegalArgumentException: You can call getDefaultReactHost only with instances of DefaultReactNativeHost when attempting to use this SDK with a NewArch application, please update your application logic in accordance with our updated Android Getting Started guides as linked above.

1.5.0

02 Apr 20:32
Compare
Choose a tag to compare

1.5.0 (April 2, 2025)

Fixes

Platform Specific Fixes

Android

  • Updated the RNModule methods to invoke all Voice Service API methods from only
    the main thread.

1.4.0

11 Feb 19:39
Compare
Choose a tag to compare

1.4.0 (Feb 11, 2025)

Changes

Platform Specific Changes

Android

  • Updated the Twilio Voice Android SDK dependency to 6.7.1.

iOS

  • Updated the Twilio Voice iOS SDK dependency to 6.12.1.

1.3.0

10 Dec 23:22
Compare
Choose a tag to compare

1.3.0 (Dec 10, 2024)

Changes

  • Added a new API for customizing the displayed name for incoming calls in CallKit on iOS.
    See voice.setIncomingCallContactHandleTemplate and the associated API docs for more information.

  • Added a new API for customizing the displayed name for outgoing, incoming, and answered call notifications on Android.
    See voice.setIncomingCallContactHandleTemplate and voice.connect for more information.

Fixes

  • Fixed a scenario where posting feedback for a call with the Echo issue would not post correctly to Twilio Insights.

1.2.1

31 Oct 18:10
Compare
Choose a tag to compare

1.2.1 (Oct 31, 2024)

Features

Platform Specific Features

Android

  • Added opt-out functionality for the built-in Firebase Messaging service.
    Please see this document for more details.

Fixes

Platform Specific Fixes

Android

  • Fixed crash issue where system restarts service without an Intent (intent == null).

1.2.0

16 Sep 21:49
Compare
Choose a tag to compare

1.2.0 (Sep 16, 2024)

Changes

Call Message Events (GA)

The Call Message Events feature in the Twilio Voice React Native SDK, previously released in 1.0.0 as Beta, is promoted to Generally Available (GA).

  • (Breaking) The error code for attempting to send a call message with a payload size exceeding maximum limits has changed from 31209 to 31212.

  • The behavior of call.sendMessage has been changed to support future contentTypes.
    Please see the API Docs for more information.

Platform Specific Changes

Android

  • Now pulling version 6.6.2 of the Twilio Voice Android SDK.

iOS

  • Now pulling version 6.11.2 of the Twilio Voice iOS SDK.

1.1.1

28 Aug 22:44
Compare
Choose a tag to compare

1.1.1 (Aug 28, 2024)

Changes

Platform Specific Changes

Android

  • Bumped minSdkVersion to 23 to match the latest versions of React Native.

Fixes

Platform Specific Fixes

Android

  • Fixed crash issue on API 34 when activity is not running in background or foreground and an incoming call is received.

  • Fixed some RTCStats members not available on Android. Specifically, mos, bytesSent, and bytesReceived.

1.1.0

21 Aug 18:50
Compare
Choose a tag to compare

1.1.0 (Aug 20, 2024)

Features

Platform Specific Features

Android

  • Added support for Android 34

  • Missing Android microphone permissions will now be gracefully handled.

    When using the JS API, callInvite.accept() and voice.connect() will now reject the returned Promise with error 31401.

    When accepting an incoming call through the native notification, the analogous 31401 error can be caught by attaching a listener to voice.on(Voice.Event.Error, ...). See the following example:

    voice.on(Voice.Event.Error, (error) => {
      // handle error
      if (error.code === 31401) {
        // show the end-user that they did not give the app the proper permissions
      }
    });

Fixes

Platform Specific Fixes

iOS

  • Fixed Call Messages not being built with the passed contentType or messageType.

Changes

Call Message Events (Beta)

  • (Breaking) Removed CallMessage.MessageType and CallMessage.ContentType enumerations and types.
    Instead, those types have been replaced by string.

  • (Breaking) Simplified the Call and CallInvite API for sending call messages. Call.sendMessage and CallInvite.sendMessage now take a plain-JS object, or interface, as a parameter.

The following is an example of the updated API considering the above changes.

For outgoing calls:

const call = await voice.connect(...);
const outgoingCallMessage = await call.sendMessage({
  content: { foo: 'bar' },
  contentType: 'application/json',
  messageType: 'user-defined-message',
});

For call invites:

voice.on(Voice.Event.CallInvite, (callInvite) => {
  const outgoingCallMessage = await callInvite.sendMessage({
    content: { foo: 'bar' },
    contentType: 'application/json',
    messageType: 'user-defined-message',
  });
});
  • Added new error codes. See the following table for details:
    Error Code Description
    31210 Raised when a Call Message is sent with an invalid message type.
    31211 Raised when a Call Message is sent when the call is not yet ready to send messages. This can typically happen when the Call/CallInvite is not yet in a ringing state.

Platform Specific Changes

Android

  • When permissions are not available, the SDK will now raise a new
    PermissionsError with code 31401 when attempting to make an outgoing call
    or when trying to accept an incoming call.

1.0.0

26 Mar 16:50
Compare
Choose a tag to compare

1.0.0 (Mar 25, 2024)

Twilio Voice React Native SDK has now reached milestone 1.0.0 and is Generally
Available (GA). Included in this version are the following.

Features

Call Message Events (Beta)

  • Allow sending and receiving "user-defined" messages during an ongoing Voice Call and during a pending Call Invite.
  • To send a CallMessage, and handle sent and failure cases:
const message = new CallMessage({
   content: { key1: 'This is a messsage from the parent call' },
   contentType: CallMessage.ContentType.ApplicationJson,
   messageType: CallMessage.MessageType.UserDefinedMessage
});
const outgoingCallMessage: OutgoingCallMessage = await call.sendMessage(message);

outgoingCallMessage.addListener(OutgoingCallMessage.Event.Failure, (error) => {
   // outgoingCallMessage failed, handle error
});

outgoingCallMessage.addListener(OutgoingCallMessage.Event.Sent, () => {
    // outgoingCallMessage sent
});
  • To receive a CallMessage:
call.addListener(Call.Event.MessageReceived, (message: CallMessage) => {
  // callMessage received
});

Fixes

  • Fixed and improved the docstrings for the Voice and Call listeners. The descriptions of the events and listeners should now point to the correct docstrings.
  • Call quality warning events should now properly pass arguments to listener functions.

Changes

  • The API for call.getInitialConnectedTimestamp() has now changed.
    Please see the API documentation here for details.
    The method call.getInitialConnectedTimestamp() now returns a Date object.

    const call = voice.connect(...);
    const date = call.getInitialConnectedTimestamp();
    const millisecondsSinceEpoch = date.getTime();
  • The API for Call Invite events has now changed.

    The following events have been moved from the Voice class to the CallInvite class:

    • Voice#callInviteAccepted is now CallInvite#accepted
    • Voice#callInviteRejected is now CallInvite#rejected
    • Voice#callInviteNotificationTapped is now CallInvite#notificationTapped
    • Voice#cancelledCallInvite is now CallInvite#cancelled

    Please see the Voice class API documentation here for details.

    Please see the CallInvite class API documentation here for details.

  • Call Notifications can be customized on Android.

    The following features regarding a call notificaiton can now be modified

    • incoming/outgoing/answered call notification tray icon
    • name of caller/or recipient

    The incoming/outgoing/answered call notification tray icon can be changed by adding a drawable resources with the following id to your application

    • incoming_call_small_icon for incoming call notifications
    • answered_call_small_icon for answered call notifications
    • outgoing_call_small_icon for outgoing call notifications

    The name of the caller/or recipient of a call in the notification can be set by adding the following string resources with the following ids to your application.

    • incoming_call_caller_name_text for incoming call notifications
    • outgoing_call_caller_name_text for outgoing call notifications
    • answered_call_caller_name_text for answered call notifications
      NOTE: For incoming_call_caller_name_text & answered_call_caller_name_text, the substring ${from} will be replaced with the caller and for outgoing_call_caller_name_text, the substring ${to} will be replaced with the recipient of the call (if available, defaulting to "unknown").
  • Custom functionality around the displayName TwiML parameter has been removed.

    In previous versions of the SDK, passing a custom TwiML parameter displayName would override the notification on Android platforms. Now, this functionality has been removed and notification customization is handled with the above features.

Platform Specific Changes

Android

  • Call timestamp now in simplified ISO-8601 format, not stored as a double from epoch.
  • Uses system provided notification styles for incoming & ongoing calls. This insures visual consistency between devices.
  • Fixed issue where call records were not being removed after call was ended.

iOS

  • The call connected timestamp is now in simplified ISO-8601 format.
  • A new method CallInvite.updateCallerHandle() has been added. Use this method to update the caller's name displayed in the iOS system incoming call UI. This method is specific to iOS and unavailable in Android.