White Paper: Testing and Troubleshooting Unified Messaging - Part 5

 

Jon Hoerlein, Technical Writer, Microsoft Exchange Server

September 2007

Summary

This white paper provides detailed information about testing and troubleshooting your Unified Messaging environment. This information is important whether you are validating the successful installation of the Unified Messaging server role, testing Unified Messaging functionality, or investigating problems in your Unified Messaging environment.

Applies To

Microsoft Exchange Server 2007

Table of Contents

  • Introduction

  • Testing Unified Messaging Server Functionality

    • How to Test Unified Messaging Server Operation

    • How to Test Unified Messaging Server Connectivity to IP Gateways and PBXs

  • Testing a Unified Messaging Server with the Unified Messaging Test Phone

    • How to Set Up the Unified Messaging Test Phone

    • Configuring Exchange Unified Messaging Test Phone Options

    • How to Test Call Answering Functionality with the Unified Messaging Test Phone

    • How to Test Subscriber Access Functionality with the Unified Messaging Test Phone

    • How to Test Auto Attendant Functionality with the Unified Messaging Test Phone

    • How to Test TLS Functionality by Using the Unified Messaging Test Phone

    • How to Debug Unified Messaging with the Unified Messaging Test Phone

  • Troubleshooting Unified Messaging

    • Troubleshooting Unified Messaging Using Event Viewer

    • Troubleshooting Unified Messaging Using Tracing

    • Troubleshooting Unified Messaging by Monitoring Performance

  • Appendix 1: Test-UMConnectivity Cmdlet Syntax and Description

  • Conclusion

Introduction

This white paper provides detailed information about testing and troubleshooting your Unified Messaging environment. This information is important whether you are validating the successful installation of the Unified Messaging server role, testing Unified Messaging functionality, or investigating problems in your Unified Messaging environment.

Objectives and acknowledgements Much of the information in this white paper originally appeared as individual Help topics in the Exchange Server 2007 Help. In this white paper, we have consolidated this information to provide an end-to-end, printable guide that you can use to test and troubleshoot Unified Messaging.

Note

To print this white paper, click Printer Friendly Version in your Web browser.

The content of this white paper is divided into the following sections:

  • Testing Unified Messaging Server Functionality

  • Troubleshooting Unified Messaging

Return to top

Testing Unified Messaging Server Functionality

After you install the Unified Messaging server role on a computer that is running Microsoft Exchange Server 2007 and enable and configure Unified Messaging (UM), you can use multiple diagnostic tests and a software-based telephone application to test telephony connectivity and the operation of the Unified Messaging server. This section gives you information about the Test-UM Connectivity cmdlet and the UM Test Phone that are used for testing the functionality of a Unified Messaging server.

Note

Although it is important to perform these tests immediately after installing, enabling, and configuring Unified Messaging, performing these tests is also an important part of a proactive monitoring strategy. Additionally, performing these tests is helpful when you are troubleshooting problems in your Unified Messaging environment.

Overview of the Test-UMConnectivity Cmdlet

There are three diagnostic tests that can be used to test the functionality of an Exchange 2007 Unified Messaging system and a Unified Messaging server: Local, Local with a TUILogon, and Remote. The Test-UMConnectivity cmdlet can be used to check connectivity to Unified Messaging servers in several ways, depending on the parameters that are used with the cmdlet. For testing Unified Messaging functionality, there are three tests:

  • Local   The Test-UMConnectivity cmdlet verifies VoIP communication with the Unified Messaging server that is running on the same local computer.

  • Local with TUIlogin   The Test-UMConnectivity cmdlet tries to establish VoIP communication with the Unified Messaging server that is running on the same computer. If it connects, it tries to log on to one or more UM-enabled mailboxes by sending the extension number and PIN of the mailbox. If the –TUILogin parameter is supplied, the following parameter values must also be supplied for the test to complete successfully. You must supply the following parameters with the appropriate information for the test mailbox:

    • –Phone   This parameter must contain the extension number for the test mailbox.

    • –PIN   This parameter must contain the PIN of the UM-enabled mailbox.

    • *–UMDialPlan   *This parameter must contain the dial plan that is associated with the test mailbox.

    When you use this diagnostic test, you must create a test mailbox by using the New-TestCasConnectivity.ps1 script that is located in the %ExchangeRoot%\Scripts folder. Mailboxes that are created by using this script can also be used for other kinds of connectivity testing, for example, with Microsoft Exchange ActiveSync. When you create the test mailbox, you have the option to also UM-enable the test mailbox by specifying the -UMDialPlan and -UMExtension parameters. If you have already created the test mailbox but did not UM-enable it, you can use the Enable-UMMailbox cmdlet or the Exchange Management Console to UM-enable the test mailbox.

    If the –TUILoginAll parameter is supplied with the Test-UMConnectivity cmdlet, the Test-UMConnectivity cmdlet will attempt to log on to each Client Access server connectivity test mailbox that was created by using the New-TestCasConnectivityUser.ps1 script in the current Active Directory site.

  • Remote   The Test-UMConnectivity cmdlet tries to connect to a remote Unified Messaging server by placing a call through an IP/VoIP gateway. After it connects, it will perform connectivity checks on the remote Unified Messaging server and the media paths.

For more information about the syntax and parameters used with the Test-UMConnectivity cmdlet, see "Appendix 1: Test-UMConnectivity Cmdlet Syntax and Description" later in this white paper.

Overview of the UM Test Phone Application

The software-based UM Test Phone application is also available to test and troubleshoot connectivity for Unified Messaging. The UM Test Phone (ExchangeUMTestPhone.exe) is included on the Exchange Server 2007 installation DVD.

To learn about the diagnostic tests that can be performed on a Unified Messaging server, see the following sections later in this white paper:

  • How to Test Unified Messaging Server Operation

  • How to Test Unified Messaging Server Connectivity to IP Gateways and PBXs

  • Testing a Unified Messaging Server with the Unified Messaging Test Phone

Return to top

How to Test Unified Messaging Server Operation

This section explains how to use the Exchange Management Shell to test the operation of a computer that is running Microsoft Exchange Server 2007 that has the Unified Messaging server role installed. When you perform one of the following procedures, the Unified Messaging (UM) server initiates a diagnostic Session Initiation Protocol (SIP) call, and then returns a health state variable of the UM server.

