Skip to content

docs: Calls SDK 5.1 ringing for Android, iOS, JavaScript, Flutter and React Native - #586

Merged
ketanyekale merged 71 commits into
mainfrom
docs/ringing-flow
Nov 2, 2026
Merged

ketanyekale merged 71 commits into
mainfrom
docs/ringing-flow

Conversation

@jitvarpatil

@jitvarpatil jitvarpatil commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

One branch for the Calls SDK 5.1.0 ringing docs on the platforms that are released, so they're reviewed and merged together.

Merged in (merge commits keep each author's history):

Held back: from #564, the ui-kit/flutter/* pages.

Also held: from #561, the ui-kit/android/* calling pages (they document UI Kit 6.2.0, not released; latest is 6.1.1 on Calls 5.0.2 / Push 1.0.0), including the new ongoing-call page and its nav entry. They stay on #561 for the UI Kit release. React Native (#562) is not included; RN is not released.

Also held: from #562, ui-kit/react-native/calling-integration.mdx and incoming-call.mdx. They describe ringing the React Native UI Kit hasn't shipped; its call buttons still use CometChat.initiateCall.

Changes on top of the PRs

  • Flutter push ringing: the ringing, VoIP, migration, background and push pages from docs(flutter): ringing on Calls SDK 5.1 + cometchat_voip, chat-only push, UI Kit calling #564 restored and corrected against the released cometchat_voip 2.0.0, cometchat_push_notifications 2.0.0 and cometchat_calls_sdk 5.1.0. -android and -ios push URLs redirect to one page. Adds notifications/push-getting-started, which recommends one .p8 APNs provider. 47 of 48 Dart samples analyzed clean; the other is a cross-block reference. Not run on a device.
  • React Native: install commands moved to react-native-webrtc 155.0.1 (5.1.0 fails with ERESOLVE on 124) and react-native-svg ^15.16.0; push packages moved from the alpha pins to ^2.0.0 and the prerelease notes removed; the VoIP pod import added to the iOS AppDelegate sample, which doesn't compile without it; iOS minimum corrected to 15.1.
  • Flutter (Calls SDK 5.1.0): setup for pub.dev ^5.1.0, Android compileSdk 36 / AGP 8.9.1 / the app-declared ongoing call service, iOS Swift Package Manager only (no Podfile step), Xcode 26.1.1+; a 5.0 → 5.1 migration section (build requirements, breaking changes, deprecations, new APIs); troubleshooting rows for the SPM, Xcode 16 and API 36 errors; cometchat_voip references removed from the pages that ship. The v4→v5 "drop-in" claim is corrected (v4's session controls on CometChatCalls no longer compile).
  • iOS: CocoaPods removed (the Calls SDK 5.1 and Push SDK 2.0 are SPM only); snippet fixes from a compile check against Calls 5.1.0 / Push 2.0.0 / Chat 4.1.10; the Calls SDK Objective-C tabs are removed (151): the released xcframework ships no Objective-C header, so none of them compiled. Push SDK Objective-C stays.
  • Android: custom-control-panel joinSession examples fixed (no LifecycleOwner argument; CallbackListener<CallSession>); setShowWhenLocked/setTurnScreenOn guarded for API 27 (minSdk is 26); compileSdk 36 / AGP 8.9.1 stated on the ringing, push ringing and legacy-migration pages (Push SDK 2.0 needs androidx.core 1.18); onConnected() added to the session status events; setSessionActive is deprecated (a no-op), not removed. With the UI Kit pages held, the Android push page (notifications/android-push-notifications.mdx) and the ringing pages are SDK-direct: Gradle on chat-sdk-android 5.0.7 + calls-sdk-android 5.1.0, minSdk 26, no UI Kit sample card (the public push samples are still on Push 1.0.0), and no CometChatUIKit.logout / UI Kit theming notes or links into the held pages. ui-kit/android/upgrading-from-v5.mdx: the core artifact is com.cometchat:chatuikit-core-android.
  • Legacy and new ringing together (Android, iOS, JavaScript): the migration guides get a "While some users are still on legacy ringing" section: one app can have devices on both flows, and the dashboard's Connect legacy ringing setting (Voice & Video Calls → Settings, ENG-40222) lets them call each other. Replaces "No dashboard setting is needed" and the JavaScript "not covered at launch" notes.
  • JavaScript: the v5 generateToken example destructures { token }; addCallEventListener (not in v5) replaced with setCallListener; the v4 auth token from getLoggedinUser().getAuthToken(); two broken one-line code fences fixed.

Checked

  • Structure: mint broken-links — no broken links across the site; mint validate passes apart from the existing docs.json OpenAPI warning (the ui-kit/react <21 parse errors on main were patched only in the check copy, not here).
  • Snippets compiled against the released SDKs: iOS (Swift + ObjC, Calls 5.1.0 / Push 2.0.0 / Chat 4.1.10), JavaScript (calls-sdk-javascript 5.1.0 + chat-sdk-javascript 4.2.1: no missing API; remaining TS-only literal-widening notes on JS examples), Flutter (194 Dart blocks vs cometchat_calls_sdk 5.1.0: clean apart from the v4 "before" examples).
  • Android: Kotlin and Java blocks compiled against Calls 5.1.0 / Push 2.0.0; the edited blocks compile clean and the NewApi lint (minSdk 26) reports 0 issues.

Open: a reportCallEnded and hang-up pass was run on React Native phones; Flutter hasn't been run on devices. The native iOS lock-screen sample pattern is unconfirmed on a device.

🤖 Generated with Claude Code

hritika-cometchat and others added 30 commits October 14, 2026 19:15
…cations SDK

Android calling no longer signals through the Chat SDK. The Calls SDK 5.1
creates, joins and ends calls; the Push Notifications SDK 2.0 calls module
rings the device in every app state; the UI Kit hosts the screens.

Calls SDK
- Rewrite ringing.mdx for the Calls SDK-only flow (initiateCall, prepared
  session events, IncomingCallListener, answer/decline/cancel/end, group calls)
- Rewrite voip-calling.mdx as "Push Ringing" (PNConfiguration, FCM service,
  answer activity, readiness, busy, missed calls, own ring screen, MANUAL)
- Add migrating-from-legacy-ringing.mdx with the method-by-method mapping
- setup: 5.1 version, host overrides, push dependencies, one-shot init
- events: getActiveSession, onParticipantConnected, incoming-call and login
  listeners; actions/overview/custom-control-panel: leave(); migration guide:
  5.0 to 5.1 section; troubleshooting rows

UI Kit
- Rewrite calling-integration.mdx; add ongoing-call.mdx (answer activity)
- call-features, incoming-call (deprecated), outgoing-call, call-buttons,
  call-logs updated for the new flow
- getting-started, methods, sound-manager, troubleshooting, llms, upgrading
  and color-resources edits (no extra dependency, logout, ring-screen colours)

Notifications: rewrite android-push-notifications.mdx for Push SDK 2.0.
Chat SDK v5: deprecation notes on calling-overview and the Call Listener.
docs.json: two new nav entries.

Versions are the planned public releases (calls 5.1.0, push 2.0.0,
UI Kit 6.1.0); hold the merge until they are published.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… from Ringing

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… SDK calling is superseded not deprecated, real call event names, getting-started parity
…ons SDK

Rewrites the three load-bearing calling pages for the new flow and adds the
migration guide, mirroring the Android ringing PR page for page.

- calls/react-native/ringing.mdx: Calls SDK 5.1 flow, prepared-session events,
  answering through the Push SDK, decline, cancel, ring timeout, call waiting.
- calls/react-native/voip-calling.mdx -> Push Ringing: the two init shapes, the
  background task, FCM delegation (optional on RN), readiness and diagnostics,
  missed calls, killed-app behaviour, own ring screen, MANUAL mode.
- calls/react-native/migrating-from-legacy-ringing.mdx (new): before/after, seven
  steps, method mapping, caller and callee screens, checklist.
- ui-kit/react-native/calling-integration.mdx: rewritten for the new flow.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ative pages

Push SDK 2.0 splits ringing into @cometchat/push-notifications-voip-react-native,
which rings in every app state. Replaces the CometChat.addCallListener +
CometChatIncomingCall section both pages taught with the new wiring and a pointer
to the calling pages, and corrects ringInForeground, the background-task import
and the troubleshooting rows that referred to the removed component.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- events: prepared-session semantics, onParticipantConnected, the Push SDK's
  incoming-call events and the Calls SDK login listener.
- setup: 5.1 floor, the push packages needed for ringing, initialise-once warning.
- migration-guide-v5: a 5.0 to 5.1 section.
- troubleshooting: a Ringing section.
- ui-kit incoming-call: deprecated, with what to use instead.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…h_notifications 2.0

- New notifications/flutter-push-notifications.mdx replaces the separate
  Flutter (Android) and Flutter (iOS) pages. It keeps the structure of
  PR #440 and documents cometchat_push_notifications 2.0 (chat
  notifications only): init and config, registerPushToken (FCM on Android,
  APNs on iOS), token refresh, unregisterPushToken before logout,
  onNotificationTap, setActiveConversation, badge and clearNotifications,
  the Android small icon and the optional iOS Notification Service
  Extension. Calls are pointed to the Calls SDK Ringing Flow, with a short
  note on handing call pushes to cometchat_voip first.
- New notifications/push-getting-started.mdx from PR #440 (dashboard,
  Firebase and APNs setup common to all platforms); its iOS card points to
  the existing APNs page.
- Removed flutter-push-notifications-android.mdx and
  flutter-push-notifications-ios.mdx; their URLs and
  /extensions/flutter-push-notifications redirect to the new page, and the
  legacy redirect on /notifications/flutter-push-notifications is removed.
- notifications.mdx and push-overview.mdx show a single Flutter card.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Ringing: replaces the Chat SDK ringing page in place with the Calls SDK
  flow (initiateCall, Ringing…, answer, decline, cancel, timeout, end).
- Push Ringing: rewrites voip-calling for cometchat_voip (setup, init,
  push hand-off, token, ring readiness, call modes, call waiting, missed
  calls, killed/locked, troubleshooting).
- Migrating from Legacy Ringing: new page with before/after code and the
  legacy-to-new API mapping.
- Background Handling: launch(isVideo:), whole-call notification, tidied
  snippet, fixed links.
- Overview, v5 migration guide (5.0 to 5.1), troubleshooting, Flutter push
  page and Chat SDK listeners (CallListener superseded) updated to match.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Calling Integration: new page (Getting Started) with the steps an app
  takes: Calls SDK + cometchat_voip init, the call push bridge
  (VoipCallPushBridge), enableCalls / callPushBridge / navigatorKey, push
  hand-off, push token, ring readiness and logout.
- Call features: rewritten as an overview of how a call works.
- Incoming Call: deprecated on Android and iOS, shown on web only.
- Outgoing Call: Calling…/Ringing… states, timeout, End and events.
- Events, Methods, Troubleshooting, Upgrading from v5 and Getting Started
  updated to match.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Push Ringing keeps the app alive only from the ring until the answered
  call joins; CometChatOngoingCallService keeps a joined call alive.
- Phase table (ringing, answering, in the call) in the Note; the page
  applies to every call kind.
- Tip: the UI Kit's call screen starts and stops the service itself.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…DK internals

The UI Kit has no Push SDK dependency, so the answer activity is a small app class
that builds the call with CallRingingUtils.buildIncomingCall and opens
CometChatOngoingCallActivity. Fix incoming-call to use real APIs. Remove MANUAL mode,
token registrar options, diagnostics, decline-queue and identifier details.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…inging

- Setup: cometchat_calls_sdk 5.1, a note pointing ringing apps to
  cometchat_voip and Push Ringing, permissions asked on Answer.
- Actions: leave() replaces the deprecated leaveSession() and
  endCallSession(); a ringing call is cancelled with endCall.
- Events: the prepared session, onParticipantConnected, and what
  onSessionTimedOut / onConnectionClosed mean before anyone joins.
- Troubleshooting: ringing rows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
registerPushToken and handleTokenRefresh are not Android-only: the token
is the FCM token on Android and the PushKit VoIP token on iOS.

On iOS the package owns the PKPushRegistry in both auto modes, obtains the
VoIP token during init and registers it as soon as a user is logged in to
the Calls SDK (at init if one already is, otherwise at the next login).
Only manual mode leaves the registry, and the token, to the app.

