Udostępnij za pośrednictwem


Upgrade from Exchange 2007 SP3 to Exchange 2010 RTM Unified Messaging

 

Applies to: Exchange Server 2010 SP3, Exchange Server 2010 SP2

Unified Messaging (UM) was introduced in Microsoft Exchange Server 2007. In organizations that deployed Exchange 2007 Service Pack 3 (SP3) Unified Messaging and now want to upgrade to Microsoft Exchange Server 2010 Service Pack 1 (SP1) or later Unified Messaging with all its new features, there are tasks the Exchange administrator must perform to successfully upgrade their UM environment.

Note

Exchange 2007 Service Pack 3 (SP3) contains Unified Messaging features. Versions of Microsoft Exchange earlier than Exchange 2007 can't be upgraded and require you to deploy a new Exchange 2010 Service Pack 1 (SP1) or later organization with all the server roles, including Unified Messaging.

Contents

Overview of Upgrading to Exchange 2010 Unified Messaging

Upgrade Scenarios

Upgrading Custom Prompts from Exchange 2007 Unified Messaging

Autodiscover and Exchange Web Services in Unified Messaging

Overview of Upgrading to Exchange 2010 SP1 or later Unified Messaging

Upgrading is the process of taking an existing Exchange 2007 Service Pack 3 (SP3) Unified Messaging environment, installing Exchange 2010 UM SP1 or later servers, and then removing and uninstalling the Exchange 2007 SP3 UM servers. However, during this process, there's the possibility at any time that an upgraded Exchange 2010 SP1 or later organization would contain both Exchange 2010 SP1 or later and Exchange 2007 SP3 UM servers. Such an organization would also contain both Exchange 2007 SP3 and Exchange 2010 SP1 or later Mailbox, Client Access, and Hub Transport servers. All the Exchange 2007 SP3 servers, including the UM server, must have Exchange Server 2007 SP3 installed. For more information, see Download Exchange Server 2007 Service Pack 3 (SP3).

UM-enabled users who have Exchange 2007 SP3 mailboxes will get the features with Exchange 2007 Service Pack 3 (SP3) Unified Messaging, and UM-enabled users who have Exchange 2010 SP1 or later mailboxes will get all the features included with Exchange 2010 SP1 or later Unified Messaging. The following table summarizes upgrade scenarios and the UM features that are available when Exchange 2007 SP3 and Exchange 2010 SP1 or later Unified Messaging coexist in the same Exchange organization.

Unified Messaging with Exchange 2007 SP 3 and Exchange 2010 SP1 or later mailboxes

  Exchange 2007 SP3 UM server Exchange 2010 SP1 or later UM server

Exchange 2007 SP3 UM-enabled mailbox

UM-enabled users get the features included with Exchange 2007 SP3.

Incoming calls are redirected to an Exchange 2007 SP3 UM server in the same dial plan.

Exchange 2010 SP1 or later UM-enabled mailbox

Not supported. At least one Exchange 2010 SP1 or later.UM server is required.

UM-enabled users get the features included with Exchange 2010 SP1 or later.

When you install the first Exchange 2010 SP1 or later UM server and add it to an existing Exchange 2007 Service Pack 3 (SP3) organization, you must add the Exchange 2010 SP1 or later UM server to an existing UM dial plan that contains Exchange 2007 SP3 UM servers. Then you must configure each IP gateway or IP PBX to send all incoming calls to the Exchange 2010 SP1 or later UM servers within the same UM dial plan.

When an incoming call is received by an Exchange 2010 SP1 or later UM server, and the UM-enabled user's mailbox is located on an Exchange 2010 SP1 or later Mailbox server, the Exchange 2010 SP1 or later UM server will process the incoming call. If the user's mailbox is located on an Exchange 2007 SP3 Mailbox server, the incoming call will be routed to an Exchange 2007 SP3 UM server within the same UM dial plan, and the incoming call will be processed. If there are multiple Exchange 2007 SP3 UM servers in the same dial plan, the Exchange 2010 SP1 or later UM servers will send the incoming call to the Exchange 2007 SP3 UM servers using a round robin mechanism.

After all UM-enabled users' mailboxes are migrated to an Exchange 2010 SP1 or later Mailbox server, the Exchange 2007 Service Pack 3 (SP3) UM servers can be removed from the UM dial plan.

