Reference13r2:Concept Push Notifications for iOS and Android

From innovaphone-wiki

Jump to: navigation, search

With firmware version 13r2 the PBX is able to send Push notifications to the Apple (APNs) or Android Push Notification services. As a result, incoming calls are also indicated when the myPBX/myApps application is not started or runs in the background mode. The PBX is using a service provided by innovaphone AG at services.innovaphone.com to send the push notifications to the vendors Notification Service. No call meta data is transmitted, the push notification is only used to wake up the myPBX/myApps application. Only one Push object is needed for a system.

Contents

Requirements

PBX

  • Firmware version 13r2 or higher
  • Internet access via HTTPS
  • device certificate (also on IPVAs)
    • this device certificate is not an own certificate, which you can upload yourself but which you need to retrieve through my.innovaphone (see Initial configuration)!

myPBX for iOS or Android

  • iOS since Version 12r2sr20
  • Android since Version 12r2sr23

myApps for iOS or Android

  • iOS since Version 13r1
  • Android since Version 13r1

Smartphone

  • iOS Version 12.0.1 or higher
  • Android Version 6.0 or higher

Configuration

PBX

  • create a PUSH object via the PBX manager,by clicking on the plugin Push (Black and White myApps symbol) The Plugin will create a PBX object in the PBX of type Push per system, even in master/slave scenarios
    • Name Push and SIP name push can be freely choosen, but the sip name must be used in the push field of user the objects. We advise leave the pre filled Standard names.
    • the App URL must be https://push.innovaphone.com/push/ws

After clicking OK a green checkmark should appear, indicating that the Push object has a valid websocket connection to the innovaphone Push service.

User Objects

  • For each user who is to receive push notifications on his myPBX/myApps-application, the Name of the push-object must be entered in his userobject at the Push field in the User tab.

iOS specific settings

  • On the iOS device make sure to allow push notifications for the myPBX/myApps application.

myPBX Android specific settings

Push notifications are now better supported. There are new parameters in myPBX for Android "Settings/App Settings/Push notifications".

  • Auto: (default setting) Operation without push with transition to "Active" at the first reception of a push notification.
  • On: Operation with Push. myPBX terminates after 10 seconds of idle time and switches to "Active" the first time a push notification is received.
  • Off: Operation without Push. myPBX tries to keep the registration permanently active.
  • Active: Operation with Push. Notifications have already been received successfully.

How it works

  • First of all the mobile phone opens a connection to Apple or Google. If the phone is in a restricted Wi-Fi network (and has no GSM/LTE data connection to receive Push notifications), the appropriate ports of the firewall needs to opened as explained in the documentation of apple or google.
  • If the app is in the background and the user receives an incoming call, the App needs to be woken.
  • Therefore the PBX sends a push request to innovaphones push servers (push.innovaphone.com)
  • The communication is done with MTLS and our push servers check the client device certificate of the PBX
    • the used certificate is the device certificate provided by innovaphone and not a certificate, which you can upload yourself
  • push.innovaphone.com forwards the request to the Apple or Google Push service.
  • The respective vendor sends the push request to the mobile phone and uses the ports opened in the first step.
  • The app then registers at the PBX via H.323.
  • In the last step the incoming call is sent (using the H.323 registration) to the mobile phone.

Image:push.gif

Note: the services.innovaphone.com in the picture must be replaced with push.innovaphone.com

Privacy

When using the Push service the PBX will send following data/information to innovaphone:

  • Notification Type (plain)
    • call or notification
  • Detailed informations (enrypted)
    • call
      • number
      • name
      • callflow
    • notification
      • title
      • content

The informations will send from the PBX to the Smartphone via the innovaphone Push-Service and forwarded to the Google/Apple push system. The Smartphone receives a decryption key via websocket or H323 (you have to use the secure version to transmit the key encrypted) from the PBX. Neither the push service at innovaphone nor the Apple / Google push system can read the encrypted information.

Troubleshooting

Initial configuration

  • Check the trust list for the certificate of the innovaphone AG.
  • Make sure the PBX can resolve the DNS host push.innovaphone.com.
  • Make sure the PBX can reach push.innovaphone.com via HTTPS.
  • Make sure that you have a innovaphone device certificate (the certificate is signed by innovaphone Device Certification Authority 2), even on IPVAs. If not, you can acquire a new one on the Gateway via General/License/my.innovaphone.
    • This will not conflict with an existing certificate that you installed yourself on the gateway.
  • Make sure the myPBX/myApps application has Push Notifications allowed in the OS settings.
    • iOS: Also make sure, the iOS device has a valid GSM data connection or a WiFi connection with the internet, especially TCP port 5223 (see Troubleshooting Push Notifications article by Apple).

Push looses connected state

  • If the push object was already connected, and for some reason (after a firmware update or network connection problems), the object is not connected anymore, please check that PBX can reach and resolve "push.innovaphone.com" and the innovaphone AG certificate is still in the trust list.

myPBX for Android push configuration checks

