Hallo,

von verschiedenen Seiten kamen in den letzten wochen und Monaten Anfragen nach dem Export des FRITZ!Box Telefonbuch für IP Telefone. Ich habe das jetzt in meinem Fork realisiert. Mit XSL-Transformation wird das XML der FRITZ!Box in das jeweils gewünsche XML für verschiedene IP Telefone bzw. Anwendungen konvertiert:
  • Cisco
  • Grandstream
  • jFritz (kein IP Phone aber gleiches Format)
  • snom
  • Yealink
Ich selbst habe keine der genannten Telefone bzw. jFritz im Einsatz und kann daher nicht testen, ob die transformierten Formate so passen.
Korrekturen oder Ergänzungen sind jedoch leicht durch Anpassung der jeweiligen XSL-Datei möglich. Ebenso ist es natürlich möglich beliebig weitere eigene XSL-Dateien im Ordner /lib/ zu speichern und in der Konfiguration aufzurufen.

Grüße

Black Senator
 
  • Like
Reaktionen: koyaanisqatsi
Hallo,

ich wollte die Sache heute mal testen un dhabe gemäß Anleitung auf meinem Ubuntu 18.04 installiert, bekomme aber leider folgenden Fehler

Code:
root@nas:/mnt/nas/home/carddav2fb# ./carddav2fb run -i
PHP Warning:  require_once(vendor/autoload.php): failed to open stream: No such file or directory in /mnt/nas/home/carddav2fb/carddav2fb on line 8
PHP Fatal error:  require_once(): Failed opening required 'vendor/autoload.php' (include_path='.:/usr/share/php') in /mnt/nas/home/carddav2fb/carddav2fb on line 8
 
Moin,

hast Du Composer installiert und dann die notwendigen Libraries damit geladen?

Black Senator
 
Moin,

ja habe ich, wenn ich "apt install composer" ausführe, erhalte ich die Meldung
Code:
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
composer ist schon die neueste Version (1.6.3-1).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Ich hatte die Installation aber als root ausgeführt, könnte das das Problem sein?

ich werde mir die Sache aber am Abend nochmals in aller Ruhe anschauen und noch mals berichten.

Viele Grüße
Jürgen
 
Moin Jürgen,

Du musst dann aber auch den Composer anweisen die jeweils definierten Bibliotheken zu installieren: im jeweiligen Projektverzeichnis (hier: /carddav2fb) composer install --no-dev.
Dabei wird die composer.json gelesen, die Bibliotheken geladen und in /vendor installiert.

Black Senator
 
Moinsen


Ich hatte die Installation aber als root ausgeführt, könnte das das Problem sein?
Nein.
Installieren (mit apt) darf nur root.
Ein normaler Benutzer muss also ein sudo vor apt setzen um das zu dürfen.

Als normaler Benutzer sollte allerdings...
Rich (BBCode):
git clone https://github.com/andig/carddav2fb.git
cd carddav2fb
cat config.example.php >config.php
# ^--> config.php editieren und Zugangsdaten eintragen
composer install --no-dev
# ^--> Installiert die Abhängigkeiten, gibt dabei auch eine Menge aus
./carddav2fb
# ^--> Ohne Optionen/Argumente gibt dann den Hilfstext aus
...erfolgen.
 
Zuletzt bearbeitet:
auch nach
Code:
composer install --no-dev
der gleiche Fehler.

Ich werde am Abend mal alles löschen und nach /carddav2fb installieren und nicht in das ausgelagerte home-Verzeichnis.
Ein normales löschen ist ausreichen, nicht wahr?

EDIT:
ich müsste den Fehler haben, denn bei der Installation des Composers bekomme ich den Fehler, dass php 7.3/8.0 benötigt wird, bei mir ist aber nur 7.2.24 installiert.
Muss erst einmal schauen, wie ich php auf 7.3 bekomme.

Edit 2:
habe nun auf php 8.0 upgedatet, weiterhin keinen Erfolg, ich bin wohl zu doof (zu alt) dafür.