Upgrade Scenarios

When you're upgrading from Exchange 2007 SP3 Unified Messaging to Exchange 2010 SP1 or later Unified Messaging, there are two basic scenarios:

  • Full Upgrade   In a full upgrade, you replace all the Exchange 2007 SP3 UM servers with Exchange 2010 SP1 or later UM servers, and all existing Exchange 2007 SP3 UM-enabled mailboxes are moved to Exchange 2010 SP1 or later Unified Messaging. During this process, you'll most likely have both Exchange 2007 SP3 and Exchange 2010 SP1 or later UM servers coexisting in the same Exchange organization. At the end of the process, the Exchange 2010 SP1 or later UM server will answer all incoming calls and allow UM-enabled users to access their mailbox when they call in to an Outlook Voice Access number that's configured on a Exchange 2010 SP1 or later UM dial plan.

    Important

    If you're uninstalling the last Exchange 2007 SP3 UM server in the Exchange 2010 SP1 or later organization, run the following command on an Exchange 2010 SP1 or later UM server within the same organization as the Exchange 2007 SP3 UM server: Set-UMDialPlan -identity MyUMDialPlan -LegacyPromptPublishingPoint $null. Running this command will force the Exchange 2007 SP3 UM server to unbind from the dial plan. You must run this command before you remove the last Exchange 2007 SP3 server from the Exchange 2010 SP1 or later organization.

  • Partial Upgrade In a partial upgrade,a portion of the existing Exchange 2007 Service Pack 3 (SP3) UM-enabled mailboxes are moved to Exchange 2010 SP1 or later Unified Messaging. A partial upgrade is a term used to describe upgrading from an Exchange 2007 SP3 organization to an Exchange 2010 SP1 or later organization. In partial upgrades, Exchange 2010 SP1 or later UM servers will only process calls for UM-enabled mailboxes that are on Exchange 2010 SP1 or later Mailbox servers. If you're deploying Exchange 2010 SP1 or later Unified Messaging, and it will coexist with Exchange 2007 SP3 UM, you must keep at least one Exchange 2007 SP3 UM server deployed in your organization and it must be added to the same dial plan as the Exchange 2010 SP1 or later UM server or servers.

    When you perform a partial upgrade from Exchange 2007 SP3 Unified Messaging to Exchange 2010 SP1 or later Unified Messaging, incoming calls will be handled differently from the way they're handled after a full upgrade, depending on the type of incoming call and whether UM is integrated with Microsoft Office Communications Server 2007. The following are some ways they're handled differently:

    • Call Answering   In call answering calls, the extension number of the destination mailbox is provided in the SIP INVITE header when the UM server answers the incoming call. Based on the information provided, it verifies the mailbox version, and the Exchange 2010 SP1 or later UM server immediately identifies the location of the destination UM-enabled mailbox. If the recipient mailbox is being hosted on an Exchange 2007 SP3 Mailbox server, the Exchange 2010 SP1 or later UM server will redirect the incoming call to an Exchange 2007 SP3 UM server in the same dial plan.

      PartialMigration-CallAnswering

    • Subscriber Access   There are two subscriber access scenarios:

      Scenario 1: When a caller dials in to a subscriber access number configured on a dial plan from a phone number that isn't recognized by a UM server, and the incoming call contains no information about the destination user's mailbox in the SIP INVITE header, the Exchange 2010 SP1 or later UM server will take the call and then prompt the caller to provide the extension number by pressing the corresponding keys on the phone keypad. After the caller has provided the extension number, the Exchange 2010 SP1 or later UM server will identify the user, locate the UM-enabled mailbox, and check the version of the mailbox. If the mailbox is located on an Exchange 2007 SP3 Mailbox server, the Exchange 2010 SP1 or later UM server will do a SIP REFER request and send the call to an Exchange 2007 SP3 UM server.

      Scenario 2: When a caller dials in to a subscriber access number configured on a dial plan, and the Exchange 2010 SP1 or later UM server identifies the calling number as an extension for a UM-enabled user with an Exchange 2007 SP3 mailbox, the call will be redirected to an Exchange 2007 SP3 UM server. The Exchange 2010 SP1 or later UM server will make a redirect request and send the call to an Exchange 2007 SP3 UM server.

      PartialMigration-SubscriberAccess

    • Office Communications Server   If you’re running the RTM version of Exchange 2010, Communications Server 2007 without R2 and without Cumulative Update 5 (CU5) or later can't determine the version of the mailbox for a UM-enabled user. So when a call is received by Communications Server 2007, and it redirects the call to another UM server in the same dial plan, either an Exchange 2007 SP3 UM server or an Exchange 2010 SP1 or later UM server might take the call. This causes a problem when you perform a partial upgrade, because the incoming call will fail if it's received by an Exchange 2007 SP3 UM server and the UM-enabled user's mailbox is on an Exchange 2010 SP1 or later Mailbox server. The call will fail because Exchange 2007 SP3 UM servers can't process calls for UM-enabled users who have Exchange 2010 SP1 or later mailboxes.

      The reason the incoming call will fail is that Communications Server 2007 can't tell whether the UM server that it redirected the call to is an Exchange 2007 SP3 UM server or an Exchange 2010 SP1 or later UM server.

      If Communications Server 2007 is used as an IP gateway, and there are Exchange 2007 SP3 mailboxes that are enabled for UM, a new SIP URI dial plan will be required. The new SIP URI dial plan must contain only Exchange 2010 SP1 or later UM servers. The new dial plan is required to ensure that incoming calls are redirected only to Exchange 2010 SP1 or later UM servers.

      If you’re doing a partial upgrade that contains both Exchange 2010 SP1 or later and Exchange 2007 SP3 servers in the same SIP URI dial plan, you must install Communications Server R2 with Cumulative Update 5 (CU5) or later or install Microsoft Lync Server 2010. A separate SIP URI dial plan isn’t required when you’re running Communications Server R2 with CU5 or later or Lync Server 2010 with Exchange 2010 SP1 or later. The Exchange 2010 SP1 or later and Exchange 2007 SP3 UM servers can coexist in the same SIP URI dial plan. Both Office Communications Server 2007 R2 with CU5 or later and Lync Server 2010 have built-in logic that will direct all incoming calls to an Exchange 2010 SP1 or later UM server and not to an Exchange 2007 SP3 server in the same dial plan.

The following table contains information about the tasks that are required to perform a partial or full upgrade from earlier versions of Microsoft Exchange to Exchange 2010 SP1 or later Unified Messaging.

Upgrading to Exchange 2010 Unified Messaging

Version of Exchange that is currently deployed Upgrade type Existing UM dial plans Actions required

Exchange Server 2003 or earlier versions

Not applicable

Not applicable

  • Add Exchange 2010 SP1 or later UM servers to your Exchange 2010 SP1 or later organization.

  • Create the required UM dial plan(s).

  • Create the required UM IP gateways and UM hunt groups.

  • Add the UM servers to the appropriate dial plan.

  • Copy custom prompts to the custom prompts publishing location using the Import-UMPrompt cmdlet.

  • Move the Exchange mailboxes to Exchange 2010 SP1 or later Mailbox servers and UM-enable the mailboxes.

Exchange 2007 SP3

Full upgrade to Exchange 2010 SP1 or later

Telephone Extension, SIP URI and/or E.164

  • Add Exchange 2010 SP1 or later UM servers to your Exchange 2010 SP1 or later organization.

  • Add the Exchange 2010 SP1 or later UM servers to the appropriate dial plan.

  • Copy custom prompts to the custom prompts publishing location using the Import-UMPrompt cmdlet.

  • From an Exchange 2010 SP1 or later UM server in the same organization with the Exchange 2007 SP3 UM servers, run the following command:

    Set-UMDialPlan -identity MyUMDialPlan -LegacyPromptPublishingPoint $null
  • Move the Exchange 2007 SP3 UM-enabled mailboxes to Exchange 2010 SP1 or later Mailbox servers.

  • Uninstall the Exchange 2007 SP3 UM servers from the Exchange 2010 SP1 or later organization.

Exchange 2007 SP3

Partial upgrade to Exchange 2010 SP1 or later

Telephone Extension and/or E.164

  • Add Exchange 2010 SP1 or later UM servers to the dial plan.

  • Don't remove the Exchange 2007 SP3 UM servers from the dial plan.

  • Configure the IP gateways or IP PBXs to send calls to an Exchange 2010 SP1 or later UM server.

  • Copy custom prompts to the custom prompt publishing locations using the Copy-UMCustomPrompt and Import-UMPrompt cmdlets.

