Support #64
closed0 records returned for search request
90%
Description
Hallo,
ich habe l2cpbg erfolgreich auf meinem Server installiert. Ich bekomme im Log auch die Meldung "Successful loaded 362 of 362 vCards from".
Nur die Verbindung vom Telefon klappt nicht. Dort bekomme ich leider nur die Meldung "Herunterladen fehlerhaft...".
Im Log steht dazu:
May 30 15:18:02 ldap l2cpbg[697]: Search request #4: (objectclass=) from XY:25031 {361a068a}
May 30 15:18:02 ldap l2cpbg[697]: 0 records returned for search request #4: Single Level (objectclass=) @ 'dc=example, dc=com' from XY:25031 {361a068a}
Irgendetwas an meiner Konfiguration stimmt noch nicht. Wir nutzen GEQUDIO-Telefone. Ich habe mit an den anderen Beispielen in der Anleitung orientiert.
Bitte um Hilfe! :)
Files
Updated by Jörg Ebeling over 1 year ago
Hallo Ha Vo!
Danke für Dein Testen und die Anfrage.
Eigentlich sieht das schon ganz gut aus! Auch Deine Telefonkonfiguration sieht für mich in Ordnung aus!!
Das was'n bisschen komisch ist, ist der empfangene LDAP search request:
May 30 15:18:02 ldap l2cpbg[697]: Search request #4: (objectclass=) from XY:25031 {361a068a}
Denn ein (objectclass=)
gibt es nicht. Es hätte zumindest ein (objectclass=*)
sein müssen.
Ändere doch bitte mal das logging in L2CPG auf "debug", damit wir ein bisschen mehr sehen.
Und dann versuche mal bitte, nicht nur die Liste aller Kontakte zu requesten, sonder z.B. via Suche eines bestimmten Namens. Bei den meisten Telefonen kann man das einfach durch drücken der Tasten-Buchstaben erreichen.
Auch eine Rückwärts-suche wäre interessant. Also einfach von einem anderen Telefon/Handy Dein GEQUDIO-Telefon anrufen.
Uns/mich interessiert dann natürlich was im Log für ein LDAP Search request an-kommt. Also genau die Zeilen die Du bereits gepostet hattest, nur das beim "debug" Logging natürlich ein paar mehr Zeilen kommen ;-)
Was für einen Server benutzt Du? (also Win x64, Debian, MacOS, ??)
Updated by Jörg Ebeling over 1 year ago
Ach so...
Und die "Suchbasis" in Deinem Telefon dc=example, dc=com
hattest Du in Deiner L2CPBG Konfiguration au so belassen (und nicht umbenannt) oder?
[ldap]
base = "dc=example, dc=com"
Updated by Ha Vo over 1 year ago
Hallo Jörg, danke für die schnelle Antwort.
base habe ich überall gleich eingestellt.
debug ist an, ich habe in den Telefoneinstellungen jetzt als Suche noch nur LDAP eingestellt. Jetzt wird zumindest bei einem eingehenden Anruf ein Request gemacht:
May 31 15:23:31 ldap l2cpbg[693]: [intern] Register client IP 'XY' (Port 24829)
May 31 15:23:31 ldap l2cpbg[693]: [server] Correlation Text 'XY:24829|2023-05-31 15:23:31.080435009 +0000 UTC m=+989.538988646|13' = 0x9c2b96d0 = 9c2b96d0
May 31 15:23:31 ldap l2cpbg[693]: [server] Search request #13: (|(homePhone=ANRUFER*)(telephoneNumber=ANRUFER*)(mobile=ANRUFER*)) from XY:24829 {9c2b96d0}
May 31 15:23:31 ldap l2cpbg[693]: [server] Stats &ldap.Stats{Conns:13, Binds:13, Unbinds:12, Searches:13, statsMutex:sync.Mutex{state:0, sema:0x0}}
May 31 15:23:31 ldap l2cpbg[693]: [server] Search(searchReq ldap.SearchRequest{BaseDN:"dc=example, dc=com", Scope:2, DerefAliases:0, SizeLimit:20, TimeLimit:60, TypesOnly:false, Filter:"(|(homePhone=ANRUFER*)(telephoneNumber=ANRUFER*)(mobile=ANRUFER*))", Attributes:[]string{"telephoneNumber", "homePhone", "mobile", "telephoneNumber", "mobile", "homePhone", "mail"}, Controls:[]ldap.Control{}}, ...
May 31 15:23:31 ldap l2cpbg[693]: [server] s.request.Filter '(|(homePhone=ANRUFER*)(telephoneNumber=ANRUFER*)(mobile=ANRUFER*))'
May 31 15:23:31 ldap l2cpbg[693]: [server] Regexp matching key 'e+ANRUFER.88b02f057f0001016e7d88df2b324520'
May 31 15:23:31 ldap l2cpbg[693]: [server] Regexp matching key 'e+ANRUFER.88b02f057f0001016e7d88df2b324520'
May 31 15:23:31 ldap l2cpbg[693]: [server] Regexp matching key 'e+ANRUFER.88b02f057f0001016e7d88df2b324520'
May 31 15:23:31 ldap l2cpbg[693]: [server] Collected CardIds map[{88b02f057f0001016e7d88df2b324520 xy (xya)}:true]
May 31 15:23:31 ldap l2cpbg[693]: [ card ] LdapCard '{88b02f057f0001016e7d88df2b324520 xy (xya)}': card.LdapCard{Cid:card.CardId{Uid:"88b02f057f0001016e7d88df2b324520", Ou:"xy (xya)"}, Attrs:card.LdapAttrs{"cn":"Test... (reached max (100) phonebook-entries limit of 'Free' license)", "givenName":"Test... (reached max (100) phonebook-entries limit of 'Free' license)", "mobile":"ANRUFER", "sn":"Test... (reached max (100) phonebook-entries limit of 'Free' license)", "street":" ... (reached max (100) phonebook-entries limit of 'Free' license)"}}
May 31 15:23:31 ldap l2cpbg[693]: [server] 1 records returned for search request #13: Whole Subtree (|(homePhone=ANRUFER*)(telephoneNumber=ANRUFER*)(mobile=ANRUFER*)) @ 'dc=example, dc=com' from XY:24829 {9c2b96d0
Das Telefon zeigt aber trotzdem nur die Nummer an. "1 records returned" klingt aber schon mal gut. Liegt es an der überschrittenen Lizenz oder stimmt an der Konfiguration noch etwas nicht?
Direkt im LDAP-Telefonbuch kann ich nicht suchen. Wenn ich es am Telefon auswähle, wird versucht es mit
May 31 15:27:18 ldap l2cpbg[693]: [server] Search(searchReq ldap.SearchRequest{BaseDN:"dc=example, dc=com", Scope:1, DerefAliases:0, SizeLimit:0, TimeLimit:60, TypesOnly:false, Filter:"(objectclass=*)", Attributes:[]string{}, Controls:[]ldap.Control{}}, ...
May 31 15:27:18 ldap l2cpbg[693]: [server] 0 records returned for search request #14: Single Level (objectclass=*) @ 'dc=example, dc=com' from XY:45281 {92db789e}
herunterzuladen aber bringt nur eine Fehlermeldung. D.h. am Telefon suchen geht nicht.
Woran könnte es noch liegen?
Updated by Jörg Ebeling over 1 year ago
Hallo Ha Vo!
Jo, wir sind auf'm weg ;-), sieht aber so aus als wenn er etwas länger wird :-)
Hattest Du nach Umstellung auf "log debug" L2CPBG neu gestartet? Ist aber für diesen Versuch noch egal ;-)
Lass uns mit dem "reverse lookup" an fangen:
Ha Vo wrote in #note-3:
Das Telefon zeigt aber trotzdem nur die Nummer an. "1 records returned" klingt aber schon mal gut. Liegt es an der überschrittenen Lizenz oder stimmt an der Konfiguration noch etwas nicht?
Jaaa, das sieht doch wirklich schon ganz gut aus. Du hast (aus Datenschutzgründen) die Rufnummer gegen den String "ANRUFER" getauscht oder? Hatte ich nicht gleich gepeilt :-)
Dein Telefon fragt in der Abfrage:
May 31 15:23:31 ldap l2cpbg[693]: [server] Search(searchReq ldap.SearchRequest{BaseDN:"dc=example, dc=com", Scope:2, DerefAliases:0, SizeLimit:20, TimeLimit:60, TypesOnly:false, Filter:"(|(homePhone=ANRUFER*)(telephoneNumber=ANRUFER*)(mobile=ANRUFER*))", Attributes:[]string{"telephoneNumber", "homePhone", "mobile", "telephoneNumber", "mobile", "homePhone", "mail"}, Controls:[]ldap.Control{}}, ...
nach den Attributen Attributes:[]string{"telephoneNumber", "homePhone", "mobile", "telephoneNumber", "mobile", "homePhone", "mail"}
Da ist also doch noch was falsch in Deiner Telefon-Konfig... und wenn ich mir die jetzt genauer angucke, hätte mir das auch schon vorher auffallen können :-/
In den LDAP- Einstellungen Deines Telefons, müssen bei dem Feld "Name Attr", Namens- spezifische LDAP Attribute eingetragen werden. Dies sind z.B. cn, sn, givenName, company, ... hängt aber auch davon ab ob Du die zugehörigen CardDAV Felder in Deinem Addressbuch überhaupt pflegst. Wenn Du also in Deinem CardDAV Adressbuch nie den Vornamen ein trägst, dann brauchste auch nicht mit dem "givenName" LDAP Attribut rum hühnern ;-)
Ha Vo wrote in #note-3:
... Liegt es an der überschrittenen Lizenz oder stimmt an der Konfiguration noch etwas nicht?
Damit Du es mit dem testen einfacher hast, mache ich Dir gleich nach diesem Post mal ein Evaluation Lizenz fertig.
Beim "forward lookup" also der Namensuche sieht das auch schon besser aus, wenngleich ich da noch ein Problem sehe:
May 31 15:27:18 ldap l2cpbg[693]: [server] Search(searchReq ldap.SearchRequest{BaseDN:"dc=example, dc=com", Scope:1, DerefAliases:0, SizeLimit:0, TimeLimit:60, TypesOnly:false, Filter:"(objectclass=*)", Attributes:[]string{}, Controls:[]ldap.Control{}}, ...
Er fragt nach (objectclass=*)
, das ist schonmal gut!
Komischerweise nur Scope:1
d.h. (wie Du in der nächsten Zeile sehen kannst) search scope Single Level
. Deine CardDAV Kontakte werden in LDAP aber in einer ou= abgelegt.
Also ein "cn=Ha Vo" aus dem CardDAV Adressbuch "xy (xya)" wird in der LDAP Datenbank unter:
cn=Ha Vo, ou=xy (xya), dc=example, dc=com
abgelegt.
Beim single-level search in dc=example, dc=com
findet er also keine Kontakte... aber das vertagen wir erstmal, weil mir noch was anderes aufgefallen ist:
Er fragt beim Forward Search nach den Attributen: Attributes:[]string{}
, also keine. Ich bin mir im Moment nicht sicher ob "keine attribute" evtl. "alle vorhandenen Attribute heisst". Es könnte aber auch sein das es an den schon erwähnten falschen "Name Attr" liegt. Das sehen wir beim nächsten Test ;-)
Du müssest mir aber bitte noch Dein Betriebssystem verraten wo der L2CPBG läuft. Ich hab hier nämlich schon die nächste Version fertig die jede Menge Änderungen in diesem Bereich hat... und sollte ich noch etwas für Dich anpassen müssen, so benötige ich Deine Tests dann bitte auf der aktuellen "beta" Version ;-)
So... dann mache ich Dir mal die Evaluation fertig...
Updated by Ha Vo over 1 year ago
Guten Morgen.
Mit dem angepassten Name Attr klappt jetzt die Anzeige bei eingehenden Anrufen (mit Lizenz-Warnung).
Der Server läuft auf Ubuntu 22.04.2 LTS.
Das Telefonbuch klappt noch nicht, was kann ich da noch ändern?
Ich schreibe dir noch eine E-Mail wegen der Lizenz.
Danke!
Updated by Jörg Ebeling over 1 year ago
Moin moin Ha Vo!
Ha Vo wrote in #note-6:
Mit dem angepassten Name Attr klappt jetzt die Anzeige bei eingehenden Anrufen (mit Lizenz-Warnung).
Sehr gut, wir sind auf dem richtigen Weg ;-)
Der Server läuft auf Ubuntu 22.04.2 LTS.
Vermutlich AMD64 Architektur oder?
Anbei die 0.9.7rc1 für AMD64 (falls Du eine andere brauchst, sag einfach Bescheid).
In dieser Version wurden die LDAP search Filter komplett überarbeitet, wird keinen Einfluß auf Dein Problem haben, mir aber evtl. bei der Fehlersuche helfen.
Das Telefonbuch klappt noch nicht, was kann ich da noch ändern?
Die neue Version installieren und mir dann nochmal den relevanten Teil der Suchanfrage aus dem Log zukommen lassen, bitte.
Und dann noch einen weiteren Versuch, jedoch mit geänderter "Suchbasis" in Deinen LDAP- Telefon Einstellungen.
Gehe bitte wie folgt vor nachdem Du die neue Version installiert hast.
Wir brauchen zuerst den genauen Adressbuchnamen Deines CardDAV Adresbuches wie es im LDAP Server importiert wird.
Hierfür mache bitte ein journalctl -u l2cpbg
und springe dann mit der <Ende> Taste ans Ende des Logs (je nach Log Größe kann das ein paar Sekunden dauern).
Gucke nun nach einer Zeile ähnlich Found matching [dav] AddressBook 'Contacts (Jörg Ebeling)'
und übertrage dann Deinen Adressbuchnamen in die "Suchbasis" von Deinen Telefon- LDAP- Einstellungen:
ou=Contacts (Jörg Ebeling), dc=example, dc=com
Und nun nochmal die Suche testen und mir dann bitte die relevanten Log-Einträge zukommen lassen.
Ich schreibe dir noch eine E-Mail wegen der Lizenz.
Jo, danke!! Warte mit der weiteren Fehlersuche bis ich Dir die Lizenz fertig gemacht habe, dann brauchste da nicht zweimal an der Konfig rum fummeln ;-)
Danke!
Sehr gern! Ich freue mich immer wenn jemand mein Programm findet und es für so sinnvoll erachtet, es auszuprobieren :-)
Updated by Ha Vo over 1 year ago
Sorry, es ist arm: (GNU/Linux 5.15.0-72-generic aarch64)
Mit den Einstellungen klappt es jetzt schon!
Updated by Jörg Ebeling over 1 year ago
- File l2cpbg_0.9.7rc1_arm64.deb l2cpbg_0.9.7rc1_arm64.deb added
- File l2cpbg_0.9.7rc1_armhf.deb l2cpbg_0.9.7rc1_armhf.deb added
Ha Vo wrote in #note-8:
Sorry, es ist arm: (GNU/Linux 5.15.0-72-generic aarch64)
Ahh, Raspi oder sowas. Kein Problem, hab die in Frage kommenden ergänzt.
Mit den Einstellungen klappt es jetzt schon!
Coool! Du meinst das Blättern im Telefonbuch und die Suche?
Dann kannst Du vermutlich mehrere LDAP- Konfiguration im Telefon einrichten? Und könntest so, bei Bedarf, solltest Du mehrere CardDAV-Adressbücher haben, diese über die LDAP Konfigurationen ansprechen.
Updated by Jörg Ebeling about 1 year ago
- Status changed from New to Closed
- % Done changed from 0 to 90