Faster Integration with UI KitsIf you’re using CometChat UI Kits, voice and video calling is already integrated with ready-to-use components:
- Incoming & outgoing call screens
- Call buttons with one-tap calling
- Call logs with history
Prerequisites
Before integrating the Calls SDK, ensure you have:- CometChat Account: Sign up and create an app to get your App ID, Region, and API Key
- 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
- iOS Requirements:
- Minimum iOS version: 13.0
- Xcode 14.0 or later
- Swift 5.0 or later
- Permissions: Camera and microphone permissions for video/audio calls
Call Flow
Features
Ringing
Incoming and outgoing call notifications with accept/reject functionality
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:| Component | Description |
|---|---|
CometChatCalls | Main entry point for SDK initialization, authentication, and session management |
CallAppSettings | Configuration for SDK initialization (App ID, Region) |
SessionSettings | Configuration for individual call sessions |
CallSession | Singleton that manages the active call and provides control methods |
Listeners | Protocol-based event interfaces for session, participant, media, and UI events |