Overview

Incoming Calls

Build apps with ringing call support. Recipients receive incoming call notifications when a call is initiated.

For implementation details, see the ringing guide.

Best Practices

  • Configure push providers - Set up Firebase (Android) and APNs/VoIP (iOS) for background notifications
  • Handle all app states - Support foreground, background, and terminated states
  • Use unique call IDs - Avoid reusing call IDs to prevent unexpected behavior
  • Request permissions early - Request notification permissions at an appropriate point in your app flow
  • Test on real devices - Push notifications require physical devices for testing

Ringing Options

Incoming call presentation depends on app configuration and state (foreground, background, or terminated).

In-app Incoming Calls

Display custom incoming call screens when the app is in the foreground. Triggered by ringing WebSocket events with full control over design and behavior. See RingingCallContent for customization.

This method does not display an incoming call screen if the app is in the background or terminated. To handle such scenarios, proper VoIP push handling is required. Additionally if VoIP push/CallKit is configured, the system displays a ringing notification alongside the in-app incoming screen when the app is in the foreground.

CallKit Integration (iOS)

For background or terminated iOS apps, integrate Apple's CallKit framework. CallKit handles system-level incoming call screens via VoIP push notifications that wake the app. Limited UI customization but ensures consistent iOS behavior. Setup guides:

Firebase Integration (Android)

For background or terminated Android apps, use Firebase push notifications for ringing. Users can join or decline calls directly from notifications. Setup guides:

Non-ringing push notifications

Use standard push notifications for non-ringing events like missed calls or livestream started notifications. Less interactive than ringing notifications but can trigger navigation or display modals. Setup guides: