Skip to main content
The CometChat Calls SDK enables real-time voice and video calling capabilities in your iOS application. Built on top of WebRTC, it provides a complete calling solution with built-in UI components and extensive customization options.

Prerequisites

Before integrating the Calls SDK, ensure you have:
  1. CometChat Account: Sign up 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 or REST API. Authentication is handled by the Calls SDK - see Authentication
  3. iOS Requirements:
    • Minimum iOS version: 15.1
    • Xcode 16.4 or later
    • Swift 5.0 or later
  4. Permissions: Camera and microphone permissions for video/audio calls

Call Flow

Every call is a session joined by id. Where the id comes from depends on the kind of call:
  • Direct call: your app shares a session id (for example in a message) and each participant calls joinSession with it. Group calls and meetings work this way.
  • Ringing call: the caller starts it with CometChatCalls.initiateCall, the Push Notifications SDK rings the callee through CallKit, and both sides join the session once the callee answers. See Ringing and Push Ringing.

Features

Ringing

Start a call, ring the callee through push and CallKit, show “Ringing…”, answer, decline, cancel and end

Call Layouts

Tile and Spotlight view modes for different call scenarios

Audio Modes

Switch between speaker, earpiece, Bluetooth, and headphones

Recording

Record call sessions for later playback

Call Logs

Retrieve call history and details

Participant Management

Mute, pin, and manage call participants

Screen Sharing

View screen shares from other participants

Picture-in-Picture

Continue calls while using other apps

Raise Hand

Signal to get attention during calls

Idle Timeout

Automatic session termination when alone in a call

Architecture

The SDK is organized around these core components:

Sample App

Sample App

Explore the iOS Calls SDK sample app on GitHub

Changelog

View the latest releases and changes