Hallo Olaf,

den Screenshot mit der angelegten Gruppe "VIP" in T-Online hast Du ja oben gesehen. Hier ist das Pendant in Thunderbird/Cardbook:
cardbook.jpg
Das kann bei Dir dann nicht anders sein.

Noch ´mal manuell Synchronisierung anstoßen?

Grüße

Black Senator
 
Vollzitat von darüber gemäß Boardregeln entfernt by stoney
Hallo Black Senator,
habs ausprobiert, Gruppe angelegt im T-Online Telefonbuch, Sync mit Cardbook.
1. Das Attribut "CATEGORIES" wird nicht übernommen
2. Wenn ich das Attribut "CATEGORIES" im Cardbook einrichte und Kontakten zuweise, wird dies im T-Online Adressbuch nicht übernommen.
3. Die Übernahme mit dem Code funktioniert auch nicht.
Bin da gerade etwas neben der Spur.
Gruß Olaf
 
Zuletzt bearbeitet von einem Moderator:
Die Übernahme mit dem Code funktioniert auch nicht.
Na ja, wenn das Attribut CATEGORIES nicht „erscheint“, dann kann die Konfiguration nicht greifen.
Ich kann mir nur gerade nicht erklären, warum bei Dir nicht funktioniert, was bei mir bei gleichen Systemen (t-online & Cardbook) funktioniert.

Ich versuche herauszubekommen woran das liegen könnte.

UPDATE:
Ich bin jetzt ehrlich verblüfft:
Ich habe die "VIP" Gruppe in t-online Adressbuch gelöscht. Anschließend habe ich eine neue Gruppe "Test" angelgt und zwei Kontakten zugewiesen. Dies wurde aber nicht in Cardbook syncronisiert. Ich habe mit verschiedenen Aktivitäten versucht, die TEST-Gruppe wieder als CATEGORIES außerhalb von t-online sichtbar zu bekommen - leider erfolglos.
Insofern ist deine Lösung tatsächlich der (augenblicklich) funktionierende Weg.
Ich versuche aber noch dahinter zu kommen, woran das liegt, dass es einmal klappt und dann wieder nicht.

Black Senator
 
Zuletzt bearbeitet:
UPDATE:
Ich bin jetzt ehrlich verblüfft:
Ich habe die "VIP" Gruppe in t-online Adressbuch gelöscht. Anschließend habe ich eine neue Gruppe "Test" angelgt und zwei Kontakten zugewiesen. Dies wurde aber nicht in Cardbook syncronisiert. Ich habe mit verschiedenen Aktivitäten versucht, die TEST-Gruppe wieder als CATEGORIES außerhalb von t-online sichtbar zu bekommen - leider erfolglos.
Insofern ist deine Lösung tatsächlich der (augenblicklich) funktionierende Weg.
Ich versuche aber noch dahinter zu kommen, woran das liegt, dass es einmal klappt und dann wieder nicht.

Black Senator
Hallo Black Senator,
dann bin ich ja doch nicht ganz so unwissend. Ich schätze mal, das liegt am t-online "Server". Der ist für solche Sachen nicht wirklich gedacht. Ich hatte das ganze paralell mit Synology Contacts probiert, da läuft es einwandfrei.
Aber gut, schauen wir mal.
Schönen Sonntag noch.
 
Moinsen miteinander,
habe carddav2fb auf meinem ubuntu20-Arbeitsplatzrechner installiert. Per Filezilla-FTP komme ich mit diesen Einstellungen auf die FB:

Bildschirmfoto von 2021-08-04 16-11-20.png

In der config.php habe ich dieses eingestellt:
Bildschirmfoto von 2021-08-04 16-12-20.png
Bilder gemäß Boardregeln als Vorschaubilder eingebunden by stoney

Dann kriege ich stets diese Fehlermeldungen:
Code:
$ ./carddav2fb run
Downloading recent FRITZ!Box phonebook
In StreamHandler.php line 72:
Connection refused for URI ftp://fritz.box/login_sid.lua
In StreamHandler.php line 321:
Connection refused for URI ftp://fritz.box/login_sid.lua

Statt "ftp://fritz.box" habe ich auch "ftp.fritz.box" und "http://fritz.box" probiert.
Hat jemand eine gute Idee für mich, was ich falsch mache?

Dank und Grüße,
Wolf

Hat jemand eine gute Idee,
 
Zuletzt bearbeitet von einem Moderator:
Hallo Wolf,

entweder einfach http://192.168.178.1 - wenn das deine IP der FRITZ!Box ist - oder eben http://fritz.box.