Note

This diagnostic test can be run only on a local UM server.

Before You Begin

To perform this procedure, the account you use must be delegated the Exchange Server Administrator role and membership in the local Administrators group for the target server.

For more information about permissions, delegating roles, and the rights that are required to administer Exchange Server 2007, see Permission Considerations.

To use the Exchange Management Shell to test the operation of the Unified Messaging server

  • Run the following command:

    Test-UMConnectivity -ListenPort 5060
    

    Note

    Use mode 1 when the -UMIPGateway parameter is not specified.

    Note

    You can set the -Timeout parameter with a value of less than 5 seconds. However, we recommend that you always configure this parameter with a value of 5 seconds or more.

For more information about the syntax and parameters used with the Test-UMConnectivity cmdlet, see "Appendix 1: Test-UMConnectivity Cmdlet Syntax and Description" later in this white paper.

For more information about how to test the Unified Messaging server and related telephony components, see "How to Test Unified Messaging Server Connectivity to IP Gateways and PBXs" later in this white paper.

Return to top

How to Test Unified Messaging Server Connectivity to IP Gateways and PBXs

This section explains how to use the Exchange Management Shell to test the operation of a Microsoft Exchange Server 2007 Unified Messaging (UM) server and related connected telephony equipment. When an administrator performs one of the following procedures, the UM server tests the full end-to-end operation of the UM system. This includes the telephony components connected to the UM server, including IP gateways, Private Branch eXchanges (PBXs), and cabling.

Note

This diagnostic test can be run only on a local UM server.

Before You Begin

To perform this procedure, the account you use must be delegated the Exchange Server Administrator role and membership in the local Administrators group for the target server.

For more information about permissions, delegating roles, and the rights that are required to administer Exchange Server 2007, see Permission Considerations.

Also, before you perform these procedures, confirm the following:

  • A UM dial plan has been created.

  • A UM mailbox policy has been created.

    Note

    You cannot test the operation of the UM server by using the Exchange Management Console.

To use the Exchange Management Shell to test the operation of the Unified Messaging server and telephony components

  • Run the following command:

    Test-UMConnectivity -ListenPort 5060 -UMIPGateway MyIPGateway
    

    Note

    Use mode 2 when the ­UMIPGateway parameter is specified in the command line syntax.

    Note

    You can set the -Timeout parameter with a value of less than 5 seconds. However, we recommend that you always configure this parameter with a value of 5 seconds or more.

For more information about the syntax and parameters used with the Test-UMConnectivity cmdlet, see "Appendix 1: Test-UMConnectivity Cmdlet Syntax and Description" later in this white paper.

Return to top

Testing a Unified Messaging Server with the Unified Messaging Test Phone

After you install, enable, and configure Unified Messaging (UM) on a computer that is running Microsoft Exchange Server 2007, you can use the Exchange UM Test Phone application (ExchangeUMTestPhone.exe) to help you test the overall operation and functionality of the Exchange 2007 computer that has the Unified Messaging server role installed. You can use these tests to isolate problems that occur or to help you troubleshoot Unified Messaging.

The Exchange UM Test Phone application is a software-based telephone (softphone) application that is designed to interface with the Realtime Communication (RTC) media and Session Initiation Protocol (SIP) stacks on a Unified Messaging server. The Exchange UM Test Phone application simulates a telephone call, but the call is placed from a client computer that uses SIP and Realtime Transport Protocol (RTP) instead of from a telephone. You can use the calls placed to the Unified Messaging server to test the functionality of the Unified Messaging server without deploying or configuring an IP/VoIP gateway or a Private Branch eXchange (PBX).

Getting Started with the Exchange UM Test Phone

There are multiple setup steps that you must complete before you run the Exchange UM Test Phone application and test a Unified Messaging server. This section describes how to use the UM Test Phone to test Exchange 2007 Unified Messaging features. For more information about how to set up and configure the Exchange UM Test Phone, see the following sections later in this white paper:

  • How to Set Up the Unified Messaging Test Phone

  • Configuring Exchange Unified Messaging Test Phone Options

Unified Messaging Feature Testing

There are three UM operational modes or features available in Unified Messaging that you can test by using the Exchange UM Test Phone: call answering, subscriber access, and auto attendant. For more information about the tests that you can perform when you use the Exchange UM Test Phone, see the following sections later in this white paper:

  • How to Test Call Answering Functionality with the Unified Messaging Test Phone

  • How to Test Subscriber Access Functionality with the Unified Messaging Test Phone

  • How to Test Auto Attendant Functionality with the Unified Messaging Test Phone

  • How to Test TLS Functionality By Using the Unified Messaging Test Phone

Debugging a Unified Messaging Server with the UM Test Phone

You can use the Exchange UM Test Phone application to debug a Unified Messaging server. When you debug a Unified Messaging server, you must prevent Microsoft .NET from optimizing the binaries during the just-in-time (JIT) process. For more information about how to prevent .NET from optimizing the binaries during the JIT process, see "How to Debug Unified Messaging with the Unified Messaging Test Phone" later in this white paper.

Return to top

How to Set Up the Unified Messaging Test Phone

This section explains how to manually install and configure the Exchange UM Test Phone application on a server that is running Microsoft Exchange Server 2007 that does not have the Unified Messaging server role installed or on a client computer. You can use the Exchange UM Test Phone to test the functionality of specific Unified Messaging features such as call answering, subscriber access, and auto attendants.

Before You Begin

Before you can run the Exchange UM Test Phone application, you must set up and configure the client computer by installing the appropriate audio devices, audio drivers, speakers, and a microphone. The Exchange UM Test Phone application streams the audio to the audio devices that are configured on the client computer from the Unified Messaging server. Verify that these devices are connected and working correctly before you run the Exchange UM Test Phone application on a client computer.

Note

If you are using a Unified Messaging server with multiple network adapters or you have multiple IP addresses bound to a single network adapter and you are experiencing intermittent problems, you may have to change the binding order of the network adapters or change the order of the IP addresses to correct these issues.

To perform this procedure, the account you use must be delegated the Exchange Organization Administrator role.

For more information about permissions, delegating roles, and the rights that are required to administer Exchange Server 2007, see Permission Considerations.

Important

