Mobile Application

Contents:

Requirements

Minimum Izar version : Izar.09

The XiVO mobile application should be used with at least the IZAR version of XiVO. The XiVO must contain an EGDE infrastructure allowing teleworkers or travelling workers to be able to access XiVO from outside. Follow the official documentation on required ports : See https://documentation.xivo.solutions/en/2022.10/edge/architecture.html#id3

../_images/mobile-app-schemas.png

When the user receives an incoming call, we use Firebase to wake up the mobile application by sending a push notification. The official firebase documentation describes the required ports and firewall configuration. See https://firebase.google.com/docs/cloud-messaging/concept-options#messaging-ports-and-your-firewall

Limitations

  • No conferences

  • No agent account

  • No unique account

Compatibility

Warning

XiVO mobile application is not functional on Realme smartphones because of phone accounts which can not be activated.

  • Android:

The tests are performed on Android 9, 10 and 11. Previous versions are not supported. Officially supported devices :

  • Samsung :

    • Galaxy Note 9 (Android 10)

    • Galaxy A8 (Android 9) e

    • Galaxy A40 (Android 11)

  • Fairphone : FP3 (Android 11)

  • Xiaomi : Note 9

  • IOS:

The tests are performed on the version 15.5. The supported version is IOS version 15. Previous versions are not supported. On the following mobiles :

  • Iphone 11

  • Iphone XR

  • Iphone 13

Case of unlisted terminals

Manufacturer’s software layer may create unattended behavior on unsupported devices. Please open a ticket to describe device - with OS version and the bug.

It is imperative t make preliminary tests on the mobiles which would not be compatible.

If you encounter problems, you can send an email to the support directly via the mobile application. It is however important to have configured on your mobile an application to send emails. The logs of the mobile application are sent in an attached file in this email.

Push Notifications

Push notification is a technology used in the XiVO server and the mobile application.

Since the Izar version, you can ring multiple devices at the same time. When you choose to ring the mobile application and the UCAssistant, the system will know when the devices are both ready to receive the incoming call.

As the UC assistant is connected directly to the server via the web interface, this will be relatively quick.

For the mobile application, the operating systems (Android and IOS) are using a “DOZE” mode. This mode closes the application when it has not been used for some time, to reduce the consumption of the battery. To wake up the application, we use the push notification that goes through a public push server. It will send a notification to the mobile to wake up the XiVO mobile application.

You might need to wait a certain time after you launched the call for the mobile application to wake up. This time can vary from one to ten seconds, depending on the push servers and the network quality. Once the mobile application responds, we start ringing the available devices.

Some use cases

Ringing device selected:

  • UC Assistant: Fast ringing on the UC direct connection to the web browser or desktop

  • Mobile application: Launching the ringtone on the mobile application when it will be awakened. The mode of operation used is the push notification. There can be a waiting time.

  • UC + Mobile Application: There is a delay before launching the ringtone on both devices, the time for the mobile application to wake up.

../_images/push-notification.png

Troubleshooting

Error Codes

Error codes will be displayed in case of a problem on the application while trying to make an outgoing call :

  • Error code 1:

This error code means the application is not receiving or sending the SIP signal, and that the user is not REGISTER in the asterisk.

../_images/code-error1.png
  • Error code 2:

You will get this error code if the application is able to receive or send the SIP signal, but the user is not REGISTER in the asterisk.

../_images/code-error2.png

No internet access

If the user looses access to the Internet, the application switches to a non-usable mode until access is regained (see screenshot below). This display is removed when there is an internet access.

../_images/no-internet-mobile-app.png

Sending logs to support

If you encounter an unsual behaviour and you manage to reproduce it on your application, you can send the logs directly via the configuration and click on Send logs to support.

Warning: The logs are sent by email, you must therefore have a messaging system configured on your phone.

../_images/sending-logs-mobile-app.png
../_images/sending-logs-mobile-app2.png

Required permissions

If you didn’t give all the authorizations needed to use the mobile app, this error message will be displayed the next time you open the application. This means the XiVO phone account is not active.

../_images/required-permissions-mobile-app.png

In this case, you should click the OK button and will be redirected to the settings.

If the phone is a “Samsung”, the phone accounts settings will be opened. You just have to activate the check mark next to XiVO.

../_images/authorizations-mobile-app.png

If the phone is not a Samsung, you will be redirected to the wrong settings. You will need to search in your phone settings where to activate the XiVO phone account.

Xiaomi stop battery optimization

../_images/xiaomi-battery-stop.png

Xiaomi authorizations

In the settings of the Xivo application check if these settings are active:

Show on lock screen Show pop-up windows while browsing in the background

../_images/xiaomi-authorizations.png

If you are in the above context, you may not receive calls when your phone is locked.

Xiaomi phone account

When activating the XiVO phone account (step 5), you need to :

  • Click Ok on the window Les permissions requises,

  • go to paramètres d’appel => Comptes des appels,

  • then in comptes téléphoniques you need to activate XiVO.

../_images/xiaomi-phone-accounts.png
../_images/xiaomi-phone-accounts2.png

Configuration

Type of Ringtone

You can change the value of XIVO_MAPP_WAIT_WITH_MUSIC in the file /etc/xivo/asterisk/xivo_globals.conf to customize the ringtone behavior. If the value is set to True, you will hear the default music on hold while attempting to reach to a user with a mobile application. Otherwise, you will hear a regular ringtone.

XIVO_MAPP_WAIT_WITH_MUSIC = "True"

In case you do want to completely disable this, then you can set the value of XIVO_PLAY_MSG to False which will make caller hear a regular ringtone.

XIVO_MAPP_PLAY_MSG = "True"

Waiting While Mobile Application Is Waking Up

Before calling a user with a Mobile App, we wait for the mobile app to wake up (and (re)register (SIP level)). By default we wait 15s: 3 loops of 5s.

If the Mobile App never wakes up (or never (re)registers) the call will continue depending on the callee ringing device:

  • if it was Mobile application: it will end up in user’s no answer scenario

  • if it was UC Assistant + Mobile application: it will call the UC Assistant

The time we wait for the Mobile App to wake up is configurable by configuring the number of loops, interval between two loops is now configurable too. To do so, adjust the following two variables in the file /etc/xivo/asterisk/xivo_globals.conf:

XIVO_MAPP_LOOPS_MOBILEAPP = 3
XIVO_MAPP_LOOPS_WEBAPPANDMOBILEAPP = 3
XIVO_MAPP_LOOPS_INTERVAL = 5

Note that:

  • XIVO_MAPP_LOOPS_MOBILEAPP configures the number of loops if the callee ringing device is Mobile application

  • XIVO_MAPP_LOOPS_WEBAPPANDMOBILEAPP configures the number of loops if the callee ringing device is UC Assistant + Mobile application

  • XIVO_MAPP_LOOPS_INTERVAL configures the time between two loops

Therefore you might, for example, want to:

  • lower the number of loops when ringing device is UC Assistant + Mobile application: in order to fallback more quickly on the UC Assistant if the Mobile App does not wake up

  • and increase the number of loops when ringing device is Mobile application: in order to give more time to the Mobile App to wake up before going to the callee no answer scenario

  • another more dynamic but risky scenario is to disable the message via XIVO_PLAY_MSG, then reducing the time between loops via XIVO_MAPP_LOOPS_INTERVAL, in this scenario, we advice you not to forget to adapt the loops number to give sufficient time to the MobileApp to wake up.