Monday, 31 March 2014

SIP Address Doesn't Match Email Address

By default if your Lync SIP address doesn't match your primary SMTP email address, then Outlook integration will not work. You can resolve this by disabling the client policy DisableEmailComparisonCheck using the following PowerShell command.

Set-CsClientPolicy -DisableEmailComparisonCheck $true


Saturday, 15 March 2014

Using Lync in a Remote Desktop Environment

When moving to Lync one of the major hurdles for a business is what to do with remote desktop users. Because all the processing is server side, the real-time features of Lync are a little trickier to deliver to the thin client or remote PC. This article is an effort to help explain the different scenarios and how best to deal with them.
This article directly refers to Microsoft technologies, but similar options are available with other vendors e.g. VMware Horizon, Citrix XenApp and XenDesktop

Remote Desktop Session Host (RDSH)
The most common remote desktop delivery method is via a session host server, or more commonly known as a terminal server. Windows Server 2008 SP1 introduced RemoteFX, bringing with it a more advanced version of the RDP compression scheme, that allows for more efficient streaming of both video and audio. This provides a better experience compared to RDSH without RemoteFX enabled, but has fewer capabilities compared to RemoteFX with Remote Desktop Virtualization Host (RDVH/VDI) which is talked about further later in this article.

Audio
Out of the box most current versions of RDP will support remote audio regardless of whether RemoteFX is used or not. This is very basic and delivers the audio stream over the RDP protocol.

In the Remote Desktop client find “Remote audio” – “Settings…”:



Make sure that “Remote audio playback” is set to “Play on this computer” and “Remote audio recording” is set to “Record from this computer”:



Once you have made the changes log back in check the “Audio Device Settings” in the Lync client, making sure that your speaker and microphone are using “Remote Audio”. If you don’t see the remote device try restarting the Lync client or logging out and back in again:




While this method works, it is not likely to be as good as a directly connected Lync Client.

Video/Media
Video and rapidly changing media is likely to struggle when delivered via session host, and thus is not recommended. As described above, RemoteFx will provide improvements, but is still not perfect.

USB Redirection
With RemoteFX USB redirection is not possible for direct RDSH connections to Windows 2008 R2 SP1 by itself, with or without GPU. But you can use certain USB devices via other mechanisms (e.g. a USB flash drive may be accessed via Drive Redirection). RemoteFX USB redirection is available for direct RDSH connections to Windows Server 2012.

Remote Desktop Virtualization Host (RDVH/VDI)
VDI is an emerging technology that uses virtualisation to compartmentalise user desktops using a “Golden Image” with differencing technology to save individual user changes. In conjunction with RemoteFX, VDI provides vast improvements for real time services as well as USB redirection.

Audio/Video/Media
Lync 2013 fully supports VDI by taking advantage of the new Media Redirection architecture introduced in Server 2012, which allows Voice over IP (VoIP) applications to natively integrate with RemoteFX, and enables transmission and rendering of audio and video content directly on the client side. The Lync VDI Plug-in is a stand-alone application that installs on the local computer, and allows the use of local audio and video devices with the Lync 2013 client running on the virtual machine. The plug-in does not require Lync to be installed on the local computer. After the user signs in to the Lync 2013 client that is running on the virtual machine, Lync prompts the user to re-enter his or her credentials, in order to establish a connection with the Lync VDI Plug-in that is running on the local computer. After this connection is established, the user is ready to make and receive audio and video calls. This approach means that audio and video originates and terminates at the client rather than the server.

Advantages with VDI:
  • Audio and video performance similar to that of running Lync locally. Since a double hop of media content is avoided, even WAN users can have a great Lync audio/video experience.
  • Reduced bandwidth usage between the client and the data centre because Lync media content is not sent from the server-based desktop anymore.
  • Improved server scalability because CPU intensive media processing happens on the client side.


VDI Feature Limitations
  • There is limited support for Call Delegation and Response Group Agent Anonymisation features.
  • There is no support for the following features:
    • Integrated Audio Device and Video Device tuning pages
    • Multiple-view video
    • Recording of conversations
    • Joining meetings anonymously (that is, joining Lync meetings hosted by an organization that does not federate with your organization)
    • Using the Lync VDI plug-in along with a Lync Phone Edition device
    • Call continuity in case of a network outage
    • Customized ringtones and music-on-hold features
    • The Lync VDI plug-in is not supported in an Office 365 environment.

