Announcing the OCS 2007 R2 Platform SDKs and New Exchange API…

Today Chris Schindler and I presented a session at the PDC, BB09 – Office Communications Server 2007 and Exchange 2007: Platform Futures.  This is the first time we’ve discussed the new R2 platform SDKs and the new Exchange Web Services Managed API outside of the beta program and the first time we’ve discussed v.Next in public.


Man, it’s great to be able to talk about we’ve been working on with the OCS and Exchange platform teams.  So, here are details on the new platform.


OCS 2007 R2:

Along with the release of Office Communications Server 2007 R2 and Office Communicator 2007 R2, we’re going to be releasing some new APIs.  The main focus of the this release is on the server side, providing more capabilities for building services that provide communication features.  Here are some details on the release:

  • Unified Communications Managed API 2.0 – UCMA 1.0 provided a high scale/availability managed SIP stack for signaling and IM communications.  It was a great API for building broadcast IM solutions or IM based query/response bots.  UCMA 2.0 builds on the 1.0 version with new features:
    • Presence: Now you can publish presence directly from the API as well as subscribe to the presence of other contacts and receive changes in presence as events.  UCMA 2.0 also supports snapshot presence queries to get the presence of contacts at a particular point in time.
    • Audio: Voice communications and audio call management is now supported in this release.
    • Conferencing: Conferencing calls (IM or voice) and conference management is now supported.
  • Unified Communications Managed API 2.0 Windows Workflow Activities – Built on UCMA 2.0, these workflow activities allow you to build workflows based on incoming and outgoing calls.  The activities include:
    • IM and Speech Dialog Activities: Including statement and question activities for both IM and voice calls.  These activities provide various prompts to make the conversation feel very natural and SGRS grammars to help map what the callee says to the answers you expect.
    • Commands: Commands allow you to define global commands when asking a question in your workflow.  This allows the user to ask for help, ask for the prompt to be repeated or enact custom commands (such as “Speak to a representative.”).
    • Events: Events allow you to provide custom workflows for dialog events (for example, not being able to understand what was said) as well as communication events (such as the call being disconnected).
    • Presence: The GetPresence activity allows you to query the presence of the contacts specified in order to use in that presence in the logic of your workflow.

The Office Communicator 2007 SDK is unchanged in R2.  This API allows you to integrate presence, IM, voice, video and conferencing by automating OC 2007 or OC 2007 R2 on the client machine.


Exchange 2007: Released with Exchange 2007, Exchange Web Services provides you access to the Exchange 2007 mailbox store and services such as Availability and Notifications via a single API.  Exchange Web Services is *the* API for Exchange 2007 development. The new EWS Managed API provides you access to EWS functionality in a new managed API that feels much like developing with the rest of the .NET Framework rather than a set of proxy classes.


I’ll post a link to the session as soon as it’s up.  We had some A/V and network issues with my first demo so I’ll record that demo again and post that too so you can get a complete picture of what the platform can do.


I had a lot of people approach me about getting access to the Beta in our Metro early adopter program.  There are still spots left.  Please contact me via the contact page here or see me and the PDC in the booth and we’ll discuss if your project is a good fit for the program. 


Lastly, thanks to the product teams (Chris, Kyle, Oscar, Vishwa, Stephane, Vincent), technical product marketing (Albert and Adam) and the folks and Clarity Consulting for their help with the session today.  Much appreciated.