root@nas:/mnt/nas/home/carddav2fb# composer install --no-dev --no-suggest
Deprecation Notice: Required parameter $path follows optional parameter $schema in /usr/share/php/JsonSchema/Constraints/UndefinedConstraint.php:62
Deprecation Notice: Required parameter $path follows optional parameter $schema in /usr/share/php/JsonSchema/Constraints/UndefinedConstraint.php:108
Deprecation Notice: Method ReflectionParameter::getClass() is deprecated in /usr/share/php/Composer/Repository/RepositoryManager.php:129
Deprecation Notice: Method ReflectionParameter::getClass() is deprecated in /usr/share/php/Composer/Repository/RepositoryManager.php:129
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Warning from https://packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See https://blog.packagist.com/deprecating-composer-1-support/
Updating dependencies
PHP Fatal error: Uncaught ArgumentCountError: array_merge() does not accept unknown named parameters in /usr/share/php/Composer/DependencyResolver/DefaultPolicy.php:84
Stack trace:
#0 [internal function]: array_merge()
#1 /usr/share/php/Composer/DependencyResolver/DefaultPolicy.php(84): call_user_func_array()
#2 /usr/share/php/Composer/DependencyResolver/Solver.php(383): Composer\DependencyResolver\DefaultPolicy->selectPreferredPackages()
#3 /usr/share/php/Composer/DependencyResolver/Solver.php(736): Composer\DependencyResolver\Solver->selectAndInstall()
#4 /usr/share/php/Composer/DependencyResolver/Solver.php(228): Composer\DependencyResolver\Solver->runSat()
#5 /usr/share/php/Composer/Installer.php(473): Composer\DependencyResolver\Solver->solve()
#6 /usr/share/php/Composer/Installer.php(227): Composer\Installer->doInstall()
#7 /usr/share/php/Composer/Command/InstallCommand.php(119): Composer\Installer->run()
#8 /usr/share/php/Symfony/Component/Console/Command/Command.php(252): Composer\Command\InstallCommand->execute()
#9 /usr/share/php/Symfony/Component/Console/Application.php(946): Symfony\Component\Console\Command\Command->run()
#10 /usr/share/php/Symfony/Component/Console/Application.php(248): Symfony\Component\Console\Application->doRunCommand()
#11 /usr/share/php/Composer/Console/Application.php(251): Symfony\Component\Console\Application->doRun()
#12 /usr/share/php/Symfony/Component/Console/Application.php(148): Composer\Console\Application->doRun()
#13 /usr/share/php/Composer/Console/Application.php(100): Symfony\Component\Console\Application->run()
#14 /usr/bin/composer(59): Composer\Console\Application->run()
#15 {main}
thrown in /usr/share/php/Composer/DependencyResolver/DefaultPolicy.php on line 84

Fatal error: Uncaught ArgumentCountError: array_merge() does not accept unknown named parameters in /usr/share/php/Composer/DependencyResolver/DefaultPolicy.php:84
Stack trace:
#0 [internal function]: array_merge()
#1 /usr/share/php/Composer/DependencyResolver/DefaultPolicy.php(84): call_user_func_array()
#2 /usr/share/php/Composer/DependencyResolver/Solver.php(383): Composer\DependencyResolver\DefaultPolicy->selectPreferredPackages()
#3 /usr/share/php/Composer/DependencyResolver/Solver.php(736): Composer\DependencyResolver\Solver->selectAndInstall()
#4 /usr/share/php/Composer/DependencyResolver/Solver.php(228): Composer\DependencyResolver\Solver->runSat()
#5 /usr/share/php/Composer/Installer.php(473): Composer\DependencyResolver\Solver->solve()
#6 /usr/share/php/Composer/Installer.php(227): Composer\Installer->doInstall()
#7 /usr/share/php/Composer/Command/InstallCommand.php(119): Composer\Installer->run()
#8 /usr/share/php/Symfony/Component/Console/Command/Command.php(252): Composer\Command\InstallCommand->execute()
#9 /usr/share/php/Symfony/Component/Console/Application.php(946): Symfony\Component\Console\Command\Command->run()
#10 /usr/share/php/Symfony/Component/Console/Application.php(248): Symfony\Component\Console\Application->doRunCommand()
#11 /usr/share/php/Composer/Console/Application.php(251): Symfony\Component\Console\Application->doRun()
#12 /usr/share/php/Symfony/Component/Console/Application.php(148): Composer\Console\Application->doRun()
#13 /usr/share/php/Composer/Console/Application.php(100): Symfony\Component\Console\Application->run()
#14 /usr/bin/composer(59): Composer\Console\Application->run()
#15 {main}
thrown in /usr/share/php/Composer/DependencyResolver/DefaultPolicy.php on line 84
root@nas:/mnt/nas/home/carddav2fb# ./carddav2fb run
PHP Warning: require_once(vendor/autoload.php): Failed to open stream: No such file or directory in /mnt/nas/home/carddav2fb/carddav2fb on line 8
PHP Fatal error: Uncaught Error: Failed opening required 'vendor/autoload.php' (include_path='.:/usr/share/php') in /mnt/nas/home/carddav2fb/carddav2fb:8
Stack trace:
#0 {main}
thrown in /mnt/nas/home/carddav2fb/carddav2fb on line 8
root@nas:/mnt/nas/home/carddav2fb# php -v
PHP 8.0.11 (cli) (built: Sep 23 2021 21:26:06) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.11, Copyright (c) Zend Technologies
with Zend OPcache v8.0.11, Copyright (c), by Zend Technologies
root@nas:/mnt/nas/home/carddav2fb#

