This article is about exploring what are the main components of Exchange Unified Messaging platform (UM) and how call routing and voice mail features really work behind the scenes.
Exchange UM Components
- UM Dial Plans
- UM Messaging Policies
- UM IP Gateways / UM Hunt Groups
- UM Auto Attendants
What is Exchange Dial Plan?
Dial plans is the main and most important component in Exchange UM infrastructure. It has any usages, so will try to list them here.
UM dial plans acts from one side like telephony dial plans. They are used in Unified Messaging to make sure that user telephone extensions are unique. You cannot have two similar extensions in the same dial plan, but you can if they are in different dial plans.
UM dial plans controls the length of user extension, in our case the extension length is four digits. Going back to the previous point, my extension can be 1222, and another one say in Dubai could have the same extension, if he is located in different dial plan. This is why we are designing UM dial plans to match Skype/Lync dial plans. So we have a UM dial plan called LOC801 for GSO and a Skype dial plan called LOC801 for GSO. We also have UM dial plan called LOC803 for DXB, and Skype dial plan called LOC803 for DXB. If we did not do that, and we have just one UM dial plan for the whole network, then my extension number (1222) cannot be assigned to anyone else in the whole network.
So why 4 digits and not 7 digits like 801 1222? If we make it 7 digits then we can put the whole company in one big fat dial plan and no way we would have collisions in extension because we are adding the 80X prefix to indicate the region. There are two reasons for that:
- If the UM dial plan number of digits is = X, then Exchange will try to take the last X digits from the user’s phone number and will assume that this is his extension. For example, my phone attribute is +96265515111 x 1222, So Exchange UM will try to take the last X digits and put it as my extension, unless we manually assign the extension number for the user during his UM provisioning. Saying that, it makes sense to make the number of digits as 4 and not 7, since the last 7 digits of my phone number does not read 801 1222.
- Second part, if we put all people in the same dial plan, then we loose customizations needed for each office, like default language for greeting, dialing habits, and more. So suppose we have one big dial plan and the default language is English, now imagine in France office someone is leaving voice message in French and Exchange UM tries to generate voice mail preview (speech to text). Assuming that the dial plan default language is English, trying to handle French voice mail to English words would be really interesting.
So UM dial plans defines number of extensions, and provides the ability for two people to have same extensions if they are in different dial plans.
Dial plans are unit of applying policy, so we can say, prevent people to make outgoing calls to people outside this dial plan. You know, one feature of Exchange UM is giving users the ability to dial out, like for example, play my voice message on my phone.
Moreover, dial plans are mainly used for routing calls, because UM servers are linked to dial plans. Suppose the case where Skype servers wants to leave a voice mail for user John Smith, Skype will try to located the dial plan for John, and see which UM servers are serving that dial plan, and then open SIP Invite to one of those UM servers serving that dial plan. Without dial plans, there is no way Skype would know how to route calls.
Also UM dial plans is where you define the outlook voice access number so that users in that dial plan can call that number and access their email and voice messages.
There is so much to configure through dial plans, but the must important piece of information is that it is used to route voice messaging between Skype and Exchange. It is the way Skype would know where to deliver the voice message.
Tip: UM Dial Plan name should not contain spaces, and also you cannot rename a UM dial plan, even if the wizard allow this. You should delete and re-create the dial plan all over if you want to rename it.
Previously, UM Dial Plans were associated with Exchange UM servers, but with Exchange 2013 and above, any Exchange UM server can accept the call from any defined UM IP gateway.
Also previously Lync/Skype dial plans were supposed to match the names of Exchange UM dial plans, but this not a requirements anymore with Exchange 2013 and above.
UM Messaging Policies
UM Messaging Policy is the container that links a user to a dial plan. When you provision a user in Exchange UM, you will be prompted to enter a UM Messaging Policy, and not a dial plan.
A dial plan in the other hand is linked to a UM messaging policy, so that by assigning a user to a UM messaging policy, he will be assigned to a dial plan.
UM messaging policy is a place where many policy controls can be defined like PIN length and settings.
PIN is used mainly when accessing Outlook Voice Access or OVA. PIN is becoming like your credential, because knowing the user’s PIN and his extension, then you can authenticate to OVA and access the user’s mailbox.
UM IP Gateways / UM Hunt Groups
UM Hunt Groups are not used anymore, and they are just there for backward compatibility.
UM IP Gateway is away to make Exchange UM aware of IP gateways that can be used when dialing out. Those are mainly the Skype servers in our case.
Again, let us remember that Exchange UM can dial out, for example when you want to read your voice mail and you do not have computer speakers, so you can Play on Phone and ask Exchange to call you mobile for example and read the voice message for you. To do that, Exchange UM needs to know where to route the outbound calls.
UM IP Gateways are attached to the UM dial plans, so that we can in away link specific users to specific gateways. Say for example people in UK are configured with a specific UM dial plan, and you want them only to use UK gateways for dialing out. This can be done by configuring that UM dial plan with only UK gateway.
Usually we do not create UM IP gateways manually, but we use an Exchange script called EXUcUtil.ps1 to do that for us. It will discover all Skype servers and configure them as IP gateways in Exchange UM.
UM Auto Attendants
This is interesting piece, as it is a complete solution by itself. We can configure different auto attendants with different greeting and languages and route a DID number to those auto attendants per region. So for example you can call +96265515111 and this number will be routed to Exchange UM Jordan Auto attendant, and we will play some greetings, and then we will do what we call branches, like press 1 to go to operator, or just dial the extension number if you know it.
Exchange automated attendant objects are stored under CN=UM AutoAttendant Container, CN=orgName, CN=Microsoft Exchange, CN Services. Also Dial plans are stored here.
How everything work together?
The heart of everything is the UM Dial Plan. This UM Dial plan has nothing to do with Skype dial plan. Names even can be different.
UM Dial Plan is the unit of applying policy and routing calls. It links everything together.
When you enable mailbox user for Exchange UM, you will be prompted to what UM Mailbox Policy you want to assign him, so end users are assigned a UM Mailbox Policy.
Each UM Mailbox Policy is linked to a Dial Plan. Dial Plan can have many UM Mailbox Policies attached to it, but a UM Mailbox Policy can only be attached to one Dial Plan.
So why UM Dial Plan can have more than UM Mailbox Policy? Suppose you have LOC801 dial plan for GSO, and you want part of the users to be able to dial out via UM while others cannot. So you create two UM mailbox policies, one that can dial out and one that cannot, but both are within the same UM Dial Plan. That is why users are assigned to UM Mailbox Policy when enabling someone for UM, and to not to a UM Dial Plan.
A good example of dialing out, is that you have configured Call Answering Rules in your OWA, so that when someone reaches your voice mail, you can give him the option for urgent matters to press 1 and then let UM to dial out your mobile number.
Dial Plan also is attached to one or many Exchange UM Servers. This makes Skype servers to know where to route the calls. Say that Skype wants to leave a voice mail to Bob, and wants to located a UM server, it checks the UM Dial Plan that Bob is assigned to from Bob AD object, then it reads the UM Dial plan definition from AD Configuration Partition, and then will list all UM servers attached to that Dial Plan, and it will pickup one and route the call to it.
Also this makes things interesting for load balancing, say you have 12 UM servers and two UM dial plans, you can attach 6 UM servers to each dial plan, thus load balancing the traffic between the UM servers.
Unified Messaging hunt groups act as a connection or link between the Unified Messaging IP gateway and the Unified Messaging dial plan. Therefore, a single Unified Messaging hunt group must be associated with at least one Unified Messaging IP gateway and one Unified Messaging dial plan.This is needed when there is a need to dial out like for example when you use the Play on Phone for the voice mails you receive.