Skip to content

feat: introduce fullfill or fail based on server result for callkit#2119

Merged
santhoshvai merged 18 commits intofeat/callkit-telecom-integrationfrom
await-for-fulfilling
Mar 20, 2026
Merged

feat: introduce fullfill or fail based on server result for callkit#2119
santhoshvai merged 18 commits intofeat/callkit-telecom-integrationfrom
await-for-fulfilling

Conversation

@santhoshvai
Copy link
Member

@santhoshvai santhoshvai commented Feb 11, 2026

💡 Overview

According to callkit spec

  1. we need to fulfill or fail based on server result for accept and endcall if there is no websocket established yet
  2. If websocket was established we must immediately fulfill or fail accordingly
  • This avoids other calls to interfere while joining or ending happens (which can technically but rarely happen)
  • Importantly - Fixes the issue of quick decline not working due to JS bridge not loading at all - link to the issue in callkeep

Apple docs excerpt below

https://developer.apple.com/documentation/PushKit/responding-to-voip-notifications-from-pushkit

  • If the recipient of a call answers before the app establishes a connection to your server, don’t fulfill the CXAnswerCallAction object sent to the provider(_:perform:) method of your delegate immediately. Instead, wait until you establish a connection and then fulfill the object. While it waits for your app to fulfill the request, the incoming call interface lets the user know that the call is connecting, but not yet ready.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 11, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8bc78419-324b-4122-95df-253701287d01

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch await-for-fulfilling
📝 Coding Plan
  • Generate coding plan for human review comments

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@changeset-bot
Copy link

changeset-bot bot commented Feb 11, 2026

⚠️ No Changeset found

Latest commit: 4aaaae6

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@santhoshvai santhoshvai marked this pull request as draft February 12, 2026 12:47
…ling

# Conflicts:
#	packages/react-native-callingx/android/src/main/java/io/getstream/rn/callingx/CallingxModuleImpl.kt
#	packages/react-native-callingx/ios/Callingx.mm
#	packages/react-native-callingx/ios/CallingxImpl.swift
#	packages/react-native-sdk/src/hooks/push/useProcessPushCallEffect.ts
#	packages/react-native-sdk/src/utils/push/internal/utils.ts
#	packages/react-native-sdk/src/utils/push/setupCallingExpEvents.ts
@santhoshvai santhoshvai marked this pull request as ready for review March 13, 2026 15:23
…ling

# Conflicts:
#	packages/react-native-sdk/src/utils/push/internal/utils.ts
@santhoshvai santhoshvai merged commit 8845a90 into feat/callkit-telecom-integration Mar 20, 2026
12 of 13 checks passed
@santhoshvai santhoshvai deleted the await-for-fulfilling branch March 20, 2026 12:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants