By Dino Caputo & Kevin Kieller of enableUC
Cloud services continue to attract much interest from potential customers and Microsoft's Office 365 is often considered by those looking to move to the cloud.
Part 1 of this series looked at how enableUC moved from Microsoft BPOS to Office 365, primarily focusing on email. (For more of an overview of Office 365, see Office 365: First Impressions.)
In this installment we look at how Office 365 allows organizations to move their voicemail into the cloud. The example we look at involves voicemail for a Lync environment however keep in mind that there is an opportunity to move voicemail to the Office 365 cloud for other more traditional telephony systems as well. We will likely explore using cloud-based Office 365-powered voice mail with other telephony systems in future installments.
enableUC's Lync Environment
The Office 365 version of Lync includes a number of limitations.
A full comparison between Lync Online and on-premise Lync Server features can be viewed here. In summary, the main limitation of Lync Online is the lack of voice and telephony functionality. Features such as PSTN calling (inbound and outbound) are not possible with the native Office 365 offering today.
To work around these (current) limitations with Office 365, enableUC has installed its own on-premise version of Lync.
The enableUC Lync environment consists of two Physical Servers which run Windows Server 2008R2 and leverages Hyper-V virtualization to host the Lync server roles required. The following 5 virtual server roles support enableUC's Lync infrastructure today:
- Active Directory Domain Services (ADDS) with DNS and Certificate Services
- Lync Standard Edition Server (providing all Lync workloads)
- Lync Mediation Server (providing SIP/TCP to SIP/TLS & SRTP to RTP translations as well as codec translations, RTAudio to G.711, termination point for ThinkTEL SIP Trunk)
- Microsoft Threat Management Gateway (TMG) providing secure Web reverse proxy services
- Lync Edge Server allowing for remote user access and federation to other OCS/Lync networks as well as Public IM Networks (AIM, MSN, and Yahoo)
Focus on Voicemail
With BPOS, the previous version of Microsoft's hosted offering, the Exchange component did not support the unified messaging role that provides voice mail.
This meant that in order for enableUC to have voicemail, we effectively needed to leverage either a 3rd party solution or run Exchange Server on premise alongside Lync, which diminished the value proposition of BPOS.
A major improvement with Office 365 was the inclusion of Exchange Unified Messaging as part of the offering. This allows organizations to enable Microsoft Exchange Unified Messaging for their on-premise Lync deployment or connect a UM capable IP-PBX. If you have previously worked with and enabled Exchange UM for and on-premise solution, enabling cloud-based Exchange UM will be very similar.
In summary, below is the ten step process that enables an on-premise Lync deployment to use voicemail services from the Office 365 cloud:
- Ensure you have a working Lync environment.
- Verify existing or create a new Hosted Voice Mail Policy.
- Create UM Dial Plan.
- Configure an E.164 Routing Number within the Dial Plan and Configure a Subscriber Access Number.
- Create a Lync Exchange UM Contact to represent the previously created Dial Plan in Exchange.
- Associate the Hosted VoiceMail Policy with the Contact Object.
- Ensure that the Lync Users you want to UM enable are first enabled for Lync Enterprise Voice.
- Enable users for Hosted Voicemail in Lync.
- Enable users for Exchange UM within Office365.
- Ensure users have email addresses in Active Directory.
All the "Techie" Details Fit to Print
For those technically adept and those who want to "play along at home" below is the detail on how this process unfolded for our configuration. (Those who are scared off by technical jargon may want to skip ahead to the "Success and Limitations" section.)
- First off you need to have a working on premise Lync environment that includes a Lync Front-End Standard Edition server or a Lync Enterprise Edition Pool along with a Lync Mediation server (could be collocated on Standard Edition Server) and a Lync Edge Server. I will assume for the purposed of this post that your environment is fully functional in terms of the Lync workloads.
- By default Lync creates a Global Hosted Voice Mail Policy you can use or you can create a new Policy based on a Lync Site, or Per-User basis. Here is what the command would look like to create a Per-User basis policy:
New-CsHostedVoicemailPolicy -Identity Oakville -Destination exap.um.outlook.com -Description "Hosted voice mail policy for Oakville users." -Organization "enableUC.com"
The destination should always be exap.um.outlook.com
- In Exchange Control Panel (ECP), create a new UM Dial Plan for the Lync users who will be enabled for Enterprise Voice, and use Exchange Online UM for voice mail. This will need to be a SIP URI based Dial Plan and for simplicity I used a 10 Digit plan that matched our E.164 numbers.
To do this logon to the Office 365 Admin site and select Manage under the Exchange Online heading as shown below:
This brings you to the Exchange Online Control Panel. Next select the Phone and Voice option choose UM Dial Plans.
Click New UM Dial Plan and set the type to "SIP URI". I used a 10 digit dial plan that will simply match our DID numbers.
Save your changes.
- Next we create The E.164 Routing number which coincides with the Dial Plan that we just created. This tells Exchange UM how to route calls destined for any user configured for this dial plan. You will also specify this same number but in a readable format which represents the Subscriber Access number. This will also be the number that users would dial into for Exchange Voice Access. Click on "Configure UM Dial Plan" for the UM Dial Plan you just created:
Enter the E.164 Routing Number you have selected and then enter the same number as you want it displayed to users
- We now need to create a contact object within Active Directory to represent the Dial Plan. To do this we run the following Lync Powershell cmdlet:
New-CsExUmContact -DisplayNumber +1645551212 -SipAddress sip:[email protected] -RegistrarPool EUCLyncSE1.corp.enableUC.com –OU "OU=EXUMContacts,DC=corp,DC=enableUC,DC=com"
The DisplayNumber, SIP address and Registrar Pool should be changed to your values specific to your organization. You can even specify where you want these contacts created using the OU parameter.
- We will now associate the Hosted Voicemail Policy we dealt with in Step 2 with this contact object we just created in Step 5. Again we run a Lync Powershell cmdlet to do this.
Grant-CSHostedVoiceMailPolicy –Identity "ex-um-sa" – PolicyName Oakville
If you used the Global HostedVoiceMail Policy then you don't need to specify a PolicyName otherwise use the PolicyName parameter. In our case since we created created a user based Hosted VoiceMail Policy called Oakville that is what I specified. The Identity parameter should exactly match what you called your Exchange UM object that was created in step 5. Note that the cmdlet in step 5 will create the Display name using the first part of the sip uri.
- Ensure users you want to Exchange UM enable are Enterprise Voice enabled in Lync.
- If you used a Global or Site based CSHostedVoiceMailPolicy then you may not need to do this. If you used a per-user based CSHostedVoiceMailPolicy then you will need to apply that policy to each user that requires Exchange UM. Use the same cmdlet as in step 6.
- So for me it would be Grant-CSHostedVoiceMailPolicy –Identity "Dino Caputo" – PolicyName Oakville
- Then Set the CSHostedVoiceMail attribute for the user with the following cmdlet: Set-CsUser -Identity "Dino Caputo" -HostedVoiceMail $True
- In the Exchange Control Panel within Office365, enable a user for Unified Messaging.
- Ensure users have their email address field populated within your local Active Directory. This is crucial for the Lync client to be able to access Exchange Web Services in the cloud and for the voicemail functionality to work in the Lync client.
If everything has been setup correctly the next time you sign onto Lync you should be prompted to install the Microsoft Online Services Sign-in Assistant. This client facilitates the remote Exchange Autodiscover process, allowing Lync to communicate with Exchange Web Services and tap into the rich integration features that Lync and Exchange provide. Install this client and restart the Lync client. You will then be prompted for your Office 365 Credentials after signing onto Lync.
Success and Limitations
Overall our transition to voicemail in the cloud went very well.
For an organization that is focused on Unified Communications we really needed an on-premise Lync environment to take advantage of its full list of capabilities and also to facilitate the custom development that we are presently doing. Generally speaking there is no difference between the on-premise version Exchange 2010 UM and the cloud version with respect to the feature set offered. For more Q&A on this topic please see http://community.office365.com/en-us/w/exchange/569.aspx
In our case, all of the Lync client integration features between Outlook and Exchange 2010 Online worked well. This includes features such as Missed Call Notification, Conversation history, voicemails, received and dialed calls right from within the Lync and Outlook client.
What doesn't work so well is Lync Phone Edition. (For clarity, Lync Phone edition is the software that runs on the Lync-compatible IP phone sets.) Although you do get Message Waiting Indicator (MWI) on received voicemails and can listen to them via the Lync Phone Edition, you cannot access Exchange Contacts or Calendar because the Phone is not capable of talking to Exchange Web Services which is required for these features to work.
These issues arise due to the fact that the Lync Phone Edition does not support wildcard certificates, which is what Microsoft Exchange Online is utilizing in order to enable organizations to connect to it. We are hoping that this is something that Microsoft will correct in the near future as many Office 365 customers will want to take advantage of using Lync Phone Edition.
Using Office 365 Voice Mail with Traditional PBXs
An exciting area for customers looking at moving their voicemail into the cloud and taking advantage of all the great features of Exchange UM is that your existing IP-PBX may be capable of leveraging Office 365 Exchange UM.
We run into many customers that have IP-PBXs that are working fine however their voicemail solution is on its last legs. In this case, Exchange UM online might be able to solve your problems.
Conclusion
While not a trivial process, setting up voicemail in the cloud using Microsoft's Exchange UM Online is certainly possible and very worthwhile. If you have Lync Server on premise today or have an existing IP-PBX this is a solution you may want to consider.
Dino Caputo is a partner with enableUC a company that helps organizations get the most out of their UC investments. You can follow Dino on twitter at @dinocaputo.
Kevin Kieller is a partner with enableUC and regular contributor to No Jitter. You can follow Kevin on twitter @kkieller.