Project

General

Profile

More comfortable number display and "SuperSearch" for Yealink SIP-T4x/5x phones

Added by Jörg Ebeling 7 months ago

Goal

Improve usability of Yealink SIP-T4/5x phones by:

  1. Improving the default "NumberN" display of a search result by common names like "Work, Private, ..."
  2. Enable "SuperSearch" capability which allows to search for substrings within a name (search for "do" will match also i.e. "John Doe")

--->

Preface

Before going into detail, I like to admit that I do love Yealink phones. In special the ones from Series T4x and T5x.
They've very good hardware, best seen firmware, easy to understand WebGUI and unrivaled usability, also and in special for (LDAP) PhoneBook forward and reverse search!!

But to be honest, they've tons of features, and if you check the WebGUI I'm lost by about 80% of the possible configuration options...
... and there are more which aren't reachable within the WebGUI (or I didn't found their location till now).

But if you like to get one of the describes features within the top '#Goal' section, we need to dive deeper...

Step 1: Add "LDAP attribute display" and "SuperSearch" feature

First off, we need to extract the current settings of your phone as 'CFG' file.
Log into your phone's WebGUI and go to this location:

Press 'Export' and save the file to some location.

Next, open the downloaded file with some kind of simple text-editor like Notepad, Wordpad, nano, mcedit or whatever you prefer.

Somewhere within the cfg-file, there should be a block of ldap.??? entries.
We want to have the following two features:

ldap.search_type = 1
ldap.numb_display_mode = 1

ldap.search_type = 1 will switch to "SuperSearch", whereas ldap.numb_display_mode = 1 will show the LDAP attribute name of a number, instead of a simple "NumberN" string.

Check if you already have them, and change or add them accordingly.

Once done, save and close the modified cfg-file, go back to your phone's WebGUI (same locatiion), but this time do an "Import CFG configuration file" ("Browse", point to your modified cfg-file, and press "Import")

Now, if you search for a number and select a contact with multiple numbers, it should look like this:

Not perfect, but better than the default "NumberN" display.
If you like to get it more better, go on...

Step 2: Add more common phone type names as LDAP attribute names

As you might have recognized in the previous image, the phone number type name ist the one of the LDAP attribute.

We can improve that by creating LDAP attribute names which are more common for our daily usage. Let's say i.e. "Work", "Private", "Mobile" as well as the special "Preferred" case.
For sure, this isn't conform to any LDAP Schema or the like, but L2CPBG doesn't use complex schematas, but can map CardDAV fields to LDAP attributes.

Regarding the special "Preferred" phone number type:
Some CardDAV clients have the ability to select one number as preferred number. Others have the possibility to sort them within the client, while marking the first listed one internally with a type "pref" attribute. That's why we also should integrate a "Preferred" phone number type, because it's a very handy and comfortable feature of most CardDAV clients (if you know about it).

Nuff said, let's rock and open your l2cpbg.conf within your preferred text editor.
At the lower end, there should be a block of multiple commented:

#[ldap.map.???]

LDAP mapping blocks.
Each one represent a "CardDAV Field" to "LDAP Attribute" mapping.
Each one is commented out with a #... character, because they're implemented as default mapping but get listed there so you know how L2CPBG maps them.

Here we simply add the following new mappings:

#
# More common phone-type-names as LDAP attributes for Yealink phones
#

# Preferred
# Some CardDAV clients have the ability to define a number (work, mobile, ...) as 'preferred',
# or flag it as 'pref'erred if it listed first
[ldap.map.Preferred]
dav = "TEL"
itypes = "^(pref)"
etypes = "^(fax)"

# Work phone. No mobile (cell or car)
[ldap.map.Work]
dav = "TEL"
itypes = "^(arbeit|work)"
etypes = "^(car|cell|fax|home|privat|pref)"

# Mobile work or home phone
[ldap.map.Mobile]
dav = "TEL"
itypes = "^(cell|car|mobil)"
etypes = "^(fax|pref)"

[ldap.map.Private]
dav = "TEL"
itypes = "^(home|privat)"
etypes = "^(arbeit|work|pref)"

For sure, you may give them also localized names like "Bevorzugt" instead of "Preferred".

Once done, save your l2cpbg.conf and restart your L2CPBG.

But we're not done now, we only told L2CPBG which additional LDAP attributes we want to have. We also need to tell it our phone!

You can do this within your phones WebGUI, or because just worked with it, within our already modified phone's cfg-file.
For easier documentation I'll show here the cfg-file variant. If you prefer to use the WebGUI variant, I'm pretty sure you know where you'll find it ;-)

ldap.numb_attr = Preferred Work Mobile Private
ldap.number_filter = (|(homePhone=%)(telephoneNumber=%)(mobile=%))

BTW: The order you list the attributes within ldap.numb_attr will be also the order you get them listed by your phone.

You might wonder why I didn't changed ldap.number_filter? Because the old standard LDAP attributes are still valid. We only need to use the new attributes when displayed.
But for sure, you might also change the ldap.number_filter.

Once saved (and imported)...

Done


Go to top