USB Redirection
RemoteFX USB Redirection for Remote Desktop Virtualization Host (RDVH) in Windows 7 Service Pack 1 was available only to those deployments that enabled the RemoteFX vGPU. With Windows Server 2012, USB Redirection is now available to any RDVH deployments, with or without the RemoteFX vGPU.
USB devices can now be selected for redirection even in the middle of a remote session, and can be swapped between remote sessions or to the local PC. When RemoteFX USB Redirection is enabled, simply tap the new Devices icon on the Connection Bar to choose which devices are redirected.



The Remote Desktop Connection dialog box allows you to choose USB devices that you want to use in your remote desktop session.


RemoteFX for RD Virtualization Host server hardware requirements
For Windows 7 SP1 VMs, RemoteFX USB redirection requires that the vGPU be installed in the VM (and thus the 2008 R2 SP1 host must have the required GPU and SLAT). But for Windows 8 VMs, the vGPU is no longer required – you simply need to have the Enterprise SKU of Win8 in the VM
The GPU is no longer necessary to achieve USB redirection on connections to Windows 8 physical desktops or Windows 8 VMs running on Windows Server 2012, or Windows Server 2012 RDSH. All other scenarios will still require the vGPU.

Comparing Remote Desktop Virtualization Host (RDVH/VDI) & Remote Desktop Session Host (RDSH) (Based on Server 2008 R2)
RemoteFX w/ Remote Desktop Virtualization Host (RDVH/VDI)
  • Rich user experience for Virtual Desktop Infrastructure (VDI) via
    • 3D virtual adapter
    • intelligent codecs
    • ability to redirect USB devices in virtual machines 
  •  Requirements
    • RemoteFX enabled on a Remote Desktop Virtualization Host server
    • Windows 7 Enterprise/Ultimate running in a VM on the RemoteFX server
    • RemoteFX compatible client
    • Server-based GPU and other HW requirements as defined in this article
    • Remote Desktop Connection performance set to LAN (10 Mbps or higher)
  • Result
    • Full fidelity experience (e.g., 3D applications built on DirectX, Silverlight and Flash applications, etc.)
