An Update on Desktop Sharing in Lync

In two recent updates to Lync Server 2013 we added some new configuration settings that give the Lync administrator more control over the frame rate used in both peer to peer and multi-party conference desktop sharing sessions.

These new capabilities have been added for the purpose of supporting high fps in particular for the sharing of CAD/CAM dynamic models or other similar type of content when network bandwidth is plentiful (such as on LAN or well provisioned WAN). They are not generally needed or desirable for sharing Office documents or static content. They are also not advisable where network bandwidth is already constrained.

The conferencing policy discussed below will be leveraged by the Lync 2013 desktop client and any connections from the Lync Web App 2013. Anonymous participants will inherit the organizer's policy.

Enable High Frame Rate Peer to Peer Desktop Sharing

Lync Server version 5.0.8308.420 (July 2013) introduced a setting to increase the frame rate used in peer to peer desktop sharing sessions by adding the EnableHighPerformanceP2PAppSharing parameter to the clientpolicy object.

You can create a new client policy and set the parameter by using the following syntax:

New-CSClientPolicy -Identity tag:HighFpsTrue -EnableHighPerformanceP2PAppSharing $true

Note: When you use this syntax to create a new clientpolicy object you will see a warning as shown below.

You can update an existing client policy by setting the parameter use the following syntax:

set-CSClientPolicy -Identity tag:MyExistingClientPolicy -EnableHighPerformanceP2PAppSharing $true

Note: When you use this syntax to update a clientpolicy object to enable High Performance app sharing you will see a warning as shown below.

Enable High Frame Rate Multi-party Conference Desktop Sharing

Lync Server version 5.0.8308.556 (October 2013) introduced a setting to increase the frame rate used in multi-party conference desktop sharing sessions by adding the EnableHighPerformanceConferencingAppSharing parameter to the clientpolicy object.

You can create a new client policy and set the parameter by using the following syntax:

New-CSClientPolicy -Identity tag:ConfHighFpsTrue -EnableHighPerformanceConferencingAppSharing $true

You can update an existing client policy by setting the parameter use the following syntax:

set-CSClientPolicy -Identity tag: MyExistingClientPolicy -EnableHighPerformanceConferencingAppSharing $true

 

An astute blog reader might notice that you are controlling a conferencing feature via a parameter of the clientpolicy object and that reader would be correct however this is how the configuration works so there are no typos in the above syntax.

If you wanted to create a single policy and set both parameters at the same time you would use the following syntax:

new-CSClientPolicy -Identity tag:HighFpsTrue –EnableHighPerformanceP2PAppSharing $true -EnableHighPerformanceConferencingAppSharing $true 

If you wanted to update an existing client policy and set both parameters at the same time you would use the following syntax:

set-CSClientPolicy -Identity tag: MyExistingClientPolicy –EnableHighPerformanceP2PAppSharing $true -EnableHighPerformanceConferencingAppSharing $true 

 

Note: You will only be able to set both parameters on the clientpolicy object at the same time if your Lync Server environment has been updated to at least version 5.0.8308.556.

If you want to verify that a user is receiving the correct client policy when logging on you can search for the following in the sip trace file.

<property name="EnableHighPerformanceP2PAppSharing" >false</property>

<property name="EnableHighPerformanceConferencingAppSharing" >false</property>

 

How do I know who to apply the High Performance policies to?

  • In a peer to peer desktop sharing session the user sharing the content must have the applicable client policy applied to them in order to share content at increased frame rates and for the optimal viewing experience, the viewer should have the appropriate policies applied as well

  • In a conference only the person sharing the content must have the applicable client policy applied to them (this applies to authenticated users in Lync Web App as well)

  • Anonymous sharers will honour the organizer's policy

  • Federated sharers will honour the settings given to them by their own company

     

Understanding and Configuring the Desktop Sharing Frame Rate

Simply enabling the high frame rate option in the client policies as shown above is not sufficient for actually increasing the frame rate used by the desktop sharing feature. In addition to implementing the changes above you also need to implement a change that increases the allowed frame rate. When the client policy settings (EnableHighPerformanceConferencingAppSharing or EnableHighPerformanceP2PAppSharing) are turned off, the frame rate will be capped to 2.5 fps max however if either are enabled the fps max will increase based on the values specified in the conferencing policy as shown below.

You can create a new conferencing policy and set the increased frame rate by using the following syntax:

New-CSConferencingPolicy -Identity tag:HighAppSharingBitRate -AppSharingBitRateKb 13000

You can then grant this new conferencing policy to a user by using the following syntax:

Grant-CSConferencingPolicy -Identity sip:user@domain.com tag:HighAppSharingBitRate

Your next logical question should be to ask: "What should I set the AppSharingBitRateKb value to and what type of network bandwidth should I expect to see as a result of this change.

The following table shows an approximation of the fps that you should expect. Please note that these values were derived from internal testing of the feature and the results in your particular environment may vary based on current network conditions and the type of content being shared. They are not absolute values or limits however they represent estimates.

AppsharingBitRate

Maximum Estimated fps

<2000

2.5 fps

<4000

4 fps

<8000

6 fps

<12000

8 fps

>12000

10 fps

   

 

The actual fps that the client will yield will be based on a number of factors such as:

  • Network conditions - High bandwidth and low latency network will yield the best fps which low bandwidth and or high latency networks will cause a decrease in fps
  • Content - If you have more rapidly changing content on the screen you will see a lower fps value however if the content is static you will see a higher fps value

 

Additional Points

  • If the sharer is using the Lync Desktop client they must be using build 15.0.4551.1005 or higher

 

Summary

As the above blog post has shown we have made some changes to allow a Lync administrator more control over the frame rate that is produced during a Lync desktop/application sharing session. Please test this out in your labs or customer environments and share your feedback on how it is working for you.