There’s two ways to migrate to Exchange 2010 UM:
- Full Upgrade
- Partial Upgrade
In a Full Upgrade scenario, you are doing a big bang migration for your Exchange 2007 UM users and moving them all to Exchange 2010 UM at the same time. At the same time, you are replacing your Exchange 2007 UM Servers within your UM Dial Plan with Exchange 2010 UM Servers.
In a Partial Upgrade, you are going to have Exchange 2007 UM Servers and Exchange 2010 UM Servers coexist within the same Dial Plan.
It is important to note how the call flows work in a Partial Upgrade Path. You can see this documented very well here. In order for the Partial Upgrade process to work, the documentation clearly states, “When you install the first Exchange 2010 UM server and add it to an existing Exchange 2007 organization, you must add the Exchange 2010 UM server to an existing UM dial plan that contains Exchange 2007 UM servers. Then you must configure each IP gateway or IP PBX to send all incoming calls to the Exchange 2010 UM servers within the same UM dial plan.”
The key part to note is that you must configure each IP Gateway object that is in the Dial Plan to now send ONLY to Exchange 2010. The problem with the article, is that it does state this clearly and does show example of call flows, but what isn’t really explained is what exactly is happening on the Back-End. And that, is what I am here to explain.
The basic jist of it, is that Exchange 2010 will redirect the IP Gateway to Exchange 2007 where necessary. But let’s say you have a PBX connected to a gateway which is connected to UM. Exchange 2010 UM will always redirect the gateway for an Exchange 2007 user and the gateway will connect directly to Exchange 2007 UM. The gateway never has to relay any information back to the PBX in this case so there are no considerations you have to make for the PBX here. The only consideration you should make is to make sure that the gateway has been certified against Exchange 2010 UM before you decide to do your partial upgrade. The certified gateway/IP-PBX for Exchange 2007 is here and the certified list for Exchange 2010 is located here.
With that said, the redirects from Exchange 2010 to Exchange 2007 work a couple different ways depending on the circumstances. Thanks to Chun from Microsoft for providing me with these details that were documented in great detail.
There are two broad categories on how the redirection happens:
- Before UM 2010 accepts the invite, it knows the call is for an UM 2007 user (e.g., diversion exists and UM can tell that the call is for a 2007 user). In this case, we simply use 302 redirect.
- UM 2010 needs to accept the invite before it knows the call is for an UM 2007 user. E.g., someone calls into the subscriber access from a phone that we cannot resolve to a user. UM needs to answer the call first, and wait for the user to punch in the mailbox extension. In this case, UM will send a REFER to the gateway to cause the gateway to send a new INVITE to the same UM 2010 server. But in the REFER header, we stick in a couple of information which shows up in the new INVITE. The UM 2010 server sees this information, realizes it is for a 2007 user, and redirects the call to UM 2007.
Now let’s take a look at a real life migration example from a procedural standpoint. Let’s start off with not having Exchange 2010 yet. We have our IP-PBX which is sending data to an IP Gateway which is then sending data to Exchange 2007.
We then build our Exchange 2010 Server, install Exchange 2010 UM Role on it, and we then add it to our Dial Plan which will then consist of both Exchange 2007 and Exchange 2010 UM. Keep in mind, when using OCS as the IP-PBX, you must be on at least OCS 2007 R2 CU5 and Exchange 2010 SP1 to be able to allow Exchange 2010 UM SP1 and Exchange 2007 to be in the same Dial Plan. The reason for this is Exchange 2010 SP1 introduces capabilities that allow OCS 2007 R2 CU5+ and/or Lync to be able to do a user lookup, determine if they’re on Exchange 2010 or Exchange 2007 and route to the appropriate Exchange Version (2007 or 2010) regardless if they’re in the same Dial Plan.
As can be seen above, we now have Exchange 2010 and Exchange 2007 in the same Dial Plan. We have also started routing all traffic to Exchange 2010. If the call is for an Exchange 2007 User, Exchange 2010 will redirect the IP Gateway to start talking to Exchange 2007 to service those Exchange 2007 users.