January 2025

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 14

Bug Fixes

  • Improves click tracking for Web Push Notifications: Separates event tracking from the redirection URL, ensuring silent event logging without affecting the user’s redirection flow.
  • Resolves Web Inbox initialization failure: Adds a retry mechanism to check for the Inbox element and initializes it when available.

January 7

What's New

Android

  • Supports Signed Call Android SDK v0.0.7.6, compatible with CleverTap Android SDK 6.2.1.
  • CallStyle Notifications on Android 12 and Above:
    • Replaces regular call notifications with CallStyle notifications for incoming, outgoing, and ongoing calls. These notifications are given top priority in the notification tray. The update adheres to the Android's non-dismissible notifications standards, as listed under Android 14 Behavior Changes.
  • Call Quality Control Enhancements
    • Introduces network quality checks at both the initiator and receiver ends to provide optimal call quality.
      • Initiator SIde: Network latency checks before call processing. Returns a 5004 error code within the SignedCallResponse promise object if latency exceeds the benchmark.
      • Receiver Side: Network quality checks before showing the incoming call screen. A quality score (ranging from -1 to 100) is provided via the onNetworkQualityResponse(int score) callback. This allows the app to decide whether to proceed with or decline the call. For more information, refer to Receiver Side.
    • New parameters in initProperties object for initialization:
      • fcmProcessingMode and fcmProcessingNotification: The SDK supports the following two modes for processing FCM calls: FcmProcessingMode.foreground and FcmProcessingMode.background. These modes control how the SDK handles incoming calls, whether in the background or foreground service, depending on whether the app is actively running or is running in the background. The FcmProcessingMode.background is the default mode. for more details on overriding the default mode, refer to Configure FCM Processing Mode.
      • callScreenOnSignalling: A Boolean property to control when the outgoing call screen appears relative to the signaling process. By default, the SDK immediately displays the outgoing call screen upon a call request and performs the validations in the background. For more information, refer to Control Call Screen Display Timing.
    • New Call Events in SignedCall.SignedCallOnCallStatusChanged handler:
      • CallEvent.AppInitiatedDeclinedDueToNetworkQuality: Enables identification of cases where the app declines a call based on the network quality score provided through the onNetworkQualityResponse(int score) callback.
      • CallEvent.EndedDueToLocalNetworkLoss: Enables identification of call disconnection caused by network loss on the initiator end.
      • CallEvent.EndedDueToRemoteNetworkLoss: Enables detection of call disconnections caused by network loss on the receiver end.

        πŸ“˜

        Note

        The CallEvent.EndedDueToLocalNetworkLoss and CallEvent.EndedDueToRemoteNetworkLoss events are reported alongside the existing CallEvent.Ended event to maintain backward compatibility.

    iOS

Android and iOS

  • Remote Context Configuration for Call Screen:
    Adds support for setting a remoteContext parameter within callProperties object during call initiation, enabling custom context for the receiver's call screen.

Enhancements

Android

  • Reduces delay in heads-up behavior for call notifications when exiting the call screen.
  • Adds a fallback to the regular notifications template for the call notifications when using the CallStyle template in case the full-screen intent permission is not granted.
  • Prevents call notification popups when the SDK requests microphone permissions after call acceptance.
  • Local branding configured during SDK initialization is now interoperable with the remote branding configured via the CleverTap dashboard, allowing overriding of the specific branding properties without requiring all properties to be set at once.

Bug Fixes

iOS

  • Fixes sa_family_t declaration issue for Xcode 16 compatibility.
  • Resolves EXC_BAD_ACCESS error that occurs when clicking the mute button on the CallKit screen (observed only in debugging mode).
  • Fixes synchronization issues for Mute and Speaker controllers between CallKit and native screens.

Behavior Changes

Android

  • Optimizes Outgoing Call Screen Launch
    • Launches immediately without waiting for signaling confirmation.
    • Introduces a countdown ProgressBar around the cancel button until signaling is completed.
    • Customizable cancelCountdownColorparameter within the overrideDefaultBranding. The default color is yellow (#F5FA55). For more information, refer to overrideDefaultBranding (All Platforms).

What's New

🚧

Downgrade Advisory

After upgrading to Android SDK v7.2.0, avoid downgrading in subsequent app releases. If you face any issue after upgrading to this version, contact the CleverTap Support team for assistance.

What's New

  • Supports Android 15. For more information, refer to Android 15.
  • Updates the minimum supported Android SDK version to API level 21 (Android 5.0).

What's New

  • Supports Android 15. For more information, refer to Android 15.
  • Updates the minimum supported Android SDK version to API level 21 (Android 5.0).

What's New

  • Supports Android 15. For more information, refer to Android 15.
  • Updates the minimum supported Android SDK version to API level 21 (Android 5.0).

January 2

What's New

  • Enhanced Call Disconnection Details
    • The callStatus(SCCallStatusDetails callDetails) callback now provides detailed reasons for call disconnection through the following new events:
      • VoIPCallStatus.CALL_OVER_DUE_TO_LOCAL_NETWORK_LOSS: Triggered when the call disconnects due to network loss at the initiator's end.
      • VoIPCallStatus.CALL_OVER_DUE_TO_REMOTE_NETWORK_LOSS: Triggered when the call disconnects due to network loss at the receiver's end.

        πŸ“˜

        Note

        The above events are reported alongside the existing VoIPCallStatus.CALL_OVER event for seamless integration with older implementation.

  • Customized Branding
    • Local and remote branding settings are now interoperable. Use the SignedCallScreenBranding.builder class to customize specific branding properties locally while leveraging remote branding settings configured on the CleverTap dashboard. For more information on setting the local branding, refer to Set Local Branding for Call Screen.

Enhancements

  • SCEnd System Event Updates
    • Adds a new boolean property hangup_initiator to indicate which party initiated the hangup.
    • Captures the cause of disconnection for over call-status events through the reason property, with the following possible values:
      • network_lost: Indicates that the hangup occurred due to the network loss on the call initiator's end (corresponds to VoIPCallStatus.CALL_OVER_DUE_TO_LOCAL_NETWORK_LOSS).
      • network_dropped: Indicates that the hangup occurred due to the network loss on the receiver's end (corresponds to VoIPCallStatus.CALL_OVER_DUE_TO_REMOTE_NETWORK_LOSS).
      • user_initiated: Indicates that the hangup was initiated by the user (corresponds to VoIPCallStatus.CALL_OVER).

Bug Fixes

  • Resolves an issue where the channel property in SCEnd system events was incorrectly recorded as socket at the initiator end instead of fcm.