When you are testing the functionality of a 64-bit Unified Messaging server, you must copy the required files from a 64-bit Unified Messaging server. However, you can only test the functionality of a 64-bit Unified Messaging server from a 64-bit client computer or a server that is not running the Unified Messaging role.

To configure a Unified Messaging server that is using either the 32-bit or 64-bit version of Exchange Server 2007

  1. Install the Exchange Server 2007 Unified Messaging server role.

    Note

    You can install the Unified Messaging server role on an Exchange 2007 computer on which a different server role is currently installed, or you can install the Unified Messaging server role on a separate computer in the same Exchange 2007 organization.

  2. Open Active Directory Users and Computers to create a new user. When you create the user, do not create an Exchange mailbox.

  3. From the Start menu, open the Exchange Management Console.

  4. In the console tree, expand Recipient Configuration, click Mailbox, and then select Enable Mailbox from the Action pane.

  5. From the Start menu, open the Exchange Management Shell.

  6. Create the following Unified Messaging objects by using the Exchange Management Shell:

    • Run the following cmdlet to create a new Dial Plan object: New-umdialplan -name dp -Num 5

    • Run the following cmdlet to create a new UM IP gateway: New-umipgateway -name ip -ipaddress <ipaddress>

      Important

      When you are configuring the IP gateway, the IP address for the object is the IP address of the computer on which the Exchange UM Test Phone application is installed.

    • Run the following cmdlet to create a new Hunt Group object: New-umhuntgroup -name hg -ipgateway ip -umdialplan dp - Pilotidentifier <phonenumber>

    • Run the following cmdlet to create a new Mailbox Policy object: New-ummailboxpolicy -name p1 -umdialplan dp

    • Run the following cmdlet to create a new Auto Attendant object: New-umautoattendant -name AA -umdialplan dp -PilotIdentifierList <phonenumber>

    • Run the following cmdlet to enable a mail-enabled recipient for Unified Messaging: Enable-ummailbox -id <smtpaddress> -ummailboxpolicy p1 -extensions 12345

      Note

      The SMTP address is the SMTP address for the user that was created in the previous step.

    • Run the following cmdlet to add or associate the Unified Messaging server with a dial plan that was created: Set-umserver -identity <servername> -dialplan dp

Setting Up and Configuring the UM Test Phone on a 32-bit Version of Exchange Server 2007

The Exchange UM Test Phone application files are copied to the Unified Messaging server when the Unified Messaging server role is installed. However, the dynamic link library (DLL) files that are copied are located in the global assembly cache, and you cannot view the contents of the global assembly cache by using Microsoft Explorer. The easiest way to copy these files to the appropriate location is to use the copy command at a command prompt.

Important

You do not have to perform the manual setup steps in the following section if you are running the Exchange UM Test Phone application on the local Unified Messaging server.

To set up and configure the Exchange UM Test Phone on a client computer

  1. Install the 32-bit Microsoft .NET Framework 2.0 on the client computer that will run the Exchange UM Test Phone application.

  2. The following list shows the files that you must copy to a local folder on the client computer:

    • <%windir%>\assembly\GAC_32\Microsoft.Collaboration.Media\MediaVersionNumber\Microsoft.Collaboration.Media.dll

    • <%windir%>\assembly\GAC_MSIL\Microsoft.Collaboration\CollaborationVersionNumber\Microsoft.Collaboration.dll

    • <%windir%>\assembly\GAC_32\SIPEPS\SipsepsVersionNumber\SIPEPS.dll

    • Exchange Server\bin\exchmem.dll

    • Exchange Server\bin\extrace.dll

    • Exchange Server\public\Microsoft.Exchange.Common.dll

    • Exchange Server\bin\Microsoft.Exchange.Data.Common.dll

    • Exchange Server\bin\Microsoft.Exchange.Diagnostics.dll

    • Exchange Server\bin\Microsoft.Exchange.Net.dll

    • Exchange Server\bin\Microsoft.Exchange.Rpc.dll

    • Exchange Server\bin\ ExchangeUMTestPhone.exe

    Note

    For example, the CollaborationVersionNumber is 3.0.5861.0__31bf3856ad364e35 and the SipepsVersionNumber is 2.0.6017.0__31bf3856ad364e35 for the original release version of Exchange 2007.

  3. In the Exchange Server\bin\ folder, double-click ExchangeUMTestPhone.exe to open the Exchange UM Test Phone.

Setting Up and Configuring the UM Test Phone on a 64-bit Version of Exchange Server 2007

To set up and configure the Exchange UM Test Phone on a client computer

  1. Install the 64-bit Microsoft .NET Framework 2.0 on the client computer that will run the Exchange UM Test Phone application.

  2. The following list shows the files that you must copy to a local folder on the client computer:

    • <%windir%>\assembly\GAC_64\Microsoft.Collaboration.Media\ MediaVersionNumber\Microsoft.Collaboration.Media.dll

    • <%windir%>\assembly\GAC_MSIL\Microsoft.Collaboration\CollaborationVersionNumber\Microsoft.Collaboration.dll

    • <%windir%>\assembly\GAC_64\SIPEPS\SipepsVersionNumber\SIPEPS.dll

    • Exchange Server\bin\exchmem.dll

    • Exchange Server\bin\extrace.dll

    • Exchange Server\public\Microsoft.Exchange.Common.dll

    • Exchange Server\bin\Microsoft.Exchange.Data.Common.dll

    • Exchange Server\bin\Microsoft.Exchange.Diagnostics.dll

    • Exchange Server\bin\Microsoft.Exchange.Net.dll

    • Exchange Server\bin\Microsoft.Exchange.Rpc.dll

    • Exchange Server\bin\ ExchangeUMTestPhone.exe

    Note

    For example, the CollaborationVersionNumber is 3.0.5861.0__31bf3856ad364e35 and the SipepsVersionNumber is 2.0.6017.0__31bf3856ad364e35 for original release version of Exchange 2007.

  3. In the Exchange Server\bin\ folder, double-click ExchangeUMTestPhone.exe to open the Exchange UM Test Phone.

Return to top

Configuring Exchange Unified Messaging Test Phone Options