Go through the following steps, to check that in your Android phone, Push is configured correctly.

Image:Concept_Push_Notifications_for_myPBX_iOS_and_Android_1.jpg

Open myPBX, and check that the registration for the user is up, press the wheel symbol on the top left, then App Settings

  1. Tap "Calling account" and check that myPBX slide is enabled (to the right)
  2. Back to the App settings page and tap on "Data Saver" and check that "background data" is enabled.
  3. Back on the app settings page, tap on "overlaying" and check that "Allow display over other apps" is enabled.
  4. Check that "push notifications" is enabled (on)

myPBX for iOS push configuration checks

Go through the following steps, to check that in your iPhone, Push is configured correctly.

  1. Open your Settings app
  2. Tap Notifications on the left-hand side of your screen.
  3. Find the myPBX app and make sure notifications are allowed

myApps for Android push configuration checks

Image:Troubleshoot_v13_Push_with_myApps_for_Android and iOS_1.jpg

Open myApps, and check you have a softphone app configured. Then tap on the "burger" menu on the top right, and check your default app is the softphone app.

Scroll down and tap on "More"

  1. Tap on "myApps events" and enable notification on the smartphone for myApps
  2. Tap on "Calling account" and enable myApps as call account
  3. Tap on "Data saver" and enable background data for myApps on the smartphone
  4. Tap on "Overlaying" and enable them on the smartphone

myApps for iOS push configuration checks

Go through the following steps, to check that in your iPhone, Push is configured correctly.

  1. Open your iOS Settings app on your iPhone
  2. Go to the Notifications (German: Mitteilungen) section
  3. Find the myApps app and make sure notifications are allowed and that LockScreen, Notification Center and Banners are selected as Alerts

For more information on howto enable Push notifications for an iOS-app, see also this Apple support page, section If you don't see notifications for a specific app

innovaphone Push Service check

Consult innovaphone services overview to check if any unexpected service outage concerning push exists

Known limitations

Number to Name resolution on Android Push Notifications could be missing

On incoming call Push Notification to Android the caller number will be included, if the Number to name resolution it's not yet finished no name will be included in this Push notification just the number. The Android doesn't allow a number/name update of that call afterwards so it will remain displaying only the number till we terminate the call. On iOS we don't have such issue since the system allows update of the number/name during call.


Call accept time for users with myPBX client only

In case no other endpoints are registered on the User object, but only the myPBX client, the PBX will not provide any alerting message to the calling party, until the myPBX client on the device restores the registration to the PBX via push notification. In case no registration appears after 10 seconds, the PBX will send "no user responding" as cause code to the calling party.

Push is not working if no device registered and a CFNR is configured

In case no endpoints are registered on the User object, and there is also a CFNR configured. The Push will not be executed and as result the CFNR will be exectuted immediately.

This is a known limitation and is under investigation.

A temporary workarround which will fix this issue has been found.

Solution: Create a Forking on the users object to its own number !

Push will work and if the device is able to register within 10 seconds the myPBX app will ring and the CFNR will be executed with the configured timer.


Push does work even when the myApps app is switched off

The Push mechanism will also work when the myApps app is turned off. This can lead to complains about receiving calls after working ours or during holidays. With myApps as client, you can set the status to DND Do Not Disturb. Then close the myApps. This will prevent the App to be started by the Push mechanism. To receive calls again, open the myApps clients and set the status back to available.


Push does work even when the myPBX app is switched off

The Push mechanism will also work when the myPBX app is turned off. This can lead to complains about receiving calls after working ours or during holidays.

There is one solution to prevent the myPBX app from ringing. During Off-bussines hours you can select the DND do not disturb option. Calls will be still signaled, but the phone will not ring.

For longer periods or if you don't want the myPBX to receive calls at all during Holidays.

First shut it down within the app (and swipe to close) so that the myPBX is realy not running anymore. Then in the iPhone settings, within notifactions, disable the notification for myPBX. This will prevent the myPBX app to be started again.

An alternative method introduced in August 2019 to prevent myPBX from being started is to configure "Settings", "App settings", "Start automatically" to "Never". Whenever myPBX is closed via the button on the settings screen, a push notification will not start it. Once myPBX has been opened again, push notifications will continue to take effect.

This is a way how the user can stop the push-functionality themself. Of course, after the holiday they have to enable the push notification in the iPhone again by themselves.

Customer uses HTTP-Proxy for Internet access

The WebSocket client does not support HTTP-Proxy connections, more specific HTTP Tunneling using HTTP CONNECT - therefore Push notifications will not work. See also: Reference13r1:Services/HTTP/Client#Proxy_Servers

Known issues

Cloning IPVAs

If you clone an IPVA with an existing device certificate, you'll also clone this certificate, so you'll have a wrong serial number inside the certificate afterwards.
So do not clone IPVAs but setup a new VM and upload a modified configuration file afterwards and create a new certificate for the new machine.

Currently it is not possible to update or delete the device certificate.

Related Articles

Personal tools