Friday, October 4, 2013

Deploying Microsoft Lync 2013 audio and video within a Citrix XenDesktop 5.6 VDI

One of the challenges I’ve had over the past 2 years working with either VMware View or Citrix XenDesktop was to provide an acceptable audio and video experience to users who work within a virtual desktop environment.  I still remember how terrified I was with the audio quality the first time I plugged in a USB headset into a thin client and trying to do a WebEx call with VMware View a year ago and the solution all throughout the web was to use analog mini stereo jack headsets and the popular Teradici driver to send audio in and out to the virtual desktop.  While this solution provided acceptable quality for the user, it wasn’t practical for most environments I worked in as this was not an option for thin clients from HP loaded with their ThinPro OS (has anyone gotten audio out to work with these via analog jacks?) or laptops that don’t come with analog input jacks.

Those who have known me over the past 5 years of my career would know that I’ve also been fortunate enough to get to work with Lync 2010 / 2013 and the previous OCS 2007 version deploying the solution as a PBX and I knew there was going to be a day when I’d have to tell a client that I don’t really have a solution for every device they may have to use Lync in a VDI.  Fast forward to today and I’m finally glad that Microsoft has taken the steps to solve the issue by introducing the ability for administrators to configure Lync to use media devices local to the thin or fat client on a remote VDI session but instead of sending traffic to the VDI and back out, it would allow the local client to send traffic directly to the Lync Server and/or another peer using Lync to provide local like user experience.  The solution is quite simple when you look at it at a high level – simply install a strip down version of the Lync client onto the thin or fat client and use that as the engine to drive audio and video to and out from the user.  I must say that I’d wish setting this up was a bit easier but for the audio and video quality I’ve seen, I’m not going to complain.

My first shot at setting this up was with a client who was setting up a new London office with a 50Mb pipe to the Bermuda office.  I was in Bermuda and he was in a London office trying to get Lync calls to work.  This client is extremely technical so I would have to thank him for working with me to get this solution going.  The rough notes and blog post I wrote of the process can be found here:

Fixing the “We didn’t find an audio device, which you need for calling” issue with Lync 2013 client in a Citrix XenDesktop 5.6 Virtual Desktop
http://terenceluk.blogspot.com/2013_09_01_archive.html

The contents of the setup in the blog post above was done over a weekend and I made it a priority to slowly walk through the steps myself this week with a HP t610 thin client so I could document the procedure.

First off, if nothing is set up within the XenDesktop environment and your thin client is just taken out of the box, you will see the following message when you attempt to setup your audio:

We didn’t find an audio device, which you need for calling

If you have one already, try checking Windows Device Manager to make sure it’s installed and working.

clip_image001

The video device appears to work as expected:

clip_image001[4]

Environment Information

Before I begin, I would like to highlight a few important components of the setup:

XenDesktop Version: 5.6

VDI Client: HP t610 with Windows 7 embedded

clip_image001[6]clip_image001[8]clip_image001[14]

Lync Version: Lync Server 2013 with September 2013 updates

Lync Client: Lync 2013 with September 2013 updates

VDI Operating System: Windows 7 Enterprise with SP1 and latest hotfixes

Step #1 - Update Citrix Receiver on the HP t610 thin client to version 4.0

Begin by checking the existing version # of the Citrix Receiver installed onto the thin client:

Citrix Receiver Version: 3.1.0.64091

clip_image001[10]

Version 13.1.0.89

clip_image001[12]

Note the confusing version numbers shown for the About section in the Citrix Receiver vs the Programs and Features.  The receiver we have on this HP t610 thin client is basically version 3.x so we’ll need to upgrade it to version 4.0.

Proceed by going to http://receiver.citrix.com to download the latest receiver:

clip_image001[16]clip_image001[18]

clip_image001[20]

If you need pass-through authentication to work then install the Citrix Receiver as such:

CitrixReceiverWeb.exe /includeSSON

clip_image001[22]

clip_image001[24]clip_image001[26]

… then verify that the ssonsvr.exe *32 service is started after a reboot:

clip_image001[28]

Verify that the receiver version now indicates a version that starts with 14.x.x.x:

14.0.1.4

clip_image001[30]

4.0.1.4

clip_image001[32]

Step #2 - Enable EnableMediaRedirection on Lync 2013 Server

The next step is to ensure that the Lync Client Policy of users who will be redirecting to local devices has EnableMediaRedirection enabled.  The environment for this demonstration has all the users using the Global policy so executing the Get-CsClientPolicy -identity Global cmdlet will show the following:

image

**Note in the above screenshot that EnableMediaRedirection is not enabled.

Proceed by using the following cmdlet to enable it:

Set-CsClientPolicy -identity Global -EnableMediaRedirection $true

clip_image001[34]

Executing the Get-CsClientPolicy -identity Global cmdlet will now show the following:

image

Step #3 - Install Microsoft Lync VDI Plug-in

**Note that at the time of writing this post, only the 32-bit version of the Microsoft Lync VDI Plug-in is supported and will work for redirecting audio and video.  The 64-bit plug-in is not supported and will not work.

Proceed to download the Microsoft Lync VDI 2013 plugin 32-bit and install it onto the thin or thick client that will be used to connect to the virtual desktop:

http://www.microsoft.com/en-us/download/details.aspx?id=35457

clip_image001[36]

The package you’ll receive is named lyncvdi.exe with a size of 223,651 KB:

clip_image001[38]

I didn’t have much luck just running the install on the HP t610 as the install will fail once the files are extracted:

