Repository navigation
docs(ios): ringing through the Calls SDK and Push Notifications SDK - #570
Open
jitvarpatil wants to merge 6 commits into
Open
jitvarpatil wants to merge 6 commits into
jitvarpatil wants to merge 6 commits into
Conversation
The iOS counterpart of the Android ringing docs (#561). iOS calling no longer signals through the Chat SDK: Calls SDK 5.1 creates, joins and ends calls, and Push Notifications SDK 2.0 rings the device through PushKit and CallKit in every app state. Calls SDK (calls/ios/) - ringing: rewritten for the Calls SDK flow (initiateCall, prepared-session events, incoming-call listener, answer through presentCall, decline, cancel, ring timeout, leave(), call waiting, group calls, logout). - migrating-from-legacy-ringing: new; steps, method mapping, checklist. - setup (5.1, push products, iOS 15.1), events (getActiveSession, onConnected/onParticipantConnected, incoming-call and login listeners), actions and custom-control-panel (leave, isSessionActive), overview, migration-guide-v5 (5.0 -> 5.1), troubleshooting. Push Notifications SDK - calls/ios/voip-calling rewritten as Push Ringing (slug kept): products, capabilities and Info.plist, initialise on every launch, configuration defaults, presentCall/callDidEnd, ring readiness, how a ring ends, call waiting, killed app, logout, CallKit branding, troubleshooting. - notifications/ios-push-notifications-sdk rewritten for 2.0; pointer notes on the APNs and FCM pages. Chat SDK: calling-overview and the delegates page note that the Chat SDK calling APIs are superseded. Every API, default and behaviour was checked against calls-core prepare-session-flow (5.1.0-beta.2), push-notifications-sdk-ios release/2.0 (2.0.0-beta.2) and the Connect iOS app, then reviewed again independently. Also fixes a broken in-page anchor on the events page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
7 tasks
- Prerequisites: the provider's Bundle ID must be the app's (VoIP topic <bundle id>.voip) and its APNs environment must match the build (Enable Production Mode off for Xcode builds, on for TestFlight/App Store). - Push Ringing troubleshooting: a running app can ring over its live connection, so only a killed app proves the push; new "Check the push itself" section on reading Notifications → Logs (200 vs 400/403). - Same note in the Push Notifications SDK setup and the Calls troubleshooting table. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…it has a call - Migrating from legacy ringing: no dashboard setting is needed; moving to the Calls SDK 5.1 and Push Notifications SDK 2.0 APIs is the migration. Drop the TODO(RC) placeholder. - Push ringing / Ringing: since Push SDK 2.0.0-beta.3 CallKit owns the Calls SDK's audio only while it has a call (answered incoming or reported outgoing); the Push SDK reports outgoing calls itself. Sessions CallKit has no call for use WebRTC's normal audio. Don't set CometChatAudioSession.callKitAudioEnabled when the Calls product is linked. - The Push SDK no longer sets the audio category on Answer: it forwards CallKit's activate/deactivate and WebRTC configures the session then. - Name RingConstants.defaultRingTimeoutMs as the 45 s default. - Requirements: Xcode 16.4; CometChatSDK 4.1.4+ for the Chat product (first release with the push-receipt APIs the Chat product calls). - Pods pinned '~> 2.0.0' everywhere; drop "what Android declares" wording. - Calling overview: v5 is the recommended card, v4 legacy. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…eshooting From #534 (ENG-39337), on pages this PR already rewrites: - Overview: Xcode 16.4 or later. - Setup: "Declare a Window on Your AppDelegate" (scene-based apps crash with -[AppDelegate window]: unrecognized selector), plus its troubleshooting row. - Events / v5 migration guide: listeners are held weakly, so keep a strong reference; inline listeners never fire. - Events: CameraFacing is .FRONT / .REAR (not .BACK); screen share has no local start API on iOS. - v5 migration guide: .setSessionType(.voice) (.audio is deprecated). #534's Chat-SDK "Before You Start" for ringing and the voip-calling prerequisite linking to it are superseded by this PR's ringing flow. Troubleshooting: replace "set .playAndRecord / .defaultToSpeaker" with "don't configure or activate AVAudioSession yourself; don't set callKitAudioEnabled". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The public 2.0 binaries are built and checked against Chat SDK 4.1.10, and the public package and podspec declare that floor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The iOS counterpart of the Android ringing docs (#561). iOS calling no longer signals through the Chat SDK. Calls SDK 5.1 creates, joins and ends calls. Push Notifications SDK 2.0 rings the device in every app state through PushKit and CallKit. On iOS every call uses CallKit, so there is no custom incoming-call screen to build.
Consumer wording is "ringing" and "legacy ringing"; the pages never say v1 or v2.
Calls SDK (
calls/ios/)ringing.mdx(rewritten), Calls SDK only:initiateCall, prepared-session events ("Ringing…" / answered) andaddIncomingCallListenerwith its reason table.presentCall, decline, cancel, the ring timeout, ending withleave(), call waiting, group calls and logout.migrating-from-legacy-ringing.mdx(new, in the Migration Guide navigation group): before/after, seven steps, a method mapping table and a checklist.setup: 5.1, the push products ringing needs, Info.plist and capability notes, and iOS 15.1 (the source floor).events:getActiveSession(it can return nil),onConnected/onParticipantConnected, prepared-session semantics, and the Incoming Call and Login listener sections.actionsandcustom-control-panel:leave()andisSessionActive().overview,migration-guide-v5(5.0 → 5.1) andtroubleshooting: updated to match.Push Notifications SDK
calls/ios/voip-calling.mdxis rewritten as Push Ringing; the slug is unchanged, so no redirect is needed. It covers:didFinishLaunchingon every launch;presentCall/callDidEnd, and ring readiness and diagnostics;unregisterTokensfirst), CallKit branding and troubleshooting.notifications/ios-push-notifications-sdk.mdxis rewritten for 2.0. The APNs and FCM pages get a short pointer note.Chat SDK
sdk/ios/calling-overviewandsdk/ios/all-real-time-delegates-listenersnote that the Chat SDK calling APIs are superseded.How it was checked
calls-coreprepare-session-flow(5.1.0-beta.2),push-notifications-sdk-iosrelease/2.0(2.0.0-beta.2) and the Connect iOS app.Before merging
CometChatCallsSDK 5.1.0and Push Notifications SDK2.0.0. Do not merge before they are published.cometchat/push-notifications-sdk-ioshas only tag 1.0.0.sourcetogithub.com/cometchat/push-notifications-ios, which doesn't exist.Package.swiftdepends on the privatecometchat-team/calls-core..p8APNs provider). Confirm with the backend that this works (planios-voip-push-sdk§7.15/§7.20). The older APNs page still describes separate Device and VoIP providers.TODO(RC)stays until then.SWIFT_INSTALL_OBJC_HEADER = NO, already the case in 5.0.4), so the Objective-C tabs on the iOS Calls pages, old and new, can't be used as written. Either ship the header, or drop the Objective-C tabs site-wide.feat/ringing-v2,ENG-39915). Its pages come in a follow-up.ringing,voip-calling,events,setupand others. Whichever merges second resolves the conflicts.mint dev.SDK issues found while writing (not docs)
defaultRingTimeoutMsis saved but never used; the ringer always uses 45 s. Left out of the docs.notificationContentModifierhas no effect, because the modified copy is thrown away. Listed as "no effect" in the upgrade table.CometChatPushNotificationsCalls.answer(sessionId:)says it acts "exactly as CallKit's Answer" but bypasses CallKit, so the CallKit call isn't updated and no audio session is set up. The docs call it test-only.Related: ENG-39907.
🤖 Generated with Claude Code