Skip to content

Releases: CleverTap/clevertap-signed-call-react-native-sdk

0.7.6

07 Jan 04:44
94b9369
Compare
Choose a tag to compare

What's new

  • [Android Platform]

    • Supports Signed Call Android SDK v0.0.7.6 which is compatible with CleverTap Android SDK v6.2.1.
    • CallStyle Notifications on Android 12 and Onwards:
      • Replaced regular call notifications with the CallStyle notifications for incoming, outgoing and ongoing calls. This update adheres to the new standards for non-dismissible notifications as outlined in the Android 14 behavior changes. These notifications are given top priority in the notification shade or tray.
    • Call Quality Control Enhancements: Introduced network quality checks at both the initiator and receiver ends to ensure optimal call quality.
    • At the Initiator Side, the SDK checks network latency before processing a call request. If the network latency exceeds the benchmark, set by the SDK, an error with 5004 error-code within the SignedCallResponse promise object is returned.
    • At the Receiver Side, the SDK evaluates network quality before showing the incoming call screen. The network quality score (ranging from -1 to 100) is provided via the onNetworkQualityResponse(int score) callback, allowing the app to decide whether to proceed with or decline the call. Refer to the SDK documentation for detailed usage.
    • Support new parameters in the initProperties object which gets passed to the SignedCall.initialize(initProperties) method:
      • fcmProcessingMode and fcmProcessingNotification: SDK supports the two modes for processing FCM calls: FcmProcessingMode.foreground and FCMProcessingMode.background. These modes determine how the SDK handles incoming calls whether in background or in a foreground service depending on whether the app is actively running or is running in the background. The FcmProcessingMode.background is default mode. If choosing the FcmProcessingMode.foreground, the fcmProcessingNotification parameter is mandatory. Refer to the SDK documentation for more details on overriding the default 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 background. Please refer to SDK documentation for detailed usage.
    • Support new call events in the SignedCall.SignedCallOnCallStatusChanged handler:
      • CallEvent.AppInitiatedDeclinedDueToNetworkQuality: Allows to determine the cases where app initiates the call-decline based on the network quality score provided within onNetworkQualityResponse(int score) callback.
      • CallEvent.EndedDueToLocalNetworkLoss: Allows to determine when the call disconnects due to network loss at the local end.
      • CallEvent.EndedDueToRemoteNetworkLoss: Allows to determine when the call disconnects due to network loss at the remote end.
        NOTE: The CallEvent.EndedDueToLocalNetworkLoss and CallEvent.EndedDueToRemoteNetworkLoss events are reported alongside the existing CallEvent.Ended event to maintain backward compatibility.
  • [iOS Platform]

  • [Android and iOS Platform]

  • Remote Context Configuration for Call Screens:

    • Added support for setting a remoteContext parameter within callProperties object during call initiation, allowing to pass custom context for receiver's call screens.

Bug Fixes

  • [iOS Platform]
    • Resolved sa_family_t declaration issue to ensure compatibility with Xcode 16.
    • Resolves EXC_BAD_ACCESS error that occurred when clicking the mute button on the CallKit screen. This exception was only observed in debugging mode.
    • Fixes synchronization issues regarding the Mute and Speaker controllers between the CallKit and native screens.

Behaviour Changes

  • [Android Platform]
    • Optimized screen launch delay when initiating a call. The SDK now launches the outgoing call screen immediately, without waiting for signaling confirmation. A countdown ProgressBar is displayed around the cancel button until signaling is completed. You can use the cancelCountdownColor parameter within the overrideDefaultBranding initProperty to customize the countdown ProgressBar's color. The default color is yellow (#F5FA55). Please refer to SDK documentation for the details on usage.

Enhancements

  • [Android Platform]
    • Optimized delay in the heads-up behavior of the call notification when the user exits from the call screen.
    • Added fallback to the regular notification template for call notifications when using the CallStyle template, in case the full-screen intent permission is not granted.
    • Prevented the call notification popup when the SDK requests microphone permissions after the call is accepted.
    • Local branding configured during SDK initialization is now interoperable with the remote branding configured via the CleverTap dashboard, allows to override the specific branding properties without requiring all properties to be set at once.

0.0.6-m2p.2

09 Dec 07:49
Compare
Choose a tag to compare

Version 0.0.6-m2p.2 (December 09, 2024)


What's new

  • New Beta Feature: M2P (Machine-to-Person) Campaign

    • Supports M2P campaigns, allowing seamless interaction between machines and users.

    Important Note: This release is intended to support the M2P Campaign feature, which is currently in beta.

0.5.5

24 Jun 12:52
d229253
Compare
Choose a tag to compare

What's new

  • [Android Platform]

    • Supports Signed Call Android SDK v0.0.5.5 which is compatible with CleverTap Android SDK v6.2.0.
    • Enables back button functionality across call screens (incoming, outgoing, and ongoing) to allow users to navigate to other parts of the application while staying on a call.
    • Adds new public API SignedCall.getBackToCall() to navigate the user to the active call.
    • Adds new public API SignedCall.getCallState() to retrieve the current call state.
    • Supports following new properties to the initProperties object which gets passed to the SignedCall.initialize(initProperties) method:
      • The notificationPermissionRequired of boolean type to make notification permission as optional during the Signed Call initialization on Android 13 and onwards.
      • The swipeOffBehaviourInForegroundService property of custom SCSwipeOffBehaviour enum type to define the swipe off behavior for an active call within the foreground service managed by host application.
        Please ensure to check the SDK documentation for detailed information on usage of initProperties listed above.
    • Introduces the following events to the SignedCall.SignedCallOnCallStatusChanged listener:
      • The CancelledDueToRingTimeout event which allows to handle the SDK-initiated cancellations due to ring-timeout. This event is reported when the SDK fails to establish communication with the receiver, often due to an offline device or a device with low bandwidth.
      • The DeclinedDueToBusyOnVoIP and DeclinedDueToBusyOnPSTN, to differentiate calls declined due to another Signed Call(VoIP) or declined due to a PSTN call respectively.
    • Exposes callId (call-specific identifier) parameter via CallDetails object provided in the result of the SignedCall.SignedCallOnCallStatusChanged listener.
  • [iOS Platform]

Behaviour Changes

  • [Android Platform]

    • Adds heads up behaviour to the call-notifications to prompt the user every time the call-screen goes invisible, triggered by either a back button press or putting the app in the background. The heads up notifications allow users to return to the call interface by tapping on the notification.
    • Improved Bluetooth audio experience during calls. Dial tone of an outgoing call will now play through the connected Bluetooth headset instead of the internal speaker.
      Note: The SDK requires the runtime BLUETOOTH_CONNECT permission for Android 12 and onwards to enable the Bluetooth management during calls.

Bug Fixes

  • [Android Platform]

    • Resolves an intermittent issue where the dialing tone at the initiator's side of the call plays on the loudspeaker instead of the internal speaker.
    • Resolves NPE crash occurring when calls are simultaneously initiated to each other, which disrupts the order of signals exchanged between participants.

0.0.5

08 Feb 13:20
5b11959
Compare
Choose a tag to compare

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 provided through the SignedCall.addListener(SignedCall.SignedCallOnMissedCallActionClicked,(result:MissedCallActionClickResult) => {}) listener.

    • Introduces a new public API: SignedCallOnCallStatusListener.register(applicationContext). This API allows your application to receive VoIP call events through the SignedCall.SignedCallOnCallStatusChanged listener even when the app is in a killed state.

      For detailed integration instructions, please refer to the documentation.

  • [iOS Platform]

Breaking Changes

  • [Android and iOS Platform]
    • The SignedCall.SignedCallOnCallStatusChanged listener will now provide an instance of the CallEventResult class instead of the CallEvent class. Please refer to the integration documentation for details on usage.
  • [iOS Platform]
    • iOS deployment target version is bumped to iOS 12.

Behaviour Changes

  • [Android Platform]

    • Handles UX issues during network loss or switch 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 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 SignedCall.addListener(SignedCall.SignedCallOnCallStatusChanged,(result:CallEventResult) => {}) listener will now provide updates in the call state to both the initiator and receiver of the call. 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 SignedCall.call(receiverCuid, callContext, callProperties). The SDK now processes only one call at a time while rejecting other requests with a failure exception.
    • Addresses an IllegalStateException which occurs while prompting the user with the poor/bad network conditions on the call-screen.
  • [Android and iOS Platform]

    • Addresses an infinite Connecting state issue on the call screen which was triggered by using CUIDs longer than 15 characters. In this version, the SDK extends support to CUIDs ranging from 5 to 50 characters.

0.0.4

12 Sep 13:25
2c9fb2e
Compare
Choose a tag to compare

What's new

Changes

  • [Android Platform]

    • The index.html file used inside the SDK has been renamed to a unique name to prevent conflicts with the same file name that may exist in the application.
    • Captures a missed call system event when a call initiator manually cancels the call, reported under the SCEnd system event.
    • Adjust the Microphone permission prompt limit to align with the permissible threshold which is shown when the receiver attends the call. Previously, if the Microphone permission was denied even once, SDK would continue to block all incoming calls at the receiver's end. (Note: Starting from Android 11, users have the option to deny the prompt twice before the permission is blocked by system, whereas in earlier versions, users could deny the prompt until selecting the "don't ask again" checkbox.)
  • [Android and iOS Platform]

    • Captures a missed call system event when a call initiator manually cancels the call, reported under the SCEnd system event.

Fixes

  • [Android Platform]
    • Improved Bluetooth handling for a better user experience:
      • Voice now goes through Bluetooth when Bluetooth connectivity is established during an ongoing call.
      • Voice now goes through the internal speaker when Bluetooth connectivity is disabled from the call screen button.
    • Resolved duplicate reporting of SCIncoming system events caused by receiving duplicate pushes for the same call, one from the socket and one from FCM.

0.0.2

17 Apr 14:16
3a57b76
Compare
Choose a tag to compare

0.0.1

29 Mar 04:14
4c4fa82
Compare
Choose a tag to compare
  • Supports Signed Call Android SDK v0.0.1
  • Supports Signed Call iOS SDK v0.0.2