Abgesehen davon würde ich einen separaten Benutzer anlegen mit entsprechenden Rechten:
user_grants.png
Die wesentlichen Zugriffe auf die Box erfolgen per HTTP.
Bei der Verwendung von Anruferbildern (-i) wird ein FTP-Access benötigt, um die Bilder in das richtige Verzeichnis im Speicher der FRITZ!Box zu kopieren bzw. auszulesen. Dafür sind auch in der Konfiguration die "ftp"-Einstellungen.


Grüße

Black Senator
 
Zuletzt bearbeitet:
  • Like
Reaktionen: herrdeh
Besten Dank für die superschnelle Antwort. Ok, jetzt habe ich verstanden, da ich FTP eigentlich nur für die Bilder brauche... Mit "http://fritz.box" klappt die Verbindung. Allerdings kommt jetzt:

Code:
./carddav2fb run
Downloading recent FRITZ!Box phonebook
ERROR: Could not load phonebook with ID=0
PHP Fatal error:  Uncaught TypeError: Argument 1 passed to Andig\FritzBox\Restorer::getPhonebookData() must be an instance of SimpleXMLElement, bool given, called in /home/wd/carddav2fb/src/functions.php on line 630 and defined in /home/wd/carddav2fb/src/FritzBox/Restorer.php:62
Stack trace:
#0 /home/wd/carddav2fb/src/functions.php(630): Andig\FritzBox\Restorer->getPhonebookData()
#1 /home/wd/carddav2fb/src/RunCommand.php(47): Andig\uploadAttributes()
#2 /home/wd/carddav2fb/vendor/symfony/console/Command/Command.php(299): Andig\RunCommand->execute()
#3 /home/wd/carddav2fb/vendor/symfony/console/Application.php(978): Symfony\Component\Console\Command\Command->run()
#4 /home/wd/carddav2fb/vendor/symfony/console/Application.php(295): Symfony\Component\Console\Application->doRunCommand()
#5 /home/wd/carddav2fb/vendor/symfony/console/Application.php(167): Symfony\Component\Console\Application->doRun()
#6 /home/wd/carddav2fb/carddav2fb(20): Symfony\Component\Console\Application->run()
#7 {main}
  thrown in /home/wd/carddav2fb/src/FritzBox/Restorer.php on line 62

In der FB sieht das so aus:
Bildschirmfoto von 2021-08-04 17-54-47.png


und in der config so:
Bildschirmfoto von 2021-08-04 17-55-01.png
Bilder gemäß Boardregeln als Vorschaubilder eingebunden by stoney

Was mach' ich nun falsch?

Dank und Grüße,
Wolf
 
Zuletzt bearbeitet von einem Moderator:
Hallo Wolf,

carddav2fb geht davon aus, dass die FRITZ!Box schon eine Weile in Betrieb ist - sprich: ein Telefonbuch bereits in Verwendung ist. Als ein Feature wird das bereits vorhandene Telefonbuch eingelesen, um FRITZ!Box-spezifische Daten (Quickdial & Vanity), die es so in CardDAV nicht gibt, zu sichern. Beim Upload der neuen Telefonbuchdaten wird dann versucht, diese Spezifika wieder den neuen Daten "unterzumischen"*.

So wie es aussieht, hast Du auf der FRITZ!Box noch gar kein Telefonbuch angelegt - oder? Abgesehen davon sieht der Screenshot so aus, als ob Du eine uralte FRITZ!Box oder FRITZ!OS verwendest? Da solltest Du bitte einmal mitteilen was der Ausgangsstand ist.
Falls das Telefonbuch leer ist, leg bitte einmal einen Eintrag an.

Grüße

Black Senator



* Wenn ich so überlege, ist das auch eine Stelle, an der per ftp auf einen Speicherort der FRITZ!Box zugegriffen wird.
 
  • Like
Reaktionen: herrdeh
Moinsen, vielen Dank für die tolle Hilfe!
Das zuletzt beschriebene Problem war ein Rechteproblem, mein Benutzer "ftpuser" hatte nicht alle Rechte. Nun hat er...
Meine Box ist eine 7270 - in der Tat schon ein paar Jahre alt. FritzOS ist 6.06 - das letzte, das es für diese Box gibt.

Nun passiert folgendes:

Code:
$ ./carddav2fb run
Downloading recent FRITZ!Box phonebook
No special attributes are saved!
PHP Warning:  ftp_chdir(): /FRITZ/mediabox: Permission denied. in /home/wd/carddav2fb/src/functions.php on line 84
In functions.php line 86:
Could not change to dir /FRITZ/mediabox on ftp server fritz.box for upload
run [-i|--image] [-l|--local [LOCAL]] [-c|--config CONFIG]

