Reference12r2:Concept myPBX for iOS

From innovaphone wiki
Jump to navigation Jump to search
There are also other versions of this article available: Reference12r1 | Reference12r2 (this version)

Version 12r1 introduces myPBX for iOS, an iOS app for iPhone and iPad that provides similar features than the desktop phones IP222 and IP232 in the WLAN via H.323.

Requirements

PBX

  • myPBX license matching the PBX version (enabled at the user object)
  • Uses Port-Lic since does an active registration on the PBX like an IP Phone.

iPhone/iPad

  • An iPhone or iPad running iOS 8.0 or higher for best user experience but interoperability with earlier iOS versions beginning with 6.0 is supported.

Features

For a feature overview refer to myPBX derivates and features.

Installation

Install the app from the App Store. Search for "innovaphone" and "myPBX" to locate it. Start the myPBX for iOS app and enter the credentials for registration on your PBX in the setup screen.

Configuration via WEB browser

For configuration via WEB browser determine the IP address that has been assigned to the iPhone in the WLAN. It's shown on the setup screen of the app and in the WLAN settings. Access http on port 10006 or https on port 10007 from the browser of an iMac or PC. Make sure that myPBX for iOS is started and running in the foreground on the iPhone:

http://xx.xx.xx.xx:10006
https://xx.xx.xx.xx:10007

To log in to the configuration enter

User name: admin
Password: mypbx

Configuration via e-mail

Since 12r1 sr 8 and 12r2 beta 4 configuration commands can be passed to the app via an URI. The URI might be sent to the iPhone by e-mail or made available as link in a web page. The URI must start with

com.innovaphone.commands://

I.e. URI scheme "com.innovaphone.commands". It might be followed by any sequence of configuration commands to set module parameters or variables. Please refer to the update script documentation. Commands must be separated by newline which needs to be replaced by "%0d%0a". Spaces might be replaced by '+'. E.g.

ser
config change PHONE SIG /h323 user /prot SH323 /gk-addr thepbx.company.com /gk-id company.com
vars create PHONE/USER-PWD/00000 pc 1234567890abcdef
config change MEDIA /stun thestun.company.com /turn theturn.company.com /turn-user turnuser
vars create MEDIA/TURN-PWD pc 8cb5df61335a13ea6a9f540db8224d99cecfe54ec663f29ea94df478ccc1c285
config change UP1 /url http://updateserver.company.com/init /poll 1
config change MAIN /deny-uri-commands 1
config activate
config write
reset

Results in the following prepared link

com.innovaphone.commands://ser%0d%0a
config+change+PHONE+SIG+/h323+user+/prot+SH323+/gk-addr+thepbx.company.com+/gk-id+company.com%0d%0a
vars+create+PHONE/USER-PWD/00000+pc+1234567890abcdef%0d%0a
config+change+MEDIA+/stun+thestun.company.com+/turn+theturn.company.com+/turn-user+turnuser%0d%0a
vars+create+MEDIA/TURN-PWD+pc+8cb5df61335a13ea6a9f540db8224d99cecfe54ec663f29ea94df478ccc1c285%0d%0a
config+change+UP1+/url+http://updateserver.company.com/init+/poll+1%0d%0a
config+change+MAIN+/deny-uri-commands+1%0d%0a
config+activate%0d%0a
config+write%0d%0a
reset%0d%0a

It might be placed as hypertext link into a mail and sent to the iPhone for first provisioning. Once the user clicks the link, the app starts and carries out the commands.

Note: Reference12r2:Concept_myPBX_for_iOS#Configuration_via_e-mail_not_working_with_all_mail_clients

Note that the command

config change MAIN /deny-uri-commands 1

prevents further provisioning commands via this mechanism.

Considerations for vars create

The vars create command needs its value URL encoded. Spaces must be denoted as %2520 to leave %20 after the first step of URL decoding or as %2b to leave + which means space. A plus seen as %2b in the command must we re-written as %252b. E.g. the configuration command

vars create PHONE/USER-REG/00001 p %3creg+gk-addr=%27172.16.1.1%27+e164=%27123%27+h323=%27user%2btest%27+/%3e

needs to be embedded in the mail as one of these

