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.

Microsoft.Speech and System.Speech

Posted: September 6th, 2012 | Author: | Filed under: Lync Development | Tags: , | 1 Comment »

One thing that can be slightly confusing about the speech synthesis and recognition features in UCMA is that there are two completely separate but very similar namespaces with speech-related classes. The Microsoft.Speech and System.Speech namespaces share many of the same class names (e.g., System.Speech.Synthesis.SpeechSynthesizer vs. Microsoft.Speech.Synthesis.SpeechSynthesizer), but belong to two different speech APIs, and function differently. I’ve run into a couple of mix-ups with these two namespaces, and I’m sure that others have too, so I thought I’d write up a quick explanation of what’s going on here. Continue reading “Microsoft.Speech and System.Speech” »


New multi-threading techniques with UCMA 4.0

Posted: August 30th, 2012 | Author: | Filed under: UCMA 4.0 | Tags: , , , | 2 Comments »

Recently I’ve written a lot about using some of the new multi-threading capabilities in .NET 4.5 with the UCMA SDK, and I wanted to put together a complete example in an application that might actually be useful.

I like to take a break every so often to get up from the computer, walk around, and stretch, and I’ve tried a few break reminder applications that give you a pop-up reminder after a period of time. The trouble I always have is that I forget to disable them when I’m on calls, or presenting, and they pop up and get in the way. So I thought I would write a simple app to send IM break reminders, but only when the user is in an Available state in Lync. Continue reading “New multi-threading techniques with UCMA 4.0” »


Error about SIPEPS DLL with UCMA 4.0

Posted: August 21st, 2012 | Author: | Filed under: UCMA 4.0 | Tags: , , | 10 Comments »

One of the first issues you may run into when trying out the new version of UCMA is an exception that says a DLL called SIPEPS, Version=5.0.0.0 could not be found. This happened to me, and a few other people I’ve spoken to had this problem as well. So, to help anyone else who gets this exception, here are a few troubleshooting steps that should fix it. Continue reading “Error about SIPEPS DLL with UCMA 4.0” »


What’s new in UCMA 4.0?

Posted: August 14th, 2012 | Author: | Filed under: UCMA 4.0 | Tags: , | No Comments »

With the preview of Lync Server 2013 now available, you may be wondering what’s new in the good old Unified Communications Managed API. You may even have located the UCMA 4.0 SDK and downloaded it to check it out yourself. Since the final documentation is not yet available for UCMA 4.0, it may not be immediately clear what’s new and what isn’t. Continue reading “What’s new in UCMA 4.0?” »


Recording of UCMA 4.0 Developer Roundtable

Posted: August 14th, 2012 | Author: | Filed under: UCMA 4.0 | No Comments »

The recording of the Lync Developer Roundtable session I did a couple of weeks ago on UCMA 4.0 has been posted on Channel 9. You can watch it here:

http://channel9.msdn.com/posts/Lync-Developer-Roundtable-UCMA-40-Development-Topics

The presentation covers using .NET 4.5 Framework features in UCMA development and converting UCMA Workflow SDK applications to UCMA Core.


UCMA 4.0 – Lync Developer Roundtable

Posted: August 2nd, 2012 | Author: | Filed under: Lync Development | Tags: , | No Comments »

Today at 9:00am Pacific Time I’ll be doing a Lync Developer Roundtable session on a couple of topics related to the new version of UCMA. Information is here: http://social.msdn.microsoft.com/Forums/en-US/ucmanagedsdk/thread/3adbe84b-efc6-49de-9882-e5daeb7e5488


VIDEO: Lync Server Logging Tool

Posted: July 17th, 2012 | Author: | Filed under: UCMA 3.0 | Tags: , , | No Comments »

I’ve put together a 10-minute video showing how to use the Lync Server Logging Tool (a.k.a. OCSLogger.exe) to look at SIP messages to and from your UCMA app and troubleshoot issues.


Firewalls and UCMA applications

Posted: July 2nd, 2012 | Author: | Filed under: UCMA 3.0 | Tags: , , , , | 1 Comment »

If you’ve worked with UCMA for a while, it’s likely that you’ve had at least one incident where firewall settings caused issues with a UCMA application. Since firewall configuration seems to be one of the most common sources of mysterious troubles with UCMA applications, I thought I would write up a few notes about this in the hope that it will save someone a long and frustrating troubleshooting session. Continue reading “Firewalls and UCMA applications” »


Outbound calls from UCMA without Lync Server

Posted: June 15th, 2012 | Author: | Filed under: UCMA 3.0 | Tags: , , , | 7 Comments »

In my past blog post on standalone UCMA applications, I described how to build a UCMA application that can answer calls totally independently of Lync Server. Since then, I’ve gotten a lot of questions about standalone UCMA applications, and I wanted to answer two of them in this post. The first is how to place outbound calls from a UCMA application that isn’t connected to Lync Server. The second is how to bypass Lync Server for certain calls from a UCMA application that is connected to Lync Server.

For both of these things, you can use an awesome, little-known UCMA class called ConnectionContext. Continue reading “Outbound calls from UCMA without Lync Server” »


Standalone UCMA applications: which features work?

Posted: May 24th, 2012 | Author: | Filed under: UCMA 3.0 | Tags: | 2 Comments »

Recently I’ve been getting lots of questions about standalone UCMA applications, by which I mean UCMA applications that don’t register at all with Lync Server, and I thought it might be helpful to write about which features of UCMA work with standalone applications, and which require Lync Server. Continue reading “Standalone UCMA applications: which features work?” »