Notifications
In order to receive incoming calls to a user's device, you must implement either VoIP notifications or remote notifications. Once the implementation is complete, notifications will be delivered to your app whether it's in the foreground, background, or closed.
Note: You will need to register a separate Apple Push Notification service (APNs) certificate and a user's device push token for the Calls SDK even if you are already using notifications for Sendbird Chat.
VoIP notifications
For your app that supports VoIP calls, PushKit is used to receive incoming VoIP calls on users' devices. Along with PushKit, CallKit integration is required to provide the experience equivalent to the native phone app and manage UI related features such as incoming call screens. It also allows call-related apps to work appropriately with features on the user's device such as call history, block callers, or Do Not Disturb. Since there is a longer runtime for VoIP notifications to reach a user's device than remote notifications, it allows you to perform additional actions with the server. To learn more information about using CallKit, refer to Apple's documentation on CallKit.
Remote notifications
Apple Push Notification services (APNs) is used to send remote notifications that are usually presented in the form of banner style alerts to users' devices. With remote notifications, users will be able to receive less interfering incoming call notifications while running other apps on their devices. In addition, they are usually interacted by simply tapping on banner style alerts to launch the app or dismiss the notification to ignore the call. CallKit is not required for remote notifications, but it can be a good solution to provide a consistent user experience with the device system. To learn more about how to use remote notifications, see our Quickstart guide for iOS.
Understanding the differences
To find out which push notifications best suits your app use cases, refer to the table below:
VoIP notifications | Remote notifications | |
---|---|---|
High priority and no delay | O | X |
Launches app | O | X |
Banner style alerts | O (iOS 14 or later) | O |
Respects Do Not Disturb mode | O | O |
Requires CallKit and PushKit | O | X |
Accept or decline calls on notification | O | X |