Prerequisites
- A Telnyx account with a configured SIP Connection
- The
@telnyx/react-voice-commons-sdkintegrated into your application - Android: A Firebase project with Cloud Messaging enabled
- iOS: An Apple Developer account with a VoIP push certificate
Portal setup
React Native apps are cross-platform, so you need credentials for each platform you target:- Android: Follow the Android portal setup to create an Android push credential using your Firebase service account JSON.
- iOS: Follow the iOS portal setup to create an iOS push credential using your VoIP certificate PEM files.
App setup
Install dependencies
Android — Firebase Cloud Messaging
1. Add the Firebase configuration file
Downloadgoogle-services.json from your Firebase project console and place it in your project root (same level as package.json):
2. Configure the Android manifest
Add the Firebase messaging service and Telnyx notification receiver toandroid/app/src/main/AndroidManifest.xml:
3. Retrieve the FCM token
The SDK handles FCM token retrieval internally on Android. Pass the token to the SDK when connecting:iOS — Apple Push Notification Service
1. Configure PushKit
Use thereact-native-voip-push-notification package to register for VoIP pushes and capture the device token:
2. Enable capabilities in Xcode
- Open your iOS project in Xcode.
- Go to Signing & Capabilities.
- Add Push Notifications.
- Add Background Modes and enable Voice over IP.
On iOS 13.0 and later, you must report incoming VoIP push notifications to CallKit. If you fail to do so, the system will terminate your app.
Troubleshooting
Android-specific issues
- FCM token not received: Verify
google-services.jsonis in the correct location and the package name matches your app. - No notifications in background: Ensure the Firebase messaging service is declared in your Android manifest.
- Wrong credential on SIP Connection: Check the Telnyx Portal → SIP Connection → WebRTC → Android section.
iOS-specific issues
- No push notifications: Confirm the VoIP push certificate matches your Bundle ID and is uploaded to the Telnyx Portal.
- App terminated on push: Report every VoIP push to CallKit on iOS 13+.
- Environment mismatch: Use sandbox for debug builds and production for release/TestFlight.
General
- Push works but no call invitation: The push notification signals an incoming call. Your app must reconnect to the socket after receiving the push so the SDK can receive the actual invitation.
- Multidevice: A user can register up to 5 push tokens across iOS and Android devices.
Next steps
- Push notifications overview — Multidevice support and architecture
- React Native SDK reference — Full SDK documentation
- Mobile Push Credentials API — Manage credentials programmatically