vars+create+PHONE/USER-REG/00001+p+%3creg%2bgk-addr=%27172.16.1.1%27%2be164=%27123%27%2bh323=%27user%252btest%27%2b/%3e
vars+create+PHONE/USER-REG/00001+p+%3creg%2520gk-addr=%27172.16.1.1%27%2520e164=%27123%27%2520h323=%27user%252btest%27%2520/%3e

Issue with some older myPBX iOS Versions

Some older myPBX iOS versions garble the first command. It is therefore recommended that you insert a first, useless command (e.g. ser) as first command in to your command sequence.

Settings

Most of the configuration of myPBX for iOS in the config screen is identical to the one of the desktop telephone IP222. Instead of the device settings you will find the app settings, which are specific to iOS.

Mypbx ios app settings reference.jpg

Start automatically

This setting controls when myPBX for iOS should be active in background. Note that incoming calls are only indicated if the app is started and either visible or put in background via short press of the home button. If it has been stopped via the "Off" button at the headline of the settings screen or kicked away in the task manager, incoming calls are not indicated.

- "If connected to WiFi": The app stays active in background if connectivity is through WiFi. It quits background activity if connectivity changes to other than WiFi to make sure that it doesn't generate charges due to mobile data traffic. This is the default.

- "If mobile data/WiFi available": It stays active in background if connectivity is through WiFi or mobile data. Note that this may generate charges due to mobile data traffic.

- "Always": It always stays active in background.

- "Never": It never stays active in background. If telephone functions are needed myPBX for iOS must be started manually by click on its app icon.

GSM use

These are the options in which situation a call initiated in myPBX for iOS is deferred to the GSM dialer of the iPhone. The options are

- "Never": myPBX for iOS dials all calls itself and presents "no channel available" if the registration is not up. This is the default.

- "If registering isn't possible": Calls are deferred to GSM if the registration is not up, i.e. if no WiFi or mobile data connectivity exists.

- "Always for external calls": External calls are deferred to GSM.

- "For all calls": All calls are deferred to the GSM dialer.

- "If not connected to WiFi": myPBX for iOS dials all calls itself only if connectivity is through WiFi. Without WiFi all calls are deferred to the GSM dialer.

The last three options are useful if the WiFi or mobile data performance is not good enough for VoIP or if there is a quota on the mobile data traffic. Then the directory and presence information is still available and the calls use the GSM network.

Hang up with docking station

If the iPhone is used with a docking or charging station this option enables automatic call acceptance if the iPhone is lift from the dock and call disconnection if it is put back to the dock. Keep this setting off if the iPhone might be plugged for re-charging during a call as plugging would disconnect the call. The default of this setting if "off".

Auto-rotate screen

Keep this setting on if you want myPBX to automatically react to orientation changes.

Display brightness in docking station

This setting is useful in conjunction with a docking or charging station on the desk. It lets the iPhone keep its screen on while it is put in the station.

- "Display off": The iPhone doesn't keep its screen on when it is in the docking station. This is the default.

- "Dimmed": The iPhone keeps its screen on with lower brightness while it is in the docking station.

- "Bright": The iPhone keeps its screen bright while it is in the docking station.

Text

For iOS versions prior to 7.0 this setting chooses the font size used in the app. Large ("L") is the default.

- "XS": Very small

- "S": Small

- "M": Medium

- "L": Large

- "XL": Extra large

- "XXL": Extra, extra large

- "XXXL": Largest possible

WLAN MAC Address

The iOS operating system doesn't disclose the real WLAN MAC address to an application. It pretends on all devices that it's 020000000000. In this case myPBX for iOS assumes a random value based on the timestamp at installation of the app. This might be overwritten e.g. with the real value that is still shown in the iOS settings app.

Save log

Starts and stops saving a debug trace on the iPhone. To get the trace files connect the iPhone via USB to the iMac or PC, start iTunes and locate "Apps", "Shared Files", "myPBX". The file names are trace.txt, trace0.txt, trace1.txt, trace2.txt, trace3.txt.

Send logs via e-mail

Prepares an e-mail that contains all log files ready to send after a support ticket has been opened at innovaphone. Please insert the ticket number in the e-mail subject line prior to sending it.

Update

App updates of myPBX for iOS are distributed regularly via iTunes.

