As noted in another post, I had a crappy but serviceable python script to create a Yealink formatted Remote Address Book. Then a random upvote on a post from a few months ago on SW reminded me that George1421 had mentioned that he had a php script to do the same thing.
So I contacted him and asked if I could have it, and then if I could publish it. Being the awesome guy he is, he said sure.
His original script is now on github.
After reading it, I tweaked it to suit my own needs and added some comments and examples for the rest of the word and published it as ylab.php, short for Yealink Address Book.
How to use it:
First, get the script onto your FreePBX install. Simplest is to copy paste it into vi or nano. The file needs to be in the web directory. You can put it in a subfolder if you want. I just leaving it in the root.
nano /var/www/html/ylab.php
Paste in the text from https://raw.githubusercontent.com/sorvani/freepbx-helper-scripts/master/ylab.php
Save the file and then give ownership to asterisk.
chown asterisk:asterisk /var/www/html/ylab.php
Now navigate to the URL of your PBX /ylab.php and make sure you can see the extensions.
https://pbx.domain.com/ylab.php

Now that you know it works, setup your phone.
Here is the config file method
Programmable key 2 is the second button from the left on the bottom of the screen of most Yealink Phones, and just where I like to put this. I also set the refresh to 3 hours (10800 seconds).
features.remote_phonebook.data.1.name = ylab
features.remote_phonebook.data.1.url = https://pbx.domain.com/ylab.php
features.remote_phonebook.flash_time = 10800
programablekey.2.type = 22
programablekey.2.label = Contacts
programablekey.2.xml_phonebook = 0
If you do not use config files, here is how you put it in the GUI.

