Unable to leave Voice Mail for Skype for Business users.
ms-diagnostics: 15014;reason=”Hosted Voicemail Policy assigned to the user is not fully configured. Destination or Organization might be null”;source=”server1.mydomain.com”;appName=”ExumRouting”
Recently I came across issue, were users are unable to leave VoiceMail. Their exchange mailbox migrated recently to Exchange On-Premise. All affected users Skype for Business SIP account and Exchange mailbox both are homed on On-Premise Skype for Business (SFB) /Lync Server and Exchange server respectively.
When I capture UCCAPILOG and Monitoring log for Voicemail failures, ms-diagnostics says “Hosted Voicemail Policy assigned to the user is not fully configured. Destination or Organization might be null”
But in my case user’s mailbox and SIP address are homed on-premise server not on Exchange UM Online, when checked user (Get-CsUser -Identity “Balu Ilah”), result shows ‘HostedVoiceMail’ shows True.
Why Voicemail routes to hosted exchange UM online?
Remember ‘HostedVoiceMail” value attribute tells that user enabled for Hosted Voicemail, and Hosted VoiceMail policy determine how to route Voicemail to Hosted Exchange UM. A hosted voice mail policy provides information to the Skype for Business/ Lync Server ExUM Routing application about where to route calls for users whose mailboxes are located on a hosted Exchange services.
In my case users SfB account and Exchange mailbox homed on On-Premise Server but ‘HostedVoiceMail’ attribute shows ‘True’, means my account enabled for SFB/Lync Server to use an Exchange UM hosted voicemail service. hosted VoiceMail policy determines how to route unanswered calls to the user to a hosted Exchange UM service (Exchange Online).
However, all users including me who are unable to leave voicemail are homed on SFB/Lync Server and Exchange Server on-premise. So, it should not route voicemail to Hosted Exchange UM service (Online) but it is routing and failing.
Let’s troubleshoot this behavior:
To resolve this, I have tried to manually set “HostedVoiceMail” attribute value as False/Null in SFB/Lync Server, but is automatically getting changed from False/Null to True, as soon as DirSync runs (by default every 30 mins). That’s how server learns that to send Voicemail to hosted Exchange UM service, however both SFB/Lync and mailbox are on-premise so obviously, voicemail fails as expected.
What might have had happen, When User mailbox moved back to On-Premise from Exchange Online, for Exchange online msExchUCVoiceMailSettings attribute did not change to $Null.
What is msExchUCVoiceMailSettings, attribute and why we need this? This is an attribute which get created when Active Directory schema prepared for SFB/Lync Server. Also, this attribute holds voicemail setting shared by SFB/Lync Server and Exchange UM Service (online). The hosted Exchange online may in some cases set the value of the msExchUCVoiceMailSettings attribute in the process of enabling Exchange UM, or during the process of transferring mailboxes to a hosted Exchange (Online).
Basically, the HostedVoicemail in SFB/Lync Server is a reflection of the msExchUCVoiceMailSettings attribute in Exchange (On-prem or Online).
Now question comes how can we resolve this issue?
There are couple of ways to resolve Voicemail issues.
- Option1: Move the all affected On-prem user mailbox back Exchange online (Hosted UM), then disable UM while mailbox online and then finally move back user mailbox to Exchange on-premise.
- Then, run below command to turn off Hosted Voicemail value and policy,Set-CsUser -Identity "Balu Ilag" -HostedVoiceMail $NullGrant-CsHostedVoicemailPolicy -Identity “Balu Ilag” -PolicyName $Null
- Above command let should change hostedvoicemail and policy to Null and voicemail issue must get resolves.
- But moving user mailbox to Exchange online and then back to Exchange On-prem is not good option because moving several GB mailboxes to Exchange Online takes long time. So, moving mailbox back and forth are not good option especially when you are dealing with large size mailboxes.
- Option2: You can open ticket with Microsoft, and their UM Operations team can manually edit Exchange online msExchUCVoiceMailSettings attribute to False/Null, for users on your tenant that experience VoiceMail failure. And later this attribute will sync to on-premise Exchange attribute. Then finally you can run below command to change HostedVoiceMail value to False/Null.Set-CsUser -Identity "Balu Ilag" -HostedVoiceMail $NullThis will resolve your voicemail failure issue.Sometime what happens is even though Exchange online UM attribute (msExchUCVoiceMailSettings) set $Null in Azure AD but HostedVoiceMail attribute in SFB/Lync Server automatically getting changed from False/Null to True, as soon as DirSync runs.This exactly was happening in customer environment. In SFB/Lync Server manually setting HostedVoiceMail values is automatically getting changed from False/Null to True, as soon as DirSync runs.You resolve this by following below steps:The attribute msExchUCVoiceMailSettings in Exchange Online (where the mailboxes had previously been) was set to Null and Dirsync is writing that back to On-Premise. But still HostedVoiceMail value get reset to True, so looks like there is some corrupted meta information on our local Azure AD Connector server.You can simply cleare connector space on dirsync server and performed a new initial sync.Perform below steps in order to clear connector space:
- First disable the sync cycle temporarily. Login to DirSync server > you must have ADSyncAdmin local group permission > open Windows PowerShell and run below command:Set-ADSyncScheduler -SyncCycleEnabled $false
- Open “miisclient.exe” tool and go to the Connectors tab > Right click on each Connector and choose “Delete…” > On the pop up window, ensure we have selected “Delete connector space only”. Do this for all Connectors. (This process takes while).
- Once this is done, initial a full/initial sync by running below command:Start-ADSyncSyncCycle -PolicyType initialNote: Initial sync cycle takes log time because it will sync each object.
- When the initial sync has completed, you must re-enable the sync cycle schedule:Set-ADSyncScheduler -SyncCycleEnabled $true
- Now time to set HostedVoiceMail attribute value to $Null for all affected users account by running below command.Set-CsUser -Identity "Balu Ilag" -HostedVoiceMail $Null
This resolve voicemail issue and HostedVoiceMail attribute value did not change even after dirsync runs.
- Disable Voicemail, before migrating user mailbox from On-premise exchange to Exchange Online.
- Disable Voicemail before migrating user mailbox from Exchange Online to exchange on-premise.Thank you.