Category Archives: API – Lync Server 2013

Code – Desktop Apps – Site By Site

I used Microsoft Visual Studio Community 2015 running Windows 10 and targeted Windows Desktop Application to .NET Framework 4.6.1. First I downloaded the Desktop Client SDK and used 7-ZIP to extract the content of the ‘lyncsdk.exe’ distribution. The ‘lyncsdk64.msi’ installed fine on my development environment providing the assemblies needed. The can be found in ‘C:\Program Files (x86)\Microsoft Office 2013\LyncSDK\Assemblies\Desktop’.

While exploring the capabilities of the desktop client API, I wanted to be able to run two instances of Skype for Business client on a single desktop. As far as I am aware this is not available out-of-the-box.

Took some time to get everything right but here is the result. On the right-hand site one instance running the official client 15.0.4711.1000, on the left-hand site a second instance running my own C# custom client version 0.0.0.1. Thus two ‘lync.exe’ instances active with different AD credentials. To be honest not yet the full functionality, things like white boarding and application sharing are not yet implemented. But I only needed this to test IM, audio and video conversations during demo on the road using a single desktop. And convincing to evangelise the power of Skype for Business Development Platform for customers that primarily focus on the infrastructure aspects of the platform.

I will not duplicate the entire process of developing applications using Lync 2013 SDK and UI suppression, as these is very well documented and many excellent code samples are available online.

The key take-away of this BLOG post and only line of code is specifying GetClient(true) instead of GetClient() as show below.

Site by Site

So creating a side-by-side endpoint is a one step process that involves calling the static LyncClient.GetClient method, except that you pass a boolean true value in the method if you want a side-by-side endpoint. If you do not provide an argument to this method, the default argument value of false is passed and a standard Lync endpoint is created.

The remaining is business as usual to write a UI suppressed application, although it takes quite some effort to have the user interface exactly as the Skype UI as in client 15.0.4711.1000.

If you run Site by Site mode you will see in Explorer in folder “C:\Users\…\AppData\Local\Microsoft\Office\15.0” next to the usual “Lync” also a “LyncSideBySide” directory structure. In fact up to 4 instances can run simultaneously.

More information can be found on https://msdn.microsoft.com/en-us/library/office/dn133125.aspx.

Code – UCWA in C#

I will publish in the upcoming months C# software I have developed based upon UCWA 1.0 and UCWA 2.0 showcasing advanced integration scenarios in on-premise environments, based upon UCWA documentation (and with a little help of Fiddler for the undocumented modalities).

Revisit this page when the Application API and JS UC Controls, UCWA JS OM, UC Controls, UCWA Mobile OM become generally available, with more options in Hybrid or Office365 environments.

I was inspired by the blog and movie of Tsuyoshi Matsuzaki san – my basic skills of the Japanese language acquired during previous employment at company NEC was most helpful to understand his point. Also the specs at MS-OCDISCWS and article of Graham Cropley explaining the discovery process.

In the meantime I recommend reviewing the basic introduction samples available on Microsoft Developer Network

  • Create UCWA Windows Store apps using C#/XAML and XML: info, code
  • Open an event channel in a UCWA app using C#/XAML and XML: code

© Microsoft Developer Network – Apache license, version 2.0
Continue reading

UCWA 1.0

I will start publishing the upcoming months sample code and C# software I have written based upon UCWA 1.0 API.

In the meantime below some links to read-me first resources from Microsoft:

Also recommended to follow

I suggest also reviewing the TechEd presentations

UCMA 4.0

I will start publishing the upcoming months sample code and software I have written based upon UCMA 4.0 SDK.

In the meantime below some links to read-me first resources from Microsoft:

I recommended following the BLOG from Michael Greenlee and read his publication Professional Unified Communications Development with Microsoft Lync Server 2010.

Lync Server 2013 SDK

I will continue publishing the upcoming months MSPL scripts and C# managed code I have written based upon Lync Server 2013 SDK. Please review my code samples published earlier

In the meantime below some links to read-me first resources from Microsoft:

I recommended following the BLOG from Michael Greenlee.

On MSDN a number of samples can be found