Reference14r2:MyApps Plugin for Virtual Desktops: Difference between revisions
(15 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Concept|Apps]] | [[Category:Concept|Apps]] | ||
== Description == | == Description == | ||
A softphone running at a terminal server (Citrix, Windows, ...) has the problem that audio and video streams start and terminate at the server. | A softphone running at a terminal server (Citrix, Windows, ...) has the problem that audio and video streams start and terminate at the server. | ||
Received audio from remote peer at the server must be transmitted to the local client for playback and audio delivered by the audio device must be also transmitted from the local client to the server for transmission to remote peer. | Received audio from remote peer at the server must be transmitted to the local client for playback and audio delivered by the audio device must be also transmitted from the local client to the server for transmission to remote peer. | ||
Line 12: | Line 9: | ||
== Applies To == | == Applies To == | ||
* innovaphone PBX from version | * innovaphone PBX from version 14r2 | ||
* Windows, Linux (Ubuntu 22 or 23) or MacOS operating systems | * Client OS: Windows, Linux (Ubuntu 22 or 23, RangeeOS<ref>RangeeOS is listed due to a customer testimonial. No tests have been conducted by innovaphone. Tests were done using myapps 14r2sr3, RangeeOS Firmware 12.00 build 203 ff and Citrix Workspace 2311. (Workspace version 2402 & 2405 have a bug with USB redirection and 2408 is not starting reliably)</ref>, IGEL OS<ref>IGEL OS: available at [https://app.igel.com/myAppsPlugin/15.1.455+1 IGEL App Portal]</ref>) or MacOS operating systems | ||
* Citrix | * Hypervisor OS: Citrix, Windows Terminal Server environments and VMWare Horizon<ref>VMWare Horizon OS is listed due to a customer testimonial. No tests have been conducted by innovaphone.</ref><br /> | ||
<references/> | |||
== Requirements == | == Requirements == | ||
* innovaphone PBX | * innovaphone PBX | ||
* innovaphone myApps | * innovaphone myApps V14r2 | ||
* innovaphone myApps Plugin | * innovaphone myApps Plugin V14r2 | ||
* Firmware | * Firmware V14r2 final | ||
== Concept == | == Concept == | ||
Line 71: | Line 69: | ||
Install it at your Linux PC: | Install it at your Linux PC: | ||
https://docs.citrix.com/ | https://docs.citrix.com/en-us/citrix-workspace-app-for-linux/install.html | ||
'''sudo apt install -f ./icaclient_<version>._amd64.deb''' | '''sudo apt install -f ./icaclient_<version>._amd64.deb''' | ||
Line 78: | Line 76: | ||
'''sudo apt install -f ./myAppsPlugin.deb''' | '''sudo apt install -f ./myAppsPlugin.deb''' | ||
Headset Buttons: | |||
*Jabra: Create a file sudo <your-favorite-text-editor> /etc/udev/rules.d/50-udev-java.rules | |||
**Add <code>ATTRS{idVendor}=="0b0e", MODE="0666", GROUP="users"</code> as content. After creating the udev file (as root), reload the udev rules using: <code>sudo udevadm control --reload</code> | |||
*Epos: Create a file sudo <your-favorite-text-editor> /etc/udev/rules.d/50-udev-epos.rules | |||
** Add <code>ATTRS{idVendor}=="1395", MODE="0666", GROUP="users"</code> as content. After creating the udev file (as root), reload the udev rules using: <code>sudo udevadm control --reload</code> | |||
*Plantronics: Create a file sudo <your-favorite-text-editor> /etc/udev/rules.d/50-udev-plantronics.rules | |||
** Add <code>ATTRS{idVendor}=="047f", MODE="0666", GROUP="users"</code> as content. After creating the udev file (as root), reload the udev rules using: <code>sudo udevadm control --reload</code> | |||
* Snom: Create a file sudo <your-favorite-text-editor> /etc/udev/rules.d/50-udev-snom.rules | |||
** Add <code>ATTRS{idVendor}=="251c", MODE="0666", GROUP="users"</code> as content. After creating the udev file (as root), reload the udev rules using: <code>sudo udevadm control --reload</code> | |||
* Yealink: Create a file sudo <your-favorite-text-editor> /etc/udev/rules.d/50-udev-yealink.rules | |||
** Add <code>ATTRS{idVendor}=="6993", MODE="0666", GROUP="users"</code> as content. After creating the udev file (as root), reload the udev rules using: <code>sudo udevadm control --reload</code> | |||
No additional configuration required. | No additional configuration required. | ||
Line 97: | Line 108: | ||
== Known issues == | == Known issues == | ||
* Webcam and remote videos must be rendered over the Softphone App but for the time being a native window is opened at the terminal client (only for the Windows Plugin) | * Webcam and remote videos must be rendered over the Softphone App but for the time being a native window is opened at the terminal client (only for the Windows Plugin) | ||
Line 106: | Line 113: | ||
**Video is displayed but with delay due to the rendering process. | **Video is displayed but with delay due to the rendering process. | ||
**Citrix may provide access to the local webcam internally and the webcam may be available but remote peer will probably experience delay of the received video. | **Citrix may provide access to the local webcam internally and the webcam may be available but remote peer will probably experience delay of the received video. | ||
* When MyApps is used as a Citrix Published App, notification pop-ups cannot be displayed. This is because Citrix does not recognize the notifications as part of MyApps and therefore does not show them as part of the published app. If the full desktop is used in Citrix, the notifications function correctly. | |||
* Start of AppSharing remains at the terminal server but the transmission of the media now starts at the local client. | * Start of AppSharing remains at the terminal server but the transmission of the media now starts at the local client. | ||
<br/>We need to implement an exception for appSharing in the future as the transmission must happen at the server. | <br/>We need to implement an exception for appSharing in the future as the transmission must happen at the server. | ||
Line 178: | Line 185: | ||
both things are done during the installation. In case something is not working must check that the link to the plugin exists and that the modules file contains these entries. | both things are done during the installation. In case something is not working must check that the link to the plugin exists and that the modules file contains these entries. | ||
And under /Users/.../Library/Containers/com.innovaphone.myapps-plugin- | And under /Users/.../Library/Containers/com.innovaphone.myapps-plugin-14r2/Data/Documents a log file is created: myAppsPlugin.txt | ||
=== Troubleshooting Citrix === | === Troubleshooting Citrix === |
Latest revision as of 12:02, 4 June 2025
Description
A softphone running at a terminal server (Citrix, Windows, ...) has the problem that audio and video streams start and terminate at the server.
Received audio from remote peer at the server must be transmitted to the local client for playback and audio delivered by the audio device must be also transmitted from the local client to the server for transmission to remote peer.
This transmission of the audio stream between server and client adds a delay which makes the communication impossible.
Video suffers from the same limitations.
A new innovaphone product called myApps Plugin is being developed to provide offloading of the media data to the local client.
Applies To
- innovaphone PBX from version 14r2
- Client OS: Windows, Linux (Ubuntu 22 or 23, RangeeOS[1], IGEL OS[2]) or MacOS operating systems
- Hypervisor OS: Citrix, Windows Terminal Server environments and VMWare Horizon[3]
- ↑ RangeeOS is listed due to a customer testimonial. No tests have been conducted by innovaphone. Tests were done using myapps 14r2sr3, RangeeOS Firmware 12.00 build 203 ff and Citrix Workspace 2311. (Workspace version 2402 & 2405 have a bug with USB redirection and 2408 is not starting reliably)
- ↑ IGEL OS: available at IGEL App Portal
- ↑ VMWare Horizon OS is listed due to a customer testimonial. No tests have been conducted by innovaphone.
Requirements
- innovaphone PBX
- innovaphone myApps V14r2
- innovaphone myApps Plugin V14r2
- Firmware V14r2 final
Concept
The myApps Plugin at the client is in charge of all tasks related to the media streams and the management of the Audio/Video devices. For instance:
- start or stop an audio/video device
- gathering of the ICE candidates
- connect to a remote peer with the ICE protocol
- start a ringing device
- rendering of video
But we now need a way of communicating between the myApps running at the terminal server and the myApps plugin running at the terminal client in order to carry out all these actions.
Main VDI Platforms (Citrix, Windows, VMware) provide a way of communicating between server and client through Virtual Channels:
https://support.citrix.com/article/CTX116890/citrix-ica-virtual-channels-overview
https://learn.microsoft.com/en-us/windows/win32/termserv/using-terminal-services-virtual-channels
Call signaling
The VDI Plugin has no connection to the PBX. Signaling is still done at the terminal server by the myApps client.
Configuration
Citrix Workspace app must first be installed on all platforms. This is necessary because the myApps plugin must copy a .dll (Windows) / .so (MacOS/Linux) into the Citrix installation directory.
Windows
The myApps Plugin .msi must be installed or deployed at the Thin-Client and does not require any configuration.
MacOS
Install the myAppsPlugin.dmg or .pkg at the Thin-Client and does not require any configuration.
Linux
Update your Linux PC first:
sudo apt-get update
Download latest Citrix Workspace App (Mar 7, 2024) for Debian and x86_64 platform:
https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html
Citrix Workspace app needs libwebkit2gtk-4.0-37 packet and this packet is not available in Ubuntu-24.04 version.
Install it at your Linux PC:
https://docs.citrix.com/en-us/citrix-workspace-app-for-linux/install.html
sudo apt install -f ./icaclient_<version>._amd64.deb
Install (or update) now the myApps Plugin:
sudo apt install -f ./myAppsPlugin.deb
Headset Buttons:
- Jabra: Create a file sudo <your-favorite-text-editor> /etc/udev/rules.d/50-udev-java.rules
- Add
ATTRS{idVendor}=="0b0e", MODE="0666", GROUP="users"
as content. After creating the udev file (as root), reload the udev rules using:sudo udevadm control --reload
- Add
- Epos: Create a file sudo <your-favorite-text-editor> /etc/udev/rules.d/50-udev-epos.rules
- Add
ATTRS{idVendor}=="1395", MODE="0666", GROUP="users"
as content. After creating the udev file (as root), reload the udev rules using:sudo udevadm control --reload
- Add
- Plantronics: Create a file sudo <your-favorite-text-editor> /etc/udev/rules.d/50-udev-plantronics.rules
- Add
ATTRS{idVendor}=="047f", MODE="0666", GROUP="users"
as content. After creating the udev file (as root), reload the udev rules using:sudo udevadm control --reload
- Add
- Snom: Create a file sudo <your-favorite-text-editor> /etc/udev/rules.d/50-udev-snom.rules
- Add
ATTRS{idVendor}=="251c", MODE="0666", GROUP="users"
as content. After creating the udev file (as root), reload the udev rules using:sudo udevadm control --reload
- Add
- Yealink: Create a file sudo <your-favorite-text-editor> /etc/udev/rules.d/50-udev-yealink.rules
- Add
ATTRS{idVendor}=="6993", MODE="0666", GROUP="users"
as content. After creating the udev file (as root), reload the udev rules using:sudo udevadm control --reload
- Add
No additional configuration required.
Configuration on the Terminalserver
The Softphone App at the terminal server does not require any additional configuration.
How it works
User starts the VDI software (Citrix Workspace App or Windows Remotedesktop) needed to connect to a remote server.
This software automatically starts the myApps Plugin. No user action required.
The user starts myApps at the server for the Softphone App. myApps discovers that it is running in terminal server environment and will connect to the plugin which was already started by the VDI software.
The user does not need to have any knowledge about the myApps Plugin.
Licensing
Known issues
- Webcam and remote videos must be rendered over the Softphone App but for the time being a native window is opened at the terminal client (only for the Windows Plugin)
- Connecting to a conference or 3rd party conference does not transmit video as video starts in the Javascript code of the Softphone App and Javascript has no access to the local webcam at the remote server.
- Video is displayed but with delay due to the rendering process.
- Citrix may provide access to the local webcam internally and the webcam may be available but remote peer will probably experience delay of the received video.
- When MyApps is used as a Citrix Published App, notification pop-ups cannot be displayed. This is because Citrix does not recognize the notifications as part of MyApps and therefore does not show them as part of the published app. If the full desktop is used in Citrix, the notifications function correctly.
- Start of AppSharing remains at the terminal server but the transmission of the media now starts at the local client.
We need to implement an exception for appSharing in the future as the transmission must happen at the server.
For the time being the appSharing is transmitted to the client and forwarded to the remote peer adding some delay due to this tranmission between server and client (only for the Windows Plugin)
Troubleshooting
If the problem still exists after trying the OS-specific hints below, open a support ticket and send a trace from the myApps client (remote) with App and Browser option. Please send also all myAppsPlugin-x.txt and myAppsRemote-x.txt trace files from the myApps-plugin on the local PC.
Troubleshooting Windows
If Citrix is used as a terminal server environment:
1) Citrix must be installed BEFORE the plugin
2) Check in "C:/program files/Citrix/ICA Client" folder, there is the .dll myAppscitrixremoteserviesvc.dll
3) Check in the registry, that: Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\ICA 3.0 is there.
"VirtualDriverEx" must be there with the value: InnovaphoneCitrixPlugin
4) In Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\InnovaphoneCitrixPlugin as Drivename and DrivenameWin32 you should find the .dll as value and as innovaphone path the path of the plugin for the file myAppsplugin
Dump files are in the trace folder c:\users\$user\Appdata\local\innovaphone\myAppsPlugin if client crash at start.
Remote desktop (Windows)
After installing the plugin, check this registry folder:
Computer\HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default\AddIns\innovaphoneRemoteServicesSvc64
and check as "Name" the path of the .dll <--- c:\program files(x86)\iinnovaphone\myAppsPlugin\myAppsRemoteServiceSvc64.dll
check that the .dll exist in the mentioned direcotry and the plugin.
Troubleshooting Linux
Citrix Workspace App must be installed before the myAppsPlugin
Innovaphone Plugin is installed under /opt/innovaphone/myAppsPlugin and in /opt/Citrix/ICAClient/myAppsCitrixPlugin.so
myAppsCitrixPlugin.so library is called by the Citrix Workspace App and this library opens the myAppsPlugin.
There is a file in the Citrix installation called module.ini (/opt/Citrix/ICAClient/config/module.ini). Inside this file the myApps Citrix Plugin library is included:
- VirtualDriver entry must contain myAppsCitrixPlugin
- a line with myAppsCitrixPlugin=On must exist and
Following directory /var/log/apps/myAppsPlugin/ must also exist for the log files with write permission for everyone (drwxrwxrwx)
Troubleshooting MacOS
Citrix Workspace App must be installed before the myAppsPlugin
In /Library/Application Support/Citrix/PlugIns
must exist myAppsCitrixPlugin.plugin -> /Application/myappsPlugin.app/Contents/PlugIns/myapps_citrix_plugin.plugin
under:
/Users/.../Library/Application Support/Citrix Receiver
there is a file called Modules. Inside this file the myApps Plugin is included:
- VirtualDriver entry must contain myAppsCitrixPlugin
- a line with myAppsCitrixPlugin=On must exist
- and another line with [myAppsCitrixPlugin] too
both things are done during the installation. In case something is not working must check that the link to the plugin exists and that the modules file contains these entries.
And under /Users/.../Library/Containers/com.innovaphone.myapps-plugin-14r2/Data/Documents a log file is created: myAppsPlugin.txt
Troubleshooting Citrix
A Virtual Channel Policy must be added to the Registry at the Citrix Server:
Create VCPolicies folder under HKLM/Software/Policies/Citrix if it does not exist.
Create VCPolicies folder under HKLM/Software/WOW6432Node/Policies/Citrix if it does not exist.
Create a REG_MULTI_SZ entry with the name VirtualChannelWhiteList. This entry must contain as value: INNOHDX,C:\Program Files (x86)\innovaphone\myApps\myApps.exe