@OL_1973
Wenn Dein Fehler gleichartig aussieht, dann mach bitte folgendes:
  1. Leg parallel zu deinem produktiven Adressbuch ein Adressbuch an, welches wir testen können: zwei drei Datensätze anonymisiert reichen (die DB sollte aber natürlich bei Dir den gleichen Fehler zeigen!

@Black Senator ,
danke für die Hilfestellung. Ich werde versuchen, ein zweites Adressbuch anzulegen. Leider ist das bei t-online.de nicht ganz einfach. Hierzu muss ich einen neuen Inklusivnutzer anlegen. Wird ein paar Tage dauern.
 
@OL_1973
Du kannst mir ja schon mal vorab die kopierte Fehlermeldung per PM senden

Grüße

Black Senator

P.S. Hast Du url, user und Passwort schon mal so wie in dieser Anleitung für Cardbook in der config eingetragen probiert? Deine Angabe der Serveradresse war ja inkl. User und weiterer Ordner...
 
Zuletzt bearbeitet:
P.S. Hast Du url, user und Passwort schon mal so wie in dieser Anleitung für Cardbook in der config eingetragen probiert? Deine Angabe der Serveradresse war ja inkl. User und weiterer Ordner...
Hallo Black Senator,
ja, ich habe die Adresse komplett so eingetragen wie in Cardbook. Auch User und Passwort entsprechend. Trotzdem kommt der Fehler.
Eine PM ist unterwegs.
 
Denke nicht dass es hier zutrifft, aber hatte vor ein paar Tagen auch diese Meldung.
Bei mir war es ein leeres Telefonbuch welches die gleiche Fehlermeldung hervorbrachte.
Sobald ein Eintrag vorhanden war, verschwand der Fehler.
... war aber kein T-Online telefonbuch.
 
@molfi
das ist es leider nicht!
Wenn ich meinen (fast leeren) T-online Account anzapfe sehe ich den gleichen Fehler:
t-online error.png
Muss das jetzt in Ruhe debuggen...

+++ Update +++
@OL_1973

So, "Fehler" ist gefunden und soweit gefixt, dass es bei mir läuft.
Zur Erläuterung: Es ist der "alte Streit" der Request-Methode REPORT vs. PROPFIND (siehe z.B. #188). Andig hatte mit dem PR #192 schon einmal eine Lösung vorgestellt, die aber diejenigen, die vorher eine derartige Änderung/Erweiterung haben wollten, nie getestet haben (blöd: erst meckern, aber dann die Lösung/den Lösungsvorschlag ignorieren).
Ich kläre jetzt mit andig welchen Lösungsvorschlag wir produktiv setzen.

Es ist deshalb ein "Fehler" und kein Fehler, weil der download von vCards per REPORT erfolgen sollte (siehe Downloading objects). Nur t-online weicht vom Standard ab (wie gerne auch mal andere große Provider) und reagiert nur auf PROPFIND, welches dafür nicht vorgesehen ist :(

Grüße

Black Senator
 
Zuletzt bearbeitet:
  • Like
Reaktionen: OL_1973
Hallo Community,

das im Beitrag zuvor erwähnte Fixing ist gemerged und nun sowohl in andigs, als auch in meinem Repo vorhanden.

Damit ist es nun auch möglich, bei jedem Server explizit anzugeben, ob statt REPORT (default) der Request mit PROPFIND erfolgen soll. Hilft z.B. bei t-online, aber evtl. auch bei Keiro oder synology.

PHP:
    'server' => [
        [
            'url' => 'https://...',
            'user' => '',
            'password' => '',
            'http' => [           // http client options are directly passed to Guzzle http client
                // 'verify' => false, // uncomment to disable certificate check
                // 'auth' => 'digest', // uncomment for digest auth
            ],
            // 'method' => 'PROPFIND';  // uncomment if 'REPORT' (default) causes an error (e.g. t-online)
        ],

@OL_1973, danke diesen Punkt gestresst zu haben, damit er endlich zu einer Lösung gebracht wurde.

Grüße

Black Senator
 
  • Like
Reaktionen: OL_1973
Das Tool ist genial!
Ich hatte lange auf die AVM-Lösung gewartet, allerdings klappt diese nicht mit mit meinem Carddav-Anbieter. Euer Tool funktioniert! Danke dafür.

Mein Problem: Dadurch, dass man den Index vom Fritz-Telefonbuch angeben muss, habe ich mir mein Fritz-Haupttelefonbuch gelöscht. Backup natürlich vorher nicht gemacht - warum auch, wenn man eigentlich mit dem Fritz-Test-Telefonbuch arbeiten wollte. Dumm nur, dass nicht der Name, sondern der Index wichtig ist. Kein Backup, kein Mitleid - ich weiß. Aber gibt es evtl. irgendwo ein Backup, was Euer Tool oder die Fritzbox automatisch anlegt?

Zweite Frage: Auf dem USB-Stick wäre genug Platz, kann man nicht alle Telefonbücher (und sogar alle Fritzbox-Einstellungen) dort 1x pro Woche automatisiert backupen?

Dritte Frage: Warum arbeitet Euer Tool nicht bidirektional? Gibt es technische Gründe?

Vierte Frage: Wird der Fork von blacksenator in andig einbezogen? Wenn nein, könnte der Fork auch auf dem Docker-Hub hochgeladen werden? Dort immer die neuste Version zu holen finde ich praktisch.


Lösungsvorschlag für zwei config-Dateien im Docker-Continer:
Ich hatte versucht, in Docker zwei config.php in Docker einzubeziehen. Der Aufruf mit
sudo docker run --rm -v /docker/carddav2fb/data:/data andig/carddav2fb run -i -c config-test.php
klappte nicht. Als Workaround nutze ich zwei data-Verzeichnisse, in denen jeweils eine config.php liegt. Durch die Übergabe des jeweiligen Verzeichnissis beim run-Aufruf schalte ich zwischen den Configs u.
 
Zuletzt bearbeitet:
@Almuti

Erst einmal danke für das Lob - das freut uns!

Dann muss ich mich für die späte Antwort entschuldigen - aber ich habe hier aus dem Forum heraus keine Benachrichtigung über deinen neuen Beitrag gehalten.

Zu deinen Fragen:
ad 1.: nein - es gibt kein BackUp welches carddav2fb anlegt. Das ist ja auch im normalen Betrieb völlig unnötig, weil das führende System der/die CardDAV-Server ist/sind.

ad 2.: alle Telefonbücher sichern: ergibt sich mit der Antwort oben. Einstellungen sichern: ist nicht der scope des Tools

ad 3.: bidirektionale Synchronisation zwischen CardDAV-Client(s) und CardDAV-Servern ist an sich schon sehr aufwändig zu programmieren - selbst dann, wenn das Datenmodell in beiden Sstemen gleich ist. Das Datenmodell der FRITZ!Box Telefonbücher ist aber komplett abweichend! Nur ein Beispiel: in der FRITZ!Box gibt es ein Namensfeld <realName>, in vCard gibt es z.B. die Felder FN, N, ORG - nach welcher Logik soll der Inhalt aus <realName> in die CardDAV-Felder aufgesplittet werden?

ad 4.: mein FORK beinhaltet immer andigs Coding zuzüglich einiger Erweiterungen - u.a. für einen Rückkanal per E-Mail. Eine Übersicht dazu findest Du hier.

Last but not least: von Docker verstehe ich (bisher) rein gar nichts. andigs Fork funktiniert wohl damit - ich forke das entsprechend mit, habe das aber - aus genannten Gründen - nicht (sofern erforderlich) für meinen Fork angepasst.

Grüße

Black Senator
 
Ich habe zwischenzeitlich die integrierte AVM-Lösung der FRITZ!Box getestet, ja sie funktioniert bei mir mit mailbox.org.
Aber da diese Funktion keine Konfiguration zulässt, schmeißt sie doch einiges durcheinander und ist für mich absolut unbrauchbar.

Deshalb hier auch von mir nochmal: Vielen Dank für dieses geniale Tool!
 
Ich habe seit dem Update bei mailbox.org ein kleines unschönes Problem.
Scheinbar hat sich bei mailbox.org etwas an der struktur der VCARDs geändert. Bei privaten Kontakten ist alles ok, doch sofern ich etwas unter Firma (org) eintrage erscheint im Telefonbuch der Fritte neben dem Namen Firmaxyz;null. Es wird in der VCARD neben der Firma auch die Abteilung unter org mitgeliefert. Hat man keine Abteilung eingetragen steht da halt null.
Vielleicht war das auch schon immer so, mir ist es aber erst jetzt aufgefallen. Gibt es da vielleicht einen Trick, wie man das unterbinden kann?
Anbei mal zwei VCARDs als Beispiel:

Code:
BEGIN:VCARD
VERSION:3.0
N:Name;Vorname
FN:Name\, Vorname
ADR;TYPE=HOME,PREF:;;Straße;Ort;;PLZ;Deutschland
CATEGORIES:Privat
REV:2020-12-13T11:52:54Z
TEL;TYPE=CELL,PREF:+49 (000) 0000000
TEL;TYPE=HOME:+49 (000) 0000000
UID:877bc034-907b-4003-a834-025050dd81c9
PRODID:-//Open-Xchange//7.10.4-Rev14//EN
END:VCARD
Code:
BEGIN:VCARD
VERSION:3.0
N:Name
FN:Namer\nFirmenname
ADR;TYPE=WORK,PREF:;;Straße;Ort;;PLZ;Deutschland
CATEGORIES:Geschäftlich
NOTE:Öffnungszeiten\nMontag - Freitag von 8 - 18 Uhr
ORG:Firmenname;null
REV:2019-07-31T15:34:03Z
TEL;TYPE=CELL,PREF:+49 (000) 0000000
TEL;TYPE=WORK:+49 (000) 0000000
UID:caf949e3-f816-413d-bf93-42edeb84cf8c
PRODID:-//Open-Xchange//7.10.4-Rev14//EN
END:VCARD
 
@GreySoldier

Also, wenn die Beispiel-VCF Rohdaten aus mailbox.org sind, dann liegt das Problem dort.

Du schreibst:
erscheint im Telefonbuch der Fritte neben dem Namen Firmaxyz;null
So steht es ja auch in den Rohdaten:
ORG:Firmenname;null
Laut RFC6350 sind mehrere Komponenten durch Semikolon getrennt erlaubt. Aber wenn nur eine Komponente spezifiziert ist, dann sollte mailbox.org auch nur ORG:Firmenname und nicht ORG:Firmenname;null in dem Attribut speichern.

Seitens carddav2fb wird mit den Attributwerten nichts gemacht, sondern der String des Attributes wird ausgelesen und in <realName> übertragen.

Also es ist ein Sender- und kein Empfangsproblem.

Grüße

Black Senator
 
Danke für die Bestätigung!
Ich habe mir schon gedacht, dass es an mailbox.org liegt, weil der Fehler est nach dem Update von open-xchange aufgetreten ist.
Aber wenn nur eine Komponente spezifiziert ist, dann sollte mailbox.org auch nur ORG:Firmenname und nicht ORG:Firmenname;null in dem Attribut speichern
Ich werde mich damit mal an den Support wenden.
 
Hallo zusammen,
ich nutze die Version von Blacksenator. Habe schon länger das Problem, dass eine email Adresse von meinen Kontakten ein &-zeichen enthält. Bei diesem Kontakt wird dann im terminal immer ein Fehler ausgegeben und diese email Adresse ist dann nicht im Telefonbuch.
Habe heute mal upgedatet auf die aktuelle version. Nach einigem hin und her mit neuen erforderlichen PHP-Versionen ist dieser alte Fehler aber weiterhin da.

Folgende Anzeige kommt da vom Script:

Code:
Contact without phone numbers will be skipped
PHP Warning:  SimpleXMLElement::addChild(): unterminated entity reference [email protected] in /volume1/homes/admin/carddav2fb/src/FritzBox/Converter.php on line 153

Warning: SimpleXMLElement::addChild(): unterminated entity reference [email protected] in /volume1/homes/admin/carddav2fb/src/FritzBox/Converter.php on line 153
PHP Warning:  SimpleXMLElement::addChild(): unterminated entity reference [email protected] in /volume1/homes/admin/carddav2fb/src/FritzBox/Converter.php on line 153

Warning: SimpleXMLElement::addChild(): unterminated entity reference [email protected] in /volume1/homes/admin/carddav2fb/src/FritzBox/Converter.php on line 153
Contact without phone numbers will be skipped


Tatsächlich lautet die emails aber christian&[email protected]
Die domain habe ich wegen Datenschutz auf xxxxx gesetzt. Ich vermute irgendeine Problem beim Bearbeiten der Zeichenkette mit der emailadresse aufgrund des &-Zeichens. Habe mal geschaut im Internet findet man unterschiedliche Angaben dazu ob &-Zeichen in der email Adresse erlaubt sind.

Es wäre daher schön, wenn carddav2fb auch Adressen mit &-Zeichen unterstützen würde.

Danke, viele Grüße
Axel
 
Hallo Alex,

ein Issue im Repo zu eröffnen ist prima - hier brauchst Du das nicht wiederholen :)

Fixing ist auf dem Weg... erledigt.

Grüße

Black Senator
 
Zuletzt bearbeitet:
Hallo Blacksenator,

zunächst mal danke für die schnelle Reaktion mit dem & Zeichen.
Habe hier einen Adressdatensatz, der mir insofern Probleme bereitet, dass er bei jedem Ausführen von carddav2fb immer wieder als .vcf Datei per email gesendet wird. Normal kommen ja nur die vcf - Dateien per email, die in der Fritzbox geändert oder neu angelegt wurden.
Habe den Kontakt in der FB schon mal manuelle gelöscht. Dann wird die vcf Datei beim ersten Mal nicht gesendet, beim nächsten mal aber wieder doch. Ich vermute ein Problem beim Vergleich, kann aber nicht sagen wo. Der Nachname beinhaltet ein Umlaut ö. Das gibt es bei anderen Nachnamen aber m.E. auch. Möchte die vcf-Datei aus Datenschutzgründen aber auch nicht hier einstellen. Kann ich die vcf-Datei eventuell direkt schicken?
 
Hallo Axel,

so richtig erklären kann ich mir das eigentlich nicht. Ein Vergleich findet nur hinsichtlich der Telefonnummern statt. Für jede Rufnummer des zu ersetzten Telefonbuchs (vorher gesichert) wird noch einmal überprüft, ob die Rufnummer im neuen Upload enthalten war. Dabei wird angenommen, dass die "conversion"-Regeln sich zwischenzeitlich nicht geändert haben - also die Rufnummern alt wie neu gleich konvertiert wurden.

Zur Fehlersuche: schau dir doch bitte einmal die Rufnummer auf dem CardDAV-Server an - da muss m.E. die Ursache stecken (z.B. ein nicht sichtbares Char?). Alternativ kannst du ja die Rohdaten mit
php carddav2fb download rawdata.vcf
bzw. mit
php carddav2fb download -fd rawdata.vcf (inkl. filtern und auflösen)
downloaden und lokal speichern.

Ansonsten findest du meine E-Mail Adresse in den Headern vom Programm in diversen php-Files.

Grüße

Black Senator
 
Zuletzt bearbeitet:
Hallo Blacksenator,
danke für den Tip. In der Telefonnummer war tatsächlich ein nicht druckbares Zeichen enthalten, dass ich erst durch den export der vcf Datei aus dem nextcloud-Server gesehen habe. Es scheint jetzt zu funktionieren.

Viele Grüße
Axel
 
Hallo zusammen,
ich hatte ein Problem, im Fritzbox Telefonbuch die "wichtige Person" zu aktivieren. Ich nutze das Telefonbuch von T-Online.
Nach der Sichtung des Fritzbox Telefonbuchs und der vcf-Dateien der Adressen im T-Online Telefonbuch, sowie einigem probieren, habe ich eine Lösung gefunden, die bei mir funktioniert.
Nachfolgend der Abschnitt aus der config.php:
PHP:
 'conversions' => [
        'vip' => [
            'category' => [
                'vip1'
            ],
            'NOTE' => [
                'VIP'
            ],
        ],

Die Änderung des Originalcode ist im Bereich 'NOTE'. Die Kennzeichnung "VIP" ist bei den T-Online Adressen unter Notiz möglich. Durch den oben eingefügten Abschnitt wird bei den entsprechenden Adressen der Haken im Fritzbox Adressbuch gesetzt.
FB_Adresse_VIP.JPG
Vielleicht kann das der eine odere andere gebrauchen.
 
@OL_1973

Hallo Olaf,

erst einmal finde ich prima deine Lösung mit anderen zu teilen!
Ja, das was Du vorschlägst funktioniert, ist aber leider eine etwas "wackelige" Lösung: da das vCard Attribut "NOTE" (Notizen) ja ein Freitextfeld ist kann es natürlich jeden Wert enthalten. Wenn also NOTE einen Wert wie z.B. "VIP" enthält und deine Konfiguration das berücksichtigt, dann funktioniert das. Das Coding für die Auswertung, welcher Wert in welchem Attribut VIPs kennzeichen soll, ist "offen" für theoretisch alle Attribute programmiert und daher funktioniert deine Lösung. Besser ist es natürlich sich auf dezidierte Attribute und/oder deren Werte zu beziehen.

Dann hat mich die nähere Betrachtung dazu darauf gebracht, dass in der config_example.php ein irritierender Fehler ist: statt category und group sollte dort categories und groups stehen, denn dass sind die korrekten Attribut-Bezeicnungen. Fixing ist bereits unterwegs.

Last but not least, habe ich mir das t-online Adressbuch näher angesehen: dort gibt es "Gruppen" und diese sind die Bezeichnung dort für das Attribut "CATEGORIES". Das ist also der ideale Weg, um z.B. darüber VIPs zu kennzeichnen:
t_online.jpg
Probier daher mal folgendes aus: im t-online Adressbuch eine Gruppe "VIP" anlegen, da hinein deine gewünschten Kontakte zuordnen und in der Konfiguration von carddav2fb folgendes eintragen:
PHP:
'conversions' => [
    'vip' => [
        'categories' => [
            'VIP'
        ],
    ],
Das sollte die bessere Lösung sein.

Grüße

Black Senator
 
Zuletzt bearbeitet:
Hallo @Black Senator

vielen Dank für die Informationen und Anpassungen.
Ich habe das mal ausprobiert.
Ich kann hier aber nicht sagen, welches Attribut von T-Online genommen wird. Ich habe eine Gruppe angelegt, und diese z.B. mit Cardbook (Thunderbird) ausgelesen. Es taucht in den vcf Dateien nicht einmal annähernd eine Kategorie oder Gruppe "Name XX" auf.
Das scheint eine "interne" Gruppe zu sein.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,171
Beiträge
2,247,421
Mitglieder
373,714
Neuestes Mitglied
Panicmaker
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.