Dieser Artikel gilt wurde mit FRITZ!OS > 7 getestet. Wenn du eine ältere FRITZ!Box hast die noch kein FRITZ!OS 7 unterstützt, hilft dier evtl. dieser Artikel weiter

Wer im Besitz einer Nextcloud-Instanz ist, hat evtl. das Bedürfnis die dort liegenden Kontakte auch mit der FRITZ!Box zu synchronisieren. Wenn man im Besitz eines FRITZ!Fon ist man gleich noch den schönen Nebeneffekt, dort auch gleich die Kontakte sehen zu können.

In meinem Beispiel habe ich das Ganze auf einer FRITZ!Box 6590 Cable mit der Firmware 7.01 und einem Server unter Debian 9 eingerichtet. Der Server führt dabei regelmäßig einen Cronjob aus, der die Kontakte in die FRITZ!Box übertägt.

Und so geht's

FRITZ!Box vorbereiten

  • Webinterface der FRITZ!Box öffnen (fritz.box)
    • auf "System --> FRITZ!Box Benutzer" klicken
  • Hier muss nun ein neuer Benutzer angelegt werden, der die folgenden Rechte besitzt:
    • FRITZ!Box Einstellungen (zum Hochladen der Kontakte)
    • Zugang zu NAS-Inhalten (Zum Hochladen der Kontaktbilder via FTP)

Damit ist die Einrichtung an der FRITZ!Box abgeschlossen.

Konfiguration des Debian-Servers

  • eine SSH-Sitzung zum Debian-Server öffnen
  • Die benötigten PHP-Pakete installieren:
  • sudo apt install composer php-mbstring php php-curl php-mbstring php-xml
  • composer installieren:
  • composer install --no-dev
  • carddav2fb herunterladen:
  • git clone https://github.com/andig/carddav2fb.git
  • In den carddav2fb-Ordner wechseln:
  • cd carddav2fb/
  • die Datei "config.example.php" nach "config.php" verschieben:
  • mv config.example.php config.php
  • Nun muss die Konfigurationsdatei bearbeitet werden:
  • vi config.php
  • ...und die benötigten Optionen konfiguriert werden:

// phonebook
    'phonebook' => [
        'id'        => 1,                                              // only "0" can store quickdial and van$
        'name'      => 'Nextcloud',
        'imagepath' => 'file:///var/InternerSpeicher/FRITZ/fonpix/', // mandatory if you use the -i option

// or server
    'server' => [
        [
            'url' => 'https://nextcloud.example.com/remote.php/dav/addressbooks/users/<USER>/contacts/',
            'user' => '<USER>',
            'password' => '<PASSWORD>',

// or fritzbox
    'fritzbox' => [
        'url' => 'http://fritz.box',
        'user' => '<BENUTZER>',
        'password' => '<PASSWORT>',
        'fonpix'   => '/FRITZ/fonpix',   // the storage on your usb stick for uploading images

        'phoneReplaceCharacters' => [
            //'+49' => '',  // router is usually operated in 'DE; '0049' could also be part of a phone number

Den Teil bei "phoneReplaceCharacters" habe ich mit Kommentaren versehen, weil ich nicht möchte das die +49-Vorwahl im Telefonbuch entfernt wird.

Man kann hier natürlich auch das Standard-Telefonbuch (0) verwenden. Ich habe mir für meine Nextcloud-Kontakte dafür ein eigenes Telefonbuch anlegen lassen.

Jetzt kann das Script für einen ersten Text gestartet werden:

php carddav2fb.php run -i

Nun sollten im FRITZ!Box Webinterface unter "Telefonie --> Telefonbuch" die Kontakte im Telefonbuch "Nextcloud" auftauchen. Evtl. muss man noch in dieses Telefonbuch wechseln, über den Link "Telefonbuch wechseln".

Regelmäßigen Cronjob einrichten

Cronjob-Verwaltung öffnen:

crontab -e

# Taeglich um 00:00 werden die Nextcloud-Kontakte zur Fritz!Box synchronisiert
0 0 * * * /usr/bin/php /home/<USERNAME>/carddav2fb/carddav2fb.php >/dev/null 2>&1

Nun werden also regelmäßig die Kontakte zur FRITZ!Box synchronisiert. Wer ein FRITZ!Fon besitzt, sollte hier nun auch die Kontakte sehen können: