Skip to main content
Faster Integration with UI KitsIf you’re using CometChat UI Kits, voice and video calling can be quickly integrated:
  • Incoming & outgoing call screens
  • Call buttons with one-tap calling
  • Call logs with history
👉 React Native UI Kit Calling IntegrationUse this Calls SDK directly only if you need custom call UI or advanced control.
Quick Reference for AI Agents & Developers
  • Android 6.0+ also needs a runtime permission request — a manifest entry alone is not enough
  • Works on the old architecture and the New Architecture, including bridgeless — no extra setup
  • NextAuthenticationJoin Session
This guide walks you through installing the CometChat Calls SDK and configuring it in your React Native application.

Add the CometChat Dependency

Using npm

Using Yarn

Install Required Dependencies

The Calls SDK relies on the following packages. Install them alongside the SDK:

Using npm

Using Yarn

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.

Expo

The Calls SDK depends on react-native-webrtc, which ships its own Android and iOS native code. That has two consequences for Expo projects:
The Calls SDK cannot run in Expo Go. Expo Go bundles a fixed set of native modules and cannot load react-native-webrtc. You need a development build — run npx expo prebuild and build with npx expo run:ios / npx expo run:android, or use EAS Build.
react-native-webrtc ships no Expo config plugin, so declare the native configuration in app.json rather than editing Info.plist and AndroidManifest.xml by hand — a prebuild regenerates those files and discards manual edits:

iOS Configuration

Install CocoaPods Dependencies

Navigate to your iOS directory and install the pods:

Add Permissions

Add the required permissions to your ios/YourApp/Info.plist:

Enable Background Modes

For calls to continue when the app is in the background:
  1. Open your project in Xcode
  2. Select your target and go to Signing & Capabilities
  3. Click + Capability and add Background Modes
  4. Enable:
    • Audio, AirPlay, and Picture in Picture
    • Voice over IP (if using VoIP push notifications)

Android Configuration

Add Permissions

Add the required permissions to your android/app/src/main/AndroidManifest.xml:
For Android 6.0 (API level 23) and above, you must request camera and microphone permissions at runtime before starting a call.

Request Runtime Permissions

Use a library like react-native-permissions or implement native permission requests:

Verify Installation

After installation, rebuild your app: