Skip to main content
Quick Reference - Install the Calls SDK and initialize:
npm install @cometchat/calls-sdk-react-native

// Initialize CometChatCalls
const callAppSettings = new CometChatCalls.CallAppSettingsBuilder()
  .setAppId("APP_ID")
  .setRegion("REGION")
  .build();
await CometChatCalls.init(callAppSettings);
Available via: SDK | REST API | UI Kits

Overview

CometChat provides voice and video calling capabilities for your React Native application. This guide helps you choose the right implementation approach based on your use case.

Prerequisites

  1. CometChat SDK installed and configured. See the Setup guide.
  2. CometChat Calls SDK added to your project:
npm install @cometchat/calls-sdk-react-native
For detailed setup instructions, see the Calls SDK Setup guide.

Choose Your Implementation

CometChat offers three approaches to implement calling:

Ringing

Complete calling flow with incoming/outgoing call UI, accept/reject functionality, and call notifications.

Call Session

Direct call session management. Use with Ringing flow or for custom call initiation logic.

Standalone Calling

Calls SDK only implementation without the Chat SDK dependency.

Ringing

Use this when you need a complete calling experience with:
  • Incoming and outgoing call UI
  • Call accept/reject/cancel functionality
  • Call notifications via push notifications
  • Integration with CometChat messaging
Flow: Initiate call → Receiver gets notified → Accept/Reject → Start session Get started with Ringing →

Call Session

Use this when you need to:
  • Start a call session after the Ringing flow completes
  • Implement custom call initiation logic with your own UI
  • Join participants to a shared session using a session ID
Flow: Generate token → Start session → Manage call → End session Get started with Call Session →

Standalone Calling

Use this when you want:
  • Calling functionality without the Chat SDK
  • Your own user authentication system
  • Minimal SDK footprint
Flow: Get auth token via REST API → Generate call token → Start session Get started with Standalone Calling →

Features

Recording

Record audio and video calls for playback, compliance, or archival purposes.

Video View Customization

Customize the video call UI layout, participant tiles, and visual appearance.

Presenter Mode

Enable screen sharing and presentation capabilities during calls.

Call Logs

Retrieve and display call history including duration, participants, and status.

Session Timeout

Configure automatic call termination when participants are inactive.
  • Initialize CometChatCalls on app startup, right after CometChat.init()
  • Use the Ringing flow for user-to-user calls where you need push notification support
  • Use Call Session when building custom call UIs or conference-style experiences
  • Always request camera and microphone permissions before initiating a call
  • Handle call errors gracefully and provide user-friendly feedback
  • Calls not connecting: Verify the Calls SDK is initialized after the Chat SDK and that both use the same App ID and Region
  • No audio/video: Check that camera and microphone permissions are granted on both Android and iOS
  • Push notifications not arriving: Ensure push notification setup is complete — see the Push Notifications guide
  • iOS build fails: Run pod install in the ios directory after adding the Calls SDK dependency
  • Android minSdkVersion error: Set minSdkVersion to 24 or higher in your build.gradle

Next Steps

Calls SDK Setup

Install dependencies, configure permissions, and initialize the Calls SDK.

Ringing Flow

Implement the complete incoming/outgoing call experience.

Call Session

Manage call sessions with custom initiation logic.

Call Logs

Retrieve and display call history for your users.