Exchange 2007 SP3

Partial upgrade to Exchange 2010 SP1 or later

SIP URI

  • Create a new SIP URI and/or E.164 dial plan.

  • Add Exchange 2010 SP1 or later servers to the SIP URI dial plan.

  • Move the Exchange 2007 SP3 UM-enabled mailboxes to Exchange 2010 SP1 or later Mailbox servers.

  • Create a new UM hunt group for the new SIP URI dial plan.

  • Disable the mailboxes of users who have Exchange 2007 SP3 UM-enabled mailboxes.

  • Enable the users for Unified Messaging using the new SIP URI dial plan.

  • Copy custom prompts to the custom prompt publishing locations using the Copy-UMCustomPrompt and Import-UMPrompt cmdlets.

Upgrading Custom Prompts from Exchange 2007 Unified Messaging

There are many custom greetings used by UM dial plans and auto attendants, including welcome greetings for dial plans and after hours welcome greetings and menus, business hours and non-business hours welcome greetings and menus, and key mappings for UM auto attendants. All these audio files that are used by Unified Messaging are known as custom prompts.

Exchange 2007 Service Pack 3 (SP3) Custom Prompts Overview

In Exchange 2007 SP3, the Copy-UMCustomPrompt cmdlet queries the appropriate dial plan object in Active Directory to determine the location of the prompt publishing point. There is only one prompt publishing point for each dial plan, and it's stored as a Windows file share (also known as UNC) path that identifies a file share available for dial plan and auto attendant custom prompts. After the location of the prompt publishing point is determined, the cmdlet validates the content in the custom prompt, and verifies that it's in the correct format and uses a supported audio codec. If the custom prompt passes the validation tests, the cmdlet copies the prompt content to the prompt publishing point.

After the custom prompt is copied to the prompt publishing point, any necessary directory updates are made and the prompt is copied to each UM server in the dial plan. After the custom prompt is added to the appropriate folder on the UM server that's configured as the prompt publishing point, the Microsoft Exchange File Distribution service that runs on each UM server refers to the prompt publishing point and determines whether the files in the prompt publishing point have changed or additional files have been added. If files have been changed or additional files exist, the other UM servers pull the custom prompts from the prompt publishing point and copy them to the correct location in the \\<Server name>\ExchangeUM folder that exists on a local drive. After the custom prompt is copied to the prompt publishing point using the Copy-UMCustomPrompt cmdlet, use the Set-UMDialPlan or Set-UMAutoAttendant cmdlets to configure the dial plan or auto attendant to use the custom greeting file or prompts.

Exchange 2010 Service Pack 1 or later Custom Prompts

Custom prompts are also available in Exchange 2010 SP1 or later Unified Messaging for dial plans and auto attendants. The prompt publishing point that was available in Exchange 2007 SP3 Unified Messaging doesn't exist in Exchange 2010 SP1 or later. The system mailbox {e0dc1c29-89c3-4034-b678-e6c29d823ed9} is created when you install Exchange 2010 SP1 or later and is used to support features such as Message Approval and Multi-Mailbox Search. This system mailbox is also used in Exchange 2010 SP1 or later Unified Messaging to store dial plan and auto attendant custom prompts. If the system mailbox doesn’t exist you can use Setup /PrepareAD and one will be created. System mailboxes aren't visible in the Exchange Management Console (EMC) or in Exchange address lists.

By using an Exchange 2010 SP1 or later system mailbox, custom prompts can be backed up and restored along with other mailboxes in a database. This reduces the amount of resources that are needed. Storing custom prompts in a system mailbox removes any possible inconsistencies that may have occurred between Active Directory and the Microsoft Exchange File Distribution service in Exchange 2007 SP3 Unified Messaging. For details about the system mailbox, see Overview of the Mailbox Server Role.

Before you upgrade from Exchange 2007 SP3 Unified Messaging to Exchange 2010 SP1 or later Unified Messaging, you must copy the custom prompts that existed for Exchange 2007 SP3 UM dial plans and auto attendants to a folder on an Exchange 2010 SP1 or later UM server using the Copy-UMCustomPrompt cmdlet and then import those custom prompt files to an Exchange 2010 SP1 or later UM server. Custom prompts can be imported to Exchange 2010 UM by using the Import-UMPrompt cmdlet. The Exchange 2007 SP3 Unified Messaging cmdlet Copy-UMCustomPrompt isn't supported in Exchange 2010 SP1 or later UM for copying custom prompts. For details, see Import and Export Custom Prompts for Unified Messaging.