After you install the Unified Messaging server role on a computer that is running Microsoft Exchange Server 2007 and configure Unified Messaging, you can use the Exchange UM Test Phone application (ExchangeUMTestPhone.exe) to help you test the overall operation and functionality of the Unified Messaging (UM) server. The Exchange UM Test Phone application provides several options that you can configure when you are using the Exchange UM Test Phone to troubleshoot Unified Messaging. This section describes the options from the Exchange UM Test Phone Tools menu that are available for configuring the UM Test Phone.

Play File

Lets you use a .wav file voice inputs for the call. Use this option when you do not have a microphone configured on the client computer.

Clear Display

Clears the display of the user interface (UI).

Clear Log

Clears the entries of a log file.

Setup

Lets you configure IP addressing, extension numbers, the Session Initiation Protocol (SIP) port number, and logging options.

Server IP Address

Specifies the IP address of the UM server that you want to test.

Phone

Specifies the telephone number that you dial to connect to the UM server. This is the pilot identifier for the hunt group.

Caller ID

Specifies the user's mailbox extension.

Diversion

Sets the diversion header in the request. This is the auto attendant pilot number of the user's mailbox extension number.

Number

Specifies the number that is used in the diversion header.

Note

The Unified Messaging server uses the diversion header in the Call Answering and Auto attendant modes.

SIP Port

Specifies the SIP port number for the calls to the UM server.

Logging Options

File

Logs information about the call to a log file only.

UI

Logs information about the call to the UI only.

Both

Logs information about the call to the log file and to the UI.

Return to top

How to Test Call Answering Functionality with the Unified Messaging Test Phone

This section explains how to use the Exchange UM Test Phone application to test call answering functionality. The Exchange UM Test Phone application lets you test the functionality of specific Unified Messaging features such as call answering.

Before You Begin

Before you perform these procedures, confirm the following:

  • A valid Exchange recipient mailbox has been created and enabled for Unified Messaging.

  • A valid UM dial plan has been created.

  • A valid UM IP gateway has been created.

  • A valid UM hunt group has been created.

  • A valid UM mailbox policy has been created.

  • The UM server has been added to a UM dial plan.

  • The UM Test Phone application has been installed and correctly configured.

For more information about how to set up and configure the UM Test Phone application, see "How to Set Up the Unified Messaging Test Phone" earlier in this white paper.

To test UM Call Answering by leaving a voice mail message for a user

  1. Open the Exchange UM Test Phone application by double-clicking ExchangeUMTestPhone.exe.

  2. Enter the phone number that you are using to connect to the UM server. This number is the pilot number of the Hunt Group object. Alternatively, you can leave this field empty.

  3. In Diversion settings, select the Diversion option and enter the extension number of the user's mailbox in the Diversion number field.

  4. Click Make Call to place the call to the user's extension.

    Note

    In Call Answering mode, the Exchange UM Test Phone application sends the extension number for the user.

  5. When you are prompted, record the voice message by using the microphone or by playing a .wav file.

  6. In the user interface for the Exchange UM Test Phone application, click Hang Up to disconnect the call after you complete your call.

Return to top

How to Test Subscriber Access Functionality with the Unified Messaging Test Phone

This section explains how to use the Exchange UM Test Phone to test subscriber access functionality in Microsoft Exchange Server 2007 Unified Messaging. The Exchange UM Test Phone lets you test the functionality of specific Unified Messaging (UM) features such as subscriber access.

Before You Begin

Before you perform these procedures, confirm the following:

  • A valid Exchange recipient mailbox has been created and enabled for Unified Messaging

  • A valid UM dial plan has been created.

  • A valid UM IP gateway has been created.

  • A valid UM hunt group has been created.

  • A valid UM mailbox policy has been created.

  • The UM server has been added to a UM dial plan.

  • The UM Test Phone application has been installed and correctly configured.

For more information about how to set up and configure the UM Test Phone application, see "How to Set Up the Unified Messaging Test Phone" earlier in this white paper.

To test subscriber access to access a user's e-mail, calendar, and voice mail

  1. Open the Exchange UM Test Phone application by double-clicking ExchangeUMTestPhone.exe.

  2. Dial the subscriber access number for the UM dial plan.

  3. On the keypad in the user interface for the Exchange UM Test Phone, enter the extension number for the user.

  4. On the keypad in the user interface for the Exchange UM Test Phone, enter the PIN for the UM-enabled mailbox.

  5. Follow the menu prompts and use the microphone or the keypad to interact with the system.

Return to top

How to Test Auto Attendant Functionality with the Unified Messaging Test Phone

This section explains how to use the Exchange UM Test Phone application to test auto attendant functionality. The Exchange UM Test Phone application enables you to test the functionality of specific Unified Messaging features, such as the UM auto attendants that are created and configured with Unified Messaging.

Before You Begin

Before you perform these procedures, confirm the following:

  • A valid Exchange recipient mailbox has been created and enabled for Unified Messaging

  • A valid UM dial plan has been created.

  • A valid UM IP gateway has been created.

  • A valid UM hunt group has been created.

  • A valid UM mailbox policy has been created.

  • The UM server has been added to a UM dial plan.

  • The UM Test Phone application has been installed and correctly configured.

For more information about how to set up and configure the UM Test Phone application, see "How to Set Up the Unified Messaging Test Phone" earlier in this white paper.

To test a Unified Messaging auto attendant

  1. Open the Exchange UM Test Phone application by double-clicking ExchangeUMTestPhone.exe.

  2. Enter the telephone number that you are using to connect to the UM server. This number is the pilot number of the UM hunt group. Alternatively, you can leave this field empty.

  3. In Diversion settings, select the Diversion option, and then enter the user's auto attendant number in the Diversion number field.

  4. Click Make Call to place the call to the auto attendant.

    Note

    In auto attendant mode, the Exchange UM Test Phone application sends the extension number for the user.

  5. Follow the voice prompts.

  6. In the user interface for the Exchange UM Test Phone application, click Hang Up to disconnect the call after you complete your call.

Return to top

How to Test TLS Functionality by Using the Unified Messaging Test Phone

One of the most important ways to help protect your Microsoft Exchange Server 2007 Unified Messaging (UM) infrastructure and the network traffic that is generated by Unified Messaging is by using Mutual Transport Layer Security (MTLS). You can use MTLS to encrypt Session Initiation Protocol (SIP) traffic that is passed between IP/VoIP gateways, IP/PBXs, and other Exchange 2007 servers and the Unified Messaging servers on your network. Using MTLS to encrypt the SIP data helps protect this data.

