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

๐Ÿ“˜

Note

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

July 30

What's New

CallStyle Notifications on Android 12 and above:

  • Replaces regular call notifications with the CallStyle notifications for incoming, outgoing, and ongoing calls.
  • Adheres to the new standards for non-dismissible notifications as outlined in the Android 14 behavior changes.
  • The CallStyle notifications are given top priority in the notification shade or tray.

Enhancement

  • Improves internal state management during calls to boost performance and reliability.

July 29

Enhancement

  • Adds custom UI option that can be implemented through callbacks, offering developers greater flexibility in customizing the user experience.

Fixes

  • Fixes the issue where sometimes receivers are unable to call back after missing a call.
  • Fixes a few minor bugs and improves the performance and stability of the SDK.

July 18

What's New for Android Platform

  • Supports Signed Call Android SDK v0.0.5.7, which is compatible with CleverTap Android SDK v6.2.1.
  • Enables back button functionality across incoming, outgoing, and ongoing call screens, allowing users to navigate to other application screens while staying on a call.
  • Call Delivery Confirmation
    • The SDK now changes the call state from Calling to Ringing when the phone starts ringing on the receiver's end, providing the initiator with an explicit call delivery confirmation.
  • New Public API
    • CleverTapSignedCallFlutter.shared.getBackToCall(): Allows the user to navigate to the active call.
    • CleverTapSignedCallFlutter.shared.getCallState(): Allows you to retrieve the current call state.
  • Supports the following new parameters in the initProperties object, which gets passed to the CleverTapSignedCallFlutter.shared.init() method:
    • notificationPermissionRequired: A boolean property that makes notification permission optional during the Signed Call initialization for Android 13 and above.
    • swipeOffBehaviourInForegroundService: An SCSwipeOffBehaviour enum constant that defines the swipe-off behavior for an active call in the foreground service of the host application.
      For detailed information on using the initProperties object, refer to the Flutter SDK documentation.
  • Supports the following new call events in the CleverTapSignedCallFlutter.shared.callEventListener handler:
    • CallEvent.ringing: Indicates that the call has started ringing on the receiver's device. This event is reported when the SDK successfully communicates with the receiver and the phone rings.
    • CallEvent.cancelledDueToRingTimeout: Handles SDK-initiated cancellations due to ring timeout. This event is reported when the SDK fails to communicate with the receiver, often due to an offline device or a device with low bandwidth.
    • CallEvent.declinedDueToMicrophonePermissionBlocked: Determines the SDK-initiated decline cases when the microphone permission is blocked at the receiver's end.
    • CallEvent.failedDueToInternalError: Identifies call failure cases. Possible reasons for the call failure include bad internet connectivity, insufficient RAM storage, or SDK setup timeouts. Retrying the call can resolve most failures.
    • CallEvent.declinedDueToBusyOnVoIP and CallEvent.declinedDueToBusyOnPSTN: Differentiate calls declined due to another Signed Call (VoIP) or a PSTN call, respectively.
  • Supports the following new parameters in the payload object received in the CleverTapSignedCallFlutter.shared.callEventListener handler:
    • callDetails.callId: A call-specific unique identifier.
    • callDetails.channel: Allows you to identify the signaling channel (Socket or FCM) used during the Signed Call.

    Enhancements for Android Platform

    • Adds safeguards to handle and prevent duplication in system events recorded by the SDK and external callback reporting.

    Bug Fixes for Android Platform

    • Fixes an intermittent issue where the dialing tone on the caller's side plays on the loudspeaker instead of the internal speaker.
    • Fixes NPE crashes that occur when participants simultaneously initiate calls to each other, disrupting the signal exchange order.

    Behavioral Changes for Android Platform

    • Added heads-up notifications to call alerts, prompting users when the call screen goes invisible. These alerts are triggered by pressing the back button or putting the app in the background. These notifications allow users to return to the call interface by tapping them.
    • Improved Bluetooth audio experience during calls. The dial tone of an outgoing call now plays through the connected Bluetooth headset instead of the internal speaker. To enable Bluetooth management during calls, the SDK requires the runtime BLUETOOTH_CONNECT permission for Android 12 and above.

July 16

New Additions

  • Call Delivery Confirmation
    The SDK now changes the call state from Calling to Ringing when the phone starts ringing on the receiver's end, providing the initiator with a clear call delivery confirmation.
  • Support for New Callback Events
    • VoIPCallStatus.CALL_RINGING: Indicates that the call has started ringing on the receiver's device. This event is reported when the SDK successfully establishes communication with the receiver.
    • VoIPCallStatus.CALLEE_MICROPHONE_PERMISSION_BLOCKED: Indicates that the call was declined because the microphone permission is blocked on the receiver's end.
    • VoIPCallStatus.CALL_FAILED_DUE_TO_INTERNAL_ERROR: Identifies call failure cases. Possible reasons for the call failure could include bad internet connectivity, insufficient RAM storage, or SDK setup timeouts. Retrying the call can usually resolve most failures.
  • channel Object Exposure
    The callStatus(SCCallStatusDetails callDetails) callback event now exposes the channel object, allowing you to identify which signaling channel (Socket or FCM) was used during the Signed Call.

Enhancements

  • Adds safeguards to handle and prevent duplication in system events recorded by the SDK and external callback reporting.

Bug Fixes

  • Fixes an issue where the call does not transition to the ongoing call state when the receiver accepts it.