Update scripts may be used with myPBX for iOS in the same manner as with the desktop phones. The default name of the script is

update-MYPBXI.htm

App updates via update script are not possible. These script lines are ignored.

Push Service

As of V12r2sr20 push notifications are supported. For details please refer to Reference12r2:Concept_Push_Notifications_for_myPBX_on_iOS

Taking traces

innovaphone always works on improving myPBX for iOS and making it as stable as possible on every iPhone and iPad model. If there is a problem please try to capture a trace by turning trace logging on (Settings/App settings/Save log). Re-do the steps to reproduce the problem. Stop logging and get the trace files via USB connection to iMac or PC or send them by e-mail (Settings/App settings/Send logs via e-mail).

Mobile Data (3G/4G) pcap traces

If there are iOS problems in 3G / 4G which do not occur in the WLAN, you can still create with our trace options pcaps. 1. myPBX app under "Settings" -> "Web Configuration". In our webGUI (For my Android 6.0.1 only with chrome usable not with the Android browser (easy chrome open and 127.0.0.1 if no default) and the necessary trace options.

2. myPBX app -> app settings -> "save log"

3. Make calls and in the app settings "Send logs via mail" or even via USB.

4. Important! Deactivate the trace options in the webgui or deactivate logging again! Otherwise, the phone_logcat gradually becomes too large ... even without calls.

Adding ring tones

To add a ring tone create a MP3 file with a few seconds of audio and place it into the Ringtones subdirectory of myPBX for iOS. This directory is accessible via the browser of an iMAC or PC via

http://xx.xx.xx.xx:10006/drive/cf0
https://xx.xx.xx.xx:10007/drive/cf0

myPBX for iOS must be running in the foreground for this and must be terminated and started again to make the new file selectable as ring tone.

Known limitations

H.323/UDP not supported

H.323/UDP is not supported on myPBX for iOS. The signalling link to the PBX must be TCP or TLS.

SIP protocol not supported as User-1

If we set the protocol SIP the application will not obtain the mypbx license from the PBX and for that reason will not work, H.323/TCP or H323/TLS must be used.

No synchronisation with GSM call list

It is not possible to synchronize myPBX for iOS and GSM call list.

Edit: this is not true anymore since integration with CallKit.

Button on Bluetooth headsets not functional

The button of Bluetooth headsets doesn't provide for accepting or disconnecting calls. The button on wired earphones does.

Edit: this is not true anymore since integration with CallKit.

H.323/TLS Connection not Trusted by Default

Please check the H.323/TLS Known Issues article.

Delayed re-registration if mobile data use not permitted

The option "Start automatically" set to "If connected to WiFi" means that the use of mobile data traffic is not permitted. In this case it can take up to 10 minutes to re-gain registration if WiFi is available again after connectivity had been through mobile data.

Some WebUI operations are not possible on the iPhone itself

The button "Web Configuration" of the app shows the Web UI which allows extended configuration but has some limitations due to the browser window. E.g. it is not possible to download a certificate. These operations might be carried out via a Web browser on a remote computer. Note that myPBX iOS needs to be running in foreground to be accessible.

Configuration via e-mail not working with all mail clients

Configuration via e-mail doesn't work with all e-mail clients. It does however work with the native mail client of iOS.

Known issues

Incoming GSM calls

An incoming GSM call, puts the VoIP app in background and the remote IP-peer hears nothing until you switch back to the VoIP app.

Incoming call as banner

Since iOS 14 the iOS CallKit presents incoming calls as a banner leaving the original green answer button of myPBX visible. Use only the blue button of the banner to accept the call or change iPhone Settings, App "Phone", "Incoming Calls" to "Full Screen" to hide the myPBX user interface again during call answering.

Media connection problems in conjunction with an eSIM

If an eSIM is used, media connection may fail. To work around please configure TURN only mode, i.e. that media always goes through the TURN server. Put the smartphone in WLAN and scroll down the configuration screen of myPBX for iOS to look up the IP address it got. Then assert these commands from a browser at the same network:
http://xx.xx.xx.xx:10006/!config add PHONE SIG /turn-only
http://xx.xx.xx.xx:10006/!config write
http://xx.xx.xx.xx:10006/!config activate
Quit myPBX by click on the button on the top of the confugration screen and start it again.

Related Articles