After you have used the VoIPSecurity parameter on the Set-UMDialPlan cmdlet to enable VoIP security on the UM dial plan, all Unified Messaging servers that are associated with the UM dial plan will be configured to use secure mode. However, depending on the type of certificate that you use to enable MTLS, you must first import and export the required certificates on the Unified Messaging servers and the IP/VoIP gateways and IP/PBXs.

This sections explains how to use the UM Test Phone to test your MTLS configuration to make sure that it is functioning correctly.

Before You Begin

Before you can run the Exchange UM Test Phone application, you must set up and configure the client computer by installing the appropriate audio devices, audio drivers, speakers, and a microphone. The Exchange UM Test Phone application streams the audio to the audio devices that are configured on the client computer from the Unified Messaging server. Verify that these devices are connected and working correctly before you run the Exchange UM Test Phone application on a client computer. For more information about how to set up the UM Test Phone, see "How to Set Up the Unified Messaging Test Phone" earlier in this white paper.

To perform the following procedures, the account you use must be delegated the Exchange Organization Administrator role and membership in the local Administrators group on the computer that is running the UM Test Phone.

For more information about permissions, delegating roles, and the rights that are required to administer Exchange Server 2007, see Permission Considerations.

Also, before you perform these procedures, confirm the following:

  • The Microsoft Exchange Unified Messaging service is running in “SipSecured” mode.

  • If the Microsoft Exchange Unified Messaging service is using a self-signed certificate, the certificate should be exported from the Personal certificate store to a file, and then stored in a location that can be accessed from the host computer that is running the UM Test Phone application.

  • A UM dial plan has been created.

  • A UM auto attendant has been created.

  • The Unified Messaging server has been added to a UM dial plan.

  • The UM dial plan security mode is set to SipSecured.

  • The UM Test Phone application has been installed and configured correctly.

  • For more information about the different types of certificates that can be used with Unified Messaging, see Understanding Unified Messaging VoIP Security.

To generate a self-signed certificate for MTLS

  1. Open the Exchange UM Test Phone application by double-clicking \bin\ExchangeUMTestPhone.exe.

  2. In the Exchange UM Test Phone window, click Tools, and then click Setup.

  3. On the Setup page, under Call Security Settings, click SIP secured (TLS) to generate a self-signed certificate.

  4. Verify that the Personal certificate store on the host computer that is running the Exchange UM Test Phone application contains the self-signed certificate. Verify that a self-signed certificate was generated with the fully qualified domain name (FQDN) of the host as the subject name and that the intended purpose for the certificate is Server Authentication.

    Note   If the self-signed certificate is not generated, verify that you are a member of the local Administrators group.

  5. Export the self-signed certificate by using the Base-64 encoded X.509 (.CER) format.

  6. Follow the steps in the Certificate Export Wizard to export the certificate in the Base-64 encoded X.509 (.CER) format to a file, and then store the file in a location that can be accessed by the Unified Messaging server.

  7. Use the Certificate Import Wizard to import the self-signed certificate into the Trusted Root Certification Authorities store on the Unified Messaging server.

    Important

    A self signed certificate will not be generated if the UM Test Phone finds another certificate in the Personal certificate store that lists the FQDN of the host computer as the subject name and for which the intended purpose is Server Authentication.

    For more information about how to import and export certificates, see Import and Export Certificates.

To generate a request and import a PKI certificate

  1. Use the Request New Certificate wizard to generate a certificate request by using the FQDN of the host computer as the subject name and identify the intended purpose as Server Authentication. Use a certification authority (CA) that is configured on your network to issue a certificate for the request.

  2. Import the certificate into the Personal certificate store on the host computer that is running the Exchange UM Test Phone application.

  3. Import the trusted root certificate from the public key infrastructure (PKI) CA into the Trusted Root Certification Authorities store on the host computer that is running the Exchange UM Test Phone application.

    Important

    You can also use this procedure to generate a certificate request for a third-party or commercial certificate, and then import the certificate into the Personal certificate store on the host computer. However, Server Authentication must be identified as its intended purpose.

To test a Unified Messaging server in secure mode

  1. Open the Exchange UM Test Phone application by double-clicking \bin\ExchangeUMTestPhone.exe.

  2. In the Exchange UM Test Phone window, click Tools, and then click Setup.

  3. In Server Settings, type the host name of the Unified Messaging server in the Server Address field.

  4. Click the Make Call button to place the call to a Unified Messaging auto attendant. The Make Call button is a green telephone icon in the Exchange UM Test Phone window.

  5. Follow the voice prompts for the UM auto attendant.

  6. In the Exchange UM Test Phone application, click Hang Up to disconnect the call after you complete the test.

Return to top

How to Debug Unified Messaging with the Unified Messaging Test Phone

This section explains how you can use the Exchange UM Test Phone application to debug a computer running Exchange Server 2007 that has the Unified Messaging server role installed. However, when you are debugging a Unified Messaging (UM) server, you must prevent Microsoft .NET from optimizing the binaries during the just-in-time (JIT) process. To prevent .NET from optimizing the binaries during the JIT process, you must complete the steps outlined in this section on the Unified Messaging server.

Before You Begin

Before you perform these procedures, confirm the following:

  • A valid Exchange recipient mailbox has been created and enabled for Unified Messaging.

  • A valid UM dial plan has been created.

  • A valid UM IP gateway has been created.

  • A valid UM hunt group has been created.

  • A valid UM mailbox policy has been created.

  • The UM server has been added to a UM dial plan.

  • The UM Test Phone application is installed and correctly configured.

For more information about how to set up and configure the UM Test Phone application, see "How to Set Up the Unified Messaging Test Phone" earlier in this white paper.

