Skip to main content

Android Push Notification Setup

| Android | iOS |


Android

The Telnyx Android Client WebRTC SDK makes use of Firebase Cloud Messaging in order to deliver push notifications. If you would like to receive notifications when receiving calls on your Android mobile device you will have to enable Firebase Cloud Messaging within your application.

In order to do this you need to:

  • Set up a Firebase console account
  • Create a Firebase project
  • Add Firebase to your Android Application
  • Setup a Push Credential within the Telnyx Portal
  • Generate a Firebase Cloud Messaging instance token
  • Send the token with your login message

Adding Firebase to your application is a simple process. Click on the Android icon on the home screen of the console to start: firebase-pn-screen

Next, enter your application details and register your application add-firebase-to-app

After your application is registered, Firebase will generate a google-services.json file for you which will need to be added to your project root directory:

download-config-file-firebase

After that, you can follow this guide on how to enable the firebase products within your application https://firebase.google.com/docs/android/setup#add-config-file

An alternative method is to add Firebase using the Firebase Assistant within Android Studio if it is setup within your IDE. You can view steps on how to register via this option here: https://firebase.google.com/docs/android/setup#assistant

Once your application is set up within the Firebase Console, you will be able to access the server key required for portal setup. You can access the server key by going into your project overview -> project settings and selecting Cloud Messaging. Once there, the project credentials will be visible for use in our portal setup. add-server-key

The next step is to set up your Android VoIP credentials in the portal.

  1. Go to portal.telnyx.com and login.
  2. Go to the API Keys section on the left panel.
  3. From the top bar go to the Credentials tab and select “Add” >> Android Credential

api-keys-pn

  1. Enter the details required for your Android Push Credentials. This includes a Credential name and the server key from firebase mentioned in an earlier step.

add-android-push-credential

Save the new push credential by pressing the Add Push Credential button

We can now attach this Android Push Credential to a SIP Connection:

  1. Go to the SIP Connections section on the left panel.
  2. Open the Settings menu of the SIP connection that you want to add a Push Credential to or create a new SIP Connection .
  3. Select the WebRTC tab.
  4. Go to the Android Section and select the PN credential you previously created.

sip-connection-pn

The portal setup is complete. Now when firebase is properly integrated within your application, you will be able to retrieve a token with a method such as this:

private fun getFCMToken() {
FirebaseApp.initializeApp(this)
FirebaseMessaging.getInstance().token.addOnCompleteListener { task ->
if (!task.isSuccessful) {
Timber.d("Fetching FCM registration token failed")
}
else if (task.isSuccessful){
// Get new FCM registration token
try {
token = task.result
} catch (e: IOException) {
Timber.d(e)
}
Timber.d("FCM token received: $token")
}
}
}

Note: After pasting the above content, Kindly check and remove any new line added

The final step is to create a MessagingService for your application. The MessagingService is the class that handles FCM messages and creates notifications for the device from these messages. You can read about the firebase messaging service class here: https://firebase.google.com/docs/reference/android/com/google/firebase/messaging/FirebaseMessagingService

We have a sample implementation for you to take a look at here: https://github.com/team-telnyx/telnyx-webrtc-android/blob/main/app/src/main/java/com/telnyx/webrtc/sdk/utility/MyFirebaseMessagingService.kt

Once this class is created, remember to update your manifest and specify the newly created service like so:

https://firebase.google.com/docs/cloud-messaging/android/client#manifest

You are now ready to receive push notifications via Firebase Messaging Service.

iOS

The Telnyx iOS Client WebRTC SDK makes use of APNS in order to deliver push notifications. If you would like to receive notifications when receiving calls on your iOS mobile device you will have to configure a VoIP push certificate.

Creating a VoIP push certificate

In order to generate VoIP push certificates you will need:

  • An Apple developer account
  • App BundleID
  • CSR (Certificate Signing Request): Explained on Step #7
  1. Go to https://developer.apple.com/ and login with your credentials.
  2. In the Overview section, select “Certificates, Identifiers & Profiles”

ios-people-certs-appstoreconnect

  1. Press the blue “+” button to add a new Certificate: ios-certs-id-profiles

  2. Search for “VoIP Services Certificate” and Click “Continue”: ios-voipservices-cert-desc

  3. Select the BundleID of the target application, and click “Continueios-create-voipservices-cert

  4. Then, you will be requested to upload a CSR from your Mac. ios-create-voipservices-cert

  5. In order to generate a CSR: a. Open the KeyChain Access of your mac. b. Go to Keychain Access >> Certificate Assistance > Request a Certificate from a Certificate Authority. ios-export-voipservices-request

c. Add your email address and select “Save to disk” option, and click “Continueios-cert-information

d. Save the Certificate Signing Request (CSR) into your Mac. ios-save-csr

  1. Once you have created your CSR, press “Choose File” and select the certSign created on step #7. Click “Continue” and you are done. ios-create-voipservices-cert

  2. The new Certificate has been created. Now you need to download it: ios-download-cert

  3. Search for the downloaded file (usually named voip_services.cer) and double click on it to install it on your Mac. And that’s all for now!

Obtain your Cert.pem and Key.pem files

In order to allow the Telnyx VoIP push service to send notifications to your app, you will need to export the VoIP certificate and key:

  1. Open Keychain Access on your Mac (where you have installed the VoIP certificate by following the “Creating a VoIP push certificate” instructions).

  2. Search for “VoIP services” and verify that you have the certificate installed for the BundleID of your application. ios-keychain-access

  3. Open the contextual menu and select “Export”: ios-export-voipservices

  4. Save the .p12 file (A password will be requested before saving it): ios-save-certificate

  5. Once the certificate is created you will need to run the following commands to obtain the cert.pem and key.pem files:

$ openssl pkcs12 -in PATH_TO_YOUR_P12 -nokeys -out cert.pem -nodes
$ openssl pkcs12 -in PATH_TO_YOUR_P12 -nocerts -out key.pem -nodes
$ openssl rsa -in key.pem -out key.pem

Note: After pasting the above content, Kindly check and remove any new line added

  1. Now you can go to your Portal account and configure your PN credential.

Setup your iOS VoIP credentials on your Portal

Create an iOS Push Credential:

  1. Go to portal.telnyx.com and login.

  2. Go to the API Keys section on the left panel.

  3. From the top bar go to the Credentials tab and select “Add” >> iOS Credential ios-api-keys-pn

  4. Set a credential name (You can use your app bundle ID to easy identify your PN credential) and then copy and paste the contents of your cert.pem and key.pem files into the defined sections (Notice that you need to copy from ---BEGIN ####--- to ---END--- sections including those marks): ios-add-pn

  5. Save the new push credential by pressing the Add Push Credential button.

Assign your iOS Push Credential to a SIP Connection:

  1. Go to the SIP Connections section on the left panel.
  2. Open the Settings menu of the SIP connection that you want to add a Push Credential or create a new SIP Connection .
  3. Select the WEBRTC tab.
  4. Go to the iOS Section and select the PN credential created on “Create an iOS Push Credential

ios-select-pn

That’s done. You can now go to your code and start implementing PushKit and Callkit using the TelnyxRTC SDK and receive VoIP push notifications into your iOS device.

On this page