Reference13r1:Concept myApps: Difference between revisions

From innovaphone wiki
Jump to navigation Jump to search
No edit summary
Line 506: Line 506:
<br/>
<br/>
From SR8 on the myApps Windows client will automatically download the correct MSI file depending on the operating system.
From SR8 on the myApps Windows client will automatically download the correct MSI file depending on the operating system.
== Known Problems ==
[[:Category:Problem_myApps|Known Problems]]

Revision as of 07:19, 3 July 2020

Applies To

This information applies to

  • innovaphone PBX from version 13r1

Overview

innovaphone myApps is the client software for innovaphone users and administrators. The base functionality is provided by a web application that is loaded from the PBX. Additionally there are installable versions for Windows, Android and iOS that come with an integrated browser and implement adaptions to the local operating system.

The purpose of myApps is to organize and run apps. All productive functionality is provided by additional apps that run inside myApps.

Requirements

Web version

For opening myApps in the web browser you need the most recent version of one of the following browsers:

  • Chrome
  • Firefox
  • Safari
  • or Edge

The following browser features are required and must not be disabled:

  • JavaScript
  • HTML5 Local Storage


myApps for Windows

  • Windows 10

32 & 64 bit Windows

  • 32 bit Windows: install the myAppsSetup32.msi from the App Store
  • 64 bit Windows: install the myAppsSetup.msi from the App Store

Media Feature Pack for Windows N editions

Windows N editions are missing the media feature pack which is pre installed on other Windows versions.
Please install the pack from Microsoft (Windows 10 pack) before you install myApps. The installer will check if the file C:\Windows\SysWOW64\mfplat.dll exist on your system.

Make sure to install the correct pack depending on your Windows version! There is a different pack for Windows 10 1703,1803,1809 and 32bit or 64bit etc.

Sometimes the installation will not work, because the installer have no read access to check if the package is already installed. If the file exist and the installer ask for install the Windows Media Feature Pack, you have to start the install with administrative rights.

myApps for iOS

  • iOS 12 or higher

myApps for Android

  • Android 6.0 or higher. Android 6.x may need an update of the Chrome browser.

Licenses

  • No license needed for myApps itself
  • Apps might require licenses

Account

  • A user account (user object) on the PBX is needed in order to use myApps.

Restrictions

  • Currently Dyn-PBXes are not supported

Features

myApps comes with the following features:

  • User login including two-factor authentication.
  • Display and set the own presence.
  • List of all available apps.
  • Running apps (inside an iframe).
  • Home screen with user-selected apps and app items that can be organized in collapsible groups.
  • List of all myApps-Logins. Unused or suspicious sessions can be logged out remotely.
  • Color scheme selection (light, dark).
  • Configuration of standard apps for certain functions (like phone calls or chat).
  • Link to account specific settings provided by a separate app (profile).

All other functionality is provided by apps. For example phone calls require a phone app. Chats require a chat app.

Additional features of myApps for Windows

  • Local Outlook contact search (configured MAPI profile in Outlook required (Exchange Account))
  • Office presence provider
  • Hotkeys
  • Tel-URI handler
  • Application sharing service for phone and softphone apps
  • Video service for phone and softphone apps
  • Audio service for softphone apps
  • Starting external applications for a call

Additional features of myApps for iOS / Android

  • Application sharing service for phone and softphone apps (viewing only)
  • Video service for phone and softphone apps
  • Audio service for softphone apps

Video features of myApps

  • Default resolution is 352x288
    • myApps checks the resolution supported by the webcam. If available, 352x288 is used. Otherwise, 320x240
    • likewise is done for the frame rate: if available, 30 fps is used, if not 15 fps
  • myApps delivers an average data rate of 350 kbps
  • Video codec is VP8 and H.264 (H.264 only for innovaphone myApps for Windows and web version)

AppSharing features of myApps

  • myApps delivers a maximum data rate of 500 kbps

Port ranges used in myApps for media streams

  • Audio -> [50000 - 50099]
  • Video -> [50100 - 50199]
  • AppSharing -> [50200 - 50299]

Details

Connecting to the PBX

The myApps web application is loaded from the PBX. The corresponding URL for opening myApps in a browser is

 https://<pbx-hostname>/PBX0/APPCLIENT/appclient.htm

The installable versions ask for the "server name" on the first startup. Enter the host name of the PBX to proceed to the login screen. You can change the server afterwards by logging out and clicking the "Change server" link on the login screen.

Deployment of settings

The administrator can deploy some general settings to be used as a default by all myApps clients. This can be done in the admin UI on page PBX/Config/myApps. See Reference13r1:PBX/Config/myApps for details.

This mechanism replaces the deployment using MSI parameters that could only be used for myApps Windows.

Authentication and security

For using myApps you need an account (user object) on the pbx with a password. For logging-in you need to enter the username (SIP-URI) or email address and the password.

Permanent sessions

On each successful login on a new browser or new device a permanent session is created that is defined by a session id and a session password. Those are stored both in the local storage of the browser and at the user object in the PBX. If the user closes myApps and opens it again, the stored session is used. Only when logging-out the session is deleted in both places and the login screen is shown again.

Note that the user password is never transmitted over the network or permanently stored in the browser.

The user can keep track of all his permanent sessions in the myApps menu under "Account security". Sessions that are not needed anymore can be deleted here. The corresponding browser or device is logged out on-the-fly.

Two-factor authentication

The purpose of two-factor authentication is to maintain an additional level of security that prevents attackers form logging-in even if they compromised a users password. Therefore we strongly recommend to use it.

It can be activated during installation of the PBX or in the admin UI under PBX/Config/Authentication. If activated, the password alone is not sufficient for logging-in but the user must also verify the new session by

  • Confirming it in a dialog displayed on any existing myApps session.
  • Clicking a link that is sent to the email address configured at the user object.

In both cases a security code is displayed that should be compared to the one that is shown on the login screen of the new session. If it is the same the user can be sure that he is confirming his own login but not the possible concurrent login of an attacker.

The email account for sending the verification emails can be configured during installation of the PBX, in the PBX Manager plugin "Email" or in the admin UI under PBX/Config/Authentication.

If a user is notified about a login attempt he did not do, it means that the user password is compromised. The following should be done in such cases:

  • Reject the session (email link or displayed dialog)
  • Inform the administrator
  • Change the user password

Using Windows passwords

Instead of using the passwords configured at the user object, the Windows password can be used. Please see Reference13r1:Concept_Netlogon_and_myPBX_Windows_Authentication for details.

Logging out

In the installable version a logout can be done in the myApps menu at "Account security" / "Current session".

Resetting passwords

If the user has forgotten the password, he or she can set a new one by clicking the "Forgot password?" link on the login screen and completing an email verification process. This function can be activated or deactivated by the admin by configuring the link at "PBX"/"Config"/"myApps"/"Reset Password Page" or - more conveniently - using a checkmark in the PBX manager plugin of the innovaphone Users app that provides the functionality.

Apps

App runtime

All apps are web applications that consist of

  • An HTML page
  • Javascript files
  • An app icon

myApps starts apps by opening the HTML page in an iframe. All communication between the apps and the myApps client is done using HTML5 window messaging. For example if the user changes the color scheme, myApps sends a window message to all open apps, so they can also switch colors.

App objects

All apps that appear in the myApps client must be configured in the PBX. For apps that are loaded from the innovaphone App Platform or any other external server an App object is used that contains all the needed parameters.

Name
An ID that must be unique per PBX domain. The ID is only used internally to reference that app and is not shown to the user.
Long Name
The display name of the app.
Password
The shared secret between the app instance and the PBX. It corresponds to the password configured at the app instance. This secret is used when a user is authenticated against the app.
URL
The base URL of the app. myApps appends .htm to get the URL of the HTML page and .png to get the URL of the app icon.
Hidden
Some apps don't have a user interface. Their only purpose is to provide functionality (Client APIs) for myApps or other apps using window messaging. They have the "Hidden" flag checked at the app object and are not shown to the user.
Plain website
Checked if the HTML page is not an actual app that requires login and processes the window messages used for apps, but if it is just a reglar website. This flag can be used to integrate websites into myApps.
Please note that this feature is meant for having a possibility to create simple content pages and integrate them into myApps without the need to develop a full-fledged app. Most existing websites can't be integrated, because they do not allow to load them in an iframe.
Websocket
Some apps need a websocket connection from the PBX. This can be used to exchange additional information or to use APIs on the PBX. Those apps need the Websocket flag checked.

Some other PBX objects also provide apps, like the Boolean object.

App permissions

In order to use an app the administrator must grant the permission to the user. This can be done using templates of at the specific user object ("Edit Object"/"Apps"). The same setting can be done in the PBX manager plugin "Templates". The user will find the apps he has access to in the "All apps" view in myApps.

Special case: phone apps

If a user has access to the "phone" or "softphone" app, it will not automatically appear in "All apps". Those apps need to be assigned to a device at the user object and will then be used for the registration on those devices. The admin can configure the app name at the individual devices in the admin UI. The user can assign the app during provisioning of phones in "Edit profile".