To use the UM Test Phone to debug Unified Messaging

  1. Use a text editor to create the following .ini files in the \\Exchsrvr\bin directory:

    • Microsoft.Exchange.Common.ini

    • Microsoft.Exchange.Common.IpConnectionPool.ini

    • Microsoft.Exchange.UM.ClientAccess.ini

    • Microsoft.Exchange.UM.MSSPlatform.ini

    • Microsoft.Exchange.UM.UMCommon.ini

    • Microsoft.Exchange.UM.UMCore.ini

    • Microsoft.Exchange.UM.UMDiagnostic.ini

    • Microsoft.Exchange.UM.UMMsg.ini

    • Microsoft.SpeechServer.Common.ini

    • Microsoft.SpeechServer.Log.Schema.ini

  2. Open each of the .ini files and make sure that the following lines appear. If the following lines do not appear, insert them in the .ini file and save the file with the same name.

    [.NET Framework Debugging Control]

    GenerateTrackingInfo=1

    AllowOptimize=0

    Open the UMRecyclerConfig.xml file in the \\Exchsrvr\bin directory by using a text editor. Adjust the following values to prevent the Exchange Unified Messaging service from restarting while in debugging mode:

    Heartbeatinterval = 0

    Recycleinterval =0

    Resourcesmonitorinterval=0

  3. Restart the Exchange Unified Messaging service.

  4. Use the Exchange UM Test Phone application to place a call.

For more information about how to place a call by using the Exchange UM Test Phone, see the following sections earlier in this white paper:

  • How to Test Subscriber Access Functionality with the Unified Messaging Test Phone

  • How to Test Call Answering Functionality with the Unified Messaging Test Phone

Return to top

Troubleshooting Unified Messaging

It is important to resolve problems in your Unified Messaging system as soon as possible. Although you can troubleshoot Unified Messaging functionality by running the Test-UnifiedMessaging cmdlet and by running using the Unified Messaging Test Phone feature, additional troubleshooting methods may be required to resolve a problem.

This section includes the following information about troubleshooting Unified Messaging:

  • Troubleshooting Unified Messaging Using Event Viewer

  • Troubleshooting Unified Messaging Using Tracing

  • Troubleshooting Unified Messaging by Monitoring Performance

For more information about the tools you can use to test Unified Messaging functionality, see "Testing Unified Messaging Server Functionality" earlier in this white paper.

For more information about other troubleshooting tools that are available, see Tools for Troubleshooting.

Troubleshooting Unified Messaging Using Event Viewer

You can use Event Viewer to view and manage the event logs, gather information about hardware and software problems, and monitor Unified Messaging error and events. Although Event Viewer is a Microsoft Windows operating system tool and not a Microsoft Exchange tool, Event Viewer is useful when you troubleshoot problems with Unified Messaging. By default, diagnostic logging is enabled but set to the lowest level. However, if you are troubleshooting an issue on a Unified Messaging server, you may have to increase the diagnostic logging level to help you locate the source of the problem. Event Viewer maintains logs about program, security, and system events on your computer. These logs include errors and events that occur on a Unified Messaging server.

How to Increase the Diagnostic Logging Levels on Unified Messaging Components

This section explains how to use the Exchange Management Shell or a registry editing tool to enable diagnostic logging on a computer that is running Microsoft Exchange Server 2007 that has the Unified Messaging server role installed. For more information about Unified Messaging errors and events, see Unified Messaging Errors and Events Reference. For more information about Event Viewer, see Checking the Event Viewer.

Note

Incorrectly editing the registry can cause serious problems that may require you to reinstall your operating system. Problems resulting from editing the registry incorrectly may not be able to be resolved. Before editing the registry, back up any valuable data.

Before You Begin

To perform the following procedures, the account you use must be delegated the Exchange Server Administrator role and membership in the local Administrators group on the target server.

For more information about permissions, delegating roles, and the rights that are required to administer Exchange Server 2007, see Permission Considerations.

To use Registry Editor to enable diagnostic logging on a Unified Messaging server

  1. Click Start, click Run, type regedit.exe, and then click OK.

  2. Using Registry Editor, locate the following registry key: HKeyLocalMachine\System\CurrentControlSet\services\MSExchange Unified Messaging\Diagnostics

  3. In the details pane, double-click the appropriate registry value, and then use the following values to configure the appropriate logging level:

    Logging level Value

    Expert

    7

    High

    5

    Medium

    3

    Low

    1

    Lowest

    0

To use the Exchange Management Shell to enable diagnostic logging on a Unified Messaging server

  • To enable diagnostic logging for the UMCore DWORD value, run the following command.

    Set-EventlogLevel "MyUMServer\MSExchange Unified Messaging\UMCore" -level <Lowest | Low | Medium | High | Expert>
    
  • To enable diagnostic logging for the UMWorkerProcess DWORD value, run the following command.

    Set-EventlogLevel "MyUMServer\MSExchange Unified Messaging\UMWorkerProcess" -level <Lowest | Low | Medium | High | Expert>
    
  • To enable diagnostic logging for the UMManagement DWORD value, run the following command.

    Set-EventlogLevel "MyUMServer\MSExchange Unified Messaging\UMManagement" -level <Lowest | Low | Medium | High | Expert>
    
  • To enable diagnostic logging for the UMService DWORD value, run the following command.

    Set-EventlogLevel "MyUMServer\MSExchange Unified Messaging\UMService" -level <Lowest | Low | Medium | High | Expert>
    
  • To enable diagnostic logging for the UMClientAccess DWORD value, run the following command.

    Set-EventlogLevel "MyUMServer\MSExchange Unified Messaging\UMClientAccess" -level <Lowest | Low | Medium | High | Expert>
    
  • To enable diagnostic logging for the UMCallData DWORD value, run the following command.

    Set-EventlogLevel "MyUMServer\MSExchange Unified Messaging\UMCallData" -level <Lowest | Low | Medium | High | Expert>
    

    If you want to view the current logging level for a Unified Messaging server, run the following command:

    Get-EventlogLevel "MyUMServer\MSExchange Unified Messaging"
    

For more information about syntax and parameters, see Set-EventLogLevel.

Return to top

Troubleshooting Unified Messaging Using Tracing

There are several tracing options that are available for troubleshooting issues that are related to Microsoft Exchange Server 2007 Unified Messaging (UM). Tracing lets you troubleshoot, debug, and isolate problems on a computer. Enabling tracing, configuring tracing settings, and gathering the appropriate information about a computer that is running Exchange 2007 that has the Unified Messaging server role installed can help you diagnose problems or evaluate system performance. Although there are many tracing tools that are offered by Microsoft and third-party vendors that may offer more complex tracing options, the Microsoft Exchange Analyzers and Microsoft Network Monitor are two tools that you can download to help you enable tracing on a Unified Messaging server. This section discusses tracing tools and tracing options that are available for troubleshooting and diagnosing Unified Messaging (UM) issues.