Ob ich per FTP auf das Adreßbuch zugreifen kann, weiß ich allerdings nicht. Aber meinem USB-Speicher findet sich der Pfad "FRITZ/mediabox" - und da liegt auch eine Datei namens "fritznasdb_part.db3" drin.

Telefonbuch ist bei mir schon lange in Betrieb, es sind auch ein paar Einträge drin.

Grüße vom Wolf
 
Zuletzt bearbeitet:
Hallo Wolf,

nun, ich vermute einmal, dass es das Verzeichnis in einer 7270 nicht gibt - oder zumindest nicht an diesem Ort.
Erster Workaround: in der Konfiguration ftp disabled auf true setzen. Dann sollte zumindest der Versuch, auf das mediabox-Verzeichnis zuzugreifen unterbleiben.
Ansonsten kannst Du ja versuchen das Verzeichnis anzulegen - dazu kenne ich mich aber mit der 7270 nicht (mehr) aus.
Ich bin sowieso gespannt, auf welche Fallstricke das Programm noch stößt... denn mit so alter Hard- und Firmware - da ist bestimmt einiges noch anders als im PHP-Script spezifiziert.

Bin gespannt

Black Senator
 
  • Like
Reaktionen: herrdeh
Hallo Wolf,

nun, ich vermute einmal, dass es das Verzeichnis in einer 7270 nicht gibt - oder zumindest nicht an diesem Ort.
Erster Workaround: in der Konfiguration ftp disabled auf true setzen. Dann sollte zumindest der Versuch, auf das mediabox-Verzeichnis zuzugreifen unterbleiben.
BINGO! - Hat funktioniert. Das Telefonbuch wurde erkannt, heruntergeladen und konvertiert.
Einziger kleiner Schönheitsfehler: Bei Tel-Nummern, die mit "+49" anfangen, wird die "+49" abgeschnitten. aus einer "+49 30 12346534" wird also "30 12346534". Bißchen blöd.

Aber sonst...
Kann man da noch was biegen?

Grüße vom Wolf
 
Hallo Wolf,

Kann man da noch was biegen?
Dazu muss man nix biegen. Das Programm kann außer solchen Dingen noch viel mehr - Du solltest dich dazu mal bei Gelegenheit in das in meiner Signatur verlinkte Wiki einlesen*.

Für die Konvertierung von Zeichen in Telefonnummern ist folgender Block in der Konfiguration vorgesehen (in der Auslieferung sind das nur exemplarisch typische Beispiele):
PHP:
'phoneReplaceCharacters' => [
    '+49' => '',  // router is usually operated in 'DE; '0049' could also be part of a phone number
    '('   => '',
    ')'   => '',
    '/'   => '',
    '-'   => ''
]
Diese Konvertierungsregeln werden mit der Funktion strtr() abgearbeitet! Für die die Reihenfolge ist also die Länge des Schlüssels entscheident!

Wenn Du also eine Nummer in der Form +49 30 12346534 hast, und nix an den Konvertierungsregeln anpasst, dann ist klar, dass daraus 30 12346534 wird.
Andererseits muss man natürlich alle individuellen Nummern (Erscheinungsformen) im Blick behalten um eine Regel zu definieren, die für alle Nummern ein gleichermaßen korrektes Ergebnis liefert.
Die FRITZ!Box kann zwar mit "+" (und anderen alphanumerischen Zeichen) umgehen - in der Regel ergibt das aber für das Telefonbuch im FRITZ!Fon wenig Sinn.
Daher ist z.B. meine Einstellung für eine Konvertierung folgende (theoretisch noch mit Optimierungspotential - funktioniert aber):
PHP:
        'phoneReplaceCharacters' => [
            '('     => '',                     // delete separators
            ')'     => '',
            '/'     => '',
            '-'     => '',
            ' '     => '',
            '+49 1'  => '01',                   // domestic numbers without area code
            '+49 2'  => '02',
            '+49 3'  => '03',
            '+49 4'  => '04',
            '+49 5'  => '05',
            '+49 6'  => '06',
            '+49 7'  => '07',
            '+49 8'  => '08',
            '+49 9'  => '09',
            '+491'  => '01',
            '+492'  => '02',
            '+493'  => '03',
            '+494'  => '04',
            '+495'  => '05',
            '+496'  => '06',
            '+497'  => '07',
            '+498'  => '08',
            '+499'  => '09',
            '+49'   => '',
            '+'     => '00'                    // normalize foreign numbers
        ]

