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″?>

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


    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”


  • 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.


  • 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”


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


  • 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. =http://YOURPBX:YOURPORT/provisioning/contact.tar


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.



How to configure NTP on the Aastra RFP 32/35 IP & 620d/622d handsets

Here’s a short tutorial on how to configure an NTP timeserver on your Aastra RFP IP antennas, and deploy it to the handsets. I used the RFP 32/35 IP for this in combination with the Aastra 620d/622d handsets.
But I think the procedure would be the same for any other and future models.
Anyway let’s get started.


  • Use the configuration tool to load the config of the antenna. Then click “add parameter” in the top of the screen.


  • Now you need to add the “DNS server address” from the drop down list (in case you didn’t already) and then the “NTP server name”.


  • Now that you added the parameter(s) you should have some extra fields, so enter the correct info in the fields and click “Send config.”


So after that the config tool should say “ok” and that should be it.

How to configure 3CX with Topex Mobilink IP Gateway

EDIT: 3CX has its own guide since writing this one, find it here: , as you can see they used some of my post :)
Here’s a how-to on configuring 3CX to use the Topex Mobilink GSM Gateway.
The Mobilink is an inexpensive and robust GSM/UMTS Gateway, but onfortunately there is almost no information regarding it’s setup . And as always with these devices, configurtion can be a pain. So i’ll provide you a step-by-step with screenshots.
This is the Mobilink, complete with Antenna with a long cord, so you can place it where needed.

First off, insert a simcard in the mobilink.
You can open the simtray by pressing the small yellow button with a pen.

Then connect it to your network, the default IP address is:
Click on administration in the left pane, you’ll be prompted to log in.

Default username: admin
Default Password: 99admin11

When you login to the webpage, you’ll see that the WI is not too intuitive, but hey, the device costs less then a smartphone… What do you expect:)

If you have a pincode on the sim, you need to enter that in the Mobilink.
click mobile in the left pane –> settings –> more
here you can enter the pin.

Next we best change the network settings to fit your needs.
Click network in the left pane –> IP Settings –> correct them and save.

Now click the “commit” button on the left and let the device reboot.
You can now access the device on the entered IP address.

It’s best to see if there’s mobile connection now
Mobile –> status

Next you need to configure the incoming calls.
Go to Call controll –> Access IN –> enter your pbx IP here.

Now for Incoming mobile calls:
Call control –> Incoming Calls –> Edit –> More –> make sure mode is set to “trunk” and you are using “target” mode. Enter the local PBX extension where incoming calls should be connected to in the “target” field.
Leave all the rest default.

Now configure outgoing calls:
Call control –> Outgoing Calls –> Enable (that’s all for defaults)

Next you need to tell the Mobilink where your PBX is:
Call Controll –> Settings –> here you can enter the PBX IP

Now click Commit to save everything and reboot the device.
That’s it, the Mobilink is ready for action. Now for the PBX.

First off, we need to configure the Mobilink as PSTN Gateway, so NOT as trunk for outgoing.

In the 3cx management console go to pstn devices –> add gateway –> choose generic –> enter the name for the gateway –> Next

Enter the IP of the Mobilink and keep the rest as shown in the screen. –> Next

In the overview choose which inbound extensions will be called when there is an incoming call… but this doens’t matter, because the Mobilink invites the target you specify. –> Next

Now you have the outgoing PSTN device ready.

Create an outbound rule stating that phonecalls starting with the celular prefix of your country should be routed to the pstn gateway(mobilink)

Now we need to configure incoming calls from the Mobilink to the 3CX PBX.

Open the Voip providers tab in 3CX Managament console –> Add voip provider –> Generic Sip Trunk –> Next

Enter the IP of the Mobilink–> Next

In the next screen you’ll need to enter the external number (doesn’t matter what you enter here) and an auth. ID, doesn’t matter either. –> Next

Skip the incoming and outgoing rules and finish the config.

Now open the Voip provider(Mobilink) you just made by double clicking it and go to the “Source ID” tab. –> Check the thick that says “Source identification by DID”
–> click “Add Mask” –> enter * as mask –> Apply.

Ok, we’re done, you should be ready to make phonecalls in and out using the Mobilink GSM Gateway with 3cx. If not leave a message and I’ll see if I can help you.

How to change extension length in 3CX

Here’s a short one on how to change the length of your extensions in 3CX after the initial install.
Please note that this is not recommended and should be tested and of course take a backup of your database first!.

To change the extension length go to “settings” –> Advanced –> choose the “custom parameter tab” and look for the value called :  “ENL” , change the value field to the desired length and you’re done!