Verified against cometchat_voip 2.0.0-beta7 on release/2.0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The caller's end reason is a native string whose wording differs per
platform, so the pages no longer promise `rejected` / `busy` /
`unanswered`: they hand it to `CometChatCallEndReason.fromWire`, list
the values that come back, and say a busy decline is indistinguishable
from a plain one.

Group calls: `initiateCall` takes a group GUID, so Ringing documents the
group ring and how it ends instead of calling the method 1:1-only, which
contradicted Push Ringing. `setPeerCall(true)` is now scoped to 1:1.

The UI Kit pin can't be `^6.2.0` — that release is on pub.dev without the
call push bridge. Also: `acceptOnAnswer` in the config table, Manual mode
runs on iOS too, FCM covers Flutter (Android), the plugin's Dart floor is
the one that applies, and the dashboard rollout step says out loud that
it is unfinished.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The ring pages described overriding cometchat_pn_call_* colour resources, copied
from the Android page. Those resources do not exist in the React Native package:
the ring screen builds its colours in code, so an app defining those names changes
nothing. What IS overridable on Android is the cometchat_pn_* strings — which is
also how the ring is localised — and the cometchat_pn_ic_call drawable.

Replaces the colour table on both pages with what actually works, and points
anyone who needs a branded ring at drawing their own in-app screen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…omingCallTheme)

The Push SDK's incoming-call screen can now be themed in code, light and
dark, and the UI Kit can pass its own theme to it. The docs still said
there was no runtime theme API and listed six colour resources.

- Push Ringing: setIncomingCallTheme in the setter table; the theming
  section now covers CometChatPNIncomingCallTheme (Mode, Colors, Kotlin
  and Java), saving across a killed process, the theme -> resource ->
  default order, and all eleven colour resources with their setters.
  Notes that the class is not the @style/CometChatPNIncomingCallTheme
  window style.
- Push Notifications: setIncomingCallTheme row.
- UI Kit calling integration: CometChatTheme.getIncomingCallTheme() and
  Compose incomingCallTheme(), the app's mapping function, the one-line
  setIncomingCallTheme, and which UI Kit colour feeds each field.
- Color resources: eleven colours with the UI Kit colour, light and dark.
- Incoming Call (deprecated): CometChatIncomingCallStyle -> theme field
  map, including what has no equivalent.
- Call features: incoming call paragraph.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An earlier commit on this branch warned that the Android ring screen's colours
could not be overridden. That was true when it was written and is not any more:
the SDK gained nine `cometchat_pn_call_*` colour resources, and then an
`incomingCallTheme` object with light/dark sets, a mode that follows the device,
and a runtime setter.

Replaces that warning on both pages with what actually works, in the order the
SDK resolves it: the theme, then the resource, then the default. Notes the two
things easy to get wrong — set `acceptIcon` with a light `acceptButton` or the
glyph vanishes, and the colours paint the full-screen ring, not the call-style
notification, which Android styles itself.

iOS is unchanged and stated plainly: CallKit owns that screen, the theme is
ignored there, and the native iOS SDK has the same limit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…special

Two claims were wrong, checked against native Android's RingController and
our own voip/src/index.ts:

- A group decline DOES send `rejected`. There is no group branch in the
  decline path on any platform — `isPeerCall` is used only at `connect()`
  and in the wrong-recipient gate.
- A call that rings out sends nothing, for 1:1 AND group. `timeout()` stops
  the ring and posts a missed call locally; it never calls `endCall`. The
  caller's `unanswered` comes from the backend's own ring window.

So the split between 1:1 and group behaviour is removed, not corrected.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…eme)

The Android ring screen cometchat_voip draws, and its call notifications,
can now be themed in code, light and dark, and the UI Kit can pass its own
colours to it.

- Push Ringing: incomingCallTheme option; new "Theming the ring screen"
  section (order theme -> resource -> default, the Dart API, mode, saved
  across a killed app, kept across init, last one wins, where it applies,
  the eleven cometchat_voip_call_* resources); two troubleshooting rows.
- Calling Integration: "Styling the ring screen" with
  CometChatIncomingCallTheme.from / .of, the app's toVoip() mapping, the
  one line at app start, and the palette colour behind each field.
- Color Resources: ring screen colours with UI Kit light and dark values.
- Incoming Call (deprecated): CometChatIncomingCallStyle -> ring screen
  colour map.
- Call Features and Theming: pointers to the new section.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Checked every page in this PR against calls-core prepare-session-flow
(Calls SDK 5.1.0-beta.2), push-notifications-sdk-android release/2.0
(2.0.0-beta.3) and uikit-android ENG-39907-ringing-v2-incoming.

Dependencies and setup
- The UI Kit brings the Calls SDK only; no library module depends on the
  Push SDK. Getting Started (3 pages), Call Features and Calling
  Integration now say so, and Calling Integration's Gradle snippets add
  both push artifacts (UI Kit listed first, so its ring colours win).
- UI Kit minSdk is 28, not 26.
- Permissions: RECORD_AUDIO, CAMERA and POST_NOTIFICATIONS already merge
  in from the Calls SDK, the UI Kit and the calls module; pages now say
  "request at runtime" instead of "declare".
- Push init runs in Application.onCreate on every start, before login:
  login/logout token registration only runs in a process where init ran.
- setProviderId is required; setNotificationSmallIcon covers chat
  notifications only and defaults to a system icon.
- Logout: a Chat logout unregisters the token; only a Calls logout stops
  a ring.

Calls SDK
- getActiveSession() is @nullable: Kotlin samples use ?. and the page
  explains registering after join or through CallSession.getInstance().
- A prepared session that expires (5 min) reports onConnectionClosed, not
  onSessionTimedOut; samples and tables updated.
