How to create a searchable phonebook for yealink with 3CX

As you know or may not know 3CX does have a “company phonebook” which gets deployed to the serveral brands of phones with phoneprovisioning, including Yealink. However the problem is that this phonebook is not searchable , so when you have a phonebook with several hundred entries it will be a pain in the ass to find someone. Also the 3CX phonebook will only have one number per entry while the Yealink itself allows for more then 1 number per entry (Fixed/Mobile/office etc…)

So I’ll show you how to create a phonebook file, and how to deploy it to the phones using 3CX phone provisioning.
You can even add pictures if you like :-) .

What you’ll need:

  • A 3CX server & use autoprovisioning
  • 7zip or some other software to create .tar files
  • Yealink phones (I will be using the T38 since it can display pictures)
  • Notepad++ or any other editor will do

So let’s start.You need to create a file for the yealink to use. The Yealink phone expects a Contact.tar file and this file should include several files (ContactData.xml (this contains the actual entries and “photo.tar” which contains the photos.

  • Create the ContactData.xml file by creating a new text file. The file structure should be as follows.

    <?xml version=”1.0″ encoding=”UTF-8″?>
    <contactData>
    <group>

    <contact sDisplayName=”SOMECONTACT” sOfficeNumber=”SOMENUMBER sMobilNumber=”SOMEMOBILE”
    sOtherNumber=”" sLine=”" sRing=”" group=”" photoDefault=”SOMEPHOTO.jpg”
    photoSelect=”0″ />

    </group>
    </contactData>

    Enter alle the entries by copying the entry between “<group>” and “</group”> and modify for all the entries you need. You can script this as well but that’s not for today.
    Note that the “photoDefault=…” entry should match the filename you’re using for the actual photo. But more on that later. When you’re done with the file save it as “ContactData.xml”

Yealink1

  • Now you need to create a folder containing the photos (if you don’t wish to use photos you can just create an empty folder)
    So create a new folder called “photo” and put all the photos in there for the contacts. It’s important the filename matches the value you put at “photodefault=” exactly, including the extension.

 

  • Now you need to create a tar file of the “photo” folder. As described above 7zip will do the trick. So right click your “photo” folder , choose 7zip and “add to archive” then select .tar as the type and click OK.

Yealink2

  • Now you should have both a “ContactData.xml” and a “photo.tar” file. Now you need to create a new folder called “contact” again this is case sensitive.
    Then move both the files in the “contact” folder and now you need to tar this to a file “contact.tar”

Yealink3

  • Now you have the file you need to put it in the 3CX provisioning folder (C:\ProgramData\3CX\Data\Http\Interface\provisioning)

Yealink4

  • So now we need to tell the phones where to get the file by editing the provisioning template in 3CX.
    Open the 3CX management console , go to settings , provisioning templates, and select your Yealink model.
    Now add the following line somewhere in the template.

    local_contact.data.url =http://YOURPBX:YOURPORT/provisioning/contact.tar

Yealink5

So now you should be done , when applying the provisioning template to the phone it should download the contact file and extract it in the local directory.
In case it doesn’t seem to work for you then just leave a message and I’ll try to help you out.