RemoteFX w/ Remote Desktop Session Host (RDSH/Terminal Server)
  • Rich user experience defined as:
    •  lower bandwidth usage as compared to Windows Server 2008 R2 when transferring rich graphics applications (i.e., intelligent codecs provide a better experience)
    • Does not provide the same experience as RemoteFX w/ Remote Desktop Virtualization Host (RDVH/VDI)
  •  Does not provide:
    • 3D virtual adapter
    • ability to redirect USB devices in virtual machines
  •  Requirements
    • RemoteFX enabled on a Remote Desktop Session Host server
    • RemoteFX compatible client
    • Remote Desktop Connection performance set to LAN (10 Mbps or higher
    • No server-based GPU is required
  • Result
    • Provides a better experience compared to Windows Server 2008 R2 without RemoteFX enabled but has fewer capabilites compared to RemoteFX w/ Remote Desktop Virtualization Host (RDVH/VDI).



Lync 2013 migration - Cannot sign-in when IPv6 enabled

After nearly a day trying to figure out why a newly deployed Lync 2013 pool would not allow users to sign in, and just before I was about to pull my hair out, I found IPv6 was to blame. Normally I would always disable IPv6 during server preparation, however in this case the job was already done for me and I didn't check. Now the weird thing here, is that Lync 2013 supports IPv6!

Here is the original description of the problem I posted on TechNet:
"I have 3 domains in 3 country's. US and Australia has a working Lync 2010 deployment, and we have just added a new site in the New Zealand domain with Lync 2013 (eventually the other sites will be migrated to Lync 2013). The Lync 2013 Front End has been installed and all services are running. I have enabled the first test user in the Lync Control Panel successfully . When I go to sign-in I get an error along the lines of "try again or check with your administrator". On inspection of the client logs I can see that client sends a SIP register, the server responds with the available authentication methods, the client then trys again with using Kerboros and the server responds with SIP/2.0 404 Not Found - ms-diagnostics: 4005;reason="Destination URI either not enabled for SIP or does not exist". The use account is valid and I can log on to a workstation successfully with the same account.
We have not yet run enable-cstopology on the Lync 2010 FE's as this is not normally required. However to be safe this is currently going through change control. Something that isnt common in a migration is adding a new SIP domain (for New Zealand) and new meet and dialin URL's. This makes me think that running enable-cstopology on the Lync 2010 FE's will fix it.
The other thing that springs to mind is domain secuity on containers and OU's etc"

Just in case IPv6 was a red hearing I better let you know that about an hour before I changed the user replication cofiguration. Get-CSUserReplicatorConfiguration identified that only the domains where Lync 2010 existed where part of the user replication cycle. To fix this issue I added the domain, ran a sync and rebooted for good measure.

Set-CsUserReplicatorConfiguration -Identity global -ADDomainNamingContextList @{Add=”DC=Lync2013,DC=Domain,DC=com”}

Update-CSUserDatabase

This did not produce any immediate results, however you never know, time can be a healer.




Thursday, 13 March 2014

Install or Update Lync Server System - What does it do?

What does the "Install or Update Lync Server System" step in the deployment process actually do?

This step is essentially like running a setup installer that adds or removes components, and updates configuration. Rather than collecting the setup information from the user who runs it, instead it connects to the Central Management Store (CMS) to determine the servers role, and therefore the components that need to be added, removed or updated.

Unlike most setup installers that are run once, Install or Update Lync Server System is commonly run after changes are made to the topology. I haven't come across a list of topology changes that require it to be run, but here are a few situations I know about:

  • If you have added or removed a role from a Lync server you should run on the effected server
  • Additional or removal of a SIP domain
  • Change to meeting, dialin or admin URL's
  • Any other change that may effect Lync web services

If you have anything to add or I have got anything wrong please let me know.




Monday, 10 March 2014

Minimum Update Level for Lync 2010 to 2013 Migration

Microsoft's guidance when migrating Lync 2010 to Lync 2013 is to install the latest cumulative update for Lync 2010. This would also be my recommendation, however if you are wanting to know if your current Lync 2010 infrastructure can support a migration to Lync 2013, the minimum requirement is Lync 2010 CU7 (October 2012). This was the latest update at the time Lync 2013 RTM was released.




Monday, 3 March 2014

Lync call accounting for user or departmental billing - beta v0.2

Lync Call Accounting and Departmental Billing now has its own page - http://www.lync.geek.nz/p/call-accounting.html

Following up on my previous post questioning the need for a free Lync call accounting solution, I would like to thank those who have provided feedback, and the motivation for me to get the first beta release ready for the Lync community.

This is very much a beta so please use with caution. Depending on the size of your AD environment and call volumes, the script can take quite some time to complete. In my demo environment I am processing about 15 call records per second, so a date range that involves 15,000 call records will take about 15 minutes to complete. I will look at ways to make it more efficient in future releases, but suggest for now you keep the date query range to within a month and process overnight. You could also modify the script to process daily and append to a CSV file.

At this stage I don't have a detailed guide on how to use the PowerShell script, however hopefully the comments in the code will be enough for now. Please feel free to get in touch if you need any assistance or have any ideas to improve the script.

How it work's

Firstly the script query's SQL for call records within the specified date range. It then queries active directory for the users sip address that is identified as the party to be charged, and if a match is found includes this in the report. The matched users company and department details will also be included so that charged calls can be identified per department.

Some of you may notice that the tariff and rate information shown in the example output has been removed from this release. This is because the calculations are fairly complicated and need more testing to be reliable.

Instructions

1. Download the script from here
2. Unzip the file and extract to the location of your choice
3. Open the LyncCallAccounting_beta_v0.2.ps1 file and update the settings to match your environment
4. Run the script as admin

Notes

1. The credentials used to run the script will be passed to SQL for authentiacation. Make sure that you account has the required permissions.

I encourage your feedback to help grow this script in to something more mature.