Use the following syntax to import custom prompts for Exchange 2010 SP1 or later UM dial plans:

Import-UMPrompt -PromptFileData <Byte[]> -PromptFileName <String> -UMDialPlan <UMDialPlanIdParameter> [-Confirm [<SwitchParameter>]] [-DomainController <Fqdn>] [-WhatIf [<SwitchParameter>]]

Use the following syntax to import custom prompts for Exchange 2010 UM auto attendants:

Import-UMPrompt -PromptFileData <Byte[]> -PromptFileName <String> -UMAutoAttendant <UMAutoAttendantIdParameter> [-Confirm [<SwitchParameter>]] [-DomainController <Fqdn>] [-WhatIf [<SwitchParameter>]]

The following table contains the steps that are required to ensure that custom prompts are available on the Exchange 2010 SP1 or later and Exchange 2007 SP3 UM servers.

Steps for Custom Prompts

Type of upgrade Steps for upgrading custom prompts:

Full Upgrade

  • Install Exchange 2007 SP3 on all Exchange servers in your organization.

  • Install the Exchange 2010 SP1 or later Unified Messaging server role and add the UM server to the Exchange 2007 SP3 ial plan.

  • Create the custom prompt if it's a new custom prompt. If the custom prompt was created in Exchange 2007 SP3, manually copy the prompt to a folder on an Exchange 2010 SP1 or later UM server using the Copy-UMCustomPrompt cmdlet.

  • Use the Import-UMPrompt cmdlet to import the custom prompt for a UM dial plan or auto attendant to an Exchange 2010 SP1 or later UM server.

  • From an Exchange 2010 SP1 or later UM server in the same organization with Exchange 2007 SP3 UM servers, run the following command:

    Set-UMDialPlan -identity MyUMDialPlan -LegacyPromptPublishingPoint $null
  • Decommission your Exchange 2007 SP3 UM servers if there are no Exchange 2007 SP3 UM-enabled mailboxes in your organization.

Partial Upgrade

  • Install Exchange 2007 SP3 on all Exchange servers in your organization.

  • Install the Exchange 2010 SP1 or later Unified Messaging server role and add the UM server to the Exchange 2007 SP3 dial plan.

  • Create new custom prompts, if needed. If the custom prompt was created in Exchange 2007 SP3, manually copy the prompt to a folder on an Exchange 2010 SP1 or later UM server.

  • Use the Import-UMPrompt cmdlet to import the custom prompt for a UM dial plan or auto attendant to an Exchange 2010 SP1 or later UM server.

  • If you update or create new custom prompts, you must use the Import-UMPrompt cmdlet to import the custom prompt to the Exchange 2010 SP1 or later UM servers and also use the Copy-UMCustomPrompt cmdlet to copy the same custom prompt file to the prompt publishing point for your Exchange 2007 SP3 UM servers.

    Note

    During the upgrade process, Exchange 2007 SP3UM servers and Exchange 2010 SP1 or later UM servers may coexist in the same dial plan and both answer incoming calls. The Exchange 2007 SP3 UM servers will read custom prompts from the Exchange 2007 SP3 custom prompt publishing point and the Exchange 2010 SP1 or later UM servers will read custom prompts from the system mailbox. You must update both custom prompt publishing locations if you're adding or changing custom prompts for a dial plan or auto attendant that's associated with both Exchange 2007 SP3 UM servers and Exchange 2010 SP1 or later UM servers in the same dial plan. If an incoming call is answered by an Exchange 2007 SP3 UM server, the Exchange 2007 SP3 UM servers will play the default greetings if you add a custom prompt for Exchange 2010 SP1 or later UM servers using the Import-UMPrompt cmdlet but don't copy the custom prompt using the Copy-UMCustomPrompt cmdlet for the Exchange 2007 SP3 UM servers.

Important

Exchange 2010 SP1 or later UM servers won't answer incoming calls for Exchange 2010 SP1 or later dial plans or auto attendants if the custom prompts are from Exchange 2007 SP3 Unified Messaging and weren't imported using the Import-UMPrompt cmdlet.

