Hi There,
Trying to split your items from the config but you mention MiVB,MiCollab,Ignite (the latter is ***Censored*** since it still works with elasticsearch and not the MiCollab phonebook). So....
If you use a MiCollab,
If you use a MiVB,
If you use MiCollab Clients,
then there might be a solution. Create an extra IDS (if need be I use Cloudlink Provisioning and SAML in combination with on-prem for External Search) connecting to the on-premise AD. Most is Azure these days but most are also hybrid. If you can connect to on-prem there might be a solution.
Just make an IDS entry without sync and auth to on-prem. Go to the bottom and check External Search (REMEMBER you need to enable External Search in the MiCollab Client Service Enterprise page too).
Define the search Base which is your Base OU and then define the mapping for Extension or Mobile to the correct mapping.
In my situations I use this connection to always look for users without an INTERNAL phone BUT with MOBILE and it must be an ACTIVE user. This translates to the following for example:
&(|(ObjectClass=user)(ObjectClass=contact))(UserAccountControl=512)(mobile=06*)(!(extensionAttribute9=*))
I look for and USER and CONTACT with Mobile filled correctly AND WITHOUT internal number AND is ACTIVE user.
If the search context is correct (you can use multiple OUs separated by ; then you can look on the TAB External in the Client. If you modify correctly incoming calls to the field of mobile in this case you also see the name on incoming calls when people call from their cells.
I just personally found out Mitel isn't too good with + and E.164. It just ignores it so ADs filled with cells that use E.164 you might need to adjust them to the numbering plan of your region.
Hope this helps a bit.
Cheers and good luck