Skip to content

feat(ldap): configurable contact attribute mapping#445

Merged
cajus merged 7 commits into
gonicus:mainfrom
dko-strd:feat/ldap-attribute-mapping
May 4, 2026
Merged

feat(ldap): configurable contact attribute mapping#445
cajus merged 7 commits into
gonicus:mainfrom
dko-strd:feat/ldap-attribute-mapping

Conversation

@dko-strd
Copy link
Copy Markdown
Contributor

Finally an easy, lightweight sip client, with no proprietary vendor specific side function, which no one asked for... i love it! <3
Found this project watching the interesting talk from Luca Kotte at Chemitzer Linux-Tage last month.

Small change which enables use of ldap address book integration if the records are not matching the standard inetOrgPerson schema.

Summary

  • Map semantic contact roles (name / uid / company / email / commercial / mobile / home / avatar) to whatever attribute names the directory actually publishes, configurable per LDAP account.
  • Defaults match the standard inetOrgPerson schema, so existing configs are unchanged.
  • Setting a key to the empty string disables that role; the avatar key in particular lets servers without a binary-photo attribute skip the lookup entirely.
  • Motivation: directories like Grandstream UCM publish phonebook entries under names like CallerIDName / AccountNumber / MobileNumber and were previously unusable.
  • Comparison against the directory is ASCII-case-insensitive per RFC 4512.

dko-strd and others added 4 commits April 30, 2026 16:08
Signed-off-by: Daniel Koehler <daniel.koehler@rendsburg.de>
Signed-off-by: Daniel Koehler <daniel.koehler@rendsburg.de>
Signed-off-by: Daniel Koehler <daniel.koehler@rendsburg.de>
@mbgonicus mbgonicus requested a review from cajus May 4, 2026 06:23
@mbgonicus
Copy link
Copy Markdown
Contributor

@dko-strd Glad you like GOnnect and thank you for your contribution!

@cajus The code itself lgtm, but you have more LDAP expertise. Can you review as well please?

@cajus cajus merged commit a16c753 into gonicus:main May 4, 2026
13 checks passed
Mik- pushed a commit that referenced this pull request May 4, 2026
* feat(ldap): support configurable contact attribute mapping
* feat(ldap): support configurable avatar attribute
* docs: document LDAP attribute mapping options
---------

Signed-off-by: Daniel Koehler <daniel.koehler@rendsburg.de>
Co-authored-by: Markus Bader <bader@gonicus.de>
Co-authored-by: Cajus Pollmeier <pollmeier@gonicus.de>
semantic-release-tokenizer Bot pushed a commit that referenced this pull request May 4, 2026
# [2.2.0-beta.4](v2.2.0-beta.3...v2.2.0-beta.4) (2026-05-04)

### Bug Fixes

* do not wipe all contact sources on by-source removals ([#450](#450)) ([f89882f](f89882f))
* ignore certain ssl errors when verifyServer is false (webdav) ([#451](#451)) ([428860a](428860a))

### Features

* **ldap:** configurable contact attribute mapping ([#445](#445)) ([4113384](4113384))
semantic-release-tokenizer Bot pushed a commit that referenced this pull request Jun 1, 2026
# [2.2.0](v2.1.0...v2.2.0) (2026-06-01)

### Bug Fixes

* base edits on SSL default configuration ([#459](#459)) ([6dcbf78](6dcbf78))
* build with certificate patch ([#433](#433)) ([8e8ba1f](8e8ba1f))
* c++ standard and guarding updates ([#422](#422)) ([9e8171b](9e8171b))
* clear out URI encoded number input ([#475](#475)) ([cd1c126](cd1c126))
* code review loop ([#374](#374)) ([f1c609d](f1c609d))
* disable WMME in pjsip ([#397](#397)) ([a90a80c](a90a80c))
* do not show favorites in "most called" list ([#456](#456)) ([8ee676d](8ee676d))
* do not wipe all contact sources on by-source removals ([#450](#450)) ([f89882f](f89882f))
* Ensure correct `tag` value type in flatpak manifest ([#466](#466)) ([3c5412a](3c5412a))
* handle direct pjsip mute again ([#402](#402)) ([0c4609c](0c4609c))
* home/call switch tab notification reset ([#404](#404)) ([95e0a3f](95e0a3f))
* if so configured, do not verify CA even if they are state ([#455](#455)) ([f45a1d8](f45a1d8))
* ignore certain ssl errors when verifyServer is false (webdav) ([#451](#451)) ([428860a](428860a))
* ignore verification ssl errors if verifyServer=false ([#453](#453)) ([be3d71c](be3d71c))
* make MWI subscription configurable ([#414](#414)) ([d74c530](d74c530))
* make ReadOnlyConfdSettings treate string lists correctly ([#423](#423)) ([48328e2](48328e2))
* more sip codes lead to auth request ([#379](#379)) ([31ee0cd](31ee0cd))
* mwi recursions ([#405](#405)) ([2a42344](2a42344))
* potential crash on HeadsetDevice destroyed ([#371](#371)) ([65900ab](65900ab))
* prevent unhold on currently changing call ([#439](#439)) ([f1a05f5](f1a05f5))
* raise window after showing it ([#398](#398)) ([4f72dc6](4f72dc6))
* reenable CardDAV plugin ([#406](#406)) ([9b9b136](9b9b136))
* resolve feeder manager deadlock ([#427](#427)) ([9a8d604](9a8d604))
* restore functionality for feeders without network requirements ([#387](#387)) ([01c6494](01c6494))
* robustness for media and contacts cache ([#471](#471)) ([d879e1b](d879e1b))
* tab switch/reset notifications ([9338ed0](9338ed0))
* **ui:** do not treat room names beginning with digits as phone numbers ([#461](#461)) ([75ed3f2](75ed3f2))
* **ui:** give focus to call screen when startet via enter ([#395](#395)) ([5e5d78e](5e5d78e))
* use verifyServer flag for CA verification with webdav ([#437](#437)) ([c1ab98f](c1ab98f))

### Features

* add Blinkstick busylight support ([#474](#474)) ([af400bd](af400bd))
* add template for 1&1 ([#465](#465)) ([865fcd9](865fcd9))
* adding global shortcuts support for windows ([#399](#399)) ([eb5237e](eb5237e))
* basic MWI support ([#392](#392)) ([8c3c914](8c3c914))
* delete old history entries ([#432](#432)) ([0ee826d](0ee826d))
* display sip registration status ([#375](#375)) ([f9e6567](f9e6567))
* feeder plugin retry mechanism ([#391](#391)) ([e262f3f](e262f3f))
* ical rrule parsing optimization ([#457](#457)) ([c46f066](c46f066))
* **ldap:** configurable contact attribute mapping ([#445](#445)) ([4113384](4113384))
* pause/resume media on windows ([#370](#370)) ([61f3407](61f3407))
* plugins for microsoft calendars and contacts ([#428](#428)) ([e7e8cd9](e7e8cd9))
* pre-fill missing it/es translations ([#377](#377)) ([4428e4e](4428e4e))
* rtt ui integration ([#443](#443)) ([62d48f3](62d48f3))
* **ui:** leave conference via systray menu ([#438](#438)) ([b973bb6](b973bb6))
* update pjproject to 2.17 ([#435](#435)) ([98c7199](98c7199))
* windows signing ([#462](#462)) ([f7dd63a](f7dd63a))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants