January 2024

We are excited to share the January SDK changelog for our product!

📘

Note

Click each SDK header to view the corresponding GitHub repository for release details.

January 22

What's New

  • [Android Platform]
    • Supports Signed Call Android SDK v0.0.5, which is compatible with CleverTap Android SDK v5.2.2.
    • Introduces new properties initiatorImage and receiverImage in the MissedCallActionClickResult instance. It is provided through the CleverTapSignedCallFlutter.shared.missedCallActionClickListener.listen(MissedCallActionClickResult) event-stream.
    • Adds new public API registerVoIPCallStatusListener(SCVoIPCallStatusListener callStatusListener) to observe the changes in the call state. It provides updates to both the initiator and receiver of the call.
  • Adds new callback APIs to handle events when the app is terminated or killed as follows:
    • Use CleverTapSignedCallFlutter.shared.onBackgroundCallEvent(handler) to handle VoIP call events when the app is in a killed state.
    • Use CleverTapSignedCallFlutter.shared.onBackgroundMissedCallActionClicked(handler) to manage missed call action click events when the app is in a killed state. For more information on handling callback events in a killed state, refer to the integration documentation.
  • iOS Platform

Breaking Changes

  • Android and iOS Platform
    • The CleverTapSignedCallFlutter.shared.callEventListener event stream will now provide an instance of the CallEventResult class instead of the CallEvent class. Refer to the integration documentation for details on usage.
  • iOS Platform
    • iOS deployment target version is bumped to iOS 12.

Behavior Changes

  • Android Platform
    • Handles UX issues during network loss or switch. It invalidates the socket reconnection and establishes an active connection to process the call-related actions.
    • Modifies the SDK's behavior when the Notifications Settings are disabled for the application. Previously, if the app's notifications were disabled, the device rang on incoming calls without displaying the call screen in the background and killed states. In this version, the SDK now declines incoming calls when the notifications are disabled. If the notification settings are later enabled, the SDK resumes processing calls instead of automatically declining them.
  • Android and iOS Platform
    • The CleverTapSignedCallFlutter.shared.callEventListener now provide updates in the call state to both the initiator and receiver. Previously, it was exposed only to the initiator of the call.

Bug Fixes

  • Android Platform
    • Fixes multiple outgoing call requests initiated simultaneously through multiple calls of CleverTapSignedCallFlutter.shared.call(..). The SDK now processes only one call at a time while rejecting other requests with a failure exception.
    • Addresses an IllegalStateException. This occurs while prompting the user with poor or bad network conditions on the call screen.
  • Android and iOS Platform
    • Addresses an infinite Connecting state issue on the call screen triggered by CUIDs exceeding 15 characters. In this version, the SDK extends support to CUIDs ranging from 5 to 50 characters.

New Features

  • Supports CleverTap iOS SDK v5.2.2.
  • Adds new NSNotification.Name SCCallStatusDidUpdate to observe the changes in the call state. This provides updates to the initiator and the receiver of the call.

Breaking Changes

  • The MessageReceived NSNotification observer is no longer supported. Use the new NSNotification.Name SCCallStatusDidUpdate.
  • The iOS deployment target version has been increased to iOS 12.

Bug Fixes

  • Addresses an infinite connecting state issue on the call screen triggered by CUIDs longer than 15 characters. The SDK extends support to CUIDs ranging from 5 to 50 characters.

January 15

  • Added support for client-side in-apps.
  • Added support for ExoPlayer v2.19.1.
  • Fixed no empty message for app inbox without tabs.
  • Removed onClickListener for Image of Cover In-App.

  • Minor changes and improvements.

  • Added support for client-side in-apps.
  • Fixed a bug that prevents the dismissal of certain in-apps.

January 09

New Feature

  • Supports CleverTap Android SDK v5.2.2.
  • Introduces the following new properties in the MissedCallNotificationOpenResult object provided through the onMissedCallNotificationOpened(Context context, MissedCallNotificationOpenResult result) callback.
    • initiator_image
    • receiver_image
  • Adds a new registerVoIPCallStatusListener(SCVoIPCallStatusListener callStatusListener) public API to observe the changes in the call state. It provides updates to both the initiator and receiver of the call.

Breaking Changes

  • The callStatus(VoIPCallStatus callStatus) callback method in the OutgoingCallResponse callback is deprecated. Use the new registerVoIPCallStatusListener(SCVoIPCallStatusListener callStatusListener) public API.

Behaviour Changes

  • Handles UX issues during network loss or switch. This is achieved by invalidating the socket reconnection and establishing an active connection to process the call-related actions.
  • Modifies the SDK's behavior when the Notifications Settings are disabled for the application. Previously, if the app's notifications were disabled, the device rang on incoming calls without displaying the call screen in the background and killed states. In this version, the SDK now declines incoming calls if the notifications are disabled. If the notification settings are later enabled, the SDK resumes processing calls instead of automatically declining them.

Bug Fixes

  • Addresses an infinite Connecting state issue on the call screen. This state is triggered by CUIDs exceeding 15 characters. In this version, the SDK extends support to CUIDs ranging from 5 to 50 characters.
  • Fixes the initiation of multiple outgoing call requests simultaneously through multiple calls of SignedCallAPI.call(). The SDK now processes only one call at a time while rejecting other requests with a failure exception.
  • Addresses an IllegalStateException while prompting the user with poor or bad network conditions on the call screen.