Using Microsoft Exchange Analyzers

The Microsoft Exchange Analyzers help Microsoft Exchange server administrators troubleshoot a variety of issues. Administrators can install these tools on a client computer that is running the Microsoft .NET Framework 1.1. With the correct network access, the tools can examine your Active Directory directory service and your computers that run Exchange 2007 to help you detect incorrect configurations and other performance related issues. For more information about the Microsoft Exchange Analyzers, see Overview: Microsoft Exchange Analyzers.

Unified Messaging Tracing Using Microsoft Exchange Troubleshooting Assistant

The Microsoft Exchange Troubleshooting Assistant can be used to automatically determine what set of data is required to troubleshoot symptoms that you identify. It can also be used to collect configuration data, performance counters, event logs, and live tracing information from an Exchange 2007 Unified Messaging server in addition to Exchange 2007 servers in your organization that are running other Exchange 2007 server roles. The Microsoft Exchange Troubleshooting Assistant analyzes each subsystem on a physical computer to determine individual bottlenecks and component failures. Then it aggregates the information to analyze the cause of the bottlenecks and failures. To download a copy of the Microsoft Exchange Troubleshooting Assistant, see the Microsoft Exchange Troubleshooting Assistant v1.1 Web site.

The Microsoft Exchange Troubleshooting Assistant includes several different tools that can be used to troubleshoot Unified Messaging issues and gather information about various UM services and components. The trace control tool that is included in the Microsoft Exchange Troubleshooting Assistant is a graphical user interface (GUI) that lets you enable and configure tracing on an Exchange 2007 Unified Messaging server. It can also be used to enable tracing on other Exchange 2007 servers in your organization. To enable tracing, select the trace type, component to trace, and any trace tags. When you are enabling tracing on a Unified Messaging server, you must enable the MSExchangeUM component that is listed under the Components to Trace section of the tool. Several features are available when you enable tracing by using the Microsoft Exchange Troubleshooting Assistant, including the following:

  • The ability to display only enabled components and tags

  • The ability to search components and tags

  • The display of the current status of tracing on startup, including output file size, type, and location

For more information about Microsoft Exchange Analyzers, see Microsoft Exchange Analyzers

Important

Tracing information and files can be very complex depending on the operation and depth of tracing that has been completed. We recommended that after you have enabled tracing and collected the correct information, you contact Microsoft Services Support.

Unified Messaging Tracing by Using Network Monitor

You can use Network Monitor 2.0,Microsoft Network Monitor 3.0, or a later version to capture network traffic between a Unified Messaging server and an IP/VoIP gateway or between Exchange 2007 servers that are running the Client Access, Mailbox, and Hub Transport server roles. A network monitor is a network protocol analyzer tool that is used to capture network data packets and lets you analyze specific protocol information.

Network traffic to and from a Unified Messaging server may consist of one or more of the following protocols:

  • Session Initiation Protocol (SIP)   Used between an IP/VoIP gateway and a Unified Messaging server

  • Realtime Transport Protocol (RTP)   Used between an IP/VoIP gateway and a Unified Messaging server

  • T.38   Used from an IP/VoIP gateway to Unified Messaging server

  • Simple Mail Transfer Protocol (SMTP)   Used between a Unified Messaging server and a Hub Transport server

  • Lightweight Directory Access Protocol (LDAP)   Used between a Unified Messaging server and an Active Directory domain controller

  • MAPI RPC   Used between a Unified Messaging server and a Mailbox server

  • Transport Layer Security (TLS)   Used between an IP/VoIP gateway and a Unified Messaging server and between a Unified Messaging server and Hub Transport, Mailbox, and Client Access servers.

    Note

    If TLS transport is used, the Network Monitor SIP parser will be unable to decode the SIP packets because they are encrypted.

For more information about protocols that are used with Unified Messaging, see the following topics:

For each type of IP-based protocol that is used by a Unified Messaging server, a parser must be included to enable a protocol analyzer like Network Monitor to capture and view the data packets that are associated with the protocol. Currently, Network Monitor 2.0 includes parsers that support many IP-based protocols. However, it does not include the parsers for SIP, RTP, or T.38. To obtain a copy of the SIP parser file, download and install the Live Communications Server 2005 with Service Pack 1 Resource Kit.

After you have downloaded the installation files, you must manually copy the SIP parser file (SipPar.dll) to the following locations to enable Network Monitor to capture SIP data packets:

  • For the Microsoft Windows Server 2003 family, copy the SipPar.dll file to the %windir%\system32\netmon\parsers folder.

  • For Windows XP Professional or Windows 2000 Professional, copy the SipPar.dll file to the %program files%\Microsoft Network Monitor\parsers folder.

Microsoft Network Monitor 3.0 and later versions are redesigned network protocol analyzers that includes many new parsers, including parsers for SIP and RTP. Network Monitor 3.0 and later versions can be installed in the following systems:

  • Windows Server 2003

  • Windows Server 2003 Standard x64 edition

  • Windows Vista

  • Windows Vista Business 64-bit edition

  • Windows XP

  • Windows XP 64-bit

To obtain a copy of the latest version of Network Monitor, see the download page for Microsoft Network Monitor.

For more information about how to capture and filter data by using Network Monitor, see How to Monitor Network Traffic Between Two Computers Using Network Monitor.

For more information about how to monitor network traffic, see Monitoring Traffic Between Two Computers.

Return to top

Troubleshooting Unified Messaging by Monitoring Performance

You can use the Performance tool to automatically collect performance data from local or remote computers that are running Microsoft Exchange Server 2007 that have the Unified Messaging server role installed. It is essential that you regularly monitor the performance of Unified Messaging servers. Monitoring performance is also important when you are troubleshooting an issue in your Unified Messaging environment. For more information about the performance counters you can use to monitor Unified Messaging, see Performance Counter Reference for Unified Messaging.

Return to top

Appendix 1: Test-UMConnectivity Cmdlet Syntax and Description

The Test-UMConnectivity cmdlet can be used to test the operation of a computer that has the Unified Messaging server role installed.

Syntax

test-UMConnectivity [-Confirm <SwitchParameter>] [-DomainController <Fqdn>] [-Fax <$true | $false>] [-ListenPort <Int32>] [-MediaSecured <$true | $false>] [-MonitoringContext <$true | $false>] [-RemotePort <Int32>] [-Secured <$true | $false>] [-Timeout <Int32>] [-WhatIf <SwitchParameter>]


