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 theSignedCallResponse
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.
- Initiator SIde: Network latency checks before call processing. Returns a
- New parameters in
initProperties
object for initialization:fcmProcessingMode
andfcmProcessingNotification
: The SDK supports the following two modes for processing FCM calls:FcmProcessingMode.foreground
andFcmProcessingMode.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. TheFcmProcessingMode.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 theonNetworkQualityResponse(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
andCallEvent.EndedDueToRemoteNetworkLoss
events are reported alongside the existingCallEvent.Ended
event to maintain backward compatibility.
iOS- Supports Signed Call iOS SDK v0.0.9, compatible with CleverTap iOS SDK v7.0.2 and higher.
- Introduces network quality checks at both the initiator and receiver ends to provide optimal call quality.
Android and iOS
- Remote Context Configuration for Call Screen:
Adds support for setting aremoteContext
parameter withincallProperties
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
cancelCountdownColor
parameter within theoverrideDefaultBranding
. The default color is yellow (#F5FA55). For more information, refer tooverrideDefaultBranding
(All Platforms).
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).
- Enhances the encryption algorithm for PII data, aligning it with OWASP guidelines. The encryption key is securely backed up using Android Key Store. This encryption is supported for API level 23 (Android 6.0 and above).
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.
- The
- 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.
- Local and remote branding settings are now interoperable. Use the
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 toVoIPCallStatus.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 toVoIPCallStatus.CALL_OVER_DUE_TO_REMOTE_NETWORK_LOSS
).user_initiated
: Indicates that the hangup was initiated by the user (corresponds toVoIPCallStatus.CALL_OVER
).
- Adds a new boolean property
Bug Fixes
- Resolves an issue where the
channel
property in SCEnd system events was incorrectly recorded assocket
at the initiator end instead offcm
.
Updated 2 days ago