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
👉 Flutter UI Kit Calling IntegrationUse this Calls SDK directly only if you need custom call UI or advanced control.
This guide walks you through installing the CometChat Calls SDK and initializing it in your Flutter application.

Add the CometChat Dependency

Step 1: Add Hosted Source

Add the cometchat_calls_sdk dependency to your pubspec.yaml file:
^5.0.3 also resolves to the latest 5.0.x, but pinning the floor at 5.0.7 makes the platform requirements explicit: 5.0.7 raised the iOS deployment target from 13.0 to 15.1 and added transcription. An app that built against 5.0.6 can fail pod install after a routine flutter pub upgrade if its Podfile is still on 13.0.

Step 2: Install Dependencies

Run the following command to install the package:

Add Permissions

Android

Add the required permissions to your android/app/src/main/AndroidManifest.xml:
Set minSdk = 26 in android/app/build.gradle (or build.gradle.kts). The Calls SDK pins minSdkVersion 26, and Gradle takes the maximum across the dependency graph — a lower app value is a manifest-merger error, not a warning.
For Android 6.0 (API level 23) and above, you must request camera and microphone permissions at runtime before starting a call.

iOS

Add the following usage descriptions to your ios/Runner/Info.plist:
iOS requires usage description strings for camera and microphone access. Without these entries, the app will crash when attempting to access the camera or microphone.
Set platform :ios, '15.1' in ios/Podfile, then pod install. The Calls SDK’s podspec declares 15.1 as of 5.0.7 (it was 13.0 through 5.0.6), and CocoaPods takes the maximum across the graph.

Initialize CometChat Calls

The init() method initializes the SDK with your app credentials. Call this method once when your application starts, typically in your main() function or root widget’s initState().

CallAppSettingBuilder

The CallAppSettingBuilder class configures the SDK initialization:

Check Initialization Status

You can verify if the SDK has been initialized using the isInitialized getter: