ML
    • Register
    • Login
    • Search
    • Recent
    • Categories
    • Tags
    • Popular
    • Users
    • Groups

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

    IT Discussion
    freepbx yealink extensions how to real instructions
    5
    9
    5307
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • JaredBusch
      JaredBusch last edited by JaredBusch

      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

      1 Reply Last reply Reply Quote 5
      • JaredBusch
        JaredBusch last edited by JaredBusch

        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

        1 Reply Last reply Reply Quote 2
        • Dashrender
          Dashrender last edited by

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

          1 Reply Last reply Reply Quote 0
          • JaredBusch
            JaredBusch last edited by JaredBusch

            @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
            
            1 Reply Last reply Reply Quote 1
            • S
              SJ2020 last edited by

              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?

              M JaredBusch 2 Replies Last reply Reply Quote 0
              • M
                manxam @SJ2020 last edited by

                @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();
                
                ?>
                
                JaredBusch 1 Reply Last reply Reply Quote 0
                • JaredBusch
                  JaredBusch @manxam last edited by JaredBusch

                  @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

                  1 Reply Last reply Reply Quote 0
                  • JaredBusch
                    JaredBusch @SJ2020 last edited by

                    @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

                    1 Reply Last reply Reply Quote 1
                    • D
                      DavidMo last edited by

                      https://github.com/sorvani/freepbx-helper-scripts/blob/master/Extensions_to_Yealink_AddressBook/ylab.php is still working as of 11.3.2022. My FreePBX extension names contained the "&" which is a reserved symbol in XML and will throw an error in the script. If you run into this, the fix is below.

                      Simple fix is to edit this line:
                      echo " <Name>" . $extension['description'] . "</Name>\n";

                      to this:

                      echo " <Name>" . htmlspecialchars($extension['description']) . "</Name>\n";

                      1 Reply Last reply Reply Quote 3
                      • First post
                        Last post