In case you’re just joining us…we’re tackling a complex answer to a fairly simple question. How do we connect (Office 365’s) Exchange Online Service to Lync Server for voicemail?

This is the third (and final) post on the solution.

Ordinarily, we’d recommend using an internal Exchange Server over Exchange Online. But the question came from one of our readers, who already had a different setup in place.

So we’re digging through all the steps necessary to make an internal communications system (Lync) work with an external service (Exchange Online).

In Part 1, we discussed providing Lync users with voice mail on Exchange Online.
In Part 2, we walked through a Unified Messaging Dial Plan and adding a voicemail policy domain to Office 365.

Two steps remain: configuring your Edge Server to integrate with Exchange Online’s Unified Messaging, and directing Lync Server to use Exchange Online.

The hard work’s done. The rest, as you’ll see, only takes some time in the Management Shell. So it’s just a matter of entering one command after another.

How to Configure the Edge Server for Integration with Exchange UM

A) Configure the Edge Server for Federation

1. Open the Lync Server Management Shell.
2. Run the Set-CsAccessEdgeConfiguration cmdlet to configure the server for federation:

Set-CsAccessEdgeConfiguration -UseDnsSrvRouting -AllowFederatedUsers 1 -EnablePartnerDiscovery 0

UseDnsSrvRouting tells the Edge Server to use DNS SRV records for sending/receiving federation requests. (The DNS SRV records were set in Part 1.)

AllowFederatedUsers is set to 1 so that internal users can communicate with users from federated domains.

EnablePartnerDiscovery is set to 0 to make sure Lync federates only with domains in the Allowed Domains list (instead of everybody).

B) Replicate Central Management Store Data to the Edge Server

1. Replicate the Central Management store data to the Edge Server. Use this cmdlet:

Export-CsConfiguration -FileName (

2. Copy the config file to external media. Load it on your the Edge Server.

C) Create a Hosting Provider on the Edge Server

Still in the Management Shell, run the New-CsHostingProvider cmdlet to configure the hosting provider.

New-CsHostingProvider -Identity -Enabled $True -EnabledSharedAddressSpace $True -HostsOCSUsers $False -ProxyFQDN “” -IsLocal $False -VerificationLevel UseSourceVerification

This cmdlet uses the following parameters (you may not need all of them):

  • Identity – A unique identifier for the new hosting provider. The command will fail if you’ve used this identity value for an existing provider!
  • Enabled – Must be set to True to connect your domain and the hosting provider. Can’t send/receive messages otherwise.
  • EnabledSharedAddressSpace – Is the new hosting provider in a shared SIP address space (split domain)? If so, set to True.
  • HostsOCSUsers – Will the hosting provider host Lync Server accounts? If False, the provider hosts other account types, like Microsoft Exchange accounts.
  • ProxyFQDN – The FQDN for the proxy server used by the hosting provider. Make sure this is accurate, because you can’t change it once set. If the hosting provider changes its proxy, you’ll need to recreate its entry.
  • IsLocal – Is the hosting provider’s proxy within your Lync topology? If so, it’s local (True). If not, set to False.
  • VerificationLevel – Indicates the verification level for messages sent to/from the hosted provider. Putting in UseSourceVerification tells the system to rely on the verification level included in sent messages. (If this isn’t specified, the message will be rejected as unverifiable.)

How to Direct a Lync Server to Exchange Online UM

Home stretch! And we don’t even have to leave the Management Shell.

1. Use the Set-CsHostedVoiceMailPolicy cmdlet to modify the hosted voicemail policy. Specify the Destination parameter as “” and the Organization parameter as the FQDN of your Exchange Online routing domain ( here):

Set-CsHostedVoiceMailPolicy -Destination -Organization

2. Now we’ll create a Lync contact to represent the Exchange Online UM dial plan we made in Part 2. Use the New-CsExUMContact cmdlet. Remember the dialing rules you set for your numbers then? We’ll enter the full routing number here, with the DisplayNumber parameter (use E.164 format).

New-CsExUMContact -DisplayNumber +14085551122 -SipAddress -RegistrarPool -OU “OU=ExUmContacts,DC=YourDomain,DC=com”

3. Now we’ll associate a hosted voice mail policy with this new dial plan contact. If you’re using the default global hosted voice mail policy, this cmdlet will do the job:

Grant-CsHostedVoiceMailPolicy -Identity

4. Associate the dial plan contact with the Exchange Online UM dial plan we created in Part 2.

And we’re done!

Take a breath, grab a drink, and relax. Thanks to this process, you should now have:

  • Established routing between Lync Server 2010 and Exchange Online.
  • Voice mail storage & transfer capability between the two servers.
  • Consistent dial plans for all users.

And for one more reference: Here’s the checklist for this entire process, from Microsoft.
Checklist: Connect Lync Server 2010 to Exchange Online UM

Next week we’ll feature some very helpful training videos. Good change of pace from big how-to posts. Catch you then!

How to Connect Lync Server to Exchange Online: Part 3

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.