Executive Summary:

IP telephony and Microsoft Office Live Communications Server 2005 integration let you know user availability at all times.
LCS and IP telephony integrate to form a unified communications solution that helps users forward calls more easily.
Microsoft Office Communicator is the front-end application to Microsoft Office Live Communications Server 2005.

Microsoft's unified communications (UC) strategy lets you integrate your organization's voice, email, fax, and IM communications into one platform. My previous UC article focused on how Microsoft Office Live Communications Server 2005 (LCS) works with messaging platforms, such as Microsoft Exchange Server, in a UC environment. In this article, I look at how LCS and IP telephony (specifically Cisco Systems' IP telephony solution) integrate to create true presence information about users and use that information to forward phone calls to users wherever they are. A user's presence is his or her availability—that is, at a given point in time, the communications method (email, IM, phone) by which he or she can be contacted.

IP Telephony and LCS Integration
I could list many reasons why IP telephony and LCS integration can be a business advantage for many companies, but let's focus on just a few. If you're a manager, you might need to know the whereabouts of your employees (e.g., are they online, away from their computer, on a call?), and the ability to interact in real time with them while they're on a call can save a lot of time. For example, if you're a call center supervisor, your employees could open an IM session with you if they have questions while they're on the phone with a customer, rather than escalating the call to you. However, should that call need to be escalated, employees can enable the call forward right from the IM session.

LCS and Microsoft Office Communicator (the desktop client application that interacts with LCS) can also pick up on a call to your desk phone and forward it to your cell phone. This functionality is most useful when users aren't near their desk phone, but still need to be able to receive calls that come to their desk phone. LCS and IP telephony convergence also provides one-step dialing by letting you click a phone number in your Global Address List (GAL), local address book, or IM contacts list and force that call out via your desktop handset instead of having to enter multiple numbers for speed dialing on your telephone or open Microsoft Office Outlook Contacts to find a telephone number.

UC Components and Call Flow
To understand how LCS interacts with Cisco’s IP telephony solution for UC, you must first know something about the products required. The following are the major components that are involved in LCS and IP telephony convergence:

  • LCS—Microsoft’s Session Initiation Protocol (SIP)-based presence solution integrates with Active Directory (AD) and several Microsoft products to provide real-time communications and collaboration.
  • Cisco Unified CallManager—CallManager is the core of Cisco’s IP telephony solution and includes the telephony dialing plan, device management, call routing, and many other important telephony functions. In this article, I'll be referring to CallManager 5.x. Cisco has renamed this product Cisco Unified Communications Manager (CUCM).
  • Computer-supported telecommunications applications (CSTA) protocol—CSTA is the abstraction layer used by Microsoft for call control within LCS.
  • Computer telephony integration (CTI) protocol—CTI allows PCs and IP telephones to interact.
  • Cisco Unified Presence Server (CUPS)—CUPS is a CSTA/CTI gateway that lets CallManager and LCS interact.
  • Cisco IP telephone—This product is the actual handset device or software-based IP phone that you use as part of the Cisco IP telephony solution.
  • Office Communicator—This desktop application is responsible for LCS's end-user experience. Office Communicator is to LCS what Outlook is to Microsoft Exchange.

Now that you know the components, let's look at Figure 1 to see how they work together to manage the call flow between two internal extensions:

  1. John at extension 2509 wants to call Jane, who is at extension 2510. He uses Office Communicator's click-to-dial function to select extension 2510. Office Communicator then contacts LCS to notify it of the call.
  2. LCS sends a signal to CUPS to tell CallManager to place a call from John’s handset to Jane’s extension.
  3. CUPS forwards this signal to CallManager.
  4. CallManager makes the request as instructed.
  5. John’s handset goes off-hook and dials extension 2510.
  6. CallManager sees the call to extension 2510, and rings Jane’s phone.
  7. CallManager simultaneously notifies CUPS of the incoming call.
  8. CUPS sends a signal to LCS to notify it of the call.
  9. LCS signals Jane's Office Communicator of the incoming call, which then presents a “piece of toast” (aka pop-up) on Jane's desktop.
  10. Jane picks up her phone (either by picking up the handset or clicking the "toast" pop-up), which notifies CallManager that the call session is underway.
  11. CallManager notifies CUPS of the completed call.
  12. CUPS passes the notification along to LCS.
  13. LCS shows John’s presence in Office Communicator as In a Call.
  14. LCS shows Jane’s presence in Office Communicator as In a Call.
  15. John can finally ask Jane what she is doing for lunch!

That might seem like a lot of steps, but this process happens almost instantaneously. Setting up the components to make it happen is a little trickier.

Configuring CallManager and CUPS
First, take a look at CallManager's configuration requirements. CallManager 5.x runs on a Linux OS secured by Cisco. CallManager administrators are allowed limited access to the command-line interface, and most administrative functions are performed via the Cisco Unified CallManager Administration Web console. CallManager is responsible for all call processing and interaction with other telephony-related applications, such as voice mail and presence servers.

When enabling IP telephony and LCS integration, you must first create a SIP trunk, which acts as the communication channel between CallManager and the CUPS gateway and lets CUPS monitor the receiving telephone. To create the SIP trunk, you must first connect to either the CallManager server's IP address or Fully Qualified Domain Name (FQDN). At the CallManager administration console, click Devices and select Trunks from the drop-down menu. As you can see in Figure 2, the Trunk Configuration tab has many fields, most of which are populated by default. However, you need to specify the CUPS server's FQDN as the destination address and 5060 (unsecured SIP) as the destination port.

To create the other side of the SIP trunk, connect to the CUPS server's IP address or FQDN using a Web browser. Then, select CallManager Presence Gateway from the Cisco Unified Presence Server drop-down list, which is displayed on CUPS administrative Web site, and specify the CallManager server's IP address and FQDN.

After you've created the SIP trunk, you need to assign each user and any associated phones to a presence group, complete the licensing for CUPS by importing the license file supplied by Cisco, and configure the dialing rules, conference bridge, and so on. You can configure the licensing for CUPS using the Licensing drop-down under System on the CUPS administrative Web site. Presence groups are configured on CallManager's Phone Configuration tab ( Figure 3) and are used to allow and block access to user presence information. The default presence group is Standard Presence, which lets all users access presence data.

Dialing plans and conference bridges are typically configured by your phone systems administrator in CallManager. A dialing plan that's incorrectly configured can wreak havoc on your phone system.

Configuring LCS
Next, you need to configure LCS and Office Communicator to work with CUPS and CallManager. So far, we've configured communications between CallManager and CUPS, but LCS still isn't aware of the CUPS server, so any information that comes to LCS from the CUPS server will be dropped.

First, you need to let LCS know about the hop in the call flow to the CUPS server by entering the CUPS server's IP address into the IP address field of the Edit Static Route dialog box in the Microsoft Management Console (MMC) LCS snap-in, as shown in Figure 4. Note that the route uses TCP port 5060 as opposed to 5061 because most communication will take place on an internal, secure network. Port 5060 is unsecured SIP; port 5061 is encrypted Transport Layer Security (TLS).

Next, configure LCS to authorize communications to and from the CUPS server. To do so, you must use the Edit Authorized Host dialog box in the MMC LCS snap-in (shown in Figure 5) to specify the properties of the LCS pool that will connect to the CUPS server. Typically, the pool is either an LCS standard server or enterprise pool.

Then, add telephone extensions to LCS users' account profiles in AD. To do so, open the LCS-supplied MMC Active Directory Users and Computer snap-in. For each user, open the User Advanced Settings dialog box, which Figure 6 shows. Select Enable Remote Call Control, and enter the user's phone extension in the form of tel:xxxx in the TEL URI field (where xxxx represents the user's extension) as well as any additional configuration strings. Then, enter the SIP address for the user’s extension into the Remote Call Control SIP URI field. The SIP address is typically the user's extension followed by the @ symbol and then by the CUPS server's FQDN or IP address. For example, my Remote Call Control SIP address is sip:265@172.18.1.114.

Next, configure Office Communicator to recognize the remote call control features. By default, phone integration is disabled in Office Communicator because many companies use the application only for IM and nontelephony collaboration. However, you can enable phone integration by changing the registry on each end user's machine. Alternatively, you can load the communicator.adm administrative template (which is bundled with Office Communicator) into AD and push out phone control via a Group Policy Object (GPO) by enabling the GPO setting Enable Call Control in either the User or Computer settings. No matter which way you enable phone integration, Office Communicator must be closed after any changes are made to the configuration for the changes to be applied.

Now, place a call to the extension that you configured for the Office Communicator user. The user should see “toast” similar to that shown in Figure 7 pop up if everything is correctly configured. Note that once a call begins (i.e., when the callee picks up), Office Communicator shows both the caller's and the callee's presence as being In a Call. Office Communicator, LCS, and CUPS will continue to monitor the status of the call until it's completed.

Office Communicator Call Features
One of my favorite Office Communicator features is location-based forwarding, in which calls are automatically forwarded to a prespecified phone. If someone calls while I'm away from my desk, Office Communicator automatically forwards the call to my cell phone. To configure this feature, select Actions, then Options. On the Phones tab, select Control call forwarding from Communicator and Location-based forwarding. Click Configure, select the When all of my computers running Communicator are idle, forward my calls to this number check box, and select the phone from the drop-down list (as Figure 8 shows).

Office Communicator also offers call reporting. With the IP telephony integration and the tight integration with Outlook and Exchange, if I miss a call or a call is forwarded from my desk phone to another phone, Office Communicator will send me an email message informing me of the missed call. I don’t have to scroll through a list of missed calls on my phone or pick up the phone to call the person back; I simply click the telephone number hyperlink in the email message and Office Communicator initiates the call via my desk phone.

Enhancing Your Company's Efficiency
Now that you know how to configure LCS, CallManager, and Office Communicator, you can begin implementing this UC solution within your company. LCS and IP telephony integration can make your organization more efficient and save time when trying to contact employees at your organization. In my next article, I'll explore what features are included with Microsoft's Office Communications Server 2007, the successor to LCS 2005.