Deploying Skype for Business 2015-16 (Offloaded) from a Citrix HDX Optimised Virtual App or Desktop

The following content is a brief and unofficial prerequisites guide to setup, configure and test delivering Skype for Business 2015 as a Citrix virtual app or an app within a virtual desktop powered by Citrix XenApp or XenDesktop prior to deploying in a PoC, Pilot or Production environment by the author of this entry. The views, opinions and concepts expressed are those by the author of this entry only and do not necessarily conform to industry descriptions or best practises.

Shortened Names
SKYPE FOR BUSINESS – skype4b
XENAPP – xa
XENDESKTOP – xd
XENAPP/XENDESKTOP – xad
VIRTUAL DELIVERY AGENT – vda
HIGH DEFINITION EXPERIENCE – hdx
VIRTUAL DESKTOP – vd
VIRTUAL APPS – va
REALTIME MEDIA ENGINE – rtme
REALTIME CONNECTOR – rtc

Introduction
The following blog article provides a basic understanding of how to deploy Skype for Business 2015 with the HDX Optimisation Pack 2.0 within a Citrix XenApp, XenDesktop environment which offloads the audio and video to the users local end-point running Citrix Receiver and the HDX RealTime Media Engine on supported Windows, Mac or Linux OSes. This offloading capability is powered by latest v2 HDX Optimisation Pack 2.0 architecture which can be found at – https://www.citrix.com/blogs/2016/01/12/citrix-and-microsoft-unveil-v2-solution-for-skype-for-business/ joint worked on between Citrix and Microsoft.

Why Customers Virtualize Skype for Business with Citrix

Understanding the HDX Optimisation Pack 2.0 vs. a Non-Optimised Deployment
The following is an oversimplified diagram which is also not intended to be 100% accurate but should provide you with a better understanding of the differences between an non-optimised vs. optimised delivery of a Skype4B virtual app from a Citrix environment.

Non-Optimised  Optimised with the HDX Optimisation Pack 2.x.n

VM
running Windows OS
VDA
7.x.n
Skype4B
Client + Media Engine
Internet
End-point
+ Citrix Receiver

VM
running Windows OS

VDA 7.x.n
ICA/HDX Virtual Channel* 

 ↓
Skype4B
Client
HDX
RealTime Connector powered by HDX Optimisation Pack 2.x.n

Internet  ↑
 ↓

End-point
+ Citrix Receiver (Windows, Mac or Linux) *
HDX
RealTime Media Engine (RTME) powered by HDX Optimisation Pack 2.x.n

Pre-requisites & System Requirements
0. The following UDP Ports 16500-16509 required for HDX RealTime in addition to the following TCP ports 443, 1494, 2598 for ICA/HDX. Please be sure to reivew the firewall considerations and requirements for Lync/Skype edge servers at – http://docs.citrix.com/en-us/hdx-optimization/2-0/hdx-realtime-optimization-pack-configure-firewall.html
1. You’ll require a Skype for Business 2015 server, Microsoft Skype for Business Online* or Microsoft Lync 2013 back-end server with the Skype for Business 2015 client. You you will also require one of the following supported operating systems (Desktops) Microsoft Windows 10, 8.1, 7 or (Servers) Microsoft Windows Server 2008 R2, Windows Server 2012 R2 and along with supported version of XenApp, XenDesktop which you can verify which versions are supported at – http://docs.citrix.com/en-us/hdx-optimization/2-0/hdx-realtime-optimization-pack-system-requirements.html.
2. Download HDX Optimisation Pack 2.x.n – http://docs.citrix.com/en-us/hdx-optimization/2-0/hdx-realtime-optimization-pack-system-requirements.html
3. Upgrade your Citrix Receiver and install the HDX RealTime Media Engine 2.x.n – http://www.citrix.com/downloads/citrix-receiver/additional-client-software/hdx-realtime-media-engine-201.html. You can now also download the latest Citrix Receiver 4.4 and HDX RealTime Media Engine 2.0 for Windows in one installation package which can be downloaded at – https://www.citrix.com/downloads/citrix-receiver/additional-client-software/hdx-realtime-media-engine-20.html.
4. If you are going to be your testing from a thin client instead of a laptop, netbook or workstation then ensure that you review the latest Citrix Ready classification for Thin clients avaiable at – https://citrixready.citrix.com/info/thin-clients.html however I would recommend that you review the Thin Client whitepaper first and focus on page 4 which you can download and view at – https://citrixready.citrix.com/content/dam/ready/assets/thin-clients/thin-clients-features.pdf. If your looking for Skype for Business compatible hardware please ref to – http://partnersolutions.skypeforbusiness.com/solutionscatalog#/locale=en-us&categoryid=2&sortby=3&subcategoryid=3,5&filter=&manufacture=&version=&isQualified=&region=&language=&page=1&apptype=&tags=.
5. If your intending to deploy a test/poc Skype for Business 2015 environment then be sure to check out these technical diagrams avaiable at – https://technet.microsoft.com/en-us/library/dn594589.aspx which contains some great diagrams depicting traffic flows and ensuring Call Quality Methodology (CQM).
6. Skype for Business and Lync Delivery Feature Matrix – http://support.citrix.com/article/CTX200279.
7. Finding a suitable HDX Ready thin client please check out – https://citrixready.citrix.com/content/dam/ready/assets/thin-clients/thin-clients-features.pdf of use any smart device that supports Receiver with the RTME for Windows, Linux & Mac.