Ich soll jetzt offensichtlich auf composer 2 upgraden? Keine Ahnung, wieso ich nur solche Probleme habe, ist mein Ubuntu zu alt?

Viele Grüße
Jürgen
 
Zuletzt bearbeitet:
so, ich habe mein Nas mal auf Ubuntu 20.04 upgegradet, die Installation von carddav2fb hat auch geklappt,
beim ausführen von "carddav2fb run" erhalte ich nun folgenden Fehler

Code:
root@nas:/mnt/nas/home/carddav2fb# ./carddav2fb run
Downloading recent FRITZ!Box phonebook

In RedirectMiddleware.php line 211:

  Redirect URI, /index.lua, does not use one of the allowed redirect protocol
  s: http, https


run [-i|--image] [-l|--local [LOCAL]] [-c|--config CONFIG]
 
Tja,

da ich die genannte Datei nicht kenne, gehört sie zu irgend einer verwendeten Bibliothek in /vendor/.. Da ich nicht vorm Rechner sitze kann ich nicht nachsehen und nur raten: ich vermute mal guzzle.
Unabhängig davon wären auch ein bisschen mehr Infos so schon nötig.
Es liest sich so, als ob schon gleich der erste Request um die SID zu bekommen auf die Bretter geht.
Insofern, wenn es vorher schon mal lief…
  • war die, auf dem alten Ubuntu installierte Version von carddav2fb, genauso aktuell wie die jetzt neu installierte?
  • config.php hast Du vermutlich gesichert und wieder verwendet: passt die noch zur aktuellen config.example.php
  • wenn Du alles neu konfiguriert hast: was steht in fritzbox->url?
  • evtl. andere Einträge in dem Abschnitt nicht ganz astrein? User? Passwort?
Ich helfe ja gern, aber ohne Content eine Fehlermeldung zu posten, in der Erwartung, jemand wüßte aus dem Stand worum es sich handelt ist schon verblüffend.

Grüße

Black Senator
 
Guten Morgen,

