The Skype for Business HDX RealTime Optimization pack offers clear, crisp high-definition audio/video calls with Microsoft Skype for Business. The only true way to deliver Microsoft Skype for Business on VDI might have been something you have heard before as it was quoted by Brad Anderson of Microsoft at Citrix Summit.
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. Traffic can flow directly between two client devices that are participating in a two-way call. Traffic latency (bandwidth) and server load is reduced and the experience is optimized as a result.
HDX Realtime Optimization Pack v2.3 is the current major release by Citrix. 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.3 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 Febraury 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.
- 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.
- 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 (Linux 32-bit only) are supported.
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.
- 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 ccause 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.
- 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.
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.
- 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.
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.
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.3 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. You may not want this to happen as a RTME update can cause the client to enter “fallback mode” when the connector on each VDA is on an older major version. For more information see http://www.jgspiers.com/citrix-receiver-windows-auto-update
- The HDX Realtime Connector 2.3 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.
- 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. Audio over Real-time transport is also highly recommended and works with the medium audio quality setting.
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.3:
Note: Whilst I am actually installing 2.1, there is no difference in the install procedure between this version and the latest version 2.3 released in August 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.3 (latest version) for Microsoft Skype for Business.
Click Accept on the Download Agreement.
Also whilst we are preparing, locate and download HDX RealTime Media Engine 2.3 for Windows. This bit of software is installed on the end-user device.
First we will install the RealTime Connector on the VDA. Launch the media as below (MSI).
Accept the License Agreement. Click Next.
Specify an install location. Click Next.
On the Windows client device locate the HDX RealTime Media Engine installer (MSI). If the version is lower than 2.2, run as administrator.
Accept the License Agreement. Click Next.
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.
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.
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.
Clicking About confirms the RealTime Connector is connected. The HDX RealTime/Media Engine version, Skype for Business version etc.
Clicking on Settings presents two options. Automatically Adjust Microphone Level and Enable Echo Cancellation. Both are enabled by default.
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.
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.
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