Skip to main content
The CometChat Calls SDK enables real-time voice and video calling capabilities in your Flutter 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. Flutter Requirements:
    • Flutter SDK: >=2.5.0
    • Dart SDK: >=2.17.0 <4.0.0
    • Android: Minimum API Level 26 (Android 8.0)
    • iOS: Minimum iOS 15.1
  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, cometchat_voip rings the callee, 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, show “Ringing…”, answer, decline, cancel and end

Call Layouts

Tile and Spotlight view modes for different call scenarios

Audio Modes

Switch between speaker, earpiece, and Bluetooth

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 web 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 Flutter Calls SDK sample app on GitHub

Changelog

View the latest releases and changes