test-UMConnectivity -Phone <String> -UMIPGateway <UMIPGatewayIdParameter> [-Confirm <SwitchParameter>] [-DiagDtmfDurationInMilisecs <Int32>] [-DiagDtmfSequence <String>] [-DiagInitialSilenceInMilisecs <Int32>] [-DiagInterDtmfDiffGapInMilisecs <String>] [-DiagInterDtmfGapInMilisecs <Int32>] [-DomainController <Fqdn>] [-Fax <$true | $false>] [-ListenPort <Int32>] [-MediaSecured <$true | $false>] [-MonitoringContext <$true | $false>] [-Secured <$true | $false>] [-Timeout <Int32>] [-WhatIf <SwitchParameter>]


test-UMConnectivity -ResetPIN <$true | $false> [-Confirm <SwitchParameter>] [-DomainController <Fqdn>] [-MonitoringContext <$true | $false>] [-WhatIf <SwitchParameter>]


test-UMConnectivity -TUILogonAll <$true | $false> [-Confirm <SwitchParameter>] [-DomainController <Fqdn>] [-ListenPort <Int32>] [-MediaSecured <$true | $false>] [-MonitoringContext <$true | $false>] [-RemotePort <Int32>] [-Secured <$true | $false>] [-Timeout <Int32>] [-WhatIf <SwitchParameter>]


test-UMConnectivity -Phone <String> -PIN <String> -TUILogon <$true | $false> -UMDialPlan <UMDialPlanIdParameter> [-Confirm <SwitchParameter>] [-DomainController <Fqdn>] [-ListenPort <Int32>] [-MediaSecured <$true | $false>] [-MonitoringContext <$true | $false>] [-RemotePort <Int32>] [-Secured <$true | $false>] [-Timeout <Int32>] [-WhatIf <SwitchParameter>]

Detailed Description

The two diagnostic tests are designed to test the operation of the Microsoft Exchange Server 2007 Unified Messaging server software (mode 1) and the operation of the whole system that includes the connected telephony components (mode 2).

The Test-UMConnectivity cmdlet can be used to test the operation of a Unified Messaging (UM) server and related connected telephony equipment. When an administrator runs this cmdlet and includes the IPGateway parameter, the Unified Messaging server tests the full end-to-end operation of the UM system. This includes the telephony components that are connected to the Unified Messaging server, such as IP gateways, Private Branch eXchanges (PBXs), and cabling. If the IPGateway parameter is not specified, the Unified Messaging server will test only the operation of the UM components that are installed and configured on the server.

To run the Test-UMConnectivity cmdlet, the account you use must be delegated the Exchange Server Administrator role and membership in the local Administrators group for the target server.

For more information about permissions, delegating roles, and the rights that are required to administer Exchange Server 2007, see Permission Considerations.

Parameters

Parameter Required Type Description

Phone

Required

System.String

This parameter specifies the telephone number that will be used when the test call is redirected. The extension number should be configured in the PBX to call forward to the UM hunt group.

PIN

Required

System.String

This parameter lets you specify the PIN that is associated with the UM-enabled mailbox.

TUILogon

Required

System.Boolean

This parameter specifies whether you want the cmdlet to try to log on to one or more UM-enabled mailboxes. The mailboxes must be UM-enabled and associated with the UM dial plan to which the Unified Messaging server belongs. The default setting is false.

TUILogonAll

Required

System.Boolean

This parameter specifies whether to test all mailboxes in the current Active Directory site then test connectivity to each UM-enabled mailbox. The default setting is false.

UMIPGateway

Required

Microsoft.Exchange.Configuration.Tasks.UMIPGatewayIdParameter

This parameter specifies the name of the UM IP gateway or IP/PBX to use for the outgoing test call.

UMDialPlan

Required

Microsoft.Exchange.Configuration.Tasks.UMDialPlanIdParameter

This parameter specifies the UM dial plan that will be tested. It must be used with the TUILogin parameter.

DomainController

Optional

Microsoft.Exchange.Data.Fqdn

The DomainController parameter specifies the domain controller to use to write this configuration change to Active Directory. Use the fully qualified domain name (FQDN) of the domain controller that you want to use.

Fax

Optional

System.Boolean

This parameter specifies that the call being tested is a fax call. The default setting is $true.

ListenPort

Optional

System.Int32

This parameter specifies the IP port number on which to listen. If not specified, IP port 9000 will be used.

MonitoringContext

Optional

System.Boolean

This parameter specifies whether the cmdlet will run at a command line or whether the output object will be passed to Microsoft Operations Manager. By default, the cmdlet will run from the command line.

Secured

Optional

System.Boolean

This parameter specifies whether the test will be run in secured mode.

Timeout

Optional

System.Int32

This parameter specifies the length of time to wait for the test operation to finish (in seconds). The default is 180 seconds. You can set this parameter with a value of less than 5 seconds. However, we recommend that you always configure this parameter with a value of 5 seconds or more.

ResetPIN

Required

System.Boolean

This parameter specifies whether to generate or regenerate a new PIN for all the test mailboxes in the current site.

DomainController

Optional

Microsoft.Exchange.Data.Fqdn

The DomainController parameter specifies the domain controller to use to write this configuration change to Active Directory. Use the fully qualified domain name (FQDN) of the domain controller that you want to use.

Example

Description

The first example performs connectivity and operational tests on the local Unified Messaging server and then displays the Voice over IP (VoIP) connectivity information.

The second example tests the ability of the local Unified Messaging server to use an unsecured Transmission Control Protocol (TCP) connection instead of a secured Mutual Transport Layer Security (MTLS) connection to place a call through a UM IP gateway named MyUMIPGateway by using the telephone number 56780.

Test-UMConnectivity

Test-UMConnectivity -UMIPGateway MyUMIPGateway -Phone 56780 -Secured $false

Return to top

Conclusion

In this white paper, we attempted to provide an end-to-end, printable guide that you can use to test and troubleshoot Unified Messaging. You should apply the information in this white paper when you are validating the successful installation of the Unified Messaging server role, testing Unified Messaging functionality, or investigating problems in your Unified Messaging environment.

Additional Information