Mobile Application

Important

This is an enterprise version feature that is not included in XiVO community and therefore not freely available due to PUSH mecanism to be set in place to wake up mobile phones. To enable it, please contact XiVO team.

Besides these considerations, the project stay Open Source and is available here: https://gitlab.com/xivo.solutions/xivo-mobile

Warning

Mobile VoIP is not suitable for critical or emergency calls.

Mobile operating systems, public network instability, and reliance on third-party notification services prevent the level of guaranteed reliability and Quality of Service (QoS) required for mission-critical communications. Dedicated telephony/softphony should be used for these purposes.

Contents:

Release Notes

See the XiVO Mobile release notes.

Requirements

  • Minimum XiVO version : supported LTS version

The XiVO mobile application should be used with at least the Jabbah 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 Network Flows

For the mobile application’s full requirements, compatibility, limitations, push-notification architecture and user guide, see the XiVO Mobile documentation.

Troubleshooting

Debugging

First, you have to look for AGI response on the Asterisk cli to confirm that the mobile push token is successfully executed. To do so :

  • Check asterisk full logs on XiVO: less /var/asterisk/full

  • search for the destination number of the call: /DTSNUM=<NUMBER_CALLED>

  • look at the logs at the time the call was made and note the channel_id exemple: [C-XXXXX]

  • Search the channel_id in the logs /C-XXXXX, then you can follow the process described before more easily.

  • Check that the token has been pushed : less /var/asterisk/full | grep webpush | grep C-XXXXX

In edge-Kamailio logs, you can see the INVITE processing and the Location (mobileApp and/or WebApp): edge-dcomp logs -tf  kamailio | grep LOCATION | grep <sip_call_id>

In mobile app logs, you will find token, the date and time when it’s received, expired and renewed. Note that in mobile app logs the time is UTC based

Configuration

Note

Since Quantum.05, do not edit /etc/xivo/asterisk/xivo_globals.conf directly: your changes are lost on the next upgrade. Instead, override any of the variables below by creating a file in /etc/asterisk/xivo_globals.d/, for example /etc/asterisk/xivo_globals.d/custom_globals.conf. Values set there take precedence over the defaults of xivo_globals.conf - see xivo_globals.conf.

Type of Ringtone

You can change the value of XIVO_MAPP_WAIT_WITH_MUSIC 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 (see the override note at the top of this section):

XIVO_MAPP_LOOPS_MOBILEAPP = 3
XIVO_MAPP_LOOPS_MOBILEAPP_AND_OTHERS = 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 only

  • XIVO_MAPP_LOOPS_MOBILEAPP_AND_OTHERS configures the number of loops if the callee ringing device is Mobile application combined with another device (e.g. UC Assistant and/or Phone)

  • 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.