I administer an environment consisting of Lync 2010 on-premises with Exchange 2010 in a hybrid configuration with Office365. We were facing problems with users accessing voicemail. In some cases, a call going to voicemail would simply drop. In a few others, a call would transfer to voicemail, but then prompt for user interaction in the form of pressing pound [#].
To spoil the story, we had an issue with provisioning user accounts. Our process was roughly:
- Create AD user
- Enable Exchange Mailbox in on-premises environment.
- Enable Lync 2010
- Migrate Exchange mailbox to O365
We had a critical step missing in the scripted provisioning of the Lync account.
In this environment, Lync user provisioning has three separate steps:
- Enable-CSUser from AD account, specify registrarpool -sipaddress, -lineURI
- Grant-CSHostedVoicemailPolicy Specify the name of your Hosted UM Policy
- Set-CSUser [identity] -HostedVoiceMail $True
Here, Step 3 is critical. It must come after a hosted voicemail policy is set, and in our case it was not. In fact, it was being skipped entirely. Our provisioning team had to go back and enable the flag, but in some cases it was too late, O365 Exchange UM was already causing strange issues for users who had attempted to setup their voicemail without the correct Lync user configuration. Most notably, a Voicemail transfer from Lync on-premises would go through, but Exchange UM in O365 wouldn't handle the transfer gracefully, so a user was prompted to press pound [#]
After enabling Lync, you will need to re-run Dirsync, to ensure the SIP address gets into O365. From there, Enable-UMMailbox will work properly, assuming you also set the UMMailboxPolicy to your Hosted UM policy as appropriate. Unfortunately we are also missing this step in provisioning.