Applies to: Exchange Server 2013 and Exchange Server 2016
In this scenario we are migrating UM enabled users from Exchange on premises to Exchange Online. This process requires integration of your Exchange online UM with Skype for Business Server.
To deal with the migration of mailboxes from Exchange on-premises to Exchange online which are UM enabled, we have two options.
- You can disable UM for a user in on-premises Exchange Server and then move their mailbox to Exchange Online and enable it for UM in Exchange Online.
- If you do not wish to disable and re-enable the user for UM and would like them to stay UM enabled while moving their mailbox, we must create the same UM Dial Plan in Exchange Online and map the online UM mailbox policy with on-premises UM mailbox policy.
When the user is moved to Exchange Online they will receive an automated email indicating that they are enabled for UM and this email will contain the new Subscriber Access number and PIN details.
- Exchange Server 2016 hybrid
- Skype for Business Server 2015
- Skype for Business Edge server: To integrate Skype for Business server with Exchange Online UM, we need a working edge server with outside access and federation enabled. To confirm that edge server is configured correctly, sign into Skype for Business client remotely and establish an IM and Audio session with a federated user.
- Office 365 tenant: O365 should have your custom domain verified
- O365 License: Exchange online plan 2 or above
- Azure AD Connect: To synchronize Active Directory users to Azure Active Directory
- Exchange Online Standalone or Exchange in hybrid
Once the above-mentioned pre-requisites are met, we can either provision a mailbox directly in cloud (provided we do not have a mailbox in on premises for the same user) to enable UM in Exchange Online or we can migrate the mailboxes to Exchange Online without having on premises mailbox's UM disabled.
Steps to configure Exchange Online UM with Skype for Business Server
- Create a UM Dial Plan in Exchange Online
- Add a new Hosting Provider on the Edge Server
- Create Hosted Voicemail Policy
- Create contact objects for hosted Exchange UM in Skype for Business Server
- Map Online UM Mailbox Policy with the On-Premises Mailbox Policy (for on boarding a mailbox)
- Map On-Premises UM Mailbox Policy with the Online UM Mailbox Policy (for off boarding a mailbox)
- Assign Hosted Voicemail Policy to users
- Enable Users for Hosted Voice Mail
- Enable users for UM in Exchange online or migrate user mailbox to Exchange online without disabling UM
Step 1: Create a UM Dial Plan in Exchange Online
Login to https://portal.office.com as a Global Administrator
Then, go to Admin centers, select Exchange from the list.
Then on the following page select unified messaging
Click on ‘+’ button to create new UM dial plan and then enter name, Extension length, Dial Plan Type and Country code and save
As I have 4-digit dial plan created in my Skype for Business Server, I am using 4-digit Extension length.
Select newly created O365UMDialPlan, edit and Configure to create Subscriber Access number.
Under Outlook Voice Access add phone number in E.164 format. It should not be same as your on-premise Subscriber Access number. You can add DID if your Skype for Business Server is integrated with PSTN.
To configure Auto Attendant, select O365UMDialPlan, edit, UM Auto Attendants
Click the '+' button to create a new Auto Attendant and then enter a unique name without any space and special character.
Select “Create this auto attendant as enabled” and “Set this auto attendant to respond to voice commands” and then enter the unique phone number in E.164 format, it should not be same as on-premise auto attendant number. (If you have configured auto attendant in on-premises you can use the same auto attendant till you completely migrate to cloud).
Make a note of default UM Mailbox policy as it is required to map with the on-premises UM mailbox policy.
Step 2: Add a Hosting Provider on the Edge Server
Using the Skype for Business Server management shell, configure a hosting provider on the Edge server by running the New-CsHostingProvider cmdlet, using the parameters in the following example:
New-CsHostingProvider -Identity 'Exchange Online' -Enabled $True -EnabledSharedAddressSpace $True -HostsOCSUsers $False -ProxyFqdn "exap.um.outlook.com" -IsLocal $False -VerificationLevel UseSourceVerification
- Identity specifies a unique string value identifier for the hosting provider that you are creating (for example, "Exchange Online"). Values that contain spaces must be in double quotes.
- Enabled indicates whether the network connection between your domain and the hosting provider is enabled. This must be set to True.
- EnabledSharedAddressSpace indicates whether the hosting provider will be used in a shared SIP address space scenario. This must be set to True.
- HostsOCSUsers indicates whether the hosting provider is used to host Office Communications Server or Skype for Business Server. This must be set to False.
- ProxyFQDN specifies the fully qualified domain name (FQDN) for the proxy server used by the hosting provider. For Exchange Online, the FQDN is exap.um.outlook.com.
- IsLocal indicates whether the proxy server used by the hosting provider is contained within your Skype for Business Server topology. This must be set to False.
- VerificationLevel Indicates the verification level allowed for messages that are sent to and from the hosted provider. Specify UseSourceVerification, which relies on the verification level included in messages sent from the hosting provider. If this level is not specified, the message will be rejected as being unverifiable.
To ensure that a hosting provider was created successfully, run Get-CsHostingProvider. Below is the screenshot from my lab setup, your output should match as highlighted below.
Step 3: Create Hosted Voicemail Policy
Typically, only one hosted voicemail policy is required. In many cases, you can modify the global policy to meet all your needs. If you create a policy with site scope, it is assigned automatically to all users homed at the specified site. If you create a policy with per-user scope, you must explicitly assign it to users, groups, and contact objects. It is possible to deploy multiple hosted voicemail policies, but in that case the policies must be assigned on a per-user basis.
To modify global policy run below command in Skype for Business Server management shell.
Set-CsHostedVoicemailPolicy -Identity Global -Description "Global Hosted VM Policy for All Users" -Destination exap.um.outlook.com -Organization cloudtoday2016.onmicrosoft.com
- Destination specifies the fully qualified domain name (FQDN) of the hosted Exchange UM service. For Exchange Online UM this is the FQDN um.outlook.com
- Organization This parameter contains a comma-separated list of the Exchange tenants that contain Skype for Business Server users. Each tenant must be specified as an FQDN of the tenant on the hosted Exchange Service.
The Organization name is also the Default Domain name in O365.
To ensure that a Hosted Voicemail Policy was created successfully, run "Get-CsHostedVoicemailPolicy".
Your output should look like below screenshot.
To create per-user or site-level hosted voicemail policy refer: https://technet.microsoft.com/en-us/library/gg398332.aspx
Step 4: Create contact objects for hosted Exchange UM in Skype for Business (Optional)
To be able to dial in to Subscriber Access number for voicemail and Auto Attendant we must create contact objects for Auto Attendant (AA) and Subscriber Access (SA) in Skype for Business Server.
To create contact objects for AA and SA in Skype for Business server using Skype for Business management shell, refer: https://technet.microsoft.com/en-us/library/gg412765.aspx
New-CsExUmContact -SipAddress sip:O365UM@fabrikam.com -RegistrarPool RedmondPool.litwareinc.com -OU "OU=ExUmContacts,DC=litwareinc,DC=com" -DisplayNumber +1001
New-CsExUmContact -SipAddress sip:O365AA@fabrikam.com -RegistrarPool RedmondPool.litwareinc.com -OU "OU=ExUmContacts,DC=litwareinc,DC=com" -DisplayNumber +1002 -AutoAttendant $True
If you have created per-user Hosted Voicemail Policy, we must assign it to all users including the SA and AA contact objects. If you have modified Global policy, by default it will be applied to all the users.
Run below commands in Skype for Business management shell to assign Hosted Voice mail policy to SA and AA contact objects.
Grant-CsHostedVoicemailPolicy -Identity "sip:O365SA@fabrikam.com" -PolicyName "Exchange Online"
Grant-CsHostedVoicemailPolicy -Identity "sip:O365AA@fabrikam.com" -PolicyName "Exchange Online"
Where PolicyName will be the name of per-user Hosted Voicemail policy.
Step 5: Map Online UM Mailbox Policy with the On-Premises Mailbox Policy (for onboarding a mailbox)
To map online and on-premise UM Mailbox policies we must run a below command. This will allow you in migrating a mailbox without disabling its corresponding UM policy.
Set-UMMailboxPolicy -Identity "Online UM Mailbox policy" -SourceForestPolicyNames "On-prem UM mailbox policy"
- Identity is the Office 365 UM Mailbox Policy
- SourceForestPolicyNames is the On-Premises UM mailbox policy
To get the on-premises UM mailbox policy, login to Exchange Admin Center of On-Premises Exchange Server, then go to unified messaging, UM dial plan and select the dial plan, edit and make a note of UM Mailbox Policies.
Now to map online UM Mailbox Policy with the on-premises UM Mailbox Policy connect to Exchange Online PowerShell with the global administrator.
To connect to Exchange Online PowerShell, refer: https://technet.microsoft.com/en-us/library/jj984289(v=exchg.160).aspx
$cred = Get-Credential
$session = New-PSSession -ConfigurationName Microsoft.Exchange -Authentication Basic -ConnectionUri https://ps.outlook.com/powershell -AllowRedirection $true -Credential $cred
Once connected to Exchange Online PowerShell, run below command to map online UM policy with On-Premises UM policy.
Set-UMMailboxPolicy -Identity "O365UMDialPlan Default Policy" -SourceForestPolicyNames "UmDialPlan Default Policy"
Step 6: Map On-Premises UM Mailbox Policy with the Online UM Mailbox Policy (for offboarding a mailbox)
This step is required if in case you migrate user mailbox back to on-premises.
Run below command in on-premises Exchange Server management shell
Set-UMMailboxPolicy -Identity "UmDialPlan Default Policy" -SourceForestPolicyNames "O365UMDialPlan Default Policy"
- Identity is the On-Premises UM mailbox policy
- SourceForestPolicyNames is the Office 365 UM Mailbox Policy
Step 7: Assign Hosted Voicemail Policy to users
Assign Hosted Voicemail Policy for all the users, if you have created per-user policy. Ignore this step if you have modified the Global policy.
Grant-CSHostedVoicemailpolicy -identity “youraccount” -PolicyName “Exchange Online”
Where PolicyName will be the name of per-user Hosted Voicemail Policy
Step 8: Enable users for Hosted voicemail
We must enable users for Hosted Voicemail, by running below command.
Set-CSUser -identity “sip:firstname.lastname@example.org” -HostedVoicemail $True
Step 9: Enable users for UM in Exchange online or migrate user mailbox to Exchange online without disabling UM
Once we complete all the steps mentioned above, we can migrate the mailboxes to Exchange Online without having on premises mailbox's UM disabled or we can directly enable for UM in online if user mailbox is provisioned in online.
To enable user for UM in online directly, go to Exchange online admin center, recipients, select user, Enable for UM.
Browse and select UM mailbox policy
Provide 4-digit extension and click finish.
User will receive an email with Subscriber access number and PIN details which they must reset first time they sign in.
I hope this has been informative for you, please feel free to reach out to me if you have any queries.