Creating Automated Attendants in UCMA 3.0 and Lync 2010: Scenario Overview (Part 1 of 5)

Summary:   Learn how a Microsoft Unified Communications Managed API (UCMA) 3.0 application can process dual-tone multifrequency (DTMF) tones that are sent from a Microsoft Lync 2010 application.

Applies to:   Microsoft Unified Communications Managed API (UCMA) 3.0 Core SDK | Microsoft Lync 2010 SDK | Microsoft Speech Platform SDK

Published:   December 2011 | Provided by:   John Austin and Mark Parker, Microsoft | About the Authors


This is the first in a five-part series of articles about how to build client and middle-tier applications that interact by using DTMF tones in a Lync 2010 API application and using speech synthesis in a UCMA 3.0 application.

Northwind Traders, a large metropolitan department store, has created a trusted application pool to host Microsoft Unified Communications Managed API (UCMA) 3.0-based trusted applications that extend the Northwind Traders Microsoft Lync Server 2010 unified communications system. The most important extension is an automated attendant system that prompts callers to choose a store department from an audio menu and then transfers the caller to an endpoint in that department. This UCMA 3.0 application pool must be able to handle multiple callers at the same time. To do this, Northwind Traders added several computers to the pool. Each computer runs three instances of the automated attendant application. DNS load balancing is used to distribute incoming calls among the automated attendant applications in the pool. For more information about trusted application pools and DNS load balancing, see General Application Activation.

To simplify the examples in this article, the authors created a UCMA 3.0-based automated attendant application that uses a UserEndpoint instead of the ApplicationEndpoint that is used in a trusted application. For information about trusted applications, see Activating a UCMA 3.0 Core Trusted Application.

Note Note

An alternative to creating a Microsoft Unified Communications Managed API (UCMA) middle-tier solution that implements the automated attendant is to configure a Response Group Service (RGS) component on your Lync Server 2010 topology. Although RGS gives you many powerful features, the hosting, workflow runtime, match making, and call routing components are not a good match for the simple scenario that is described in this article.

Northwind Traders has many employees in several geographic locations. Audio calls between employees in different locations are made by using Microsoft Lync 2010. To simplify the process, the Northwind Traders IT staff has enabled a Microsoft Windows-based store point of sale (POS) system to make audio calls by using the Microsoft Lync 2010 API. If an employee knows the extension of the department to be called, they dial the extension by using the keypad that is built into the POS UI. Otherwise, the employee dials the Microsoft Unified Communications Managed API (UCMA) automated attendant and responds to prompts by using the same keypad. The Lync 2010 API supports dual-tone multifrequency (DTMF) dialing and enables this kind of interaction.

The automated attendant component of the NorthWind Traders relies on a UCMA 3.0 speech synthesis component to translate menu prompt text into speech to be heard by the caller. To interpret the DTMF tones sent by a caller, the automated attendant uses a software audio device known as a tone controller.

Figure 1 shows the Northwind Traders Lync Automated Attendant solution. The person calling from outside the company is using a mobile phone and reaches the edge server through a third-party PSTN gateway that is not shown in Figure 1. The front end server uses the to find an available instance of the automated attendant. The incoming call is transferred to the automated attendant who in turn, interacts with the caller by using a text-to-speech menu system. For more information about DNS load balancing, see General Application Activation.

At the same time that an outside caller is moving through the menu presented by an automated attendant instance, a Northwind Traders employee is calling the automated attendant number from the Northwind Traders POS application that is extended to enable Lync client features. The DNS load balancer finds an available automated attendant and then transfers the internal call. By sending DTMF tones from the POS application, the employee can respond to automated attendant menu prompts.

This article describes how to build an automated attendant by using the API in the UCMA 3.0 Core SDK and how to add audio calling and DTMF tones to your business application by using the API in the Lync SDK.

Figure 1. Northwind Traders Automated Attendant hierarchy

Northwind Traders Automated Attendant hierarchy

For information about how to plan a Lync Server 2010 network topology, see Lync Server Network Infrastructure Roadmap.

Scenario Prerequisites

The following table describes the software components that are required to implement this scenario



Microsoft Office Communications Server 2007 R2 or Microsoft Lync Server 2010

The unified communications server

Microsoft Visual Studio 2008 development system or Microsoft Visual Studio 2010

Used to create the UCMA 3.0 automated attendant.

Microsoft Unified Communications Managed API (UCMA) 3.0 Core SDK

Provides the object model that exposes call transfer and tone features.

Microsoft Speech Platform SDK

Provides access to speech synthesis functionality.

Microsoft Lync 2010 SDK

Used to add Lync audio calling features to your .NET based business application.

Creating Automated Attendants in UCMA 3.0 and Lync 2010: How the Applications Interact (Part 2 of 5) details the interaction between the Northwind Traders POS application and the UCMA automated attendant.

John Austin, Microsoft, is a programmer/writer in the Lync client SDK documentation team. He has been writing Microsoft technical documentation for four years. Prior to working for Microsoft, John spent two decades as a software developer. Mark Parker is a programming writer at Microsoft whose current responsibility is the UCMA SDK documentation. Mark previously worked on the Microsoft Speech Server 2007 documentation.