carddav2fb ist auf dem alten Ubuntu 18.04 nicht gelaufen, da php zu alt war, daher habe ich auf 20.04 upgegradet.
Installiert und eingerichtet habe ich gestern Abend nach der Anleitung des Users @usefulvid von hier .
Der Carddav-Server ist Google und wenn ich dies richtig verstehe, wird nur http und nicht https unterstützt und daher kam offensichtlich die Fehlermeldung. Ich verwende nun folgende Einträge
Code:
    'server' => [
        [
            'url' => '',
            'user' => '[email protected]',
            'password' => 'meinpasswort',
            'http' => 'http://google.com',

Bei dem Abschnitt der Fritzbox habe ich die IP hinterlegt, da ich mehrere Fritzboxen im Haus habe
Code:
    // fritzbox
    'fritzbox' => [
        'url' => '192.168.123.254',
        'user' => 'fbuser-mit-ftp-rechten',
        'password' => 'fbpasswort',
        'fonpix'   => '/[YOURUSBSTICK]/FRITZ/fonpix',   // the storage on your usb stick for uploading images
Den Rest habe ich vorerst wie in der config.example.php belassen.
Nun erhalte ich folgende Meldungen
root@nas:/mnt/nas/home/carddav2fb# ./carddav2fb run
Downloading recent FRITZ!Box phonebook
Save internal data from recent FRITZ!Box phonebook!
Phone numbers with special attributes saved
Downloading vCard(s) from account [email protected]
PHP Fatal error: Uncaught TypeError: Argument 1 passed to Andig\CardDav\Backend::mergeClientOptions() must be of the type array, string given, called in /mnt/nas/home/carddav2fb/src/functions.php on line 35 and defined in /mnt/nas/home/carddav2fb/src/Http/ClientTrait.php:58
Stack trace:
#0 /mnt/nas/home/carddav2fb/src/functions.php(35): Andig\CardDav\Backend->mergeClientOptions()
#1 /mnt/nas/home/carddav2fb/src/DownloadTrait.php(65): Andig\backendProvider()
#2 /mnt/nas/home/carddav2fb/src/RunCommand.php(54): Andig\RunCommand->downloadAllProviders()
#3 /mnt/nas/home/carddav2fb/vendor/symfony/console/Command/Command.php(299): Andig\RunCommand->execute()
#4 /mnt/nas/home/carddav2fb/vendor/symfony/console/Application.php(978): Symfony\Component\Console\Command\Command->run()
#5 /mnt/nas/home/carddav2fb/vendor/symfony/console/Application.php(295): Symfony\Component\Console\Application->doRunCommand()
#6 /mnt/nas/home/carddav2fb/vendor/symfony/console/Application.php(167): Symfony\Component\Console\Application->doRun()
#7 /mnt/nas/ in /mnt/nas/home/carddav2fb/src/Http/ClientTrait.php on line 58

Noch eine Frage eines Laien, wenn ich nun auch Fonpix auf die Box laden möchte, muss ich dann [YOURUSBSTICK] durch die Bezeichnung des USB-Sticks laut Fritzbox (in meinem Fall USB_STICK) ersetzen, richtig?

Viele Grüße
Jürgen
 
Zuletzt bearbeitet:
Moin,

So kommen wir doch weiter…

Also, die Kommentare in der Konfigurationsdatei sollten schon nicht einfach ignoriert werden:

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)
        ],

  1. in 'url' => 'https://...', gehört die Serveradresse deines Google-Accounts - meinetwegen als 'http://google.com' oder 'http://google.com/[keine_Ahnung_was_dann_kommt]'
  2. in 'http' => [], gehört entweder ein leerer Array (so wie es in der Konfiguration steht), und nicht etwa 'http' => 'http://google.com' (das ist nämlich ein String und verursacht den Fehler...), oder aber allenfalls Array-Element(e) 'verify' => false, und/oder 'auth' => 'digest' - wenn man weiß, was das soll bzw. der Server das als Request-Parameter verlangt. Da kann ich aber nicht helfen, weil ich Google nicht benutze. Da hilft dann aber Google (die Suche!) weiter oder aber ein extra Thread mit genau dieser Frage, damit jemand das auch liest und dir fachkundige Hilfe geben kann. Ich würde es erst einmal ohne (also mit leerem Array) versuchen.
  3. 'user' => 'fbuser-mit-ftp-rechten', der sollte möglichst umfangreiche Rechte haben! Mindestens aber Zugriff auf alle angeschlossenen Speicher (Zugang zu NAS-Inhalten -> Alle an der FRITZ!Box verfügbaren Speicher)
Last but not least: ja, bei 'fonpix' => '/[YOURUSBSTICK]/FRITZ/fonpix', // the storage on your usb stick for uploading images heißt es dann wohl in deinem Fall 'fonpix' => '/USB_STICK/FRITZ/fonpix',

Bitte nutze die Wiki-Hilfe, die in meiner Signatur verlinkt ist. Da findest Du bestimmt das Ein oder Andere an hilfreicher Information.

Grüße

Black Senator
 
ich hatte 'http://google.com' ja ursprünglich unter 'url' eingetragen, aber die Fehler aus #268 erhalten, daher habe ich weiter getestet.

Nun habe ich wieder eine neue config.php aus der config.example.php erstellt und diesmal nur
Code:
'url' => 'http://google.com',
'user' => '[email protected]',
'password' => 'meinpasswort',
sowie
Code:
'fritzbox' => [
        'url' => '192.168.123.254',
        'user' => 'user_mit_allen_rechten',
        'password' => 'passwort',
angepasst und erhalte nun diesen Fehler:
root@nas:/mnt/nas/home/carddav2fb# ./carddav2fb run
Downloading recent FRITZ!Box phonebook
Save internal data from recent FRITZ!Box phonebook!
Phone numbers with special attributes saved
Downloading vCard(s) from account [email protected]
0 [>---------------------------]
In RequestException.php line 113:

Client error: `REPORT http://google.com/` resulted in a `405 Method Not All
owed` response:
<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, w (truncat
ed...)


run [-i|--image] [-l|--local [LOCAL]] [-c|--config CONFIG]
Ich suche mir seit gestern einen Wolf wegen der carddav-Einbindung für Google, viele Beiträge sind schon älter und bestimmt nicht mehr aktuell, da Google ja laufend etwas ändert.
Dies scheint eine aktuelle Seite zu sein, aber damit komme ich leider auch nicht weiter.
Hat denn schon jemand Google-Kontakte eingebunden? Mit der Adresse
aus dem Link bekomme ich keine Fehlermeldung, allerdings auch die Meldung, dass ich 0 Kontakte habe.
 
ich habe mir gestern Abend noch mit einen Account bei gmx erstellt in die Daten in die config.php eingetragen
Code:
    'server' => [
        [
            'url' => 'https://carddav.gmx.net/',
            'user' => '[email protected]',
            'password' => 'meinpasswort',
            'http' => [                     // http client options are directly passed to Guzzle http client
                // 'verify' => false, // uncomment to disable certificate check
                // 'auth' => 'digest', // uncomment for digest auth
            ],
und mit ./carddav2fb run ausgeführt und bekomme auch dort Fehlermeldungen:
Code:
root@nas:/mnt/nas/home/carddav2fb# ./carddav2fb run
Downloading recent FRITZ!Box phonebook
Save internal data from recent FRITZ!Box phonebook!
Phone numbers with special attributes saved
Downloading vCard(s) from account [email protected]
    0 [>---------------------------]PHP Warning:  SimpleXMLElement::__construct(): Entity: line 2: parser error : error parsing attribute name in /mnt/nas/home/carddav2fb/src/CardDav/Backend.php on line 185
PHP Warning:  SimpleXMLElement::__construct(): <lang="de" data-unset-nodes=".navigation .open{open}, .s-select.open{open}" data in /mnt/nas/home/carddav2fb/src/CardDav/Backend.php on line 185
PHP Warning:  SimpleXMLElement::__construct():      ^ in /mnt/nas/home/carddav2fb/src/CardDav/Backend.php on line 185
PHP Warning:  SimpleXMLElement::__construct(): Entity: line 2: parser error : attributes construct error in /mnt/nas/home/carddav2fb/src/CardDav/Backend.php on line 185
PHP Warning:  SimpleXMLElement::__construct(): <lang="de" data-unset-nodes=".navigation .open{open}, .s-select.open{open}" data in /mnt/nas/home/carddav2fb/src/CardDav/Backend.php on line 185
PHP Warning:  SimpleXMLElement::__construct():      ^ in /mnt/nas/home/carddav2fb/src/CardDav/Backend.php on line 185
PHP Warning:  SimpleXMLElement::__construct(): Entity: line 2: parser error : Couldn't find end of Start Tag lang line 2 in /mnt/nas/home/carddav2fb/src/CardDav/Backend.php on line 185
PHP Warning:  SimpleXMLElement::__construct(): <lang="de" data-unset-nodes=".navigation .open{open}, .s-select.open{open}" data in /mnt/nas/home/carddav2fb/src/CardDav/Backend.php on line 185
PHP Warning:  SimpleXMLElement::__construct():      ^ in /mnt/nas/home/carddav2fb/src/CardDav/Backend.php on line 185
PHP Warning:  SimpleXMLElement::__construct(): Entity: line 2: parser error : Extra content at the end of the document in /mnt/nas/home/carddav2fb/src/CardDav/Backend.php on line 185
PHP Warning:  SimpleXMLElement::__construct(): <lang="de" data-unset-nodes=".navigation .open{open}, .s-select.open{open}" data in /mnt/nas/home/carddav2fb/src/CardDav/Backend.php on line 185
PHP Warning:  SimpleXMLElement::__construct():      ^ in /mnt/nas/home/carddav2fb/src/CardDav/Backend.php on line 185

In Backend.php line 185:

  String could not be parsed as XML


run [-i|--image] [-l|--local [LOCAL]] [-c|--config CONFIG]

Ich habe echt keine Ahnung, was bei meiner Installation nicht stimmt.
 
Hallo Jürgen,

die Fehler GMX und Google zeigen, dass die Server-Adresse nicht korrekt ist. Der REQUEST liefert zwar etwas zurück - aber eben keine vCARDs.

Ich benutze beide Provider nicht und kann daher erst einmal nur raten. Abgesehen davon habe ich für beide Anbieter einmal probiert im Netz valide Infos zu finden. Anders als für andere Provider, ist das nicht so einfach.
Die Quelle, die Du für Google gefunden hast, habe ich auch gefunden und scheint brauchbar zu sein. Ich hatte aber noch keine Zeit das in Ruhe zu lesen bzw. ggf. daraus resultierende Erkenntnisse in eine Anpassung des Codes fließen zu lassen (wenn denn erforderlich!).
Nach erstem flüchtigem Überfliegen lese ich daraus: erst einmal logt man sich ein und bekommt dann erst die eigentliche Zieladresse des Adressbuches geliefert. Das ist eine komplett andere Logik, als die, die bisher in dem Programm seit Jahren funktioniert - selbst für iCloud.
Die ist nämlich (kurz gesagt): wenn valide Credentials und Adressbuch-Location (Serveradresse) vorliegen, dann gelingt der Zugriff auf die Daten.

Ich bin die nächsten Tage unterwegs und kann da nicht dran forschen. Daher noch einmal meine Empfehlung: mach einen separaten Thread auf, z.B. mit dem Titel "CardDAV-Serveradresse Google Kontakte" oder etwas in der Art. Wobei das Thema nicht einmal in dieses Forum gehört: denn das hat nix mit IP Phone, AVM oder sonstwas zu tun, sondern gehört in irgendein Google-Hilfe-Forum bzw. eines für GMX.

Also noch einmal: erst einmal liegt es nicht an dem vCard-Client (in diesem Fall carddav2fb) sondern an den fehlenden Daten. Tatsächlich klappt ein Zugriff auch mit dem, was Du hast z.B. mit den vCard-Client CardBook (Thunderbird) - insofern ist, wenn alles oben gesagte Zutrifft, eine Anpassung in carddav2fb erforderlich - um eben auch Google Anwender zu unterstützen. Aber evtl. gibt es auch eine anderen Weg...

Wie gesagt: auf die schnelle kann ich Dir keine Lösung anbieten...

Grüße

Black Senator
 
vielen Dank für deine Rückmeldung, ich habe schon an mir gezweifelt.
Google wäre mir am liebsten, da ich meine Outlook-Kontakte pflege und diese per gSyncit mit Google synchronisiere.
Ich wollte nun über carddav2fb die Kontakte der FritzBox und meiner Yealink T48S mit einbeziehen, aber aufgrund der Googlehürden bisher keinen Erfolg erzielen können.
Ich würde mich also freuen, wenn du dir die Sache mit Google nochmals anschauen würdest, sobald du Zeit und Muse dazu hast.
Das ist zwar auch OT, auf den Yealink T48S habe ich zur Zeit die Google-Kontakte direkt eingebunden, es wird von Google die Sortierung nach Vornamen übergeben, obwohl bei Google selbst die Sortierung nach Nachnamen eingestellt ist :(

EDIT:
oder kann mir jemand einen kostenlosen Anbieter mit Carddav-Unterstützung empfehlen, der mit carddav2fb problemlos funktioniert?
 
Zuletzt bearbeitet:
Hallo Jürgen,

vielleicht hat andig ja Zeit (weil er derzeit in seinem Projekt EVCC vergraben ist) oder fühlt sich angespornt. Mach dazu bitte ein Issue hier auf.

Warum?
  1. Die CardDAV Zugriffe sind sind in der Datei src/CardDav/Backend.php von ihm codiert. Ich bin in dem Bereich nur interessierter Laie.
  2. andig reagiert auf Einlassungen von Usern meist deutlich engagierter als auf meine als Mit-Entwickler
Vorschlag:
  • möglichst englische Titel und Problembeschreibung (da steht er drauf):
    z.B. "No access to Google Account possible"
  • beschreibe kurz auf Englisch was Du probiert hast; z.B. welche Kombinationen von Serveradressen Du in der config.php versucht hast
  • keine ellenlangen Error-Meldungen einbetten; wenn man die aufmerksam liest, dann erkennt man meist zu Anfang die Hauptaussage; allenfalls diese drei, vier Zeilen als Beleg einfügen
  • verweise auf das Google-Dokument (er wird damit mehr anfangen können als ich)
  • lass mich bitte ungenannt (sonst schiebt er am Ende die Aufgabe der Lösung aus Zeitgründen mir zu - und ich bin wie gesagt nicht die hellste Kerze in dem Bereich)
Grüße

Black Senator
 
ich werde es versuchen, aber englisch ist nicht so mein Ding, bin schon etwas älter ;)
 
Dann machs auf Deutsch - besser als nix
 
habs erledigt :)

Ich habe die Sache vorerst mal über Radicale auf meinem Ubuntu-Server gelöst, dieser bekommt das Outlook Adressbuch per gSyncit und darauf kann nun carddav2fb zugreifen.
Dies klappt soweit auch, ich habe ein paar Einträge nur mit Mailadresse, diese wirft carddav2fb natürlich raus.

Dann bekomme ich noch mehrfach folgende Meldung:
Code:
PHP Notice:  Undefined index: phoneReplaceCharacters in /mnt/nas/home/carddav2fb/src/FritzBox/Converter.php on line 82
PHP Warning:  count(): Parameter must be an array or an object that implements Countable in /mnt/nas/home/carddav2fb/src/FritzBox/Converter.php on line 82
es sind aber trotzdem alle Kontakte in die FB übernommen worden.

Unter 'realName' habe ich noch
Code:
'{lastname}',
ergänzt, weil ich sonst im FB-Adressbuch Einträge ohne Namen gehabt hätte, das könntest du ggf. mit übernehmen, falls noch jemand Kontakte ausschließlich mit Nachnamen hat.

Nun zum Yealink Telefonbuch, dieses wird mir im T48S leider ohne Einträge angezeigt, im Browser kann ich das Telefonbuch problemlos öffnen. Wie kann man diesem Problem auf die Spur kommen?

Weiter habe ich in anderen xsl-Dateien gesehen, dass dort mit "type" gearbeitet wird, könnte man dies bei der yealink.xsl auch ergänzen?
Bei meinen T48S gibt es im lokalen Adressbuch "office_number", "mobile_number" und "other_number" und im verbundenen Google Telefonbuch "work", "workFax" (wird ja nicht übernommen), "mobile" und "home".

Ich hoffe, ich nerve nicht zu stark, aber vielleicht können wir gemeinsam die yealink-xsl zum laufen bekommen, sobald du wieder etwas Zeit hast.

EDIT:
Ich habe etwas weiter geforscht und ein Test-Telefonbuch mit dem Yealink Phonebook Genetion Tool erstellt, dies wird als externes Telefonbuch angezeigt, es ist völlig anders aufgebaut, als das Telefonbuch, das von carddav2fb erstellt wird.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<YealinkIPPhoneBook>
  <Title>Yealink</Title>
  <Menu Name="Alle Kontakte">
    <Unit Name="Muster, Karl" Phone1="+49 (7131) 456789" Phone2="+49 (177) 1234567" Phone3="+49 (7131) 1234567" default_photo="Resource:"/>
  </Menu>
</YealinkIPPhoneBook>
hier sieht man auch, dass man Phone1, Phone2 und Phone3 zuordnen kann, umbenennen der Bezeichnungen hat nicht geklappt.

Viele Grüße
Jürgen
 
Zuletzt bearbeitet:
Hallo Jürgen,

zu der Fehlermeldung: schick mir mal deine config.php (Einwahldaten Radicale/FRITZ!Box natürlich nicht). Da hast Du etwas falsch eingetragen/geändert. E-Mail findest du im Code-Header.

Zu dem Token {lastname} - wie zu anderen Einstellungen: das sind i.d.R. Empfehlungen - da muss jeder selbst basierend auf den Quelldaten anpassen was für ihn gewünscht ist.

Zum Yealink-TB: irgendwo have ich geschrieben, dass ich das nur aus mir zugänglichen Beschreibungen codiert habe. Ich habe keines der IP-Telefone. Auch hier ist die XSL eher als Basis für Anpassungen zu sehen. Aber natürlich kann ich es grundsätzlich anpassen, wenn dein Format das „allgültige“ ist. Zumindest können wir es ja parallel für deinen Gerätetyp anpassen.

Grüße

Black Senator
 
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.