Microsoft Lync and Skype for Business have a rich set of .NET APIs which make it easy to extend the platform and integrate it with other applications. This blog helps explain how to use those APIs.

What are Conversation objects for?

Posted: February 22nd, 2012 | Author: | Filed under: UCMA 2.0, UCMA 3.0 | Tags: | No Comments »

To make it possible for developers to extend the functionality of Lync without having to deal with the nitty-gritty details of Session Initiation Protocol (a.k.a. SIP), UCMA introduces a lot of abstractions. One of the abstractions that pops up most frequently is the Conversation class. Unfortunately, it’s also one of the most confusing to new UCMA developers. This is partly because its purpose isn’t immediately obvious when you start doing things like sending IMs or answering audio calls. Continue reading “What are Conversation objects for?” »


Call forwarding, UCMA, and “derived conversations”

Posted: January 25th, 2012 | Author: | Filed under: UCMA 3.0 | Tags: , , , , | 2 Comments »

If you have a UCMA application that communicates with users via both IM and audio in the same conversation, you may one day be caught off guard by the following exception:

Microsoft.Rtc.Signaling.OperationFailureException: Application must register 
for ConversationChanged event when a call is moved to a derived conversation.

Specifically, this exception occurs if you try to add audio to a conversation that currently only has instant messaging and/or application sharing, and the remote party redirects the audio call to a PSTN phone; maybe because they don’t have headphones plugged in, or because they are on a wireless network which has been causing poor audio quality, or even because they are logged in on a client that doesn’t support audio. Continue reading “Call forwarding, UCMA, and “derived conversations”” »