Use a php file to create a dynamic Yealink Remote Address book of FreePBX extensions



  • 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
    0_1512491267105_f6e18b16-256d-478a-acdb-6ad5893d645a-image.png

    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.
    0_1512491865082_e915f5de-1d00-45f9-b4fb-26e692661a57-image.png

    0_1512491929812_85865d90-fb69-47e9-954a-4b63b5894993-image.png



  • Here is what it loos like on a Yealink T42G

    The Contacts Button:
    0_1512492823253_627a84b0-6394-49c5-bf85-daa4be6bf909-image.png

    The list (it gets sorted alphabetically by the phone automatically):
    0_1512492846824_a10460af-7278-4350-a999-fa0bcd5d6e61-image.png



  • JB is checking to see if something extra is needed for v14 of FreePBX.



  • @dashrender's FreePBX 14 system did not have PHP pear-db installed. My FreePBX 14 install that was upgraded from FreePBX 13 did.

    A untouched FreePBX 13 install had PHP pear-db installed.

    I have not had time to spin up a new FreePBX 14 instance to check.

    If the above spits out an XML error then you need to install PHP pear-db

    yum install -y php-pear-DB
    


  • I know this post is a bit old. But it's been the closest I've gotten to this phonebook thing. I placed the file inside the pbx but when i navigate to the pbx.domain.com/ylab.php it shows a part of the script inside of it instead of the output.
    8aea824d-f07b-40b5-ab3f-bf210d3d579c-image.png

    Clearly just taking part of the script i got from the GETHUB instead of supplying me with the output requested.

    Any ideas?



  • @SJ2020 : If you create a phpinfo.php file in the same location as ylab.php. Do you get a nicely formatted PHP Info page or just raw script?

    phpinfo.php

    <?php
    
    // Show all information, defaults to INFO_ALL
    phpinfo();
    
    ?>
    


  • @manxam said in Use a php file to create a dynamic Yealink Remote Address book of FreePBX extensions:

    @SJ2020 : If you create a phpinfo.php file in the same location as ylab.php. Do you get a nicely formatted PHP Info page or just raw script?

    phpinfo.php

    <?php
    
    // Show all information, defaults to INFO_ALL
    phpinfo();
    
    ?>
    

    I can say with 100% certainty that PHP is not a problem if it is the FreePBX distro. If it is any other version of FreepBX, then , it could be anything.

    FreePBX has that natively built in the GUI.
    1b2ca519-db8e-4cad-b667-b01e4b249149-image.png



  • @SJ2020 said in Use a php file to create a dynamic Yealink Remote Address book of FreePBX extensions:

    I know this post is a bit old. But it's been the closest I've gotten to this phonebook thing. I placed the file inside the pbx but when i navigate to the pbx.domain.com/ylab.php it shows a part of the script inside of it instead of the output.
    8aea824d-f07b-40b5-ab3f-bf210d3d579c-image.png

    Clearly just taking part of the script i got from the GETHUB instead of supplying me with the output requested.

    Any ideas?

    You need to use the updated version.
    https://github.com/sorvani/freepbx-helper-scripts/blob/master/Extensions_to_Yealink_AddressBook/ylab.php