I have a VB Program that opens the XML book that 3cx generates (we do it for Yealink phones as that is all we use) and it add's mobile numbers of all employees from Active Directory. Then we sort it alphabetically and save as a new file. The phones use this modified XML file instead as its Remote Phonebook.
Great more for incoming caller id than a phonebook... although Firmware v71 of the Yealink T46 phone has a Search function as well.
I can explain more in private message if need be.