This customer is having over 700,000 users in office 365 with Child domain and Parent domain is with Exchange Hybrid mode.
Office 365 migration is in progress, where we had set them up with ADFS, AADConnect, Exchange Hybrid (separate migration server and Edge Transport Servers)
They were using Exchange 2010 with UM earlier and we migrated them to Exchange 2016 for voice mail repository. For office 365 voice mail delivery and for the working of Messaging waiting Indicator we added the following topology
CUCM à TE-Systems Anynode à Skype 2019 FE àSkype 2019 EDGE Pool à Cloud Voice Mail àExchange Online Mailbox.
In this setup we have following 4 scenarios and only one was impacted with the name resolutions issue.
- Exchange Online user to Exchange Online user – extension to name resolution WORKING
- Exchange Online user to Exchange 2016 user – extension to name resolution WORKING
- Exchange 2016 user to Exchange 2016 user – extension to name resolution WORKING
Exchange 2016 user to Exchange Online user – extension to name resolution NOT-WORKING
This is a major issue for the end user because it is almost impossible to remember all users extension in your mind. So, imagine a situation when you are in conference room and you saw a miss call. Same person crossing you with an expectation that you will talk to this person regarding miss call but you don’t know if this is the person who is the user of this extension.
In order to fix this, we worked with Microsoft escalation engineer Rajkumar Das. He was always kind, professional and responsive.
Microsoft EE pointed me to the following link which is old and written for 2 active directory forests but as per him, the name resolution flow works the same way.
The caller’s name is used if the caller signed in to their mailbox from Outlook Voice Access or if they use a Microsoft Unified Communications client such as Microsoft Office Communicator 2007 or Communicator Phone Edition to place the call. The caller’s identity is known because they’ve been authenticated when they use Outlook Voice Access, Office Communicator 2007, or Communicator Phone Edition.
The EUM proxy address or addresses in Active Directory are used. If the proxy address contains an ‘@’ sign, it’s considered a SIP URI. If the proxy address begins with a ‘+’ character, it’s considered to be an E.164 number. If neither of these characters is present, the proxy address is considered an extension within the same dial plan as the called party or an equivalent dial plan.
If the caller ID is a valid SIP URI, Active Directory is used to resolve the SIP URI using the EUM proxy address or addresses.
If the caller ID is a valid E.164 number, Active Directory is used to resolve the number to the calling party’s name. For this to work correctly, you must have manually configured the UMCallingLineIds parameter on the UM-enabled mailbox for the called party. This configuration is useful when you don’t want to publish a telephone number, such as a personal mobile phone number, in Active Directory, but still want to resolve the calling party’s name by using this phone number.
Active Directory heuristic matching is used, if it’s enabled, to resolve the number to the calling party’s name. Active Directory heuristic matching must be enabled on the dial plan, and the user’s account in Active Directory must be populated with one or more of the fields, such as telephone number, home, or mobile, for this to work correctly.
The personal Contacts of the called party are used to resolve the number to the calling party’s name.
1,2,3 were not applicable for us.
We opted for 4th option of adding Exchange 2016 user Extension in
It was not enough and we had request to enable in the skype with Cloud Voicemail. So, we also ran the following commands.
Enable-CsUser UserPrincipalname -SipAddress SIP:samaccountname@Domain.NET -RegistrarPool SKYPEFE1.Domain.NET
Set-CsUser UserPrincipalname -EnterpriseVoiceEnabled $True -HostedVoiceMail $True
After this we waited for the AADConnect Sync.
Now the issue had resolved.