Zusammenfassung: carddav2fb kann ziemlich viel im Rahmen der Konvertierung von CardDAV zum XML-Telefonbuch der FRITZ!Box! Entscheidend sind die Ausgangsdaten und was man im Ergebnis erreichen möchte: z.B. auch Handhabung von VIP, Ein- und Ausschlüsse von bestimmten Kontakten (CATEGORIES/GROUPS), Reihenfolge von Rufnummern im Kontakt, Konvertierung von Gerätetypen (MOBIL, HOME, WORK ...) uvm.


Grüße

Black Senator

* das Wiki bezieht sich auf meine Version von carddav2fb, welche drei Features enthält, die in andigs-Version nicht enthalten sind - die Masse der Hinweise und Erläuterungen sind jedoch für beide Versionen gleich.

P.S. über ein Like für die umfangreiche Hilfe freue ich mich
 
Zuletzt bearbeitet:
  • Like
Reaktionen: herrdeh
Moin,

seit dem ich jetzt meinen Provider gewechselt habe und jetzt bei EON bin (alle anderen bieten bei uns zur Zeit nur ca. 10Mbit/s oder weniger), kann ich zur Zeit mein NextCloudPi-Zertifikat nicht mehr aktualisieren lassen - der Client findet die Ports von außen nicht mehr) ...

Aus diesem Grund bekomme ich wg. abgelaufenem Zertifikat auf der cmd nur eine Fehlermeldung:
Code:
php /home/pi/carddav2fb/carddav2fb run -i -c/home/pi/carddav2fb/margret.php
...
Downloading vCard(s) from account margret
    0 [>---------------------------]
In CurlFactory.php line 211:
                                                                                                                                                                          
  cURL error 60: SSL certificate problem: certificate has expired (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://ifg4nlo1doskinul.myfritz.net/remo 
  te.php/dav/addressbooks/users/margret/contacts/
Gibt es eine Möglichkeit, diesen Umstand zu übergehen, also trotz des Fehlers eine saubere Übertragung zu gewährleisten (ich muß erst einmal die Zeit finden, mich um das Zertifikatsproblem zu kümmern - so lange muß es so gehen ;-)

Gruß, Christoph
 
Hallo Christoph,

ich habe das Problem nicht so richtig verstanden. Wie ist denn bei Dir die Netzwerk-/Device-Topologie? Typischerweise hat man ja das Device, auf dem carddav2fb läuft im Heimnetz und seine(n) CardDAV-Server außerhalb laufen. In dem Fall wäre der Provider des CardDAV-Server für den korrekten https-Zugriff verantwortlich.
Wenn ich das richtig interpretiere, dann betreibst Du den Nextcloud-Server selbst - aber dann kannst Du doch in deinem Heimnetz unverschlüsselt auf den Nextcloud-Server zugreifen?

In älteren Posts von Dir aus 2017 hattest Du schon einmal so ein ähnliches Problem beschrieben auf eine entfernte Box ein Telefonbuch per myFRITZ oder so zu pushen (ich habe es nur überflogen).
Wenn das jetzt wieder die Variation des Themas ist, dann würde ich sagen, liegt es (im Kern) nicht an carddav2fb sondern an den per myFRITZ-verbunden Boxen, dynDNS, VPN (ich bin in dem Feld nur interessierter Laie).
Dann wäre das Thema aber hier vermutlich nicht gut gepostet und Du bekommst mit einem eigenen Thread unter aussagekräftiger Überschrift eher qualifizierte Hilfe. Ich muss da passen - ist so gar nicht mein Steckenpferd.

Grüße

Black Senator
 
P.S. über ein Like für die umfangreiche Hilfe freue ich mich
Nochmal ganz herzlichen Dank - mit Deinen Hinweisen hab ich das Programm dazu gekriegt das zu machen, was ich will.

Mußte dann allerdings mit Entsetzen feststellen, daß das von mir verwendete "jfritz" gar nicht das Telefonbuch der Fritzbox ausliest, sondern sein eigenes pflegt und beide nicht synchronisiert werden. ): Bin gar nicht auf die Idee gekommen, das könnte etwa nicht so sein.
Es gibt bereits ein RFE bei jfritz zu dem Thema, aber die Weiterentwicklung dort ist eher langsam...

Muß mich wohl mal nach einer anderen Lösung umschauen...

Dennoch - allerbesten Dank und Grüße,
Wolf
 
Hallo Wolf,

