An overview of the APIs in Office Communications Server 2007

Over time I have discussed all of the different APIs available to you in order to create Office Communications Server 2007 APIs. Today I thought I would do an overview of what's available and when you would use each one.

Office Communicator API

Example:

Microsoft Office uses the Communicator API to display presence information and launch communicator.

Languages:

            Managed or unmanaged

Capabilities:

            Presence indicators, contact lists, can launch Communicator for IM, audio, or video

Client/server:

            Client only

Complexity:

            Normal

More info:

            https://www.microsoft.com/downloads/details.aspx?FamilyID=ed1cce45-cc22-46e1-bd50-660fe6d2c98c&DisplayLang=en

UCCA

Example:

You want to enable communications in your client application, but you do not want to launch Communicator.

Languages:

            Native COM+, Managed wrapper exists

Capabilities:

Can do anything Communicator does – presence, contact lists, signaling, conferencing, audio, video, IM

Client/server:

            Client only

Complexity:

            Hard

More info:

            https://blogs.msdn.com/jcalev/archive/2007/08/17/so-what-is-the-unified-communications-client-api.aspx

Extending Communicator through tabs

Example:

            Adding a tab to show a map of where the user currently is in the world

Languages:

            Jscript, XML, HTML

Capabilities:

            Given currently selected user or group in Communicator

Client/server:

            Client only

Complexity:

            Easy

More info:

            https://blogs.msdn.com/jcalev/archive/2007/06/20/extending-communicator-through-tabs.aspx

Microsoft SIP Processing Language (MSPL)

Example:

            Route incoming messages with a custom routing scheme

Languages:

            MSPL – language similar to Jscript, manifest XML

Capabilities:

            Used for filtering, routing, or logging of SIP messages

Client/server:

            Server only

Complexity:

            Average

More info:

            OCS documentation

Office Communications API – managed filtering

Example:

            Route incoming messages with a custom routing scheme that makes database calls

Languages:

            Managed

Capabilities:

Same as MSPL, but allows access to external resources such as databases. Called from MSPL code.

Client/server:

            Server only

Complexity:

            Average

More info:

            OCS documentation

UCMA

Example:

            A bot that provides information to workers.

Languages:

            Managed

Capabilities:

Low level SIP API providing access to all SIP message types, but does not support receiving SUBSCRIBE or PUBLISH messages. UCMA currently does not support presence or conferencing.

Client/server:

            Server only. Client is possible, but not supported.

Complexity:

            Hard

More info:

            16 part series beginning at https://blogs.msdn.com/jcalev/archive/2007/05/08/introduction-to-the-ucma-api-part-2-constructing-our-client.aspx

Communicator Web Access (CWA)

Example:

            Add communications to your own web application.

Languages:

            Managed ASP.Net

Capabilities:

            Most of the same features as Communicator, but does not support voice or video.

Client/server:

            Both (client through secure HTTP requests)

Complexity:

            Average

More info:

            CWA documentation

Speech Server Core API

Example:

            Create an interactive voice application

Languages:

            Managed

Capabilities:

            Multi-language speech recognition, synthesis, and recording

Client/server:

            Server only

Complexity:

            Average

More info:

            Go back several months on this blog, https://www.gotspeech.net

Speech Server Workflow

Example:

            Same as Core API, but using Workflow activities

Languages:

            Managed Windows Workflow Foundation

Capabilities:

            Same as Core API, recommended way to create IVR applications

Client/server:

            Server only

Complexity:

            Easy

More info:

            Go back several months on this blog, https://www.gotspeech.net

VXML

Example:

            Same as Core API, but using VXML

Languages:

            VXML is an XML based language

Capabilities:

            Same as Core API

Client/server:

            Server only

Complexity:

            Average

More info:

            Go back several months on this blog, https://www.gotspeech.net