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: 15.1
- Xcode 16.4 or later
- Swift 5.0 or later
- 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
joinSessionwith 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