The Calls SDK adds call features to your client app with a few simple steps. To make your first call, do the following steps:
SendBirdCall instance must be initialized when a client app is launched. Initialization is done by using the
APP_ID of your Sendbird application in the dashboard. If the instance is initialized with a different
APP_ID, all existing call-related data in a client app will be cleared and the
SendBirdCall instance will be initialized again with the new
To make and receive calls, authenticate a user to Sendbird server by using their user ID through the
authenticate() method. To receive calls while an app is in the background or closed, a user’s device token must be added to the server. A device token can be added by passing it as an argument to a parameter in the
authenticate() method when authenticating a user, or by using the
SendBirdCall.registerVoIPPush() method after a user’s authentication has been completed.
Note: Go to the VoIP push notifications page to learn more about registering push tokens.
Note: You can implement both the Chat and Calls SDKs to your client app. Two SDKs can work on the same Sendbird application for them to share users. In this case, you can allow Calls to retrieve a list of users in the client app by using the Chat SDK’s method or Chat API.
There are two types of event handlers that the Calls SDK provides:
Add a device-specific
SendBirdCallDelegate event delegate using the
SendBirdCall.addDelegate(:) method. Once the event delegate is added, responding to device events such as incoming calls can be managed as shown below:
Add a call-specific
DirectCallDelegate event delegate using
call.delegate. Responding to call-specific events such as call connected is then managed as shown below:
Initiate a call by passing the callee’s user ID as an argument to a parameter in the
SendBirdCall.dial() method. Use the
CallOptions object to choose initial call configuration, such as audio or video capabilities, video settings, and mute settings.
To receive an incoming call, a
SendBirdCallDelegate event delegate should already be registered in the callee’s client app. Accept or decline the call using the
directCall.accept() or the
directCall.end() method. If the call is accepted, a media session will automatically be established by the Calls SDK.
Before accepting the call, the call-specific
DirectCallDelegate event delegate must be added to the call object. It enables the callee’s app to react to events happening during the call through its callback methods.
The callee’s client app receives an incoming call through either the established connection with Sendbird server or a VoIP Push Notifications when the app is in the background. To use the Calls SDK in the callee’s client app, the
SendBirdCall instance must deliver received VoIP push notifications to the Calls SDK.