clip_image001[40]

The installation of this package failed.

clip_image001[42]

Proceed by extracting the package with the command:

lyncvdi.exe /extract:c:\Lync

clip_image001[44]

clip_image001[46]

Then run the setup.exe executable to install the plugin:

clip_image001[48]

clip_image001[50]clip_image001[52]

clip_image001[54]clip_image001[56]

clip_image001[58]clip_image001[60]

Restart the thin client and you’ll notice that when you connect to your VDI, you will see a new small icon at the bottom right hand corner indicating:

Lync is trying to use your local audio and video devices when you hover the mouse over the icon or click on it:

clip_image001[62]clip_image001[64]

Checking out the Audio Device setup in the Lync client will still continue to read:

We didn’t find an audio device, which you need for calling

If you have one already, try checking Windows Device Manager to make sure it’s installed and working.

Learn More

clip_image001[66]

Step #4 – Configure the registry of the Lync VDI plug-in on the thin client with Lync Server information

The Microsoft Lync VDI Plug-in does not appear to know what Lync server you’ll be signing into (no surprise as you don’t sign into it) so the next step is to manually specify the Lync Server’s URLs by going to the following registry key and adding the following keys:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Lync

"ConfigurationMode"=dword:00000001" <—DWORD (32-bit) Value

"ServerAddressInternal"="yourLyncServer.domain.local" <—String Value

"ServerAddressExternal"="yourExternalEdge.domain.com" <—String Value

image

What I would suggest is if your thin clients are going to be joined to the domain, use a GPO with Group Policy preferences to create these 3 registry keys on the thin clients.  If the thin clients are not joined to the domain then add the keys by manually logging in as the generic User account to enter them or putting in a batch file on startup to add it to the user’s account if you’re configuring local accounts for separate users.

Step #5 – Install RDP Updates on the thin client

While I’m not sure if this step is actually necessary for Citrix XenDesktop deployments, it probably wouldn’t hurt to make sure the following 2 updates are applied to the thin client:

http://support.microsoft.com/kb/2592687

clip_image001[1]clip_image001[3]

clip_image001[5]

Windows6.1-KB2592687-x86.msu

clip_image001[7]

http://support.microsoft.com/kb/2574819

clip_image001[9]clip_image001[11]

clip_image001[13]

Windows6.1-KB2574819-v2-x86.msu

clip_image001[15]

Step #6 – Update XenDesktop VDA agent on the VDI to version 7

With the thin client configuration out of the way, proceed with upgrading the XenDesktop VDA agent from 5.6 to version 7 via the XenDesktop 7 installation media. 

**Note that this will render your existing Desktop Director 2.x bundled with XenDesktop 5.6 to no longer be able to manage the desktop for pulling information or shadowing sessions and overcoming this issue isn’t a matter of installing the new Desktop Director from XenDesktop 7 because that does not work with 5.6 DDCs.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

With the above steps completed, proceed by ensure that your thin client and VDI has been restarted (or at the very least restart the Lync 2013 client in the VDI) then pay attention to the two small computer icons at the bottom right hand corner of the Lync 2013 client:

clip_image001[17]clip_image001[21]

Notice how the computer at the back fades into the background the lights up to white which is an indication that it is trying to connect to the audio and video devices you have connected to the thin client. In a few seconds it should pick up the devices and you will see a green checkmark:

clip_image001[23]

Clicking on it will show the following:

Lync is all set to use your local audio and video devices.

clip_image001[25]

Note that if you go back into the audio and video setup in Lync, you will notice the following message:

This audio functionality isn’t available when Lync is being used in a remote desktop

Audio device tuning is not supported when Lync is running in a remoted environment. To tune your audio device volume levels, please see guidance from your IT administrator.

clip_image001[27]

Video device tuning is not supported when Lync is running in a remoted environment. To tune your video device, please see guidance from your IT administrator.

clip_image001[29]

This just basically means if you want to tune your locally attach devices, you should tune it on the local thin client’s OS.

Hope this helps anyone looking for a walkthrough of how to set up the VDI plugin.  I’m sure as the plugin matures, the setup would be much easier to do.

6 comments:

Anonymous said...

Wow! Excellent write up.

Anonymous said...

Hi Terence

Your posts are very useful. I am trying out the lync solution with vmware view . I have successfully made audio working but in the video session its always no device found. though i have a microsoft webcam connected and as per the guide i am not redirecting it to virtual desktop. Please advise.

Kitaab said...

Terence , do we have to install Lync optimization pack on the VDI machine as well. I am trying the steps you have mentioned on our Xendesktop 7 , but the audio still doesnt work.

Michael Papalabrou said...

Excellent article, one comment though - not a good idea to enable media redirection on the global policy in a production environment. Ideally you should create a new user policy and assign it on a per user policy, once you have everyone migrated you can then apply to global.
Regards

Ed said...

Thanks for the article. Just to reaffirm that you MUST match the bitness of the VDIPlugin to that of your OS. I had 32bit Office on 64bit Windows and could only install the 32bit version of the VDIPlugin. Needless to say this didn't work. This was indicated by the absence of the 'dual monitor' type icon in the bottom right of the Lync client. I had to remove office 32bit and install the 64bit version of the VDIPlugin. All was good!!

Antony Craig said...

Great Article ternace.

I have a question on non domain joined clients.

Is it possible to have the vdi client NOT prompt for credentials to log in?

We have HP clients that get remiaged everytime they are restarted. SO everytime a user logs into the session the enter lync credentials prompts.