Skype for Business with XenApp & XenDesktop

The Skype for Business HDX RealTime Optimization pack offers clear, crisp high-definition audio/video calls with Microsoft Skype for Business. Microsoft state that this is the only supported solution for Skype for Business deployment in a VDI environment.
Just like user experience and performance, keeping Skype for Business within the datacentre also has advantages when it comes to security. The SfB client installed on local PCs/Laptops can result in chat logs and files being stored locally on the device. In the event the device is stolen, critical chat logs and files received from colleagues could be compromised. Choosing to deploy virtual desktops in the datacentre keeps data safer however you might wonder how well Skype for Business will perform if the client is installed on a Virtual Machine rather than the local machine but not to worry. HDX Optimization Pack boosts the Skype for Business audio and video quality and drives down VDA processing by offloading audio and video processing to the client machine when possible. As mentioned this saves resource on the VDA giving you increased VDA density per host. Video processing can be intensive on the CPU and especially in the case of shared desktops on XenApp when multiple users may be video or audio calling at the same time. With HDX Optimization in place the media engine can run on the Windows, Mac or Linux end-client devices with a connector piece running on the VDA. Skype for Business video and audio traffic flows directly between two client devices that are participating in a two-way call and the Skype for Business Audio-Video Conferencing Server (MCU). Traffic latency (ICA bandwidth) and server load is reduced and the user experience is optimized as a result.

The HDX RealTime Optimization Pack also provides a supported way to deploy Skype for Business to XenApp and as a Published Application seamlessly.

A number of HDX Premium Thin Clients support the HDX Optimization Pack and can be found in the Citrix Ready marketplace: https://citrixready.citrix.com/info/endpoints.html

HDX Realtime Optimization Pack v2.4 is the current major release by Citrix. This release is a Long Term Service Release. Prior to the v2 solution Microsoft offered a v1 solution which consisted of a VDI plug-in installed alongside Receiver on the client device.

Skype for Business Optimization is entitled to Enterprise and Platinum XA/XD customers.

HDX RealTime Optimization Pack 2.4 requirements:

  • Windows, Mac and Linux devices supported for HDX SfB Optimization Pack.
  • Skype for Business Server support:
    • Compatible with Skype for Business Server 2015, Lync Server 2013 (minimum February 2015 cumulative update), Skype for Business 2015 Online (Office 365).
    • Companies still using Lync 2010 Server should consider using HDX Optimization Pack 1.8.
  • Skype for Business Client support:
    • Microsoft Office 2013 Professional with Lync & minimum June 2016 Microsoft Office Public Updates.
    • Skype for Business 2015 stand-alone installer minimum version 15.0.4875.1001 (can be installed on top of Office 2016). This version also fixes a blue video region issue.
    • Skype for Business 2016 click-to-run client (minimum build 16.0.7571.2072).
    • Skype for Business 2016 MSI client version 16.0.4483.1000 (January 2017) or above. (works with HDX Optimization Pack 2.1+). Citrix recommend installing a minimum version of 16.0.7571.2072 which fixes a blue video region issue.
  • Support most webcams including built-in webcams on Windows devices.
  • Supports built-in webcams (Facetime cameras) on Mac devices.
  • Skype for Business XenApp/XenDesktop support:
    • HDX RealTime Optimization pack supports XenDesktop 7, 7.5, 7.6 (all feature packs), 7.7, 7.8, 7.9, 7.11, 7.12, 7.13, 7.14, 7.15, 7.16.
    • HDX RealTime Optimization pack supports XenApp 6, 6.5, 7.5, 7.6 (all feature packs), 7.7, 7.8, 7.9, 7.11, 7.12, 7.13, 7.14, 7.15, 7.16.
    • XenApp Advanced and XenDesktop VDI not supported.
  • Skype for Business Citrix Receiver support:
    • HDX RealTime Optimization Pack supports Receiver 4.x (Windows), Mac 12.x (Mac) and Linux 13.x.

HDX RealTime Connector requirements:

  • HDX RealTime Connector is supported on Windows 7, 8.1, 10 and Servers 2008 R2, 2012 R2, 2016.
  • Minumum memory: 4GB.
  • Disk space minimum: 100MB.
  • .NET 4.0 SP1, DirectX9 (minimum).
  • Skype for Business 2015 client (minimum 15.0.4833.1001) or Skype for Business 2016 client (minimum 16.0.7341.2032).
  • If using Ramdisk, increase the RAM size to maximum amount.

HDX RealTime Media Engine requirements:

  • Windows 7, 8.1, 10, Server 2012 R2, Server 2016. WES7, WES8, WES 2009 or Microsoft Windows Thin PC.
  • Linux 32bit (Ubuntu 16, 15, 14.04 or Red Hat Enterprise Linux 6.x, RedHat 6.7, CentOS 7 and 6.x, HP ThinPro 5.x, SUSE Linux Enterprise Server 11 SP3).
  • Linux 64bit (Ubuntu 16.04 and 15.10, Red Hat Enterprise Linux 6.x, Red Hat Enterprise Linux 7, CentOS 7 and 6.x, SUSE Linux Enterprise Desktop 12 SP1.
  • Mac OS X 10.12.x, 10.11.x and 10.10.x.
  • Unicon.
  • 2.8GHz dual core processor for 720p HD video.
  • 2GHz processor for VDA video.
  • 1.4GHz processor for standard video.
  • Memory: 1GB.
  • Disk space: 50MB.

Note: Windows 10 Anniversary Update introduces a new feature called Windows Camera Frame Server which may cause issues including disabling hardware encoding in webcams. To avoid this issue, install Microsoft updates KB3176938 and KB3194496. If you still encounter performance issues, make the below registry changes:

  • HKLM\SOFTWARE\Microsoft\Windows Media Foundation\Platform – EnableFrameServerMode = DWORD with value of 0x0.
  • HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows Media Foundation\Platform – EnableFrameServerMode = DWORD with value of 0x0.

HDX RealTime Media Engine auto-updates:

At the time of this writing (October 2017), Citrix Receiver for multiple platforms now supports the ability to auto-update the client. The following Receiver versions support this:

  • Citrix Receiver for Windows 4.8+
  • Citrix Receiver for Mac 12.6+

As part of the Receiver for Windows auto-update feature, if the RealTime Media Engine is also installed, it too can be auto-updated. That might make you wonder what if the RTME was updated to a version newer than the RealTime Connector. If this happened on versions below RealTime Optimization Pack 2.4, users would enter fallback mode. So I will explain some details around that:

  • As of the RealTime Optimization Pack 2.4, users can update the RealTime Media Engine on their client device before you (the administrator) updates the RealTime Connector from v2.3 to v2.4. Skype for Business traffic will still continue to be optimised. This is because the RTME v2.4 is backwards compatible with RealTime Connector v2.3.
    • In versions prior to RealTime Optimization Pack 2.4, this was not possible. Keep in mind also that the RealTime Media Engine did not support auto-update until v2.3.
    • Regardless of this new backward compatibility function, Citrix will always prefer that the administrator updates the RTC first in all cases, but understands it is difficult to stop users updating the RTME on home devices that are not controlled by the business.
  • In previous versions of RealTime Optimisation Pack, when a new RTME version was released, the auto-updater on client devices checked the VDA for its version of RTC, this RTC version information is stored in the registry of each VDA. If the RTC is detected to be newer and compatible, the RTME would then upgrade. If the RTC is not newer i.e. on the same version as the RTME, the RTME would not upgrade until it detected the RTC had first upgraded. This logic was introduced in v2.3 of the RTME.

Misc requirements:

  • Most USB webcams supported.
  • Facetime Mac cameras supported.
  • Minimum webcam resolution of 320×240 supported.
  • Frame rate of at least 10fps. 24fps required for HD video.
  • Windows UVC (USB Video Class) Driver for webcams.
  • Skype for Business compatible USB headsets, speaker phones and phones.

RTOP Compatibility Checker:

There is a tool available from Citrix that you can run on Windows OS to get a quick and easy report on whether your client(s) are capable of running the HDX Optimization Pack. This is useful for when you have existing endpoints and you want to determine if they are re-usable.

To download the tool visit https://support.citrix.com/article/CTX222459

Once you have downloaded the tool right-click and run as an administrator.

A CLI report will be displayed as per the below picture. My internal GPU can support H.264 decoding but the webcam cannot support H.264 encoding using UVC 1.1/1.5.

HDX RealTime Optimization 2.0 features:

The v2.0 HDX RealTime Optimization pack offers the following new features that did not exist in v1.8:

  • Voicemail integration.
  • Emoticons.
  • Web proxy support.
  • Automatically join meeting audio.
  • Call delegation.
  • Response groups and team call groups.
  • Active speaker identification.
  • Status icons (connecting, connected etc.).
  • Support for click-to-run.
  • Native UI (your users won’t notice a difference).
  • SSO when authenticating to back-end servers (previously the HDX RTME required authentication aswell as the Skype for Business client on VDAs). No need to re-prompt user for credentials.

What features are available in v2.1?

  • MKI (Master Key Identifier) support which is an optional element of the SRTP (Secure Real-Time Transport Protocol) required by some third party phones when encryption is enabled. (RTOP 2.1.1 only).
  • H.264 Scalable Video Coding (SVC) which handles the transmission of video over varied network and device environments for an optimized experience.
  • SILK audio codec which delivers higher audio quality across a wide range of networks including public and mobile networks.
  • FEC (forward error correction) to improve video and audio quality over lossy connections.
  • Linux 64bit support for RealTime Media Engine.
  • Endpoint identification for location services.
  • Support for QoE reporting i.e. record number of packets lost, amount of jitter, endpoint statistics etc.
  • Sype for Business users can communicate with Skype users.
  • Backward compatibility for upgrading from version 2.x allowing for flexible upgrades. Keep in mind that if the Connector is running 2.1 and the RealTime Media Engine is running 2.0 you will have to upgrade both components to 2.1 before receiving any new functionality or fixes.
  • Fallback mode control to disable fallback mode or limit fallback mode for audio only.
  • Enable/disable system tray icon.

What features are new in v2.2?

  • H.264 hardware acceleration for video processing on various platforms. Better video resolution on low-end CPU endpoints.
  • CEIP (voluntary).
  • Call Admission Control Support. Reroutes external/internal audio and video calls to voicemail if the call would overload the network by using too much bandwidth.
  • Ability to turn of version mismatch warnings for acceptable combinations of RTME and RTC.
  • Ability to install RTME as a non-administrator.

What features are new in v2.2.100?

  • Local Skype for Business instance checking. If you have a local version, the RealTime Media Engine detects this and displays a pop-up message instructing you to exit the local instance.

What features are new in v2.3?

  • Improved video quality using simulcast video transmission. This improves video quality on conference calls and Skype Meetings. Simulcast allows endpoints to send more than one video stream at a time, if more than one resolution is requested for incoming Video Source Requests. There are many factors that determine how many streams and their resolution, frame rate and bit rate occur. Factors include endpoint hardware capabilities, bandwidth availability and decoding/encoding capabilities.
  • Optimsed bandwidth usage by sending video resolution based on the size of the video window on the users screen. Trasmitted resolutions are lower because endpoints aren’t subscribing to video resolution higher than they can display. This update minimises average network and CPU load without sacrificing quality.
  • Enhanced call statistics. The Citrix_HDXRTConnector_Simulcast_Stream class has been added to WMI and call statistics have been updated to include the new simulcast features video statistics. The statistics also show how many viewers are receiving each of the streams. The statistics also update to reflect changes in the streams send as active speakers change and participants join/leave the meeting.
  • Support for auto-update with Citrix Receiver for Windows 4.8+ and Citrix Receiver for Mac 12.6+
  • Extended support for call admission control to include configurations without a Skype for Business Edge Server.
  • Quality of Experience statistics including a list of all codecs used in all streams, highest frame rate being sent across all streams, highest resolution being send across all streams and the bitrate sum of all streams.

What features are new in v2.4?

  • HDX RealTime Media Engine for the HDX Ready Pi. Provides hardware accelerated real-time video processing for virtualized Skype for Business 2015 and 2016. The RealTime Media Engine uses the on-chip H.264 encoder to provide up to VGA video resolution. RealTime Media Engine for HDX Ready Pi is available only from ViewSonic or NComputing.
  • This release takes advantage of the H.264 hardware encoding functionality of the Logitech C930e and C925e cameras on conference calls that use simulcast video. The hardware-encoding capability of these cameras is available when used with Windows and Linux devices (except the HDX Raspberry Pi, which uses onboard hardware encoding).
  • Audio quality fallback mode when the CPU is busy. In fallback mode, generic HDX RealTime (the Optimized-for-speech-codec) handles Echo Cancellation. Therefore, the RTOP Echo Cancellation feature is automatically disabled and the option is grayed out under Settings in the Optimization Pack notification area icon.
  • You can now use any combination of RealTime Connector versions 2.3 or later and v2.4 of the RealTime Media Engine in optimized mode. In addition, you can update the RealTime Connector and RealTime Media Engine in any order. An end user can update the RTME to 2.4 before you update the RealTime Connector on the server.
  • Microsoft icon changes to reflect who is speaking. The microphone icon updates after receiving Comfort Noise packets or audio packets, providing a more accurate indication of who is speaking.
  • Logging – Registry keys are available to disable or enable server-side and client-side logging.
  • Collect Logs captures current UCCAPI and UCCAPI.bak files. When you select the Collect Logs icon in the notification area, the RTOP captures the current UCCAPI and the UCCAPI.bak log files.

Note: If no HDX RTME is present on the user device then the HDX RealTime Optimization pack provides fallback to server side media processing (using Generic HDX RealTime technologies, the Media Engine runs on the VDA). Fallback can be disabled or only allowed for audio. You could disable to force clients to install the HDX RealTime Media Engine component rather than using HDX Generic RealTime technologies that impact CPU.

Note: Citrix recommend VDAs have a minimum of 2 CPUs if users may encounter fallback mode. This will help prevent video quality degradation and failure on virtual desktops.

Keep in mind that a list of features are not supported by the HDX RealTime Optimization Pack. If you need these features, Citrix recommend using generic HDX RealTime technologies, or other technologies such as Local App Access (a Platinum feature). Generic HDX RealTime technologies will work with just about any software/Unified Communications application. Optimized delivery solutions are available for Skype for Business/Lync, Cisco Jabber, Vidyo and Avaya one-X. For non-optimized apps like Google Hangouts, GoToMeeting, use generic HDX RealTime technologies or Local App Access.

Generic HDX Skype for Business delivery: http://www.jgspiers.com/generic-unoptimized-skype-for-business-xenapp-xendesktop/

Note: It is recommended to exclude the lync.exe process from antivirus software scanning to prevent possible sound issues. This should be done on the VDA. You should also consider excluding the RTOP processes (AudioTranscoder.exe and MediaEngine.Net.Service.exe” to avoid degraded performance.

What HDX RealTime technologies cannot offer:

The following list contains some features not supported – for the full list, see http://docs.citrix.com/en-us/hdx-optimization/2-2/overview.html

  • Gallery View not supported. This feature allows video including pictures for up to six participants to be viewed.
  • Better Together Skype for Business features are not currently supported.
  • Video Preview from the conversation windows is not supported.
  • If Skype for Business is published as an application, screen and application sharing is reduced to the VDA Skype for Business runs on.
  • Panoramic webcam support using webcams such as Polycom CX5000 that offer a 360 degree view of the room.

Recap and other points to note:

  • The HDX Realtime Media Engine 2.4 software is installed on the client device running Receiver.
  • The RTME installer can come bundled inside the CitrixReceiver.exe file on the latest versions. Install Receiver as Administrator if RTME version is below v2.2. Version 2.2 and above does not require administrative installs. Available from citrix.com website under “Other Receiver Plug-ins. RealTime Media Engine 2.1 is bundled with Citrix Receiver for Windows 4.4.1000 for example, v2.1.200 is bundled with Receiver for Windows 4.5, v2.2.100 is bundled with Receiver for Windows 4.7. Bundling the software together will help in situations where users are using unmanaged devices and you need their device to become “RealTime Optimization ready”. You could provide the bundle to users connecting to Receiver for Web. If they don’t have Citrix Receiver installed, Receiver for Web can alert and prompt them to download. This way the user will download, install Receiver and the RealTime Media Engine. See http://www.jgspiers.com/update-receiver-for-web-new-receiver-client/
    • Receiver for Windows 4.8+ and Receiver for Mac 12.6+includes an auto-update feature, which in-turn can keep the RTME updated. The auto-update ability is supported from RTME v2.3 and onwards.
  • The HDX Realtime Connector 2.4 for Skype for Business is installed on VDA (Server/Desktop).
  • The HDX RTME provides local media processing of audio/video calls and peer-to-peer communication with other callers using Microsoft Sype for Business.
  • The HDX RealTime Connector enables optimized audio and video conferences.
  • If upgrading from RealTime Optimization Pack 1.8, you must first uninstall 1.8 and then install 2.1 or 2.2 fresh. If uprading from 2.0 you simply perform an in-place upgrade. Uninstall any version of the VDI plug-in before installing HDX Optimization Pack software.
  • When upgrading RealTime Optimization pack from 2.0 to 2.1 or 2.2/2.3, upgrade the RealTime Connector first followed by the RealTime Media Engnie. Doing the reverse will cause your client to enter fallback mode. If the upgrade is just a patch release i.e. 2.2 to 2.2.100 then it doesn’t matter in which order you upgrade.
  • As of RealTime Connector v2.3 and RealTime Media Engine v2.4, it doesn’t matter which component is upgraded first as the RTME v2.4 is backwards compatible with RT Connector v2.3.
  • There seems to be an issue around upgrading Citrix Receiver and that might break the RTME. When upgrading Receiver, you should uninstall the RTME first. This is a known issue and Citrix are working on a resolution.
  • Upgrade Skype for Business versions to the minimum supported versions before or after the HDX Optimization Pack upgrade.
  • RealTime Media Engine 2.x cannot work with the 1.8 version of the Connector.
  • Change the default audio setting to Medium – Optimized for Speech. This is the recommended audio level when delivering VoIP applications such as Skype for Business. Audio is compressed up to 64Kbps which results in a slight degradation of quality but consumes very low bandwidth. If you set this value to High it will add latency and increased VDA resource consumption without improving the call quality. Audio over Real-time transport is also highly recommended and works with the medium audio quality setting.
  • Citrix recommend 1Mbps for 1280×720 HD video calling and 400Kbps for VGA resolution.
  • Tag IPv4 and IPv6 traffic coming from endpoints running the RealTime Media Engine with DSCP values of 46 for audio and 34 for video.
  • Alternatively implement QoS on the UDP ports that are used for Skype for Business traffic as set on the Skype for Business server.
  • Native Skype for Business does not support iPhone headsets.
  • If users experience poor call quality, they can hear an echo or other callers cannot hear them clearly, always check that “Automatically Adjust Microphone Level” and “Enable Echo Cancellation” are selected within Skype for Business settings.

NetScaler and SD-WAN can also play a part in optimizing video and audio delivery over ICA with UDP/RTP and DTLS support for NetScaler and SD-WAN support for ICA multi-stream, QoS etc. For external users connecting in to Skype for Business it is recommended to use Lync/Skype Edge servers.

Citrix have produced a list of tips when troubleshooting issues with the HDX Optimization Pack. See http://docs.citrix.com/en-us/hdx-optimization/current-release/troubleshooting.html

Installing HDX Optimization Pack 2.4:

Note: Whilst I am actually installing 2.1, there is no difference in the install procedure between this version and the latest version 2.4 released in December 2017.

To start we can download and install the HDX RealTime Connector on to our VDA machines. On the Citrix website, locate and dowload the HDX RealTime Connector 2.4 (latest version) for Microsoft Skype for Business.

1-min

Click Accept on the Download Agreement.2-min

Also whilst we are preparing, locate and download HDX RealTime Media Engine 2.4 for Windows. This bit of software is installed on the end-user device. 3-min

First we will install the RealTime Connector on the VDA. Launch the media as below (MSI).4-min

Click Next.5-min

Accept the License Agreement. Click Next. 6-min

Specify an install location. Click Next. 7-min

Click Install. 8-min

Click Finish. 9-min

On the Windows client device locate the HDX RealTime Media Engine installer (MSI). If the version is lower than 2.2, run as administrator.10-min

Click Next.11-min

Accept the License Agreement. Click Next. 12-min

Click Install. 13-min

Click Finish. 14-min

It may be a requirement to allow the HDX Media Engine through Windows firewall. Adding an exception for program C:\Program Files\Citrix\ICA Client\MediaEngineService.exe does the trick. If you get Windows Firewall popups related to HDX Media Engine add the exception. 15-min

So now we have the HDX Media Engine running on the end-user device and the Connector running within the VDA. Connect up to the VDA as normal through Receiver. When Skype for Business launches a new icon will appear as below which means a connection is being established.16-min

After a few moments it should turn blue to show the Media Engine and Connector have made a connection. Right-clicking on the icon presents some options. 17-min 18-min

Clicking About confirms the RealTime Connector is connected. The HDX RealTime/Media Engine version, Skype for Business version etc. 19-min

Clicking on Settings presents two options. Automatically Adjust Microphone Level and Enable Echo Cancellation. Both are enabled by default. 20-min

As a test I have run a 1 minute Skype for Business call and monitored the CPU of the VDA/client machine. Here are the results for the call making use of the Skype for Business Optimization Pack.21-min

The same test was performed only this time without the Optimization Pack. Notice the CPU average on the VDA is twice as much and this is only for a simple one minute audio call. 22-min

When doing a mixture of video and audio calls across hundreds of VDI or Session Host machines imagine the CPU savings the Skype for Business Optimization Pack will give you!

When users cannot make use of the HDX Optimization Pack, make sure you have configured Citrix policy settings for an unoptimized delivery of Skype for Business for those users. See http://www.jgspiers.com/generic-unoptimized-skype-for-business-xenapp-xendesktop/

You can also disable balloon notifications from the RealTime Connector or disable fallback to generic delivery of Skype for Business. You do this via registry keys. See http://docs.citrix.com/en-us/hdx-optimization/current-release/configuration.html


5 Comments

  • Ray

    June 14, 2017

    I assume this applies if skype is running from a published app? Meaning user opens skype from apps the the engine nes kicks in and talks to the hdx optimization pack on the vda?

    Reply
  • George Spiers

    June 14, 2017

    Sure does.

    Reply
  • Ray

    August 20, 2017

    Thank for the update. I never checked back. Thanks though. Good stuff as well on ur sight. It has helped me ALOT.

    Reply
    • George Spiers

      August 21, 2017

      No problem, thank you and glad it helps!

      Reply
  • Frederic

    December 6, 2017

    I still do not really understand what fallback does. Is there a difference between these two scenarios:
    1 – no RTME on client device and HDX RTOP on XenApp worker
    2 – no RTME on client device and no HDX RTOP on XenApp worker

    I would like to implement the HDX TTOP on my XenApp workes (7.13) but client devices are not ready to receive RTME. Is that a problem?

    Reply

Leave a Reply