Reference12r1:Concept myPBX for iOS: Difference between revisions

From innovaphone wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(51 intermediate revisions by 9 users not shown)
Line 4: Line 4:
== Requirements ==
== Requirements ==
=== PBX ===
=== PBX ===
* myPBX license of the same version (enabled at the user object)
* 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.
* Uses Port-Lic since does an active registration on the PBX like an IP Phone.


=== iPhone/iPad ===
=== 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.
* 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 [[Reference12r1:Concept_myPBX_derviates_and_features|myPBX derivates and features]].


== Installation ==
== Installation ==
Install the app from iTunes using the link [tbd]
Install the app from the App Store. Search for "innovaphone" and "myPBX" to locate it.
<nowiki>tbd</nowiki>
 
Start the myPBX for iOS app and enter the credentials for registration on your PBX in the setup screen.
Start the myPBX for iOS app and enter the credentials for registration on your PBX in the setup screen.


== Configuration via WEB browser ==
== 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 your PC:
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:
  <nowiki>http://xx.xx.xx.xx:10006</nowiki>
  <nowiki>http://xx.xx.xx.xx:10006</nowiki>
  <nowiki>https://xx.xx.xx.xx:10007</nowiki>
  <nowiki>https://xx.xx.xx.xx:10007</nowiki>
Line 24: Line 25:
  User name: admin
  User name: admin
  Password: mypbx
  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
<nowiki>com.innovaphone.commands://</nowiki>
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.
<nowiki>ser</nowiki>
<nowiki>config change PHONE SIG /h323 user /prot SH323 /gk-addr thepbx.company.com /gk-id company.com</nowiki>
<nowiki>vars create PHONE/USER-PWD/00000 pc 1234567890abcdef</nowiki>
<nowiki>config change MEDIA /stun thestun.company.com /turn theturn.company.com /turn-user turnuser</nowiki>
<nowiki>vars create MEDIA/TURN-PWD pc 8cb5df61335a13ea6a9f540db8224d99cecfe54ec663f29ea94df478ccc1c285</nowiki>
<nowiki>config change UP1 /url http://updateserver.company.com/init /poll 1</nowiki>
<nowiki>config change MAIN /deny-uri-commands 1</nowiki>
<nowiki>config activate</nowiki>
<nowiki>config write</nowiki>
<nowiki>reset</nowiki>
Results in the following prepared link
<nowiki>com.innovaphone.commands://ser%0d%0a</nowiki>
<nowiki>config+change+PHONE+SIG+/h323+user+/prot+SH323+/gk-addr+thepbx.company.com+/gk-id+company.com%0d%0a</nowiki>
<nowiki>vars+create+PHONE/USER-PWD/00000+pc+1234567890abcdef%0d%0a</nowiki>
<nowiki>config+change+MEDIA+/stun+thestun.company.com+/turn+theturn.company.com+/turn-user+turnuser%0d%0a</nowiki>
<nowiki>vars+create+MEDIA/TURN-PWD+pc+8cb5df61335a13ea6a9f540db8224d99cecfe54ec663f29ea94df478ccc1c285%0d%0a</nowiki>
<nowiki>config+change+UP1+/url+http://updateserver.company.com/init+/poll+1%0d%0a</nowiki>
<nowiki>config+change+MAIN+/deny-uri-commands+1%0d%0a</nowiki>
<nowiki>config+activate%0d%0a</nowiki>
<nowiki>config+write%0d%0a</nowiki>
<nowiki>reset%0d%0a</nowiki>
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: [[Reference12r1:Concept_myPBX_for_iOS#Configuration_via_e-mail_not_working_with_all_mail_clients]]
Note that the command
<nowiki>config change MAIN /deny-uri-commands 1</nowiki>
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
<nowiki>vars create PHONE/USER-REG/00001 p %3creg+gk-addr=%27172.16.1.1%27+e164=%27123%27+h323=%27user%2btest%27+/%3e</nowiki>
needs to be embedded in the mail as one of these
<nowiki>vars+create+PHONE/USER-REG/00001+p+%3creg%2bgk-addr=%27172.16.1.1%27%2be164=%27123%27%2bh323=%27user%252btest%27%2b/%3e</nowiki>
<nowiki>vars+create+PHONE/USER-REG/00001+p+%3creg%2520gk-addr=%27172.16.1.1%27%2520e164=%27123%27%2520h323=%27user%252btest%27%2520/%3e</nowiki>
=== 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. <code>ser</code>) as first command in to your command sequence.


== Settings ==
== Settings ==
Line 33: Line 77:
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.
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 reachability is via WiFi. It quits background activity if reachability changes to other than WiFi to make sure that it doesn't generate charges due to mobile data traffic. This is the default.
- "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 reachabilits is via WiFi or mobile data. Note that this may generate charges due to mobile data traffic.
- "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.
- "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.
- "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.
==== Use myPBX to dial ====
These are the options in which situation myPBX for Android takes responsibility for dialing if a call is started from another application on the smartphone, e.g. the contacts. The options are
- "Always ask": Let Android present a list to the user to choose the dialer. This is the default.
- "Never": myPBX for Android never acts as dialer.
- "For internal calls": Internal calls are dialed.
- "For all calls": Responsibility as dialer is taken for all calls.
- "In WiFi": Responsibility as dialer is taken for all calls if connectivity is through WiFi. Without WiFi it's up to the GSM dialer to dial the call. This option is useful if there is a quota on the mobile data traffic.


==== GSM use ====
==== GSM use ====
These are the options in which situation a call initiated in myPBX for Android is deferred to the GSM dialer of the smartphone. The options are
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 Android dials all calls itself and presents "no channel available" if the registration is not up. This is the default.
- "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.
- "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.
Line 65: Line 96:
- "For all calls": All calls are deferred to the GSM dialer.
- "For all calls": All calls are deferred to the GSM dialer.


- "If not connected to WiFi": myPBX for Android dials all calls itself only if connectivity is through WiFi. Without WiFi 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.
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 ====
==== Hang up with docking station ====
If the smartphone is used with a docking or charging station this option enables automatic call acceptance if the smartphone is lift from the dock and call disconnection if it is put back to the dock. Keep this setting off if the smartphone might be plugged for re-charging during a call as plugging would disconnect the call. The default of this setting if "off".
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 ====
==== Auto-rotate screen ====
Line 76: Line 107:


==== Display brightness in docking station ====
==== Display brightness in docking station ====
This setting is useful in conjunction with a docking or charging station on the desk. It lets the smartphone keep its screen on while it is put in the 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 smartphone doesn't keep its screen on when it is in the docking station. This is the default.
- "Display off": The iPhone doesn't keep its screen on when it is in the docking station. This is the default.


- "Dimmed": The smartphone keeps its screen on with lower brightness while it is in the docking station. Be careful with this setting as the screen of some smartphones may suffer if the same content is displayed for long periods even if it's not bright.
- "Dimmed": The iPhone keeps its screen on with lower brightness while it is in the docking station.


- "Bright": The smartphone keeps its screen bright while it is in the docking station. Be careful with this setting as the screen of some smartphones may suffer if the same content is displayed bright for long periods. They may show signs of burn-in afterwards.
- "Bright": The iPhone keeps its screen bright while it is in the docking station.


==== Permit CallLog Deletes ====
==== Text ====
myPBX for Android keeps the call log of GSM calls and calls in myPBX in sync. Every WLAN call log entry is duplicated to the GSM call log and every GSM call log entry is duplicated to the myPBX call log. This makes sure that all calls are shown in both logs. If an entry is deleted from the GSM call log it's also deleted in the myPBX call log. The other way requires that myPBX for Andoid deletes entries from the GSM call log. This is only done if the option "Permit CallLog Deletes" is enabled. During the beta phase do not enable it if the GSM call log is critical.
For iOS versions prior to 7.0 this setting chooses the font size used in the app. Large ("L") is the default.


==== Audio API ====
- "XS": Very small
Allows to select a specific API for audio streaming. On early Android versions this might be necessary to work around limitations. Options are:


- "Default": myPBX Android chooses the appropriate API according to the Android version of the smartphone.
- "S": Small


- "Java": Selects the Java audio API which is available from the very beginning of Android but has been superseded by more efficient APIs.
- "M": Medium


- "OpenSL ES": Selects OpenSL ES which is an API available since Android 2.3 on most devices. It's stated to be most efficient for voice streaming.
- "L": Large


- "RTP": Selects the direct RTP API available since Android 3.1. It doesn't support G.722 for HD Audio.
- "XL": Extra large


- "Default (*)", "Java (*)", "OpenSL ES (*)" select the respective API plus a workaround needed for a few old Android devices.
- "XXL": Extra, extra large


- "Java 48kHz", "OpenSL ES 48 kHz" select the respective API with playback sample rate 48 kHz. This may reduce the audio delay on some devices but puts extended requirements on the execution of the audio thread in myPBX for Android.
- "XXXL": Largest possible


==== WLAN MAC Address ====
==== WLAN MAC Address ====
Starting with Android 6.0 the operating system doesn't disclose the real WLAN MAC address to an application any more. It pretends on all devices that it's 020000000000. In this case myPBX for Android 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 Android settings app.
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 ====
==== Save log ====
Starts and stops saving a debug trace on the smartphone. To get the trace connect the smartphone via USB to the PC and locate the file
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.
Android/data/com.innovaphone.phoneandroid/files/phone_logcat.txt


==== Send logs via e-mail ====
==== Send logs via e-mail ====
Prepares an e-mail that contains all log files from
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.
Android/data/com.innovaphone.phoneandroid/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 ==
== Update ==
Install the new version via WEB browser on the smartphone from the link published by innovaphone or via WEB interface Maintenance/Upload/Firmware from a PC.
App updates of myPBX for iOS are distributed regularly via iTunes.


A seamless downgrade is not possible on Android 4.1 and later. However it is possible via a fresh installation of the app:
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


- Save the present configuration via WEB interface Maintenance/Download/Config/download
App updates via update script are not possible. These script lines are ignored.


- Uninstall the app from the smartphone
== Push Service ==
As of V12r2sr20 push notifications are supported. For details please refer to [[Reference12r2:Concept_Push_Notifications_for_myPBX_on_iOS]].
;Resolution in pre V12r2sr20 versions
:When the app is put back into foreground, it will register at the PBX which allows you normal operations. Depending on your internet connection this might take a few seconds.
:To signal calls to the user while the app is in background, mobility/GSM must be used. There is already a solution for it which you can find in the link below.
:[[Reference12r2:Concept_PBX_Mobility_for_myPBX_Android/iOS | Reference12r2: Concept PBX Mobility for myPBX Android/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).


- Install the older version by downloading it again from innovaphone
=== Mobile Data (3G/4G) pcap traces ===


- Set the same admin password and restore the configuration via WEB interface Maintenance/Upload/Config
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.


== Taking traces ==
2. myPBX app -> app settings -> "save log"
innovaphone always works on improving myPBX for Android and making it as stable as possible on every Android device. 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 from
Android/data/com.innovaphone.phoneandroid/files/
or send them by e-mail (Settings/App settings/Send logs via e-mail).


On Android 4.1 or later unexpected halts of an app cannot be traced sophisticatedly by the app itself. If an unexpected halt was encountered please induce a trace report from the Android system:
3. Make calls and in the app settings "Send logs via mail" or even via USB.


- Press and hold down all these at the same time: Power + Volume up + Volume down. You will need to hold these down for a couple of seconds then release. You may need a few tries to get it right. When this is done you will feel a short series of vibrations, and then see a Bug report captured in your notifications drop down. Tap on that notification to send the bug report using email.
4. Important! Deactivate the trace options in the webgui or deactivate logging again!
Otherwise, the phone_logcat gradually becomes too large ... even without calls.


- Choose to complete the action with Gmail (or any other email client you see).
== Adding ring tones ==


- Set the email to support@innovaphone.com and add the innovaphone support ticket number in the subject line.
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
<nowiki>http://xx.xx.xx.xx:10006/drive/cf0</nowiki>
<nowiki>https://xx.xx.xx.xx:10007/drive/cf0</nowiki>
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 ==
== 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.
=== 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.


=== H.323/TLS Connection not Trusted by Default ===
=== H.323/TLS Connection not Trusted by Default ===
Please check the [[Reference11r1:Concept_H.323_over_TCP/TLS_(H.460.17)#Known_Issues|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.


Please check the [[Reference11r1:Concept_H.323_over_TCP/TLS_(H.460.17)#Known_Issues|H.323/TLS Known Issues article]].
=== 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 ==
== Known issues ==
* Some Android smartphones do not properly support roaming. In this case an active call is likely dropped if the device is moved and needs to connect to another WiFi access point. Please see this discussion in the internet [http://code.google.com/p/android/issues/detail?id=12649 WIFI roaming not working].
===Incoming GSM calls===
<nowiki>http://code.google.com/p/android/issues/detail?id=12649</nowiki>
:A incoming GSM call, put the VoIP app to the background and the remote IP-peer hear nothing until you switch back to the VoIP app.


* Due to a limitation in the Android IP stack it's not possible to maintain more than one active H.323 registration to the same gateway / IP address using the default port 1719. As a workaround configure an alternative port at the PBX:
===Incoming call as banner===
<nowiki>http://xx.xx.xx.xx/!config change H323 /ras-port-alt 10008</nowiki>
: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.
<nowiki>http://xx.xx.xx.xx/!config write</nowiki>
<nowiki>http://xx.xx.xx.xx/!reset</nowiki>
Configure myPBX for Android to use this port:
<nowiki>http://xx.xx.xx.xx/!config change H323 /ras-port 10008</nowiki>
<nowiki>http://xx.xx.xx.xx/!config write</nowiki>
<nowiki>http://xx.xx.xx.xx/!reset</nowiki>


* On some smartphones the Android IP stack has another limitation if H.323 is done on a VPN connection. As result the H.323 registration requests are rejected. Do the same workaround as above then and configure an alternative port to 1719 at the PBX:
<nowiki>http://xx.xx.xx.xx/!config change H323 /ras-port-alt 10008</nowiki>
<nowiki>http://xx.xx.xx.xx/!config write</nowiki>
<nowiki>http://xx.xx.xx.xx/!reset</nowiki>
Configure myPBX for Android to use this port:
<nowiki>http://xx.xx.xx.xx:10006/!config change H323 /ras-port 10008</nowiki>
<nowiki>http://xx.xx.xx.xx:10006/!config write</nowiki>
<nowiki>http://xx.xx.xx.xx:10006/!reset</nowiki>


* If the smartphone dials a contact directly with the GSM dialer rather than presenting a choice with myPBX for Android included please reset the default dialer status of the GSM dialer. Open "Settings, "Apps", "All apps" on the smartphone. Locate the GSM dialer, scroll down in its options and click on "Clear defaults". This should bring the dialer choice back into effect and allow myPBX for Android to be chosen as alternative dialer.
[[Category:Problem-Archive|{{PAGENAME}}]]


* If myPBX Android looses connection as soon as the smartphone goes in standby please check that the Android setting "Wireless & Networks->WLAN->'...'-menu: Extended->Keep WLAN active in standby mode" is "Always". Also beware of a current issue with WLAN and IPv6 on some smartphones http://www.android-hilfe.de/lg-g2-d802-forum/676984-loesung-keine-push-nachrichen-wlan-mit-lollipop.html that can be worked around by disabling IPv6 at the WLAN router.
==Related Articles==
*[[Reference11r1:Concept myPBX for Android]]

Latest revision as of 14:50, 23 October 2023

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: Reference12r1: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.

Resolution in pre V12r2sr20 versions
When the app is put back into foreground, it will register at the PBX which allows you normal operations. Depending on your internet connection this might take a few seconds.
To signal calls to the user while the app is in background, mobility/GSM must be used. There is already a solution for it which you can find in the link below.
Reference12r2: Concept PBX Mobility for myPBX Android/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.

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.

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

A incoming GSM call, put the VoIP app to the background and the remote IP-peer hear 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.

Related Articles