Microsoft has recently introduced the Lync SDK which is a client side API and allows the users more control over the Lync. With it users can easily add the Lync 2013 features to an already developed business application; they can extend the present Lync client and can even make a customized user interface.
Lync 2013 SDK includes the Lync 2013 API which is based on .NET (as was expected). It also comes with a set of custom UI controls that can further enhance your Lync experience. The SDK is shipped with a set of example codes and documentation which extensively cover all the function calls present in the API. This makes the developer’s life a lot easier as he can browse the required function call, return type and the list of parameters required for that function call very easily.
The Lync API is called outside the Lync process so it requires the Lync client to be installed on the system where the SDK is to be run. The Lync Server 2013 SDK includes the library (ServerAgent.dll) which can be added to your project just like any other dll and once it is linked to your project, you are good to go. So basically that is how easy it is to get started.
There are a lot of new features in this new SDK; it includes resource sharing, support for persistent chat and online meeting content management. Microsoft Lync 2013 SDK gives you the ability to add a wide range of Lync features to your Windows Forms, WPF, or Silverlight application.
The possibilities truly become endless when you have the capability to use the video and audio stream available to you through Kinect for Windows. They Lync SDK can access these capabilities through its API calls. Classes related to this can be found under the package: Microsoft.Lync.Model.Conversation.AudioVideo. The classes that offer this capability are Channel, VideoChannel and VideoDevice.
Developing apps using Lync 2013 SDK in UI suppression mode can be overwhelming at times and hence one must not forget the tradeoffs that have to be made in order to avail this attractive service. You are responsible for creating custom versions of nearly the entire Lync client user interface. Additionally, the application needs back end code to sign the user into the Lync client using a custom login interface that is your responsibility too. Apart from this, the Lync controls are also not available when the Lync client is running in UI Suppression mode; they are automatically grayed out and disabled. It is again your responsibility to create custom views to complete that task. Lastly automation is also not available in UI suppression mode.