diff --git a/calls/android/recording.mdx b/calls/android/recording.mdx
index 5fba04c4c..32745ed30 100644
--- a/calls/android/recording.mdx
+++ b/calls/android/recording.mdx
@@ -72,6 +72,13 @@ SessionSettings sessionSettings = new CometChatCalls.SessionSettingsBuilder()
+
+**A recording runs until it is stopped.** Whether it was started manually or automatically through `enableAutoStartRecording`, it keeps running until someone stops it. If nobody does, it stops on its own when either:
+
+- Everyone leaves the session — the recording ends about a minute later.
+- Everyone in the session stays muted for 10 minutes.
+
+
## Hide Recording Button
Hide the recording button from the default call UI:
diff --git a/calls/flutter/recording.mdx b/calls/flutter/recording.mdx
index 735e72bfc..9f8c426ed 100644
--- a/calls/flutter/recording.mdx
+++ b/calls/flutter/recording.mdx
@@ -39,6 +39,13 @@ SessionSettings sessionSettings = CometChatCalls.SessionSettingsBuilder()
.build();
```
+
+**A recording runs until it is stopped.** Whether it was started manually or automatically through `enableAutoStartRecording`, it keeps running until someone stops it. If nobody does, it stops on its own when either:
+
+- Everyone leaves the session — the recording ends about a minute later.
+- Everyone in the session stays muted for 10 minutes.
+
+
## Hide Recording Button
Hide the recording button from the default call UI:
diff --git a/calls/ios/recording.mdx b/calls/ios/recording.mdx
index ab514ce5f..acc306a94 100644
--- a/calls/ios/recording.mdx
+++ b/calls/ios/recording.mdx
@@ -68,6 +68,13 @@ SessionSettings *sessionSettings = [[[CometChatCalls sessionSettingsBuilder]
+
+**A recording runs until it is stopped.** Whether it was started manually or automatically through `enableAutoStartRecording`, it keeps running until someone stops it. If nobody does, it stops on its own when either:
+
+- Everyone leaves the session — the recording ends about a minute later.
+- Everyone in the session stays muted for 10 minutes.
+
+
## Hide Recording Button
Hide the recording button from the default call UI:
diff --git a/calls/javascript/actions.mdx b/calls/javascript/actions.mdx
index 75a3742e0..de9868562 100644
--- a/calls/javascript/actions.mdx
+++ b/calls/javascript/actions.mdx
@@ -184,6 +184,10 @@ Ends your participation and disconnects gracefully. The call continues for other
CometChatCalls.leaveSession();
```
+
+`leaveSession()` takes no session ID. `CometChatCalls` is a singleton that tracks one active session at a time, so this leaves whichever session is currently in progress. The same applies to every action on this page. See [Single Active Session](/calls/javascript/overview#single-active-session).
+
+
## UI Controls
### Show Settings Dialog
diff --git a/calls/javascript/join-session.mdx b/calls/javascript/join-session.mdx
index 237c25cd5..a0a0ca794 100644
--- a/calls/javascript/join-session.mdx
+++ b/calls/javascript/join-session.mdx
@@ -135,6 +135,21 @@ try {
All participants joining the same call must use the same session ID.
+## One Session at a Time
+
+`CometChatCalls` is a singleton that holds a single active session. Joining a second session while one is in progress is not supported - leave the current session first, wait for `onSessionLeft`, then join the next one.
+
+```javascript
+CometChatCalls.addEventListener("onSessionLeft", async () => {
+ const { token } = await CometChatCalls.generateToken(nextSessionId);
+ await CometChatCalls.joinSession(token, callSettings, container);
+});
+
+CometChatCalls.leaveSession();
+```
+
+This is also why `leaveSession()` and the other [actions](/calls/javascript/actions) take no session ID - they always apply to the session that is currently active. See [Single Active Session](/calls/javascript/overview#single-active-session) for the full behavior.
+
## Error Handling
Common errors when joining a session:
diff --git a/calls/javascript/migration-guide-v5.mdx b/calls/javascript/migration-guide-v5.mdx
index c6ab13382..eaf686912 100644
--- a/calls/javascript/migration-guide-v5.mdx
+++ b/calls/javascript/migration-guide-v5.mdx
@@ -209,6 +209,20 @@ CometChatCalls.generateToken(sessionId).then((token) => {
Static methods remain on `CometChatCalls` but some have been renamed.
+
+**Boolean toggles are now paired methods.** In v4, `muteAudio()` took a boolean: `muteAudio(true)` muted the mic and `muteAudio(false)` unmuted it. In v5 these are two separate, argument-free methods — replace `muteAudio(true)` with `muteAudio()` and `muteAudio(false)` with `unmuteAudio()`. The same split applies to `pauseVideo(true)` / `pauseVideo(false)`, which become `pauseVideo()` and `resumeVideo()`.
+
+
+```javascript
+// v4
+CometChatCalls.muteAudio(true); // mute
+CometChatCalls.muteAudio(false); // unmute
+
+// v5
+CometChatCalls.muteAudio(); // mute
+CometChatCalls.unmuteAudio(); // unmute
+```
+
| v4 Method | v5 Method |
|---|---|
| `CometChatCalls.endSession()` | `CometChatCalls.leaveSession()` |
@@ -289,6 +303,24 @@ CometChatCalls.addEventListener("onCallLayoutChanged", (layoutType) => { });
`addEventListener()` returns an unsubscribe function. Call it to remove the listener. You can also pass an `AbortSignal` for cleanup.
+### New Events Require `addEventListener()`
+
+The events introduced in v5 are only delivered through `addEventListener()`. None of the v4 registration paths — `setCallListener()` / `setCallEventListener()` on `CallSettingsBuilder` and `CometChatCalls.addCallEventListener(name, listener)` — will ever fire them, because `OngoingCallListener` only carries the legacy v4 event set. Events such as `onSessionJoined`, `onConnectionLost`, `onLeaveSessionButtonClicked`, and `onCallLayoutChanged` are unreachable from a v4 listener no matter how it is registered.
+
+You don't have to migrate everything at once. `addEventListener()` works alongside an existing v4 listener without breaking it — keep your current `OngoingCallListener` for the legacy events and add `addEventListener()` subscriptions for the new ones.
+
+```javascript
+// Existing v4 listener keeps working
+CometChatCalls.addCallEventListener("MY_LISTENER", new CometChatCalls.OngoingCallListener({
+ onCallEnded: () => { },
+ onUserJoined: (user) => { },
+}));
+
+// Add v5-only events alongside it
+CometChatCalls.addEventListener("onConnectionLost", () => { });
+CometChatCalls.addEventListener("onCallLayoutChanged", (layoutType) => { });
+```
+
### Event Mapping
| v4 Event | v5 Event |
diff --git a/calls/javascript/overview.mdx b/calls/javascript/overview.mdx
index c4efeee79..6d460c87f 100644
--- a/calls/javascript/overview.mdx
+++ b/calls/javascript/overview.mdx
@@ -142,6 +142,40 @@ The SDK is organized around these core components:
| `CallSettings` | Configuration object for individual call sessions |
| `addEventListener` | Method to register event listeners for session, participant, media, and UI events |
+## Single Active Session
+
+`CometChatCalls` is a singleton, and it tracks one active call session at a time. Every session method acts on that current session, which is why methods like `leaveSession()` take no session ID:
+
+```javascript
+// Joins and becomes the active session
+await CometChatCalls.joinSession(callToken, callSettings, container);
+
+// Acts on whatever session is currently active - no session ID needed
+CometChatCalls.leaveSession();
+```
+
+| Behavior | Detail |
+|----------|--------|
+| One session at a time | The SDK does not support being connected to two sessions simultaneously. Leave the current session before joining another. |
+| Session methods take no session ID | `leaveSession()` and the other [actions](/calls/javascript/actions) apply to the active session only. |
+| Actions apply to the active session | `muteAudio()`, `pauseVideo()`, `startScreenShare()`, and similar methods target the session currently in progress. |
+| Events are not session-scoped | Listeners registered with `addEventListener` fire for the active session. |
+
+To move a user from one call to another, leave the current session, wait for the `onSessionLeft` event, then generate a token for the new session and join:
+
+```javascript
+CometChatCalls.addEventListener("onSessionLeft", async () => {
+ const { token } = await CometChatCalls.generateToken(nextSessionId);
+ await CometChatCalls.joinSession(token, callSettings, container);
+});
+
+CometChatCalls.leaveSession();
+```
+
+
+The limit applies per SDK instance. Separate browser tabs or windows each load their own instance, so they can hold separate sessions independently.
+
+
## Sample App
diff --git a/calls/javascript/recording.mdx b/calls/javascript/recording.mdx
index c49652b21..9b7da976d 100644
--- a/calls/javascript/recording.mdx
+++ b/calls/javascript/recording.mdx
@@ -42,6 +42,13 @@ Stop the current recording:
CometChatCalls.stopRecording();
```
+
+**A recording runs until it is stopped.** Whether it was started manually or automatically through `autoStartRecording`, it keeps running until someone stops it. If nobody does, it stops on its own when either:
+
+- Everyone leaves the session — the recording ends about a minute later.
+- Everyone in the session stays muted for 10 minutes.
+
+
## Recording Events
### Recording Started
diff --git a/calls/react-native/actions.mdx b/calls/react-native/actions.mdx
index 69bbb3759..cc26f636d 100644
--- a/calls/react-native/actions.mdx
+++ b/calls/react-native/actions.mdx
@@ -65,6 +65,10 @@ CometChatCalls.leaveSession();
The `leaveSession()` method ends the call for the local user. Other participants will remain in the call unless they also leave.
+
+`leaveSession()` takes no session ID. `CometChatCalls` is a singleton that tracks one active session at a time, so this leaves whichever session is currently in progress. The same applies to every action on this page. See [Single Active Session](/calls/react-native/overview#single-active-session).
+
+
## Raise Hand
### Raise Hand
diff --git a/calls/react-native/join-session.mdx b/calls/react-native/join-session.mdx
index 1161b8290..fb346dbee 100644
--- a/calls/react-native/join-session.mdx
+++ b/calls/react-native/join-session.mdx
@@ -282,6 +282,21 @@ const styles = StyleSheet.create({
export default CallScreen;
```
+## One Session at a Time
+
+`CometChatCalls` is a singleton that holds a single active session. Render one `CometChatCalls.Component` at a time - joining a second session while one is in progress is not supported. Leave the current session first, wait for `onSessionLeft`, then join the next one.
+
+```tsx
+CometChatCalls.addEventListener('onSessionLeft', async () => {
+ const { token } = await CometChatCalls.generateToken(nextSessionId);
+ setCallToken(token); // Re-renders the component with the new session
+}, { signal });
+
+CometChatCalls.leaveSession();
+```
+
+This is also why `leaveSession()` and the other [actions](/calls/react-native/actions) take no session ID - they always apply to the session that is currently active. See [Single Active Session](/calls/react-native/overview#single-active-session) for the full behavior.
+
## Error Handling
Common errors when joining a session:
diff --git a/calls/react-native/migration-guide-v5.mdx b/calls/react-native/migration-guide-v5.mdx
index 40ddc74e6..174176d61 100644
--- a/calls/react-native/migration-guide-v5.mdx
+++ b/calls/react-native/migration-guide-v5.mdx
@@ -212,6 +212,20 @@ const { token } = await CometChatCalls.generateToken(sessionId);
Static methods remain on `CometChatCalls` but some have been renamed.
+
+**Boolean toggles are now paired methods.** In v4, `muteAudio()` took a boolean: `muteAudio(true)` muted the mic and `muteAudio(false)` unmuted it. In v5 these are two separate, argument-free methods — replace `muteAudio(true)` with `muteAudio()` and `muteAudio(false)` with `unmuteAudio()`. The same split applies to `pauseVideo(true)` / `pauseVideo(false)`, which become `pauseVideo()` and `resumeVideo()`.
+
+
+```javascript
+// v4
+CometChatCalls.muteAudio(true); // mute
+CometChatCalls.muteAudio(false); // unmute
+
+// v5
+CometChatCalls.muteAudio(); // mute
+CometChatCalls.unmuteAudio(); // unmute
+```
+
| v4 Method | v5 Method |
|---|---|
| `CometChatCalls.endSession()` | `CometChatCalls.leaveSession()` |
@@ -290,6 +304,24 @@ CometChatCalls.addEventListener("onPictureInPictureLayoutDisabled", () => { });
`addEventListener()` returns an unsubscribe function. Call it to remove the listener.
+### New Events Require `addEventListener()`
+
+The events introduced in v5 are only delivered through `addEventListener()`. Neither of the v4 registration paths — `setCallEventListener()` on `CallSettingsBuilder` and `CometChatCalls.addCallEventListener(name, listener)` — will ever fire them, because `OngoingCallListener` only carries the legacy v4 event set. Events such as `onSessionJoined`, `onConnectionLost`, `onLeaveSessionButtonClicked`, and `onCallLayoutChanged` are unreachable from a v4 listener no matter how it is registered.
+
+You don't have to migrate everything at once. `addEventListener()` works alongside an existing v4 listener without breaking it — keep your current `OngoingCallListener` for the legacy events and add `addEventListener()` subscriptions for the new ones.
+
+```javascript
+// Existing v4 listener keeps working
+CometChatCalls.addCallEventListener("MY_LISTENER", new CometChatCalls.OngoingCallListener({
+ onCallEnded: () => { },
+ onUserJoined: (user) => { },
+}));
+
+// Add v5-only events alongside it
+CometChatCalls.addEventListener("onConnectionLost", () => { });
+CometChatCalls.addEventListener("onCallLayoutChanged", (layoutType) => { });
+```
+
### Event Mapping
| v4 Event | v5 Event |
diff --git a/calls/react-native/overview.mdx b/calls/react-native/overview.mdx
index 5c0f04415..c9d906817 100644
--- a/calls/react-native/overview.mdx
+++ b/calls/react-native/overview.mdx
@@ -14,7 +14,7 @@ Before integrating the Calls SDK, ensure you have:
1. **CometChat Account**: [Sign up](https://app.cometchat.com/signup) and create an app to get your App ID, Region, and API Key
2. **CometChat Users**: Users must exist in CometChat to use calling features. For testing, create users via the [Dashboard](https://app.cometchat.com) or [REST API](/rest-api/users/create). Authentication is handled by the Calls SDK - see [Authentication](/calls/react-native/authentication)
3. **React Native Requirements**:
- - React Native 0.71 or later
+ - React Native 0.71 or later (works with both the old architecture and the [New Architecture](/calls/react-native/setup#react-native-new-architecture), including bridgeless mode)
- Node.js 18 or later
- iOS: Minimum iOS 13.0, Xcode 14.0+
- Android: Minimum SDK API Level 24 (Android 7.0)
@@ -95,6 +95,34 @@ The SDK is organized around these core components:
| `CometChatCalls.Component` | React component that renders the call UI |
| `CometChatCalls.addEventListener` | Subscribe to call events; returns an unsubscribe function |
+## Single Active Session
+
+`CometChatCalls` is a singleton, and it tracks one active call session at a time. Every session method acts on that current session, which is why methods like `leaveSession()` take no session ID:
+
+```tsx
+// Acts on whatever session is currently active - no session ID needed
+CometChatCalls.leaveSession();
+```
+
+| Behavior | Detail |
+|----------|--------|
+| One session at a time | The SDK does not support being connected to two sessions simultaneously. Leave the current session before joining another. |
+| One `Component` at a time | Render a single `CometChatCalls.Component` for the active call. Mounting two at once is not supported. |
+| Session methods take no session ID | `leaveSession()` and the other [actions](/calls/react-native/actions) apply to the active session only. |
+| Actions apply to the active session | `muteAudio()`, `pauseVideo()`, `switchCamera()`, and similar methods target the session currently in progress. |
+| Events are not session-scoped | Listeners registered with `addEventListener` fire for the active session. |
+
+To move a user from one call to another, leave the current session, wait for the `onSessionLeft` event, then generate a token for the new session and render the component with the new token:
+
+```tsx
+CometChatCalls.addEventListener('onSessionLeft', async () => {
+ const { token } = await CometChatCalls.generateToken(nextSessionId);
+ setCallToken(token); // Re-renders CometChatCalls.Component with the new session
+}, { signal });
+
+CometChatCalls.leaveSession();
+```
+
## Related Documentation
- [Setup](/calls/react-native/setup) - Install and configure the SDK
diff --git a/calls/react-native/recording.mdx b/calls/react-native/recording.mdx
index ac29f9aa4..ce0210b3d 100644
--- a/calls/react-native/recording.mdx
+++ b/calls/react-native/recording.mdx
@@ -46,6 +46,13 @@ Stop an active recording:
CometChatCalls.stopRecording();
```
+
+**A recording runs until it is stopped.** Whether it was started manually or automatically through `autoStartRecording`, it keeps running until someone stops it. If nobody does, it stops on its own when either:
+
+- Everyone leaves the session — the recording ends about a minute later.
+- Everyone in the session stays muted for 10 minutes.
+
+
## Recording Events
Listen for recording state changes:
diff --git a/calls/react-native/setup.mdx b/calls/react-native/setup.mdx
index 239782e85..9ddb1db0d 100644
--- a/calls/react-native/setup.mdx
+++ b/calls/react-native/setup.mdx
@@ -59,6 +59,14 @@ npm install @react-native-async-storage/async-storage@^2.1.2 react-native-backgr
yarn add @react-native-async-storage/async-storage@^2.1.2 react-native-background-timer@^2.4.1 react-native-performance@^5.1.2 react-native-svg@^15.12.0 react-native-url-polyfill@2.0.0 react-native-webrtc@124.0.7
```
+## React Native New Architecture
+
+The Calls SDK works with both the old architecture and the New Architecture, including bridgeless mode. No extra setup is needed — leave `newArchEnabled` set to whatever your app requires and follow the same integration steps either way.
+
+
+The SDK ships as a legacy native module rather than a TurboModule/Fabric component. On the New Architecture it runs through React Native's built-in interop layer, so the API and behavior are identical on both architectures.
+
+
## iOS Configuration
### Install CocoaPods Dependencies
diff --git a/calls/v4/android/call-logs.mdx b/calls/v4/android/call-logs.mdx
index 0f83de500..981a680fa 100644
--- a/calls/v4/android/call-logs.mdx
+++ b/calls/v4/android/call-logs.mdx
@@ -2,9 +2,17 @@
title: "Call Logs"
sidebarTitle: "Call Logs"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Call Logs for Android"
+description: "CometChat Calling SDK v4 - Legacy Release - Call Logs for Android"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Android).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/android/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/android/migration-guide-v5).
+
+
## Overview
CometChat's Android Call SDK provides a comprehensive way to integrate call logs into your application, enhancing your user experience by allowing users to effortlessly keep track of their communication history. Call logs provide crucial information such as call duration, participants, and more.
diff --git a/calls/v4/android/call-session.mdx b/calls/v4/android/call-session.mdx
index 7eeaa060b..48d9c4c21 100644
--- a/calls/v4/android/call-session.mdx
+++ b/calls/v4/android/call-session.mdx
@@ -2,9 +2,17 @@
title: "Call Session"
sidebarTitle: "Call Session"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Call Session for Android"
+description: "CometChat Calling SDK v4 - Legacy Release - Call Session for Android"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Android).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/android/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/android/migration-guide-v5).
+
+
## Overview
This section demonstrates how to start a call session in an Android application. Previously known as **Direct Calling**.
diff --git a/calls/v4/android/overview.mdx b/calls/v4/android/overview.mdx
index 19eb74b4f..412250b0e 100644
--- a/calls/v4/android/overview.mdx
+++ b/calls/v4/android/overview.mdx
@@ -2,12 +2,16 @@
title: "Calling SDK"
sidebarTitle: "Overview"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Overview for Android. This is the stable v4 documentation. Most users should use this version."
+description: "CometChat Calling SDK v4 - Legacy Release - Overview for Android. This is the legacy v4 documentation. Most users should use v5, the current stable version."
---
-
-🚀 **v5 Beta Available** — The Calling SDK v5 is now available in beta with significant improvements. [Check out the v5 docs →](/calls/android/overview)
-
+
+**You're reading the legacy documentation for Calling SDK v4 (Android).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/android/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/android/migration-guide-v5).
+
## Overview
diff --git a/calls/v4/android/presenter-mode.mdx b/calls/v4/android/presenter-mode.mdx
index d0e41e0a2..f038afe5f 100644
--- a/calls/v4/android/presenter-mode.mdx
+++ b/calls/v4/android/presenter-mode.mdx
@@ -2,9 +2,17 @@
title: "Presenter Mode"
sidebarTitle: "Presenter Mode"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Presenter Mode for Android"
+description: "CometChat Calling SDK v4 - Legacy Release - Presenter Mode for Android"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Android).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/android/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/android/migration-guide-v5).
+
+
## Overview
The Presenter Mode feature allows developers to create a calling service experience in which:
diff --git a/calls/v4/android/recording.mdx b/calls/v4/android/recording.mdx
index 394361e31..60f943733 100644
--- a/calls/v4/android/recording.mdx
+++ b/calls/v4/android/recording.mdx
@@ -2,9 +2,17 @@
title: "Recording"
sidebarTitle: "Recording"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Recording for Android"
+description: "CometChat Calling SDK v4 - Legacy Release - Recording for Android"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Android).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/android/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/android/migration-guide-v5).
+
+
This section will guide you to implement call recording feature for the voice and video calls.
## Implementation
diff --git a/calls/v4/android/ringing.mdx b/calls/v4/android/ringing.mdx
index 7e584b258..6d892ba90 100644
--- a/calls/v4/android/ringing.mdx
+++ b/calls/v4/android/ringing.mdx
@@ -2,9 +2,17 @@
title: "Ringing"
sidebarTitle: "Ringing"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Ringing for Android"
+description: "CometChat Calling SDK v4 - Legacy Release - Ringing for Android"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Android).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/android/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/android/migration-guide-v5).
+
+
## Overview
This section explains how to implement a complete calling workflow with ringing functionality, including incoming/outgoing call UI, call acceptance, rejection, and cancellation. Previously known as **Default Calling**.
diff --git a/calls/v4/android/session-timeout.mdx b/calls/v4/android/session-timeout.mdx
index af96acde0..28dbe86b3 100644
--- a/calls/v4/android/session-timeout.mdx
+++ b/calls/v4/android/session-timeout.mdx
@@ -2,9 +2,17 @@
title: "Session Timeout Flow"
sidebarTitle: "Session Timeout"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Session Timeout for Android"
+description: "CometChat Calling SDK v4 - Legacy Release - Session Timeout for Android"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Android).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/android/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/android/migration-guide-v5).
+
+
Available since v4.1.0
## Overview
diff --git a/calls/v4/android/setup.mdx b/calls/v4/android/setup.mdx
index 362c473f6..c0a4de383 100644
--- a/calls/v4/android/setup.mdx
+++ b/calls/v4/android/setup.mdx
@@ -2,9 +2,17 @@
title: "Setup"
sidebarTitle: "Setup"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Setup for Android"
+description: "CometChat Calling SDK v4 - Legacy Release - Setup for Android"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Android).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/android/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/android/migration-guide-v5).
+
+
## Get your Application Keys
[Signup for CometChat](https://app.cometchat.com/signup) and then:
diff --git a/calls/v4/android/standalone-calling.mdx b/calls/v4/android/standalone-calling.mdx
index 77c4cc81f..72cde0219 100644
--- a/calls/v4/android/standalone-calling.mdx
+++ b/calls/v4/android/standalone-calling.mdx
@@ -2,9 +2,17 @@
title: "Standalone Calling"
sidebarTitle: "Standalone Calling"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Standalone Calling for Android"
+description: "CometChat Calling SDK v4 - Legacy Release - Standalone Calling for Android"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Android).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/android/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/android/migration-guide-v5).
+
+
## Overview
This section demonstrates how to implement calling functionality using only the CometChat Calls SDK, without requiring the Chat SDK. This is ideal for applications that need video/audio calling capabilities without the full chat infrastructure.
diff --git a/calls/v4/android/video-view-customisation.mdx b/calls/v4/android/video-view-customisation.mdx
index b0b6db7a4..c703721b3 100644
--- a/calls/v4/android/video-view-customisation.mdx
+++ b/calls/v4/android/video-view-customisation.mdx
@@ -2,9 +2,17 @@
title: "Video View Customisation"
sidebarTitle: "Video View Customisation"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Video View Customisation for Android"
+description: "CometChat Calling SDK v4 - Legacy Release - Video View Customisation for Android"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Android).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/android/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/android/migration-guide-v5).
+
+
This section will guide you to customise the main video container.
## Implementation
diff --git a/calls/v4/flutter/call-logs.mdx b/calls/v4/flutter/call-logs.mdx
index bff32890e..d0da7b464 100644
--- a/calls/v4/flutter/call-logs.mdx
+++ b/calls/v4/flutter/call-logs.mdx
@@ -2,9 +2,17 @@
title: "Call Logs"
sidebarTitle: "Call Logs"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Call Logs for Flutter"
+description: "CometChat Calling SDK v4 - Legacy Release - Call Logs for Flutter"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Flutter).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/flutter/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/flutter/migration-guide-v5).
+
+
## Overview
CometChat's Flutter Call SDK provides a comprehensive way to integrate call logs into your application, enhancing your user experience by allowing users to effortlessly keep track of their communication history. Call logs provide crucial information such as call duration, participants, and more.
diff --git a/calls/v4/flutter/call-session.mdx b/calls/v4/flutter/call-session.mdx
index 3c0a83b44..352add123 100644
--- a/calls/v4/flutter/call-session.mdx
+++ b/calls/v4/flutter/call-session.mdx
@@ -2,9 +2,17 @@
title: "Call Session"
sidebarTitle: "Call Session"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Call Session for Flutter"
+description: "CometChat Calling SDK v4 - Legacy Release - Call Session for Flutter"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Flutter).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/flutter/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/flutter/migration-guide-v5).
+
+
## Overview
This section demonstrates how to start a call session in a Flutter application. Previously known as **Direct Calling**.
diff --git a/calls/v4/flutter/overview.mdx b/calls/v4/flutter/overview.mdx
index e8966fbd2..340654d65 100644
--- a/calls/v4/flutter/overview.mdx
+++ b/calls/v4/flutter/overview.mdx
@@ -2,12 +2,16 @@
title: "Calling SDK"
sidebarTitle: "Overview"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Overview for Flutter. This is the stable v4 documentation. Most users should use this version."
+description: "CometChat Calling SDK v4 - Legacy Release - Overview for Flutter. This is the legacy v4 documentation. Most users should use v5, the current stable version."
---
-
-🚀 **v5 Beta Available** — The Calling SDK v5 is now available in beta with significant improvements. [Check out the v5 docs →](/calls/flutter/overview)
-
+
+**You're reading the legacy documentation for Calling SDK v4 (Flutter).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/flutter/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/flutter/migration-guide-v5).
+
## Overview
diff --git a/calls/v4/flutter/presenter-mode.mdx b/calls/v4/flutter/presenter-mode.mdx
index 01b42193d..7a81174f4 100644
--- a/calls/v4/flutter/presenter-mode.mdx
+++ b/calls/v4/flutter/presenter-mode.mdx
@@ -2,9 +2,17 @@
title: "Presenter Mode"
sidebarTitle: "Presenter Mode"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Presenter Mode for Flutter"
+description: "CometChat Calling SDK v4 - Legacy Release - Presenter Mode for Flutter"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Flutter).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/flutter/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/flutter/migration-guide-v5).
+
+
## Overview
The Presenter Mode feature allows developers to create a calling service experience in which:
diff --git a/calls/v4/flutter/recording.mdx b/calls/v4/flutter/recording.mdx
index 853dce7db..ae6675374 100644
--- a/calls/v4/flutter/recording.mdx
+++ b/calls/v4/flutter/recording.mdx
@@ -2,9 +2,17 @@
title: "Recording"
sidebarTitle: "Recording"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Recording for Flutter"
+description: "CometChat Calling SDK v4 - Legacy Release - Recording for Flutter"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Flutter).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/flutter/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/flutter/migration-guide-v5).
+
+
This section will guide you to implement call recording feature for the voice and video calls.
## Implementation
diff --git a/calls/v4/flutter/ringing.mdx b/calls/v4/flutter/ringing.mdx
index b03a2a628..837125ba3 100644
--- a/calls/v4/flutter/ringing.mdx
+++ b/calls/v4/flutter/ringing.mdx
@@ -2,9 +2,17 @@
title: "Ringing"
sidebarTitle: "Ringing"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Ringing for Flutter"
+description: "CometChat Calling SDK v4 - Legacy Release - Ringing for Flutter"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Flutter).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/flutter/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/flutter/migration-guide-v5).
+
+
## Overview
This section explains how to implement a complete calling workflow with ringing functionality, including incoming/outgoing call UI, call acceptance, rejection, and cancellation. Previously known as **Default Calling**.
diff --git a/calls/v4/flutter/session-timeout.mdx b/calls/v4/flutter/session-timeout.mdx
index 8fe7c076f..9773c98b4 100644
--- a/calls/v4/flutter/session-timeout.mdx
+++ b/calls/v4/flutter/session-timeout.mdx
@@ -2,9 +2,17 @@
title: "Session Timeout Flow"
sidebarTitle: "Session Timeout"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Session Timeout for Flutter"
+description: "CometChat Calling SDK v4 - Legacy Release - Session Timeout for Flutter"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Flutter).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/flutter/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/flutter/migration-guide-v5).
+
+
Available since v4.1.0
## Overview
diff --git a/calls/v4/flutter/setup.mdx b/calls/v4/flutter/setup.mdx
index 887c179c1..c1323c195 100644
--- a/calls/v4/flutter/setup.mdx
+++ b/calls/v4/flutter/setup.mdx
@@ -2,9 +2,17 @@
title: "Setup"
sidebarTitle: "Setup"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Setup for Flutter"
+description: "CometChat Calling SDK v4 - Legacy Release - Setup for Flutter"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Flutter).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/flutter/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/flutter/migration-guide-v5).
+
+
### Get your Application Keys
[Signup for CometChat](https://app.cometchat.com) and then:
diff --git a/calls/v4/flutter/standalone-calling.mdx b/calls/v4/flutter/standalone-calling.mdx
index 7629d1071..0ce741642 100644
--- a/calls/v4/flutter/standalone-calling.mdx
+++ b/calls/v4/flutter/standalone-calling.mdx
@@ -2,9 +2,17 @@
title: "Standalone Calling"
sidebarTitle: "Standalone Calling"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Standalone Calling for Flutter"
+description: "CometChat Calling SDK v4 - Legacy Release - Standalone Calling for Flutter"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Flutter).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/flutter/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/flutter/migration-guide-v5).
+
+
## Overview
This section demonstrates how to implement calling functionality using only the CometChat Calls SDK, without requiring the Chat SDK. This is ideal for applications that need video/audio calling capabilities without the full chat infrastructure.
diff --git a/calls/v4/flutter/video-view-customisation.mdx b/calls/v4/flutter/video-view-customisation.mdx
index fa8670243..7665acc90 100644
--- a/calls/v4/flutter/video-view-customisation.mdx
+++ b/calls/v4/flutter/video-view-customisation.mdx
@@ -2,9 +2,17 @@
title: "Video View Customisation"
sidebarTitle: "Video View Customisation"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Video View Customisation for Flutter"
+description: "CometChat Calling SDK v4 - Legacy Release - Video View Customisation for Flutter"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (Flutter).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/flutter/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/flutter/migration-guide-v5).
+
+
This section will guide you to customise the main video container.
## Implementation
diff --git a/calls/v4/ios/call-logs.mdx b/calls/v4/ios/call-logs.mdx
index ee3e8d2df..7f0c205e1 100644
--- a/calls/v4/ios/call-logs.mdx
+++ b/calls/v4/ios/call-logs.mdx
@@ -2,9 +2,17 @@
title: "Call Logs"
sidebarTitle: "Call Logs"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Call Logs for iOS"
+description: "CometChat Calling SDK v4 - Legacy Release - Call Logs for iOS"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (iOS).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/ios/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/ios/migration-guide-v5).
+
+
## Overview
CometChat's iOS Call SDK provides a comprehensive way to integrate call logs into your application, enhancing your user experience by allowing users to effortlessly keep track of their communication history. Call logs provide crucial information such as call duration, participants, and more.
diff --git a/calls/v4/ios/call-session.mdx b/calls/v4/ios/call-session.mdx
index c4f9d18cb..2477aa41e 100644
--- a/calls/v4/ios/call-session.mdx
+++ b/calls/v4/ios/call-session.mdx
@@ -2,9 +2,17 @@
title: "Call Session"
sidebarTitle: "Call Session"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Call Session for iOS"
+description: "CometChat Calling SDK v4 - Legacy Release - Call Session for iOS"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (iOS).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/ios/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/ios/migration-guide-v5).
+
+
## Overview
This section demonstrates how to start a call session in an iOS application. Previously known as **Direct Calling**.
diff --git a/calls/v4/ios/launch-call-screen-on-tap-of-push-notification.mdx b/calls/v4/ios/launch-call-screen-on-tap-of-push-notification.mdx
index 7dfbe8032..9e7e48bbe 100644
--- a/calls/v4/ios/launch-call-screen-on-tap-of-push-notification.mdx
+++ b/calls/v4/ios/launch-call-screen-on-tap-of-push-notification.mdx
@@ -2,9 +2,17 @@
title: "Launch Call Screen On Tap Of Push Notification"
sidebarTitle: "Launch Call Screen On Push"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Launch Call Screen On Tap Of Push Notification for iOS"
+description: "CometChat Calling SDK v4 - Legacy Release - Launch Call Screen On Tap Of Push Notification for iOS"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (iOS).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/ios/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/ios/migration-guide-v5).
+
+
diff --git a/calls/v4/ios/overview.mdx b/calls/v4/ios/overview.mdx
index 8291c0589..1358216fe 100644
--- a/calls/v4/ios/overview.mdx
+++ b/calls/v4/ios/overview.mdx
@@ -2,12 +2,16 @@
title: "Calling SDK"
sidebarTitle: "Overview"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Overview for iOS. This is the stable v4 documentation. Most users should use this version."
+description: "CometChat Calling SDK v4 - Legacy Release - Overview for iOS. This is the legacy v4 documentation. Most users should use v5, the current stable version."
---
-
-🚀 **v5 Beta Available** — The Calling SDK v5 is now available in beta with significant improvements. [Check out the v5 docs →](/calls/ios/overview)
-
+
+**You're reading the legacy documentation for Calling SDK v4 (iOS).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/ios/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/ios/migration-guide-v5).
+
## Overview
diff --git a/calls/v4/ios/presenter-mode.mdx b/calls/v4/ios/presenter-mode.mdx
index a0c267205..00c676df1 100644
--- a/calls/v4/ios/presenter-mode.mdx
+++ b/calls/v4/ios/presenter-mode.mdx
@@ -2,9 +2,17 @@
title: "Presenter Mode"
sidebarTitle: "Presenter Mode"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Presenter Mode for iOS"
+description: "CometChat Calling SDK v4 - Legacy Release - Presenter Mode for iOS"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (iOS).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/ios/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/ios/migration-guide-v5).
+
+
## Overview
The Presenter Mode feature allows developers to create a calling service experience in which:
diff --git a/calls/v4/ios/recording.mdx b/calls/v4/ios/recording.mdx
index 91568f617..98c606931 100644
--- a/calls/v4/ios/recording.mdx
+++ b/calls/v4/ios/recording.mdx
@@ -2,9 +2,17 @@
title: "Recording"
sidebarTitle: "Recording"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Recording for iOS"
+description: "CometChat Calling SDK v4 - Legacy Release - Recording for iOS"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (iOS).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/ios/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/ios/migration-guide-v5).
+
+
This section will guide you to implement call recording feature for the voice and video calls.
## Implementation
diff --git a/calls/v4/ios/ringing.mdx b/calls/v4/ios/ringing.mdx
index 2e7db467c..ba1f80f26 100644
--- a/calls/v4/ios/ringing.mdx
+++ b/calls/v4/ios/ringing.mdx
@@ -2,9 +2,17 @@
title: "Ringing"
sidebarTitle: "Ringing"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Ringing for iOS"
+description: "CometChat Calling SDK v4 - Legacy Release - Ringing for iOS"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (iOS).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/ios/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/ios/migration-guide-v5).
+
+
## Overview
This section explains how to implement a complete calling workflow with ringing functionality, including incoming/outgoing call UI, call acceptance, rejection, and cancellation. Previously known as **Default Calling**.
diff --git a/calls/v4/ios/session-timeout.mdx b/calls/v4/ios/session-timeout.mdx
index 65ebb77fb..360ce3e8d 100644
--- a/calls/v4/ios/session-timeout.mdx
+++ b/calls/v4/ios/session-timeout.mdx
@@ -2,9 +2,17 @@
title: "Session Timeout Flow"
sidebarTitle: "Session Timeout"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Session Timeout for iOS"
+description: "CometChat Calling SDK v4 - Legacy Release - Session Timeout for iOS"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (iOS).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/ios/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/ios/migration-guide-v5).
+
+
Available since v4.1.1
## Overview
diff --git a/calls/v4/ios/setup.mdx b/calls/v4/ios/setup.mdx
index 90e145264..7bfbb4e5d 100644
--- a/calls/v4/ios/setup.mdx
+++ b/calls/v4/ios/setup.mdx
@@ -2,9 +2,17 @@
title: "Setup"
sidebarTitle: "Setup"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Setup for iOS"
+description: "CometChat Calling SDK v4 - Legacy Release - Setup for iOS"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (iOS).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/ios/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/ios/migration-guide-v5).
+
+
The **CometChatCalls** is developed to keep developers in mind and aims to reduce development efforts significantly. Let's start to integrate Calls Kit into your project.
***
diff --git a/calls/v4/ios/standalone-calling.mdx b/calls/v4/ios/standalone-calling.mdx
index 850bcde2f..bd26679f2 100644
--- a/calls/v4/ios/standalone-calling.mdx
+++ b/calls/v4/ios/standalone-calling.mdx
@@ -2,9 +2,17 @@
title: "Standalone Calling"
sidebarTitle: "Standalone Calling"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Standalone Calling for iOS"
+description: "CometChat Calling SDK v4 - Legacy Release - Standalone Calling for iOS"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (iOS).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/ios/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/ios/migration-guide-v5).
+
+
## Overview
This section demonstrates how to implement calling functionality using only the CometChat Calls SDK, without requiring the Chat SDK. This is ideal for applications that need video/audio calling capabilities without the full chat infrastructure.
diff --git a/calls/v4/ios/video-view-customisation.mdx b/calls/v4/ios/video-view-customisation.mdx
index 252a526e7..4aac7cd14 100644
--- a/calls/v4/ios/video-view-customisation.mdx
+++ b/calls/v4/ios/video-view-customisation.mdx
@@ -2,9 +2,17 @@
title: "Video View Customisation"
sidebarTitle: "Video View Customisation"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Video View Customisation for iOS"
+description: "CometChat Calling SDK v4 - Legacy Release - Video View Customisation for iOS"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (iOS).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/ios/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/ios/migration-guide-v5).
+
+
This section will guide you to customise the main video container.
## Implementation
diff --git a/calls/v4/javascript/call-logs.mdx b/calls/v4/javascript/call-logs.mdx
index bbc39110a..278842747 100644
--- a/calls/v4/javascript/call-logs.mdx
+++ b/calls/v4/javascript/call-logs.mdx
@@ -2,9 +2,17 @@
title: "Call Logs"
sidebarTitle: "Call Logs"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Call Logs for JavaScript"
+description: "CometChat Calling SDK v4 - Legacy Release - Call Logs for JavaScript"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (JavaScript).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/javascript/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/javascript/migration-guide-v5).
+
+
## Overview
CometChat's Web Call SDK provides a comprehensive way to integrate call logs into your application, enhancing your user experience by allowing users to effortlessly keep track of their communication history. Call logs provide crucial information such as call duration, participants, and more.
diff --git a/calls/v4/javascript/call-session.mdx b/calls/v4/javascript/call-session.mdx
index 55647d145..6c7f2aa92 100644
--- a/calls/v4/javascript/call-session.mdx
+++ b/calls/v4/javascript/call-session.mdx
@@ -2,9 +2,17 @@
title: "Call Session"
sidebarTitle: "Call Session"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Call Session for JavaScript"
+description: "CometChat Calling SDK v4 - Legacy Release - Call Session for JavaScript"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (JavaScript).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/javascript/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/javascript/migration-guide-v5).
+
+
## Overview
This section demonstrates how to start a call session in a web application. Previously known as **Direct Calling**.
diff --git a/calls/v4/javascript/custom-css.mdx b/calls/v4/javascript/custom-css.mdx
index d8958297b..da7219915 100644
--- a/calls/v4/javascript/custom-css.mdx
+++ b/calls/v4/javascript/custom-css.mdx
@@ -2,9 +2,17 @@
title: "Custom CSS"
sidebarTitle: "Custom CSS"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Custom CSS for JavaScript"
+description: "CometChat Calling SDK v4 - Legacy Release - Custom CSS for JavaScript"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (JavaScript).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/javascript/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/javascript/migration-guide-v5).
+
+
Passing custom CSS allows you to personalize and enhance the user interface of the call screen.
## Common CSS Classes
diff --git a/calls/v4/javascript/overview.mdx b/calls/v4/javascript/overview.mdx
index 63b8612df..71bfaab9a 100644
--- a/calls/v4/javascript/overview.mdx
+++ b/calls/v4/javascript/overview.mdx
@@ -2,12 +2,16 @@
title: "Calling SDK"
sidebarTitle: "Overview"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Overview for JavaScript. This is the stable v4 documentation. Most users should use this version."
+description: "CometChat Calling SDK v4 - Legacy Release - Overview for JavaScript. This is the legacy v4 documentation. Most users should use v5, the current stable version."
---
-
-🚀 **v5 Beta Available** — The Calling SDK v5 is now available in beta with significant improvements. [Check out the v5 docs →](/calls/javascript/overview)
-
+
+**You're reading the legacy documentation for Calling SDK v4 (JavaScript).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/javascript/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/javascript/migration-guide-v5).
+
## Overview
diff --git a/calls/v4/javascript/presenter-mode.mdx b/calls/v4/javascript/presenter-mode.mdx
index 8f292c6bb..5a26abbfe 100644
--- a/calls/v4/javascript/presenter-mode.mdx
+++ b/calls/v4/javascript/presenter-mode.mdx
@@ -2,9 +2,17 @@
title: "Presenter Mode"
sidebarTitle: "Presenter Mode"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Presenter Mode for JavaScript"
+description: "CometChat Calling SDK v4 - Legacy Release - Presenter Mode for JavaScript"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (JavaScript).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/javascript/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/javascript/migration-guide-v5).
+
+
## Overview
The Presenter Mode feature allows developers to create a calling service experience in which:
diff --git a/calls/v4/javascript/recording.mdx b/calls/v4/javascript/recording.mdx
index 1b1d5e407..ec0ceed25 100644
--- a/calls/v4/javascript/recording.mdx
+++ b/calls/v4/javascript/recording.mdx
@@ -2,9 +2,17 @@
title: "Recording (Beta)"
sidebarTitle: "Recording"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Recording for JavaScript"
+description: "CometChat Calling SDK v4 - Legacy Release - Recording for JavaScript"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (JavaScript).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/javascript/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/javascript/migration-guide-v5).
+
+
This section will guide you to implement call recording feature for the voice and video calls.
## Implementation
diff --git a/calls/v4/javascript/ringing.mdx b/calls/v4/javascript/ringing.mdx
index b0bacf63e..b77bd02e5 100644
--- a/calls/v4/javascript/ringing.mdx
+++ b/calls/v4/javascript/ringing.mdx
@@ -2,9 +2,17 @@
title: "Ringing"
sidebarTitle: "Ringing"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Ringing for JavaScript"
+description: "CometChat Calling SDK v4 - Legacy Release - Ringing for JavaScript"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (JavaScript).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/javascript/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/javascript/migration-guide-v5).
+
+
## Overview
This section explains how to implement a complete calling workflow with ringing functionality, including incoming/outgoing call UI, call acceptance, rejection, and cancellation. Previously known as **Default Calling**.
diff --git a/calls/v4/javascript/session-timeout.mdx b/calls/v4/javascript/session-timeout.mdx
index 05fd7d6c8..cf55ba0c7 100644
--- a/calls/v4/javascript/session-timeout.mdx
+++ b/calls/v4/javascript/session-timeout.mdx
@@ -2,9 +2,17 @@
title: "Session Timeout Flow"
sidebarTitle: "Session Timeout"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Session Timeout for JavaScript"
+description: "CometChat Calling SDK v4 - Legacy Release - Session Timeout for JavaScript"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (JavaScript).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/javascript/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/javascript/migration-guide-v5).
+
+
Available since v4.1.0
## Overview
diff --git a/calls/v4/javascript/setup.mdx b/calls/v4/javascript/setup.mdx
index 62909887e..dfcf5fc2e 100644
--- a/calls/v4/javascript/setup.mdx
+++ b/calls/v4/javascript/setup.mdx
@@ -2,9 +2,17 @@
title: "Setup"
sidebarTitle: "Setup"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Setup for JavaScript"
+description: "CometChat Calling SDK v4 - Legacy Release - Setup for JavaScript"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (JavaScript).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/javascript/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/javascript/migration-guide-v5).
+
+
## Get your Application Keys
[Signup for CometChat](https://app.cometchat.com) and then:
diff --git a/calls/v4/javascript/standalone-calling.mdx b/calls/v4/javascript/standalone-calling.mdx
index 9682483be..78806d197 100644
--- a/calls/v4/javascript/standalone-calling.mdx
+++ b/calls/v4/javascript/standalone-calling.mdx
@@ -2,9 +2,17 @@
title: "Standalone Calling"
sidebarTitle: "Standalone Calling"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Standalone Calling for JavaScript"
+description: "CometChat Calling SDK v4 - Legacy Release - Standalone Calling for JavaScript"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (JavaScript).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/javascript/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/javascript/migration-guide-v5).
+
+
## Overview
This section demonstrates how to implement calling functionality using only the CometChat Calls SDK, without requiring the Chat SDK. This is ideal for applications that need video/audio calling capabilities without the full chat infrastructure.
diff --git a/calls/v4/javascript/video-view-customisation.mdx b/calls/v4/javascript/video-view-customisation.mdx
index e63938916..6e5585929 100644
--- a/calls/v4/javascript/video-view-customisation.mdx
+++ b/calls/v4/javascript/video-view-customisation.mdx
@@ -2,9 +2,17 @@
title: "Video View Customisation"
sidebarTitle: "Video View Customisation"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Video View Customisation for JavaScript"
+description: "CometChat Calling SDK v4 - Legacy Release - Video View Customisation for JavaScript"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (JavaScript).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/javascript/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/javascript/migration-guide-v5).
+
+
**Quick Reference**
- **Class:** `CometChat.MainVideoContainerSetting`
diff --git a/calls/v4/javascript/virtual-background.mdx b/calls/v4/javascript/virtual-background.mdx
index 5ff75ae60..4fbf9b4b2 100644
--- a/calls/v4/javascript/virtual-background.mdx
+++ b/calls/v4/javascript/virtual-background.mdx
@@ -2,9 +2,17 @@
title: "Virtual Background"
sidebarTitle: "Virtual Background"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Virtual Background for JavaScript"
+description: "CometChat Calling SDK v4 - Legacy Release - Virtual Background for JavaScript"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (JavaScript).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/javascript/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/javascript/migration-guide-v5).
+
+
**Quick Reference**
- **Settings class:** `CometChat.VirtualBackground`
diff --git a/calls/v4/react-native/call-logs.mdx b/calls/v4/react-native/call-logs.mdx
index 4c41c61f0..45b3db5a5 100644
--- a/calls/v4/react-native/call-logs.mdx
+++ b/calls/v4/react-native/call-logs.mdx
@@ -2,9 +2,17 @@
title: "Call Logs"
sidebarTitle: "Call Logs"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Call Logs for React Native"
+description: "CometChat Calling SDK v4 - Legacy Release - Call Logs for React Native"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (React Native).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/react-native/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/react-native/migration-guide-v5).
+
+
**Quick Reference** - Fetch call logs:
diff --git a/calls/v4/react-native/call-session.mdx b/calls/v4/react-native/call-session.mdx
index 4f35a092b..82eb73dc4 100644
--- a/calls/v4/react-native/call-session.mdx
+++ b/calls/v4/react-native/call-session.mdx
@@ -2,9 +2,17 @@
title: "Call Session"
sidebarTitle: "Call Session"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Call Session for React Native"
+description: "CometChat Calling SDK v4 - Legacy Release - Call Session for React Native"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (React Native).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/react-native/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/react-native/migration-guide-v5).
+
+
**Quick Reference** - Generate token and start a call session:
diff --git a/calls/v4/react-native/expo-integration-guide.mdx b/calls/v4/react-native/expo-integration-guide.mdx
index 9ff3f1fae..24e34a468 100644
--- a/calls/v4/react-native/expo-integration-guide.mdx
+++ b/calls/v4/react-native/expo-integration-guide.mdx
@@ -2,9 +2,17 @@
title: "Expo Integration"
sidebarTitle: "Expo Integration"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Expo Integration Guide for React Native"
+description: "CometChat Calling SDK v4 - Legacy Release - Expo Integration Guide for React Native"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (React Native).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/react-native/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/react-native/migration-guide-v5).
+
+
**Quick Reference** - Key Expo setup steps:
diff --git a/calls/v4/react-native/overview.mdx b/calls/v4/react-native/overview.mdx
index 5d8af9ad8..9c6f72264 100644
--- a/calls/v4/react-native/overview.mdx
+++ b/calls/v4/react-native/overview.mdx
@@ -2,12 +2,16 @@
title: "Calling SDK"
sidebarTitle: "Overview"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Overview for React Native. This is the stable v4 documentation. Most users should use this version."
+description: "CometChat Calling SDK v4 - Legacy Release - Overview for React Native. This is the legacy v4 documentation. Most users should use v5, the current stable version."
---
-
-🚀 **v5 Beta Available** — The Calling SDK v5 is now available in beta with significant improvements. [Check out the v5 docs →](/calls/react-native/overview)
-
+
+**You're reading the legacy documentation for Calling SDK v4 (React Native).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/react-native/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/react-native/migration-guide-v5).
+
## Overview
diff --git a/calls/v4/react-native/presenter-mode.mdx b/calls/v4/react-native/presenter-mode.mdx
index 52f4bf3ac..81f01371e 100644
--- a/calls/v4/react-native/presenter-mode.mdx
+++ b/calls/v4/react-native/presenter-mode.mdx
@@ -2,9 +2,17 @@
title: "Presenter Mode"
sidebarTitle: "Presenter Mode"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Presenter Mode for React Native"
+description: "CometChat Calling SDK v4 - Legacy Release - Presenter Mode for React Native"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (React Native).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/react-native/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/react-native/migration-guide-v5).
+
+
**Quick Reference** - Start a presentation session:
diff --git a/calls/v4/react-native/recording.mdx b/calls/v4/react-native/recording.mdx
index ba3529039..4742dd317 100644
--- a/calls/v4/react-native/recording.mdx
+++ b/calls/v4/react-native/recording.mdx
@@ -2,9 +2,17 @@
title: "Recording (Beta)"
sidebarTitle: "Recording"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Recording for React Native"
+description: "CometChat Calling SDK v4 - Legacy Release - Recording for React Native"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (React Native).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/react-native/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/react-native/migration-guide-v5).
+
+
**Quick Reference** - Start and stop call recording:
diff --git a/calls/v4/react-native/ringing.mdx b/calls/v4/react-native/ringing.mdx
index 814271dc6..7149d63f1 100644
--- a/calls/v4/react-native/ringing.mdx
+++ b/calls/v4/react-native/ringing.mdx
@@ -2,9 +2,17 @@
title: "Ringing"
sidebarTitle: "Ringing"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Ringing for React Native"
+description: "CometChat Calling SDK v4 - Legacy Release - Ringing for React Native"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (React Native).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/react-native/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/react-native/migration-guide-v5).
+
+
**Quick Reference** - Initiate a call and listen for events:
diff --git a/calls/v4/react-native/session-timeout.mdx b/calls/v4/react-native/session-timeout.mdx
index 12658f378..98381712c 100644
--- a/calls/v4/react-native/session-timeout.mdx
+++ b/calls/v4/react-native/session-timeout.mdx
@@ -2,9 +2,17 @@
title: "Session Timeout Flow"
sidebarTitle: "Session Timeout"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Session Timeout for React Native"
+description: "CometChat Calling SDK v4 - Legacy Release - Session Timeout for React Native"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (React Native).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/react-native/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/react-native/migration-guide-v5).
+
+
Available since v4.2.0
## Overview
diff --git a/calls/v4/react-native/setup.mdx b/calls/v4/react-native/setup.mdx
index 6a6b7e07f..4116d0ca4 100644
--- a/calls/v4/react-native/setup.mdx
+++ b/calls/v4/react-native/setup.mdx
@@ -2,9 +2,17 @@
title: "Setup"
sidebarTitle: "Setup"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Setup for React Native"
+description: "CometChat Calling SDK v4 - Legacy Release - Setup for React Native"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (React Native).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/react-native/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/react-native/migration-guide-v5).
+
+
**Quick Reference** - Install and initialize the Calls SDK:
diff --git a/calls/v4/react-native/standalone-calling.mdx b/calls/v4/react-native/standalone-calling.mdx
index 90070d7b1..710c688ed 100644
--- a/calls/v4/react-native/standalone-calling.mdx
+++ b/calls/v4/react-native/standalone-calling.mdx
@@ -2,9 +2,17 @@
title: "Standalone Calling"
sidebarTitle: "Standalone Calling"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Standalone Calling for React Native"
+description: "CometChat Calling SDK v4 - Legacy Release - Standalone Calling for React Native"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (React Native).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/react-native/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/react-native/migration-guide-v5).
+
+
**Quick Reference** - Generate token and start a standalone call session:
diff --git a/calls/v4/react-native/video-view-customisation.mdx b/calls/v4/react-native/video-view-customisation.mdx
index 17a072dcc..53287158c 100644
--- a/calls/v4/react-native/video-view-customisation.mdx
+++ b/calls/v4/react-native/video-view-customisation.mdx
@@ -2,9 +2,17 @@
title: "Video View Customisation"
sidebarTitle: "Video View Customisation"
sdk_version: "4.x"
-description: "CometChat Calling SDK v4 - Stable Release - Video View Customisation for React Native"
+description: "CometChat Calling SDK v4 - Legacy Release - Video View Customisation for React Native"
---
+
+**You're reading the legacy documentation for Calling SDK v4 (React Native).**
+
+Follow this page only if your app is on **v4.x**. If you're using v5, see the [**Calling SDK v5 documentation**](/calls/react-native/overview) instead.
+
+Ready to move off v4? Follow the [v4 → v5 migration guide](/calls/react-native/migration-guide-v5).
+
+
**Quick Reference** - Customize the main video container: