Best way to show speeddial list on Yealink phone?

I’m trying to figure out the best way to show a speeddial list on a Yealink phone. Preferably, I think I’d like to have a button that I hit that then gives the list and you select one and dial. I’ve been doing some searching, but I’m still not sure what makes the most sense. Some ideas:

  1. Use the XML Browser feature of the phone to load a list from a static saved file.
  2. Use the XML Browser feature of the phone to load a list from a PHP – which pulls it from FreePBX?
  3. Can I use the Contact Manager to do this somehow?
  4. Or maybe I’m missing something more obvious?

Thanks!

This is something a wrote a few years ago to get what you want from Contact Manger.

Thanks! I came across that during my search and wondered if it was still the best way to go. I’ll give it a go. :+1:

Just put this in and it working great! Thanks again, Jared!

One thing I noticed… It appears that the phone loads the Remote Phone Book directory one time at boot (or reconfiguration of the basefile in EPM or on edit of that page on the phone if doing it in the GUI). So, if Contact Manager entries are edited in FreePBX, the phone doesn’t get those updates until it reboots. Any good way to force it to update if the Contact Manager list is edited? I mean, it should be rare, so I could tell the person to just restart their phone if their list seems out of date. I was just hoping there might be a better way for me to do this when entries are edited or added to the list within FreePBX. Some way to tell the Yealink to call the script again and get updated data.

EDIT: Nevermind! Just found “features.remote_phonebook.flash_time” which sets the refresh period! Sweet!

One final followup in case someone comes across this later with similar questions… It appears that newer Yealink firmwares (at least for the T4x line that I am using), also has this option:

features.remote_phonebook.enter_update_enable = 1

This will cause it to re-sync the directory from FreePBX’s Contact Manager EVERY time the button is pressed to pull up the list. In case you have a Contact Manager group that you want to make sure is absolutely up to date every time the button is pressed.

If you don’t want to poll it every time, then you can use what I mentioned before:

features.remote_phonebook.flash_time

The minimum that can be set to is 3600 seconds (1 hour). Just FYI.

1 Like

Personally, I set the flash_time (aka update) to be 43200 seconds (12 hours). Very few phone books update so often that you need less than a day, but 12 hours has been working with few complaints from my users.

Also if you know you are making a large update, you can tell the phones to pull their config from the command line. By default, with Yealink and EPM, this will not force a reboot of the phone.

# this is in /etc/asterisk/sip_notify_additional.conf 
[reboot-yealink]
Event=>check-sync\;reboot=false

So you can use this command to force a resync of the entire phone config.

sudo rasterisk -x 'pjsip send notify reboot-yealink endpoint 115 103 119 xxx yyy zzz etc'

Ah, yes, forgot about the reboot-yealink. (I have that and the added restart-yealink that I used now and then.) Thanks.