Deploying the HDX Optimisation Pack 2.0 for Skype for Business 2015 for XenApp/XenDesktop
0. Initiate a video call using Skype for Business from your PC using Skype for Business as a published virtual app on its own or in a virtual desktop between yourself and another individual with Skype4B installed locally on their PC or Mac. Open task manager locally and on the XenApp server or virtual desktop and watch the CPU, memory and bandwidth consumption during your video call and remember to adjust screen size during the call between small, medium and full screen.
1. Install Skype for Business 2015 client within your virtual desktop (*server or desktop Windows OS).
2. Publish the Skype4B 2015 virtual app or the virtual desktop that contains app.
3. Connect to the virtual app or desktop and verify that you can open and login to your Skype4B and ensure that its functioning as normal obviously it’s not optimized but will still perform video/audio calls thanks to the HDX technologies.
4. Close Skype4B 2015 and now install the HDX RealTime Connector e.g HDX_RealTime_Connector_2.0_for_Skype_For_Business.msi downloaded from Citrix.com.
5. Disconnect from the virtual desktop*.
6. Close any ICA/HDX sessions and close Citrix Receiver
7 Next install the HDX RealTime media engine HDX_RealTime_MediaEngine_2.0_for_Windows.msi downloaded from Citrix.com.
8. Start Citrix Receiver and reconnect to your published virtual Skype4B app or virtual desktop with Skype for Business 2015 installed and you should see the HDX RealTime Connector stating “Optimised.
9. Re-initiate your video call to the same user as in step 1 above and you’ll notice the difference immediately as the video will be crisp and sharp and again open task manager and repeat the same process and you’ll see the CPU, memory and bandwidth are low on the back-end but locally on your end-point the CPU, Memory and bandwidth increases to medium as the audio and video is now been processed locally on your end-point thanks to the RTME.

Deploying the HDX Optimization Pack 2.1 for Skype4B 2016
Follow the all the steps above BUT for use with the Skype for Business 2016 you need to use the “Click-to-Run” installer and adjust the configuration.xml file for the installation to use “current” switch for the default installation behavior as Office 365 ProPlus default installation behaviour is to use “Deferred for Office 365 ProPlus. To learn how-to reconfigure the XML file in greater detail please refer to – https://technet.microsoft.com/en-us/library/jj219426.aspx for help.

The min supported Microsoft Skype for Business 2016 version is 16.0.7341.2032 or later for HDX Opt Pack 2.1 ref http://docs.citrix.com/en-us/hdx-optimization/2-1/hdx-realtime-optimization-pack-system-requirements.html using the O365 “Click-to-Run” installer, for an overview of the Click-to-Run method of Office 365 please refer to the following Technet article at – https://technet.microsoft.com/en-gb/library/jj219427.aspx.

Example of an HDX Offloaded Skype4B 2015 Video Call
The following picture depicts a Skype for Business 2015 video call HDX Offloaded using the HDX Optimization Pack 2.x.n between two Windows 10 virtual desktops hosted in different locations in the EU delivered to myself and a Citrite colleague in different locations within London. I myself was at partners customer event in the City using public Wi-fi that 200+ other people were connected to and using, he was at home in SW London connected to the internet over his home internet connection.

Suggested HDX Policy for Fallback
In the unlikely event the RTME fails you want a fallback scenario to preserve the UX as best you can so could implement “Selective use of a video codec (H.264) to compress graphics” – http://docs.citrix.com/en-us/xenapp-and-xendesktop/7-11/whats-new.html#par_anchortitle_59c9 by applying the following HDX policy “Use video codec for compression” with the following setting applied “For actively changing regions“. You can find out more about this NEW graphics mode in XenApp, XenDesktop 7.11 (Seven11) at – http://docs.citrix.com/en-us/xenapp-and-xendesktop/7-11/policies/reference/ica-policy-settings/graphics-policy-settings.html and scroll to or search for the web page for “Allows use of a video codec (H.264) to compress graphics“.

Troubleshooting Basic’s
1. Check the obvious ACL’s of your f/w(s) – http://docs.citrix.com/en-us/hdx-optimization/2-1/hdx-realtime-optimization-pack-configure-firewall.html and remember that external Lync/Skype for Business users connect to the Skyp4B/Lync Edge server which is critical component of Skype for Business/Lync Server infrastructure.
2. Resolving poor quaility video, sound issues, collection thin client logs for Dell Wyse terminals and much more – http://docs.citrix.com/en-us/hdx-optimization/2-1/hdx-realtime-optimization-pack-troubleshooting.html.

Deliverying Microsoft Skype for Business and Lync to XenApp and XenDesktop Users
https://www.citrix.com/content/dam/citrix/en_us/documents/products-solutions/delivering-microsoft-lync-to-xenapp-and-xendesktop-users.pdf

Microsoft on the Optimization Pack v2 Architecture
I’d suggest watching the following broadcast on YouTube entitled “SfB Video Broadcast: Ep 9. VDI” from the Skype for Business team providing a Microsoft perspective on the offloading capabilities for Skype4B with the Citrix Optimisation Pack 2.0. As a final thought discovery more about Skype4B at there YouTube channel which is accessiable at https://www.youtube.com/channel/UCfL-WUXlvFjLsUs4UCpPrsA.

Office 365 client update channel releases – Version 1608 (Build 7341.2032)
“Citrix support: Support for Citrix-based Virtual Desktop Infrastructure (VDI) environments, along with Citrix HDX Real Time Optimization Pack 2.1.” from – https://technet.microsoft.com/en-us/office/mt465751?f=255&MSPPError=-2147217396