Books & ebooks about Microsoft tools, technologies, & research. Plus programming best practices. We hope you enjoy this post.
Hi, all. Today we’re happy to share some excerpts from the recently published Programming for Unified Communications with Microsoft Office Communications Server 2007 R2 (Microsoft Press, 2009; ISBN: 9780735626232; 416 pages), which comes directly from the Microsoft Office Communications Server product team. This post includes the book’s About the Authors, Contents at a Glance, Introduction, as well as a stretch of text from Chapter 2, “Microsoft Unified Communications APIs Foundation.” I’ll keep this intro text short because much follows.
About the Authors
Rui Maximo is a senior technical writer in the Office Communications Group. He has workedon different aspects of the Microsoft Office Communications Server product suite (management,migration, topology, VoIP, Communicator Web Access) and shipped Microsoft LiveCommunications Server 2003, Live Communications Server 2005 (the original version andthe SP1), and Office Communications Server 2007 as a lead program manager and programmanager. With 13 years of experience at Microsoft, Rui has been fortunate to work in diverseroles (program management, software engineering, and technical writer) and various products(including Microsoft Windows, Windows Mobile, and Microsoft Office), primarily focusingon security. Prior to Microsoft, Rui worked at IBM as a software tester and at Brigham YoungUniversity as a UNIX administrator. Rui holds a master’s degree in mathematics, specializingin abstract algebra and cryptography. You can reach him at ruim@ruimaximo.com. Pleasesend your comments!
Kurt De Ding is a senior programming writer in the Office Communications Group.As the pioneering member of the SDK documentation team, he was instrumental inthe initial design, authoring, and delivery of the SDK documentation for the MicrosoftUnified Communications APIs, including Microsoft Office Communicator Automation API,Unified Communications Client API, Unified Communications Managed API v 1.0, and UnifiedCommunications AJAX API, as well as Live Meeting Service API. Before joining the OfficeCommunications Group, Kurt had worked on various Microsoft technologies, includingWindows CE SDK, Windows Platform SDK, and Microsoft SQL Server SDK.
Vishwa Ranjan is a program manager in the Unified Communications Group. Most recently,Vishwa has worked on the Unified Communications Platform API Workflow Activities, whichis available as part of Office Communications Server 2007 R2. Previously, he worked onMicrosoft Speech Server 2004 and Office Communications Server 2007 Speech Server. Hehas more than 7 years of experience as a software design engineer in test, a technical lead,and a program manager.
Chris Mayo is a technical evangelist in the Developer and Platform Evangelism group.Chris focuses on the Unified Communications products (Office Communications Server2007 R2, Office Communicator 2007 R2, and Microsoft Exchange Server 2007) and platformsoftware development kits (SDKs), working with the Office Communications Groupsince the early betas of Office Communications Server 2007. Chris has been with Microsoftfor 8 years as an evangelist working with the developer and independent software vendorcommunities. Chris has experience as both a writer for developer publications and a publicspeaker at professional events, such as the Professional Developers Conference and TechEd.Prior to joining Microsoft, Chris served as a developer and architect in the IT departments ofFortune 500 companies in the retail and finance industries. Keep up with Chris at his UnifiedCommunications Development blog at http://blogs.msdn.com/cmayo/.
Oscar Newkerk is a Unified Communications Architect at Unify Square Inc. working in thearea of Unified Communications, with an emphasis on integrating and enhancing businessprocesses with collaboration technologies. With 14 years of experience at Microsoft, Oscarworked in various roles and groups within the company. Most recently, he was a technicalevangelist in the Unified Communications Group, helping the developer community to plan,design, develop, and deploy solutions that integrate with Office Communications Server.Prior to Microsoft, Oscar worked for Digital Equipment Corporation as a software specialistand in software engineering in the areas of systems and network management. Oscar holds abachelor of science degree in physics from Guilford College and holds patents in the areas ofsystems management and speech recognition.
Albert Kooiman is a member of the Unified Communications Marketing team and hasbeen responsible for product management of the Unified Communications DeveloperPlatform since the group was created in 2006. He works on both Exchange Server and OfficeCommunications Server. With 14 years of experience in the telecommunications and speechtechnology industry, Albert has been involved in a wide range of projects encompassing thebroad spectrum of Unified Communications solutions currently in the market. Albert holdsa master’s degree of the Medical Faculty of the University of Amsterdam, specializing inmedical informatics.
Mark Parker is a programming writer in the Office Communications Group. Mostrecently, Mark was responsible for the Unified Communications Managed API 2.0 CoreSDK documentation and part of the Unified Communications Managed API 1.0 SDKdocumentation. Before joining the Office Communications Group, Mark worked as a writeron the Speech Server 2007 documentation team and was a lead programming writer on theWindows Device Driver Kit documentation team. Prior to Microsoft, Mark taught mathematicsand a number of programming languages at Shoreline Community College. Mark holds amaster of science degree in mathematics.
Introduction
Why We Wrote This Book
Microsoft Office Communications Server is a relatively new product. Although it has its originsin the Enterprise Instant Messaging products, such as Exchange Instant Messaging,Live Communications Server 2003, and Live Communications Server 2005, it has evolved tobecome a comprehensive platform for all real-time communications. The current release,Office Communications Server 2007 R2, not only supports enterprise instant messaging (IM)and rich presence, but also offers a powerful Voice over Internet Protocol (VOIP)–based telephonysystem, multiparty audio conferencing, Web conferencing, and application sharing.
This server offers tangible benefits in direct cost savings (for example, by eliminatingcostly audio conferencing services provided by telecom carriers) and improves productivityby providing more efficient ways for people to contact each other. Office CommunicationsServer is one of the fastest-growing server products in Microsoft history, with tens of millionsof licenses sold.
Office Communications Server is a software-based solution that runs on standard computingand networking hardware. This server offers a rich, open API platform, making it an openand extensible part of the Microsoft Unified Communications (UC) platform. There aremany opportunities for developers to build new applications on this platform. We knowthat developers are looking for resources to help them develop applications using the UCAPIs, and this book is the only one on the market today that addresses this need. Written byexperts from the product group, Programming for Unified Communications with MicrosoftOffice Communications Server 2007 R2 offers an easy-to-read exploration of the APIs. Wehope it serves you well.
What This Book Is About
This book is organized into five parts.
Part I, “Understanding Unified Communications,” introduces the UC platform and providesan overview of the APIs.
Part II, “Office Communicator Automation API,” explains the Office CommunicatorAutomation API in depth and provides a detailed walkthrough of an example.
Part III, “Unified Communications Managed API Workflow,” explains the UCMA Workflow APIin detail and walks through an example of a business process communication.
Part IV, “Unified Communications Managed API,” covers the Unified CommunicationsManaged API architecture and shows how to extend the Office Communications ServerEnhanced Presence model by using this API.
Part V, “Debugging, Tuning, and Deploying Unified Communications Applications,” explainshow to debug, tune, and deploy UC applications.
Who This Book Is For
This book is intended for developers who want to create enterprise applications that includecommunications functionality built on the UC platform. Familiarity and experience withMicrosoft Windows COM, Microsoft .NET Framework, and Windows Workflow Foundationdevelopment is recommended. This book is written on the assumption that the reader hasthis knowledge. Code examples in this book are written in C# unless otherwise noted. Forclarity and to better illustrate how to use the APIs, the code samples are not written withdefensive coding practices in mind. Please apply defensive code practices when reusing thesamples in your own production applications.
For an in-depth resource on the internals of Office Communications Server 2007 R2, see theMicrosoft Office Communications Server 2007 R2 Resource Kit (Microsoft Press, 2009), whichyou can purchase in a bookstore or order from http://www.microsoft.com/learning/en/us/Books/13113.aspx. That book also covers the Office Communications Server SoftwareDevelopment Kit (SDK), which is intended for administering and controlling complianceof the conversations (for example, ethical walls and custom disclaimers) with OfficeCommunications Server, and therefore is outside the scope of this book.
We sincerely hope that you find the technical information within this book useful andlucrative to your work.
Companion Content
This book features a companion Web site that makes available to you all of the code used inthe book. This code is organized by chapter, and you can download it from the companionsite at http://code.msdn.microsoft.com/programmingocs.
Hardware and Software Requirements
You need the following hardware and software to work with the companion content that isincluded with this book:
Servers
Hardware Use only a 64-bit computer that is running a 64-bit edition of Windows Server(see more about the operating system below). Other technical specifications include thefollowing:
Operating System Use only the 64-bit edition of Windows Server 2003 SP2, WindowsServer 2003 R2 SP2, or Windows Server 2008. Supported editions include Standard,Enterprise, and Data Center versions of Windows Server 2003 and Windows Server 2008.
Client Computers
Hardware Use any 32-bit or 64-bit computer that is running Windows Vista SP1. Othertechnical specifications include the following:
Operating System The 32-bit or 64-bit edition of Windows Vista SP1 or later. WindowsVista Home Premium Edition, Windows Vista Business Edition, or Windows VistaUltimate Edition.
Database Requirements
Use the 32-bit version of Microsoft SQL Server 2005 Express Edition SP2, which is includedwith Office Communications Server 2007 R2.
Office Communications Server 2007 R2
Deploy Office Communications Server 2007 R2 Standard Edition on a private network.
More Info For more information about deployment for the UC test environment, see the“Deploying Office Communications Server Standard Edition” section in Chapter 9, “Preparing theUC Development Environment.”
Administrative Tools
Install the Office Communications Server Administrative Tools. The administrative tools canbe installed independent of the Office Communications Server deployment on a computerthat is running the 32-bit or 64-bit edition of Windows Server 2003 SP2, Windows Server2003 R2 SP2, Windows Server 2008, Windows Vista Business, or Windows Vista Enterprisewith SP1.
Development Tools
The software development environment and tools required to build UC applications includethe following:
Visual Studio 2008 SP1–supported software includes Visual Studio 2008 Standard Edition,Visual Studio 2008 Enterprise Edition, Visual C# 2008 Express Edition, and Microsoft VisualWeb Developer 2008 Express Edition.
More Info For more information about configuring the UC software development environment,see the “Configuring Application Development Components” section in Chapter 9.
Sample Test Topology
To build and test the samples included in this book, a typical test topology includes thefollowing clients and servers:
Chapter 2Microsoft Unified Communications APIs Foundation
This chapter will help you to:
This chapter provides a technical overview of the Microsoft Unified Communications (UC)APIs so that you can understand them, how they relate to each other, and what purposethey serve.
The intent of this chapter is to provide you with sufficient information to help you decidewhich UC APIs best fulfill your needs. If you already know which APIs meet your needs, youcan look only at the sections that cover the APIs of interest to you, or skip this chapter altogetherif you wish.
Unified Communications Managed API 2.0
The Unified Communications Managed API (UCMA) is a code platform managed byMicrosoft .NET Framework, which provides access to presence, instant messaging (IM),telephony, and audio/video (A/V). UCMA is a Session Initiation Protocol (SIP)–based platform.SIP is a signaling protocol that is used for setting up and tearing down multimediacommunication sessions. This API abstracts the details of the communication protocolsused by Microsoft Office Communications Server.
Scenarios
UCMA is used to build scalable middle-tier applications that work with OfficeCommunications Server 2007 R2, provide large-scale message throughput, and representmultiple endpoints. You can use this API to build the following types of applications:
More advanced applications include the following:
Considerations
UCMA 2.0 is considered a middle-tier API written completely in C#. Therefore, it runsonly in environments where the .NET Framework is supported. It provides the followingcharacteristics:
UCMA 2.0 supports two types of SIP endpoints that are designed for distinct applicationscenarios: the ApplicationEndpoint class and the UserEndpoint class. You use theApplicationEndpoint class in applications that represent automated applications, such asbots that interact with users. You use the UserEndpoint class in applications that connectto Office Communications Server on behalf of users and perform operations on behalf ofthose users.
To configure Office Communications Server to trust connections from UCMA applicationsthat use the ApplicationEndpoint and UserEndpoint classes, the application provisioningprocess must define a Globally Routable User Agent URI (GRUU). For more informationabout GRUUs, see Chapter 9, “Preparing the UC Development Environment.” This is all thatis necessary if the application creates only UserEndpoints. After the application has authenticatedthe user, it does not need to supply those credentials to Office Communications Serverfor authentication. For applications that create ApplicationEndpoints, the provisioning processalso must create a Contact object that defines the application’s SIP URI. You also have theoption to create a display name and a TEL URI. The ApplicationEndpoint uses this Contactobject to register with Office Communications Server.
Examples of applications that use the ApplicationEndpoint class are Automatic CallDistributor (ACD), interactive IM or voice bots, and conference bridges. For more informationabout these applications, see the “UCMA 2.0 Workflow API” section later in this chapter.These applications use a Contact object to identify the application in Active DirectoryDomain Services. The Contact object specifies the application’s SIP URI and phone number.Examples of applications that use the UserEndpoint class are those that publish additionalpresence information. Examples of additional presence information include showing a GlobalPositioning System (GPS) location on behalf of a user or acting as a proxy when the user isnot available and routing incoming IM messages through a Short Message Service (SMS)gateway.
API Architecture
UCMA is composed of the following two interfaces:
This architecture can be represented as shown in Figure 2-1.
PingBack from http://microsoft-sharepoint.simplynetdev.com/new-book-programming-for-unified-communications-with-microsoft-office-communications-server-2007-r2/
Sweet an official MS Press book on Speech Server? No way. Sent to you by Brandon Tyler via Google Reader:
If you’d like a taste of the book, check out some excerpts here . The book has not been released yet,
Hi, all. FYI, the book is now available (that is, no longer at the preorder stage).
This long-awaited volume on Unified Communications development, which covers the Office Communicator