Autodiscover and Exchange Web Services in Unified Messaging

The Autodiscover service configures client computers running Microsoft Office Outlook 2007 or Outlook 2010 in addition to supported mobile phones. The Autodiscover service provides access to Exchange features for Outlook 2007 or Outlook 2010 clients connected to your Exchange messaging environment. The Autodiscover service must be deployed and configured correctly for these Outlook clients to automatically connect to Exchange features, for example, the offline address book, the Availability service, and Unified Messaging. For details, see Understanding the Autodiscover Service.

In an environment that contains both Exchange 2007 SP3 and Exchange 2010 SP1 or later servers, if the recipient has a mailbox that's hosted on an Exchange 2010 SP1 or later Mailbox server, the Autodiscover request must be directed to an Exchange 2010 SP1 or later Client Access server and not to an Exchange 2007 SP3 Client Access server. If Exchange 2007 SP3 isn't installed on the Exchange 2007 SP3 Client Access server, the Exchange 2007 SP3 Client Access server won't redirect correctly. When the Exchange 2007 SP3 Client Access server tries to generate an Autodiscover response, it isn't aware that there's an Exchange 2010 SP1 or later UM virtual directory and will create an incorrect value for the Unified Messaging URL that's used. You must install Exchange 2007 SP3 to ensure that the Exchange 2007 SP3 Client Access server redirects requests for Exchange 2010 SP1 or later UM-enabled users to the correct UM URL.

Outlook and Microsoft Office Outlook Web App use several URL properties, shown through Autodiscover, to enable UM features such as Play on Phone. When these URL properties are used, the values for the URL are returned but depend on both the version of Outlook and the Mailbox version for the user. The following table shows the versions of Outlook, the version of the user's Exchange mailbox, and which URL will be used.

Versions of Outlook and Exchange mailboxes

  User has an Exchange 2007 SP3 mailbox User has an Exchange 2010 SP1 or later mailbox

Outlook 2007

  • Https://<server name>/UnifiedMessaging/service.asmx is the value for the UM virtual directory that's returned to Outlook.

  • You must make sure that the UM virtual directory is configured correctly using the Set-UMVirtualDirectory cmdlet.

  • Https://<server name>/EWS/UM2007Legacy.asmx is the value for the UM virtual directory that's returned to Outlook.

  • You must make sure that the EWS virtual directory is configured correctly using the Set-WebServicesVirtualDirectory cmdlet. If it isn't configured correctly, voice mail options and the Play on Phone feature won't work correctly.

Outlook 2010

  • https://<server name>/UnifiedMessaging/service.asmx is the value for the UM virtual directory that's returned to Outlook.

  • You must make sure the UM virtual directory is configured correctly using the Set-UMVirtualDirectory cmdlet.

  • Exchange Web Services (EWS) URL: https://<servername>/EWS/Exchange.asmx is the value for the EWS virtual directory that's returned to Outlook.You must make sure that the EWS virtual directory is configured correctly using the Set-WebServicesVirtualDirectory cmdlet. If it isn't configured correctly, voice mail options and the Play on Phone feature won't work correctly.

  • Exchange Control Panel (ECP) URL: https://<servername>/ecp/ecp-vdir is the value for the ECP virtual directory that's returned to Outlook. You must make sure that the ECP virtual directory is correctly configured using the Set-WebServicesVirtualDirectory cmdlet. If it isn't configured correctly, the Voice Mail option won't work.

  • ECP Unified Messaging URL <EcpUrl-um>: ?p=customize/voicemail.aspx&amp;exsvurl=1.This is a hard-coded string, which is used together with the /EcpUrl property to locate the voice mail options page in the ECP. If this isn't configured correctly, the UM-enabled user won't be able to see the voice mail options page.

Service Packs for Exchange 2010

After you upgrade and install the RTM version of Exchange 2010 on UM servers in your organization, you should install Exchange 2010 Service Pack 2 (SP2). For details, see Install or Upgrade to Exchange 2010 SP2 Unified Messaging. If you’re upgrading to Exchange 2010 SP2, you must remove all the Exchange 2010 RTM and SP1 UM language packs and install the Exchange 2010 SP2 UM language packs. For details, see:

 © 2010 Microsoft Corporation. All rights reserved.