Where to Focus
Unified Communications is a big, (some would even say huge) space. You have lots of code to play with, so where do you start? Right now, Microsoft is encouraging developers to focus on three main areas:
Contextual Collaboration
With the opportunities presented by presence information, your low-hanging fruit with UC will be to detect and manage presence throughout your applications, especially where collaboration is involved. For example, your sales group gets a call from a new lead. Your CRM app should detect that context and present a list of reps that are currently available to take the call. It could then offer controls for transferring that call instantly to the rep's desk or mobile phone as indicated. Look at UCCA or OCAA to make something like this happen.
Business Process Communications
In "Introduction to Office Business Applications (OBA)," I described how to integrate the 2007 Microsoft Office systems suite with Line of Business systems to build workflow-driven applications. To kick business processes up a notch, embed communications, as well. For example, in a custom bid management app that requires fast action from all the key players, detecting presence will speed the flow of action. You can then take advantage of email, VoIP, or IM functionality to get what you need when you need it. Focus on UCCA to incorporate presence and communication data in the most advantageous context, such as in an embedded control on a custom form.
Integrating Communications Data
While building an Outlook add-in with Visual Studio® Tools for the 2007 Microsoft® Office System, it allows you to pull data into a custom Outlook app, you can also look at sharing Microsoft® Office Outlook and Communicator information, such as presence, e-mail, and calendar data, outwardly. Use OCAA to make this data available in apps or through Web interfaces like SharePoint or Communicator Web.
APIs for Unified Communications
Much of the public discussion of UC has centered around its impact on end users. While the tools that make up UC offer a lot to the enterprise employee, their implementation remains largely the domain of IT. The good news for developers, though, is that the functionality that makes UC so interesting is also available to custom applications through a robust series of APIs.
Unified Communications Managed API (UCMA) (documentation)
Your primary tool for coding custom applications that take advantage of UC functionality will be the Unified Communications Managed API V1.0 SDK. Based on the .NET Framework 2.0, this API lets you build and deploy server-side and middle-tier real-time communications apps. Microsoft offers a complete Developer's Guide for the SDK, but also be sure to check out Joe Calev's blog, where he covers this particular API in great detail.
Unified Communications Client API SDK (UCC API, formerly UCCP, formerly UCCA) (documentation)
On the client side, you'll want to use UCCA to integrate OCS features into client apps, including all the workloads previously described. In fact, Office Communicator itself is built on this API.
Office Communicator Automation API
(OCAA)
Allows you to launch and customize a Communicator instance so you can look for presence information, launch voice and video sessions, or message through the Communicator client. This also makes presence information available for Office and SharePoint apps.
Unified Communications AJAX SDK
Office Communicator Web Access gives users a browser-based IM and presence client. This API extends that AJAX functionality to application developers, allowing you to create something similar.
Office Communications Server 2007 Server Application API
Use this to build SIP-based server apps or implement SIP message filtering and routing plug-ins to OCS using Microsoft SIP Processing Language (MSPL) scripts. The Office Communications Server 2007 Server SDK includes this API. Some Microsoft sources reference this SDK as the "Office Communications Server API." Sample apps include content and contact filters, custom archiving, and data mining.
Office Communications Server 2007 Server Management API
This API allows you to create WMI apps for OCS. The Office Communications Server 2007 Server SDK includes this API, as well.
Office Communications Server 2007 Speech Server Developer Edition
Though not technically an SDK, the Speech Server Developer Edition will help you developer a very important component of UC—speech. Speech Server lets you combine UC components like VoIP with speech technologies to create speech-enabled interactive voice response (IVR) apps. GotSpeech.net has more info on developing speech-enabled apps for UC.
Exchange Server 2007 Web Services
Included in Exchange Server 2007, the Exchange Web Services lets you extend Exchange functionality to your own apps via XML messaging. This includes presence information as well as access to Exchange data.
Where to Go From Here
This space is developing fast. Here are a few resources to help you learn more about the basics, then keep tabs on new APIs and breaking news:
MSDN Unified Communications Developer Portal
MSDN Unified Communications Developer Forums
Microsoft Unified Communications Landing Page
Unified Communications Server 2007 MSDN Documentation
Unified Communications Product Road Map and Partner Ecosystem
Joe Calev's WebLog
GotSpeech.NET
* This article was commissioned by and prepared for Microsoft Corporation. This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.