- Callee end reasons include `ended`; treat unknown reasons as "over".
- joinSession ignores settings on a prepared session (callee settings are
  the Push SDK's).
- The caller has no ring timer: recommend one, since nothing else ends a
  ring the callee never received for 5 minutes.
- initiateCall accepts RECEIVER_TYPE_GROUP; group decline/busy is local.
- A second init() with a different app ID re-initialises.
- CometChatCallsConstants has been deprecated since 5.0.

Push ringing samples
- setShowWhenLocked/setTurnScreenOn guarded for API 27 (calls module
  minSdk is 26).
- The answer activity is no longer singleTop in the manifest, and
  onNewIntent relaunches with FLAG_ACTIVITY_NEW_TASK only, as the UI
  Kit's CometChatOngoingCallActivity does; singleTop routed the relaunch
  back to the same instance.
- Custom ring screen gets its manifest entry.

UI Kit events
- CometChatCallEvent.CallRejected fires only for End or the 45 s timer;
  CallEnded only when this device hangs up a call opened with a Call.
- Compose CometChatIncomingCall: onAcceptClick runs after the default
  accept; use onAcceptRequested to answer through the Push SDK.
- setOnError / onError take one parameter.
- CometChatCallActivity cannot be the Push SDK's incoming-call activity.
- initiateUserCall fails with CALL_IN_PROGRESS; ACTIVE_CALL is Call
  Buttons'.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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>
…e-check

docs(android): correct the ringing pages against the SDK source (for #561)
Rewrite the JavaScript Ringing page for the new ringing flow (ENG-39907):
the Calls SDK creates, prepares, joins and ends calls, and an incoming
call still reaches an open tab through the Chat SDK's CallListener (the
web has no VoIP push). Covers the caller listening on the prepared
session, the callee preparing with connect(), decline/cancel/busy/
unanswered with endCall(), the status poll for declines the caller is
not told about, ring timers, multiple tabs and group calls.

Add Migrating from Legacy Ringing, and update setup, overview, events,
actions, session settings (isPeerCall), the v5 migration guide (5.0 to
5.1), troubleshooting, and the Chat SDK calling pages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 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>
A callee on a phone rings for 60 s, so the caller gives up first at 45 s and the
callee never rings for a call nobody is waiting on. Matches the iOS, Android and
web ringing samples. The web callee stops ringing after 60 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- UI Kit pins: getting-started and upgrading-from-v5 now pin the same
  ^6.3.0 placeholder as calling-integration, each with a TODO(RC) to
  replace it with the release that ships ringing (6.2.0 has no call push
  bridge).
- Ringing: the caller's end reasons say what answeredElsewhere,
  remoteEnded, failed and filtered mean, and that Android's ended is
  also read as declined.
- Calling Integration: CometChatIncomingCallTheme.of without a darkTheme
  builds the dark set from the light palette; set darkTheme or use
  .from(light:, dark:).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jitvarpatil and others added 2 commits November 2, 2026 18:32
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Calls 5.1.0 requires react-native-webrtc 155, so the install commands that named
124.0.7 fail with ERESOLVE. Moves the push packages from the alpha pins to ^2.0.0
and removes the prerelease notes, for when 2.0.0 is on npm. Adds the VoIP pod
import the iOS AppDelegate sample needs to compile, raises react-native-svg to
the first version targeting iOS 15.1, and corrects the iOS minimum.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jitvarpatil jitvarpatil changed the title docs: Calls SDK 5.1 ringing for Android, iOS, JavaScript and Flutter docs: Calls SDK 5.1 ringing for Android, iOS, JavaScript, Flutter and React Native Nov 2, 2026
iOS uses a token-based APNs provider rather than a VoIP certificate, the iOS and
Node minimums follow current React Native, callKitName defaults to "Calls", and
onCallEnded reports declined and timedOut. getLoggedinUser() returns a promise, so
the in-call chat sample needed then().

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… group ringing

Call log samples used a builder the Chat SDK doesn't have and fields CallLog
doesn't expose. Push Ringing was missing the native setup and listed React Native
Firebase as required. The VoIP package doesn't prompt for the microphone on
answer. initiateCall supports groups, and a 1:1 call needs isPeerCall to end for
both people.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Android samples set setPeerCall for 1:1 calls. iOS no longer promises that a busy
or early decline closes the caller's session, and documents getCallDetail. The
phone ring default is 45 s, onSessionTimedOut only covers an idle joined session,
and incoming calls come by push alone. React Native corrects permissions,
Firebase, roster and result-shape claims, and stops promising group decline
behaviour. The notification handlers no longer hang up a different call. Flutter's
overview labels its ringing page as legacy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Push Notifications SDK 2.0.0 types reportCallEnded's reason, and 'ended' isn't
one of its values.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… 2.0

Brings back the pages held in 08306dc from #564, corrected against the
released cometchat_voip 2.0.0, cometchat_push_notifications 2.0.0 and
cometchat_calls_sdk 5.1.0. Keeps the newer setup, migration and troubleshooting
content and leaves the UI Kit pages held.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
iOS uses .REAR. React Native's leaveSession() isn't deprecated, addLoginListener
isn't new, and the init() hosts claim is removed. Flutter drops two breaking
changes for APIs that never shipped and moves off deprecated calls. Android no
longer lists a local decline as an end reason, and says the caller's reasons come
through the Push SDK.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
honey-cometchat
honey-cometchat previously approved these changes Nov 2, 2026
Removes it from the 5.1 deprecations table, which the earlier fix missed, and
names the setup section for peer dependencies.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ketanyekale
ketanyekale merged commit 41ebc45 into main Nov 2, 2026
5 checks passed

This branch was successfully deployed

1 active deployment
staging — 8e26ab1e Deployed Nov 2, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

8 participants