Guest

Cisco Unity

Unity Server: Failure to Retrieve Voicemail Messages after Exchange Recovery

Document ID: 68823

Updated: Mar 13, 2009

   Print

Introduction

This document describes reasons why subscribers are not able to retrieve the voicemail message on a Cisco Unity server due to the failure to verify the status of the mailbox. This document also provides solutions. This problem can occur after these tasks are performed in order to recover a Microsoft Exchange server due to a catastrophic failure:

  1. Reinstall the Microsoft Exchange server.

  2. Restore the user data from the backup media.

Prerequisites

Requirements

Cisco recommends that you have knowledge of these topics:

  • Cisco CallManager

  • Cisco Unity

  • Microsoft Exchange

Components Used

The information in this document is based on these software and hardware versions:

  • Cisco Unity version 4.0(x)

  • Off-Box Microsoft Exchange 2003 SP1 Partner Server

  • Cisco CallManager

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.

Conventions

Refer to Cisco Technical Tips Conventions for more information on document conventions.

Problem

A Microsoft Exchange server becomes unusable due to catastrophic failures. The Exchange server is reinstalled and all data is recovered from the backup media. Both Permissions Wizard and Message Store Configuration Wizard run without incident. After these steps, voicemail still does not work. When subscribers login to voicemail, they receive this error:

The system is temporarily unable to complete your call.

The opening greeting and call transfer function properly. Both internal and external callers can leave voicemail messages. However, no subscriber can retrieve them.

Correspondingly, these two errors are found in the event log on the Cisco Unity server.

  • Event Type:	Error
    Event Source:	CiscoUnity_ConvMsg
    Event Category:	Network 
    Event ID:	10045
    Date:		10/9/2002
    Time:		17:42:19 PM
    User:		N/A
    Computer:	SYSTESTCLUST1
    Description:
    Unity was unable to retrieve the mailbox for the subscriber to verify the status 
    of the mailbox. Unity needs to know if the mailbox has the ability to send and 
    receive mails. Possible reasons could be a missing mailbox, which can be 
    determined through DBWalker or a corrupt memory. 
    Technical information IAvDohMailUser::get_PrimaryMailbox returned [0x8004000c]
    on line 199 of file 
    e:\views\cs_UE4.0.0.245\un_Core2\ConversationEng\AvStateSvr\AvSGetMailboxStatus.cpp.
    Check the return code through DohErrorTest tool. 
  • Event Type:	Error
    Event Source:	CiscoUnity_ConvMsg
    Event Category:	Network 
    Event ID:	10046
    Date:		10/9/2002
    Time:		17:42:19 PM
    User:		N/A
    Computer:	SYSTESTCLUST1
    Description:
    Unity was unable to determine the mailbox status for the subscriber. Unity 
    needs to know if the mailbox has the ability to send and receive mails. 
    Technical details - GetMailboxStatus returned [0x8004000c] on line 98 
    of file e:\views\cs_UE4.0.0.245\un_Core2\ConversationEng\AvStateSvr\AvSGetMailboxStatus.cpp. 

Cause

When data is restored to the Exchange server, all subscribers receive a new MailboxStorageObjectID value in the Active Directory (AD)/Exchange database. The SQL database on the Cisco Unity server still has the old MailboxStorageObjectID value which does not match the one on the Exchange server. Therefore, the mismatched MailboxStorageObjectID value between the Cisco Unity server and the Exchange server causes the failure of the mailbox status verification. The failure of the mailbox status verification prevents subscribers from retrieving voicemail messages successfully. The Cisco Unity server searches for the mailbox of a subscriber by the ObjectID in AD. This results in the occurrence of two event errors in the event log as shown in the Problem section of this document.

Solution 1

Complete these steps in order to solve the problem:

  1. Query the SQL database in order to locate all MailboxStoreObjectID values in the MailboxStore table (see Figure 1). Complete these steps:

    1. Choose Start > Programs > Microsoft SQL Server > Query Analyzer.

    2. Choose UnityDb from the drop-down list (see arrow A in Figure 1).

    3. Run this query (see arrow B in Figure 1):

      select distinct MailboxStoreObjectId from MailboxStore
    4. Two MailboxStoreObjectId values are displayed. Between them, one value is for the old Exchange server that failed and the other is for the new one that was reinstalled and restored. Identify which one is the current MailboxStoreObjectId for the Exchange server that is now in production.

      In order to find the current MailboxStoreObjectId you can either find a user that is working and see what their MailboxStoreObjectID is, or you can create a new subscriber and then search for the MailboxStoreObjectId in the Subscriber table in the Cisco UnityDb.

      Figure 1—Query MailboxStoreObjectId - MailboxStore Table

      unity-svr-vm-exchg-recover-1.gif

  2. Query the SQL database in order to locate all subscribers with the null MailboxStoreObjectID values in the Subscriber table (see Figure 2). Complete these steps:

    1. Choose Start > Programs > Microsoft SQL Server > Query Analyzer.

    2. Choose UnityDb from the drop-down list (see arrow A in Figure 2).

    3. Run this query (see arrow B in Figure 2).

      select MailboxStoreObjectId from Subscriber
    4. Identify all subscribers with the NULL MailboxStoreObjectID value.

      Figure 2—Query MailboxStoreObjectId - Subscriber Table

      unity-svr-vm-exchg-recover-2.gif

    5. Test those subscribers with the correct MailboxStoreObjectId value. Check their voicemail messages and verify they can retrieve voicemail messages without error.

  3. All subscribers with the NULL MailboxStoreObjectID in the subscriber experiences the problem of retrieving voicemail messages. Complete these steps in order to solve this issue:

    1. Choose Start > Programs > Microsoft SQL Server > Query Analyzer.

    2. Choose UnityDb from the drop-down list (see arrow A in Figure 3).

    3. Run this query in order to replace the NULL MailboxStoreObjectId value with the appropriate value (see arrow B in Figure 3):

      update Subscriber set MailboxStoreObjectId=’{abcd-efgh}’ where 
      MailboxStoreObjectId is NULL
      Figure 3—Replace the NULL MailboxStoreObjectId Value with the Appropriate Value in the Subscriber Table

      unity-svr-vm-exchg-recover-3.gif

      Note: The 5E0BB043-DF95-4144-82A5-63B28BC8BC82BD1 value represents the correct MailboxStoreObjectId value (see arrow B in Figure 3).

Voicemail for all subscribers now functions with no issues. All subscribers that have NULL in their respective MailboxStoreObjectId column now have the correct Exchange server ID. Check voicemail for some of the previous NULL subscribers in order to verify this.

Note: If the subscribers are not able to access the voicemail after you complete these steps, run setup.exe from C:\commserver\configurationsetup\setup.exe /sync in the Cisco Unity server and restart the Cisco Unity server. Refer to Scenarios and Solutions Cisco Unity for more information.

Solution 2

This can also happen due to some Exchange server permission issues. Complete this procedure in order to resolve the issue:

  1. Go to Start > Programs > Administrative Tools > Active Directory Users and Computers.

  2. Go to the View menu in the management console, and make sure that the Advanced Features is selected.

    Note: If this option is not selected, the Security and the Exchange Advanced tabs will not be visible for the user account objects.

  3. Double-click on the user to get the Properties window and verify the following:

    • Go to the Security tab. In the Permissions box, make sure that the Send As permission is checked (greyed out checkmark) for the UnityMsgStoreSvc account.

    • Go to Exchange Advanced tab and click on Mailbox Rights. In the Permissions box, make sure that the the Full Mailbox Access permission is checked (greyed out checkmark) for the UnityMsgStoreSvc account.

Solution 3

This issue can occur due to the synchronization issue. Complete these steps in order to resolve the issue:

  1. On the Cisco Unity server, browse to the location where Cisco Unity is installed (the default is C:\CommServer). Then, browse to the TechTools folder.

  2. Run DohPropTest.exe.

  3. In the DohPropTest Logon dialog box, leave the Password box empty, and click OK.

  4. On the warning dialog box, click Ignore to start the read-only mode of DohPropTest.

  5. Click GC Monitor to display the Directory Monitor dialog box, then click TotalResync.

  6. Close DohPropTest.

    Note: Lack of disk space on the Cisco Unity or Exchange server can cause problems such as this. Filling a disk beyond 80 percent capacity results in significant performance degradation. If the disk fills up completely, the database cannot grow, and Cisco Unity will stop. One main source of disk space problems on Cisco Unity is log files backed up in the Exchsrvr \ MDBDATA folder. In order to resolve this issue, free up some disk space and reboot Cisco Unity.

Solution 4

This issue can occur due to Message store account (UnityMsgStoreSvc) is not a member of the Administrators group. Complete these steps in order to resolve the issue:

  1. Go to Start > Programs > Microsoft Exchange > Active Directory users and computers.

  2. Expand the Domain controller and navigate to Administrators group on the right pane under the Builtin folder. Right click and select Properties. Then, go to the Members tab. Click the Add button.

  3. Select the messagestore account UnityMsgStoreSvc, click the Add button and click OK.

    This adds the UnityMsgStoreSvc account to the Administrators group.

  4. Click OK in order to close the window.

Solution 5

Sometimes a failsafe occurs when Cisco Unity is called in order to check voicemail and the voicemail is delivered to the Microsoft Outlook Inbox. In order to resolve this issue, complete these steps:

  1. On the Cisco Unity server, run D:/commserver/configuration setup/setup.exe /sync.

  2. Check the voicemail through the phone.

Problem

The problem is the inability to take COBRAS Export of Unity 4.0(5) including voice messages. When you run the COBRAS Export on Cisco Unity server version 4.0(5) VM only to retrieve the messages so that you can COBRAS Import them to a new Unity Connection 7.1 server. This error is received: AvCsMgr service is not associated with UnityMsgStoreSvc account.

Solution

Perform these steps in order to resolve the issue:

  1. Remove the UnityMsgStoreSvc account from the Exchange system manager if it is added as Exchange Full administrator.

  2. Check in services.msc and reset the login for AvCsMgr service to the Domain\UnityMsgStoreSvc account.

Related Information

Updated: Mar 13, 2009
Document ID: 68823