Client APIs and default apps

Some apps provide APIs that allow communication with other apps. An app providing an API is called an API provider. Communication is done using HTML5 window messages sent to the myApps client that dispatches them to the right app.

If there are many providers for the same API, the app can send messages to specific provider, to all providers or let the user decide. In the latter case, myApps displays a selection dialog to the user. The user can also mark an app as the default app for an API that will then be used without asking again.

Additionally the user can configure the standard apps in the myApps menu.

The default apps are stored locally on each browser / device. So the user can have a different setting on each device.

Special case: phone API (com.innovaphone.phone)

The phone apps provide a phone API that can be used by other apps to start calls. If a phone app is selected as the default phone app it has the following effects:

  • When dialing a phone number (in a contacts app) the default phone app will be used for the call.
  • On incoming calls the phone app is started and displayed automatically, to handle the call.

If no default phone app is selected on a device

  • The user will be asked what phone app shall be used when dialing (in a contacts app)
  • On incoming calls no phone app will be started

Regardless of the setting, the user can open any phone to start or receive calls.

The standard phone app can be also selected by longpressing the app tile on the home screen.

Home screen

The home screen contains tiles that represent apps or items from apps - generally speaking links to apps. For example the user can place his phone app next to a contact from a contact app. Those tiles can be organized in named groups that can be collapsed, if they are currently not needed.

The presentation of a tile contains an icon, the name of the app or item and optionally a presence and a badge count provided by the app.

There are two ways for the user to add new items to the home screen:

  • Click the home symbol at an app in the "All apps" view.
  • Click an attach icon at an item inside an app.

Apps can be removed again the same way or by longpressing the tile and clicking "Remove from home".

Storage and format

The home screen is stored at the user object in the PBX and is synchronized over all sessions of the user.

The admin can see and configure it in the admin UI at "Edit User"/"User"/"Home Screen Apps". It is a comma-separated string of app links.

The string is limited to 8KB. If the limit is reached no more items or groups can be added to the home screen.

Format: Items starting with a colon are groups. Items starting with two colons are collapsed groups.

For example

   :Apps,chat,users,::Contacts,users?id=jdo#d=John%20Doe&s=jdo

corresponds to

  • Apps (group)
    • Chat
    • Users
  • Contacts (collapsed group)
    • "John Doe" from the app "users"

All apps

