This documentation is archived and is not being maintained.
Voice Mail In Your Inbox: Cisco Unity And Microsoft Exchange Make It Happen
At a Glance:
- Setting up Cisco Unity voice mail features
- Integrating Unity with Microsoft Exchange
- Planning an integrated voice mail deployment
We've been hearing about voice/data convergence for several years now. Many organizations have taken the leap to reduce long-distance phone charges between offices, most often in the form of voice over Frame Relay (or similar transport).
However, up-front costs, long private branch exchange (PBX) leases, and general resistance from those more comfortable with traditional voice services have slowed desktop IP telephony deployments. As compelling as a fully converged network may be, most businesses are not yet ready to commit.
One converged technology that should not be overlooked is unified messaging. This can take several forms, but is most often thought of by its end result voice mail and fax messages in a user's e-mail Inbox. An organization need not deploy a full IP telephony infrastructure to take advantage of unified messaging.
Introducing Unified Messaging and Cisco Unity
Simply put, unified messaging is the storage of multiple forms of communication in one central location. From this central location, messages can be retrieved and manipulated in nontraditional ways. For example, think about checking your e-mail and finding a voice message from an important client. Imagine being on the road and having your e-mail messages read to you in order of urgency. Consider retrieving a fax message by redirecting it to a fax machine at your hotel business center. All of these scenarios and more are possible with a unified messaging system.
One of the premier unified messaging products is Cisco Unity. Cisco acquired Unity from Active Voice in 2000 in order to add a voice mail solution to Cisco's suite of IP communication products. Since that acquisition, Unity has seen a series of upgrades and improvements. Currently at version 4.0, Cisco Unity excels in delivering advanced voice messaging services and can interface with Microsoft® Exchange versions 5.5, 2000, and 2003, as well as with Lotus Domino.
Even though Unity is tightly integrated with other Cisco IP telephony products, it does not have a dependency on IP telephony and can be deployed in traditional PBX environments. An administrator simply needs to install one or more Intel Dialogic voice cards in the Unity server to allow it to communicate with the existing PBX. Cisco's Web site, provides step-by-step guides for integrating Unity with various vendor systems.
Unity comes in two flavors: Unity Voice Mail and Unity Unified Messaging. Since Unity Voice Mail is a standalone product that does not integrate with other e-mail systems, I will not cover it here.
Cisco Unity and Microsoft Integration Points
Cisco Unity requires several important Microsoft technologies in order to function. At first glance, the implementation of Unity may appear daunting. For starters, the product extends Active Directory® with custom schema extensions, binds itself to a Global Catalog server, and requires robust name resolution services. These requirements alone should indicate the importance of thorough planning.
Unity needs to extend three Active Directory schema classes (User, Group, and Contact) and create a new class of its own—the Unity Location class. The Unity installation CD contains an application called ADSchemaSetup that imports the necessary .ldf files into Active Directory.
Cisco provides excellent documentation on the exact number of schema extensions as well as on the potential impact on your Active Directory database size. For example, Cisco records and stores each user's spoken name in Active Directory. Depending on the codec you choose for audio compression, this could be 20KB per user. (See the "Codecs" sidebar for further information.)
Cisco recommends that you plan for a 10-15 percent increase in the size of your Active Directory database after implementing Unity. If you are one of those people who enjoy running ADSIEDIT every now and then, you will appreciate Cisco's naming standard: all attributes start with "cisco". Keep in mind that the Cisco schema extensions should only be run after Active Directory has been updated for Exchange 2000 or 2003 (forestprep). For more information about making this process as seamless as possible, see "15 Tips For A Smooth Migration to Exchange Server 2003" in this issue of TechNet Magazine.
Unity also needs a well-configured Active Directory replication topology for reliable operation. Unity uses Active Directory much like Exchange does, and that means that the Global Catalog server is of utmost importance. Unlike Exchange, which can tolerate the loss of a "favorite" Global Catalog or directory server, Unity must be manually reconfigured in such a situation. This is a relatively minor point if you know about it ahead of time, but it could cost you hours of troubleshooting otherwise.
While we are on the subject of Active Directory, it is important to note that while Unity requires Active Directory for numerous operations, it does not query the Active Directory database as often as you might think. Unity instead stores most of the information about subscriber mailboxes and system configuration in its own SQL database. This is stored locally on the Unity server, and only relevant portions are synchronized with Active Directory using a Cisco-supplied replication agent.
To use Unity, you'll have to choose a compression codec. A codec is a compression scheme that handles compression/decompression of large files to minimize bandwidth and storage requirements. Cisco Unity supports a number of different codecs for compressing voice messages, with G.711 and G.729a among the most popular.
G.711 is often considered the standard audio codec, since it is used on the public switched telephone network (PSTN) and in many traditional PBXs. G.711 provides excellent voice quality while offering modest compression over raw audio files.
G.729a is a more advanced codec that offers incredible compression while incurring only limited sound-quality degradation. Most casual users cannot tell the difference between these two codecs, though you might find that audiophiles may complain of slight distortions in G.729a compressed audio.
A simple comparison of a one-minute voice message using each codec yielded these results for me: using G.711, the message file size was 480KB; using G.729a, the same message had a file size of only 60KB.
There are many factors to consider when choosing an appropriate audio codec. One of the most important factors when integrating Unity with Exchange is Exchange's mailbox storage limits. The Exchange information store treats Unity messages the same as other messages, meaning that users who exceed their storage limits may be unable to receive voice messages. If you have restrictive storage limits for your users due to server consolidation or hardware limits, G.729a may be your best choice.
Cisco decided upon this strategy for multiple reasons, the most important being the fault-tolerant nature of maintaining a local database. Imagine a scenario where your Exchange or Active Directory servers are down for maintenance. While you might be able to warn internal users about an impending outage, there is nothing to stop an outside caller from leaving a message for a company employee. In this situation, the Unity server has enough information about the employee's mailbox to accept the message and store it until the Exchange or Active Directory servers are back online.
The flavor of SQL used by Unity is primarily dependent on the number of voice ports deployed. If your Unity server has 32 or fewer voice ports, then Unity will configure a local MSDE 2000 database. If it has more than 32 ports or a failover configuration is required, Unity will install a local copy of SQL Server™ 2000. This installation on the Unity server is only intended to support Unity; any other usage violates the terms of the Unity license agreement.
Another integration point is Unity's use of DNS and WINS. To communicate with your Exchange and Active Directory servers, the Unity server must be pointed to the dynamic DNS servers that support your Active Directory environment. Unity can then query for service records (SRV) of relevant directory servers in the enterprise. WINS is required for environments still running Windows NT® domains, although it is also highly recommended for Active Directory environments.
Unity puts a real-time load on an Exchange infrastructure, so the performance of your Exchange infrastructure is something else to consider even before adding Unity to the mix. Unlike e-mail where delays are often acceptable, a big delay (such as silence) when a user calls in to receive their voicemail can give a user the impression that the messaging system is broken. Thus, you should run the Exchange performance tools to see how the system is responding. If you see log stalls, poor disk performance, or high CPU usage, you may want to upgrade the servers, add memory, or look at alternative storage options.
This evaluation process should be performed on each Exchange server, depending on the mail policies in place, as the performance from server to server may vary quite a bit. Mail policies, or the lack thereof, can have a big effect on the performance of Exchange servers. Given the way that Unity indexes messages in a user's Inbox, a large Inbox can be problematic. Without mail policies in place, Exchange performance may not be deterministic.
You should also keep in mind that Cisco typically sells to the voice and telecom IT pros. As Exchange is usually managed by the server and application IT pros, you can run into a train wreck if these departments don't talk. Make sure they do.
Outlook and Voice Mail Integration
The final integration point I will discuss in this article is the client-side component known as Unity ViewMail for Outlook® (VMO). ViewMail is used to present a voice mail playback applet inside e-mails that contain a voice message. The ViewMail playback control panel is shown in Figure 1.
Figure 1 The ViewMail Playback Control
Using the playback controls, a user can play, pause, increase or decrease volume, and adjust the speed of a message. The ability to speed up or slow down a voice message with the click of a mouse is a powerful feature and one that I use frequently, especially for long messages or a message that I need to hear more slowly. Even at the maximum compression settings, the voice quality remains amazingly good.
While Outlook can play voice messages without using ViewMail, the experience is much less robust. A user who checks her e-mail from a version of Outlook without ViewMail must click on the attached WAV file and listen to it played back in the system default media player. This method works just fine, but does not offer the rich functionality of ViewMail. Also, when you use the ViewMail controls to play a voice message, the data is streamed over the network instead of the "download and play" experience of a WAV file.
ViewMail comes packaged as a Microsoft Installer file that lends itself to deployment via Active Directory Group Policy or Systems Management Server (SMS). Alternatively, this small application can be packaged and deployed simultaneously with a new install of Office 2003 using the Office 2003 Resource Kit. Regardless of how you deploy ViewMail, it will surely become a welcome addition to Outlook.
Unity Deployment: Real World Experience
My company deployed Cisco Unity earlier this year as part of a full desktop IP telephony upgrade. Having been involved in the deployment, and now living with the technology on a daily basis, I feel qualified to offer some useful suggestions for your Unity implementation.
The planning phase is arguably the most important in any project, Unity included. As in carpentry, a good rule of thumb is to measure twice, cut once.
Depending on the size of your organization, Unity may bring together teams that otherwise might not work together: the Telco team, the Active Directory team, and the Exchange team. Cisco publishes an excellent "Unity Design Guide" that covers topics such as how Unity works, PBX integration, Windows domain considerations, and even how to construct an RS-232 Cable (needed to interface with many PBXs). I recommend making this document the foundation of your implementation and ensuring that all team members have a thorough understanding of its contents.
Another priority project component is training. The IT staff will need training on how to administer the new system, although it is surprisingly intuitive for first-time users. I would also suggest a round of training with the user community.
Unity offers an amazing array of features that may be overlooked if users are not trained on how to use the new system. It is particularly important to train users on the Cisco Personal Communications Assistant Web console, whose main screen is shown in Figure 2.
Figure 2 Cisco Unity Personal Communications Assistant
From this console, users can access a wide array of features that would otherwise require navigating a complex set of phone menus. Educating users on this interface will enable them to take advantage of advanced unified messaging features while also reducing unnecessary help desk calls.
One of my favorite Unity features is text-to-speech (TTS). This feature allows me to call my office remotely and listen to my e-mail messages, which saves both time and money trying to find wireless hotspots to synchronize e-mail.
One unintended consequence of TTS is the comic relief it provides when it reads some of those obnoxious spam messages (you know the ones I am referring to). While this may be funny to most people, it may offend a few, which is one more reason to step up your anti-spam efforts. If you have not done so already, I would recommend investigating the Microsoft Intelligent Message Filter for Exchange Server 2003. This product is available at no charge to organizations running Exchange Server 2003, and does an excellent job of blocking nearly all unwanted spam messages with very few false-positives.
Another Unity feature that complements TTS is the ability to reply with a voice message to an e-mail. I commonly reply over the phone to e-mail messages read to me by the Unity TTS feature. This capability extends to non-Unity users as well, with the recipient receiving the voice message as a WAV file attachment.
One missing link in this feature is the ability to insert a brief statement into a reply message to alert the recipient that the actual message is contained in the attached WAV file. The current version of Unity simply delivers the original message as is, with the only addition being a WAV file attachment. Users not expecting this type of reply may be confused and delete the message, thinking it was left in error. I hope that Cisco will address this shortcoming in a future release of Unity. Until that time, include this tidbit in your user training to head off potential problems.
Finally, a robust Unity backup and restore design is of utmost importance given the value most businesses place on voice messages. Cisco includes a utility called Cisco Unity Disaster Recovery Tool (known as DiRT) that is designed to aid in migrations from one version of Unity to another. While this utility can be used for daily backup and restore activities, Cisco recommends that you invest in additional software for this purpose. To fully protect the Unity server, you will need to acquire software agents to back up both the Windows OS and the SQL Server 2000 database.
If a full server failure occurs, be sure to hang on to the network interface card (NIC) from the failed server. This is because the Unity license is tied to the MAC address on the NIC in your original server. If the original NIC is embedded on the system board or cannot be moved for some other reason, allow time to contact Cisco and have them reissue a license key for the replacement server. This scenario should be included in the Unity recovery section in your Disaster Recovery documentation.
Being able to check e-mail, voice mail, and faxes from anywhere on any device is a powerful capability, one which I cannot imagine living without. If you would like to learn more about deploying Unity within your organization, Cisco maintains a wealth of marketing and technical information on their Web site at Cisco Unity.