mit jFritz habe ich mich (vorher) nie beschäftigt und darum erst nach deiner Antwort mal dort hineingeschaut (auch weil ich den Zusammenhang nicht sofort ganz verstanden hatte…)

Zumindest implizit steht das mit der Datenherkunft in der Programm-Beschreibung von jFritz. Aber ich habe das auch schon oft erlebt, dass ich etwas herauslesen wollte und dann eine Beschreibung missinterpretiert habe.

Wenn ich das von dir gewünschte Zusammenspiel richtig deute, dann sollten die vCards als Kontakte in die FRITZ!Box und von dort mit jFritz synchronisiert werden?
Dann würden aber neue Kontakte auch nicht automatisch zurück in den/die CardDAV-Server synchronisiert, denn es gibt in carddav2fb keine* Synchronisation von der FRITZ!Box zurück! Das ist anders, als die stumpfe Sync, welche AVM in der FRITZ!OS zu CardDAV-Servern anbietet. Da dort an den Daten nicht wirklich was verändert wird, ist eine bi-direktionale Schnittstelle möglich. Da mit carddav2fb die Daten maximal durchgeknetet werden, bis dahin, dass aus mehreren CardDAV-Servern ein Telefonbuch wird, müsste man sich das alles im Programm merken, um es dann in der Synchronisation dann revers ablaufen lassen zu können. Abgesehen davon stellt sich dann die Frage, welches der beteiligten denn eigentlich das "führende" System ist. Natürlich könnte man das programmieren (wie eigentlich alles...), aber das wäre sehr aufwändig und dafür habe ich nicht die Zeit und andig keine Lust.

Als Workaround (siehe * oben) gibt es in meinem Fork einen Rückkanal von FRITZ!Box zu CardDAV via E-Mail (d.h., die Logik der Synchronisation wird in gewisser Weise in den Kopf des Anwenders ausgelagert ;)).

Grüße

Black Senator
 
  • Like
Reaktionen: herrdeh
Wenn ich das von dir gewünschte Zusammenspiel richtig deute, dann sollten die vCards als Kontakte in die FRITZ!Box und von dort mit jFritz synchronisiert werden?
Ich wäre ganz glücklich, wenn mein CardDAV-Server der "master" wäre und die Daten an die Fritzbox schickt (das macht carddav2fb ja sehr schön) - und die FB dann in das Adreßbuch von jFritz schreibt. Alles andere wäre für mich Kür - es können ja viele Komplikationen entstehen wenn nicht klar ist wer Koch und wer Kellner...

Vielleicht kommt ja irgendwann diese sync-Funktion bei jFritz.

Hab mir neulich mal kurz jAnrufmonitor angeschaut. Es läuft zwar auf ubuntu 20, ich konnte es aber nicht dazu bringen, auch etwas anzuzeigen.
 
Hast Du mal geschaut, wo und in welcher Form jFritz sein Telefonbuch speichert? Zumindest steht ja zu vermuten, dass der Entwickler hier nicht irgendein selbstgestricktes oder sonstwie propriäteres Datenbankformat gewählt hat. Evtl. kann man dem Programm einfach mit jedem Update auf der FRITZ!Box ein aktualisiertes DB-File "unterschieben". Zumindest in meiner Version mache ich ja etwas ähnliches mit den FAX-Rufnummern für fax4box. Das klappt zumindest in der Konstellation ganz easy - wobei FRITZ!adr auch sehr einfach gestrickt ist mit dBase III+...
 
Schlichtes XML:

Code:
<entry private="false">
    <name>
        <firstname>VORNAME</firstname>
        <lastname>NACHNAME</lastname>
    </name>
    <address>
        <street>STRASSE</street>
        <postcode>PLZ</postcode>
        <city>STADT</city>
    </address>
    <phonenumbers standard="home">
        <number type="home">RUFNUMMER</number>
    </phonenumbers>
</entry>
 
Hallo Christoph,

ich habe das Problem nicht so richtig verstanden. Wie ist denn bei Dir die Netzwerk-/Device-Topologie? Typischerweise hat man ja das Device, auf dem carddav2fb läuft im Heimnetz und seine(n) CardDAV-Server

Black Senator
Hallo,

Das Problem war, intern zugreifen lief auch auf einen Fehler seinerzeit - darum hab ich die Variante nicht mehr probiert...

Inzwischen habe ich mir eine öffentliche IP dazu bestellt, da auch VPN, Zugriff auf NC, LetsEncrypt uvm. seit der Umstellung nicht mehr funktionierten ... seit der Schaltung funktioniert es wieder...

Danke.
Christoph
 
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.