This page in myApps shows all apps that the user has access to (see: #App permissions). Apps that are often used can be attached to the home screen.

Edit profile

An app for managing the user profile can be configured in the admin UI at "PBX"/"Config"/"myApps"/"Edit Profile App". Typically the profile app provided by the innovaphone Users app is used for that. If configured a menu item "Edit profile" appears in the myApps menu.

Privacy and Datastorage

myApps will store the following data on your local device:

  • appclient-username / appclient-password
Auth token from the user session on this device (This is not the password itself, only a random token).
  • appclient-model
Offline-files from myApps which contains the personal user data (eg. Home screen configuration and Push tokens).
  • appclient-config
URLs and credentials for local services (credentials will be new generated randomly on every startup)
  • appclient-usr-XXXXXXXXXXXXXXXXXXX
anonymized environment settings of all historical user sessions (eg. theme, element size of home screen elements, language)

Additionally, it is allowed to every App to create own offline files or create local settings which will be stored also.

The Chromium Cache and DOM Storage (myApps for Windows) will be stored in $USER\AppData\Roaming\innovaphone\myApps\chromium\cache

Tracing and logging

myAPPS-Windows-Launcher

You can enable specific traces in the launcher configuration, the launcher writes a rotation of trace files to the folder C:\Users\[UserName]\AppData\Local\innovaphone\myApps.

The folder can be reached also via right-click on the myAPPs-icon in windows system tray.

myAPPs-Mobile

On Android and iOS the log files might be sent via e-Mail. This function is available from the main menu of myApps in "More...", "Trace".

An Android device might also be connected to a PC via an USB cable to get the traces. The files can be found in Android/data/com.innovaphone.clientandroid/files.

Trace flags

The following trace flags can be set:

  • App (0x000000001): logs from the App Service itself
  • DNS (0x000000008): logs DNS requests and results
  • HTTP client (0x000000080): http client logs
  • TLS (0x000000400): TLS logs
  • TCP (0x000000800): TCP logs
  • LDS (0x000001000): local domain sockets
  • WebSocket client (0x000004000): logs outgoing websocket connections
  • App WebSocket (0x000008000): logs app websocket connections (e.g. from PBX objects to an App Service or from the UI to the App Service)
  • UDP (0x000200000): UDP logs
  • DTLS (0x000400000): logs DTLS handshake and messages
  • Media (0x000800000): logs media events
  • Media channel (0x001000000): logs RTP/SCTP media connections
  • ICE (0x002000000): logs ICE messages between peers
  • TURN (0x004000000): logs TURN messages between peers
  • AppSharing (0x008000000): logs AppSharing connection
  • Audio (0x010000000): logs Audio connection and headset events
  • Video (0x020000000): logs video connection and webcam events
  • Browser (0x040000000): logs Chromium events
  • AppProxy (0x080000000): logs requests which are proxied between the local webserver and the remote server
  • Webserver (0x200000000): enables webserver specific logs

myApps Update Service

During myApps updates, log files are written in %windir%\Temp. The log file names are myAppsInstall.txt and myAppsUpdateService-...txt and may contain information why updates are failing.

Appendix

MSI parameters

Before using MSI parameters that only works for windows, consider deploying your settings as decribed in Reference13r1:Concept_myApps#Deployment_of_settings.

The MSI installer of myApps for Windows supports the following parameters and can edited via Microsoft Orca. You can add your parameters in the table property.

If you want to check existing configurations check your registry: Computer\HKEY_CURRENT_USER\Software\innovaphone\myApps

  • SERVER: sets the server name
  • OFFICEPRESENCE: false to disable presence integration in Microsoft Office
  • DISABLEHEADSETS: true to disable headsets support in myApps
  • EXTERNALAPPS: "{\"externalApps\":[{\"id\":1,\"name\":\"Wireshark\",\"path\":\"C:\\Program Files\\Wireshark\\wireshark.exe\",\"param\":\"\"]}"
  • FORCERESTART: true (or any string ...) kills myApps during the installation and restarts it for the currently logged in user, if it was running

Start Parameters

It is possible to pass start parameters from the Chromium documentation to the myApps process.

Such as using a proxy

myApps.exe --proxy-server="socks5://proxy.org:8080"

It is not guaranteed and supported that all commands of Chromium are accepted.

Codecs

The installed myApps launchers provide codecs that can be used by softphone apps for media streams. When running in a web browser the codecs depend on the browser version and operating system. See the documentation of your browser for details.

The following codecs are supported:

Codec Windows Android iOS Firefox (Browser) Chrome (Browser) Edge (Browser) Safari (Browser) Opera (Browser)
Audio
G711A
G711u
G722
G729 X X X X X
G729A X X X X X
G729B X X X X X
G729AB X X X X X
OPUS-NB X
OPUS-WB X
Video
VP8 X
VP9 X
H264 X X
Application Sharing
Share X X X X X X X
Watch ✔* ✔* X

* small presentation only

Known limitations

Button on Bluetooth headsets not functional on myApps for iOS

The button of Bluetooth headsets doesn't provide to accept or disconnect calls. The button on wired earphones does.

Related Articles

Known issues

Button on Bluetooth headsets not working on myApps for Android

  • The button of Bluetooth headsets does not work to accept or disconnect calls.The button on wired earphones does.

Application sharing not undockable on myApps for Android & iOS

  • Currently on mobile devices App sharing cannot be undocked from myApps and so cannot be bigger displayed

myApps starts in background when used in Citrix environments

  • partners reported that in Citrix installations, myApps starts in background/taskbar and cannot be brought to foreground. The problem was solved by disabling the "Global Seamless Flag" "DISABLE ACTIVE ACCESSIBILITY HOOK". According to Citrix documentation it is possible to disable this setting also only for specific apps.

myApps application window disappears on move when used in Citrix environments

In case the option "Show in Taskbar" of the myApps application is disabled, the myApps application window may disappear if moved. Leave this option alway on, if myApps is used in the seamless Citrix session.

Desktop notifications do not work in Windows Server setups

  • According to Citrix support this is a known issue for WindowsServer2012R2 and 2016. Microsoft owns a bugreport for this.

Desktop notifications do not work in Windows version below 10

  • Desktop notifications are only supported in myAPPs from Windows 10 clients as general requirements state.

myApps update hangs on 32 bit Windows

If you're updating to v13r1SR8, you'll notice that the automatic myApps Update won't continue on 32 bit Windows systems.
As the original myAppsSetup.msi is now a 64 bit MSI file, it can't be installed on 32 bit Windows anymore. Please install the myAppsSetup32.msi manually from the App Store in this case.

From SR8 on the myApps Windows client will automatically download the correct MSI file depending on the operating system.

Known Problems

Known Problems