I understand the challenges you're facing, and I’m here to help you through them step by step:
1. Full UI Call Notification in Background or Terminated State:
- For Android, a great approach is to use a foreground service to keep your app active and show a persistent notification. You might find the
@supersami/rn-foreground-service library really helpful for this.
- On iOS, you can use CallKit through
react-native-callkeep to display the native call UI and make sure to enable the 'voip' background mode in Xcode for smooth functionality.
2. Push Notifications for Terminated State:
Since LiveKit doesn’t send push notifications directly, you’ll want to set up an external push notification system like Firebase Cloud Messaging (FCM) for Android or Apple Push Notification Service (APNs) for iOS. For iOS especially, using VoIP push notifications via PushKit is a great way to wake the app and present the CallKit UI seamlessly.
3. Call Termination Issue:
To make sure calls end properly, it’s important that the signaling between both parties is working correctly. When one person ends the call, the signaling server should notify the other to close the session. It might be helpful to review your signaling logic to ensure it’s handling these termination events as expected.
If you’d like, I can provide more detailed guidance on setting up push notifications, integrating CallKit, or troubleshooting your signaling logic. Just let me know how I can assist you further!
Sources:
docs/index.html