carddav2fb - angepaßte Version

Syncen von der FB aus?

Hallo,

habe mit Interesse den Artikel "überflogen". Eigentlich suche ich eine Möglichkeit die Pflege des Telefonbuchs auf der FB zu machen, da kann man neu eingehende Nummern gut hinzufügen. Das Telefonbuch soll dann am besten automatisch synchronisieren mit meiner Owncloud, einem angeschlossenen Gigaset DX 600A und, das ist wohl der Hauptknackpunkt, mit meinem Windows 8 Phone. Das ganze nach Möglichkeit nur über meine eigene Owncloud (CardDav) oder direkt in der FB, möchte die Daten nicht gerne bei Outlook.com (online) oder anderen Anbietern abladen.

MfG
Holger
 
Hallo,

habe mit Interesse den Artikel "überflogen". Eigentlich suche ich eine Möglichkeit die Pflege des Telefonbuchs auf der FB zu machen, da kann man neu eingehende Nummern gut hinzufügen.

Hallo Holger,
der Ansatz von carddav2fb ist genau anders herum. Die Kontaktpflege läuft in owncloud (z.B.), Mobiltelefon, etc. und wird dann mit der FritzBox syncronisiert.

[Offtopic]
Das Thema mit WindowsPhone ist da schon wesentlich schwieriger, da dort das ganze normalerweise per ActiveSync läuft (glaube ich, habe selbst nur Android-Endgeräte). Alternativ könnte das ganze dann anstatt mit owncloud über den Zarafa-Server laufen (gibt es auch eine Community-Edition). Ist aber wesentlich komplexer einzurichten als owncloud.

Teste das selber gerade.
[/Offtopic]
 
Hallo Holger,
der Ansatz von carddav2fb ist genau anders herum. Die Kontaktpflege läuft in owncloud (z.B.), Mobiltelefon, etc. und wird dann mit der FritzBox syncronisiert.

ja, das hatte ich auch so gelesen...

[Offtopic]
Das Thema mit WindowsPhone ist da schon wesentlich schwieriger, da dort das ganze normalerweise per ActiveSync läuft (glaube ich, habe selbst nur Android-Endgeräte). Alternativ könnte das ganze dann anstatt mit owncloud über den Zarafa-Server laufen (gibt es auch eine Community-Edition). Ist aber wesentlich komplexer einzurichten als owncloud.

Teste das selber gerade.
[/Offtopic]

Würde mich freuen, zu hören wenn sich was bessert, insgeheim hoffe ich auf CardDav-Support unter WindowsPhone8.1 oder das die neue FritzOS 6.20 (soll demnächst kommen) was neues bringt. Muss mal nach ZARAFA "googeln", sagt mir nix...

Warum ist das alles immer so kompliziert? Die Werbung verspricht da andres und wenns konkret wird kämpft man, wie immer, mit Kompatibilitätsproblemen.
 
Bilderupload per FTP funktioniert nicht

Zu finden ist das ganze nun hier:

https://github.com/jens-maus/carddav2fb

Im Grunde basiert es auf der Version die hier gepostet wurde, jedoch mit zwei Bugfixes.

Hallo damato,
evtl. kannst Du mir weiterhelfen.
Ich nutze Deine Version zum Abgleich mit meiner owncloud Installation (Vers. 7.02 auf einem Synology NAS DS213j) mit einer Fritz!Box 7390, Firmware 6.20.
Ich bekomme beim ausführen der carddav2fb.php immer folgenden Fehler angezeigt (nutze putty):
Code:
[ INFO ] Saving image as XML: Vorname_Nachname.xmlPHP Warning:  ftp_put(): Timeout (120 seconds): closing control connection. in /.../.../carddav2fb/carddav2fb.php on line 181

Warning: ftp_put(): Timeout (120 seconds): closing control connection. in /volume1/web/carddav2fb/carddav2fb.php on line 181

[ ERROR ] While uploading file Vorname_Nachname.jpg an error occurred.

In Zeile 181 der carddav2fb.php steht:
Code:
 if (ftp_put($conn_id, $remote_path."/".$file, $remote_file, FTP_BINARY)) {

Sowohl verschlüsselte FTP-Verbindung als auch unverschlüsselte FTP-Verbindung bleiben erfolglos.

Das Telefonbuch wird geschrieben. Es werden nur nicht die Bilder hochgeladen.

Ein Test mit "Zarafa", welches ja auch CardDAV Dateien erzeugt, hat reibungslos funktioniert.

Kann es evtl. daran liegen, dass ich mein owncloud /data Verzeichnis ausserhalb vom owncloud Verzeichnis habe?

Vielen Dank für einen guten Tip.
 
Zu den Bildern kann ich leider nichts beitragen, aber zu den Faxnummern. Ich hoffe es hilft.
Es war auf jeden Fall sehr hilfreich, auf die richtige Spur zu gelangen, da sowohl das original Skript, wie auch der liebenswerterweise fortgeführte Fork anscheinend keine Faxnummern berücksichtigte.

Dennoch musste ich den Code in meinem Umfeld anpassen, da die FRITZ!Box 6360 Cable mit der Firmware 6.05 und ownCloud 7.0.2 Deinen Code so nicht fressen wollte.

Bei mir sieht es nun wie folgt aus, schlicht nach dem KISS Prinzip:

Code:
						else {
							$phone_number = $t['Value'];
							$typearr_lower = unserialize(strtolower(serialize($t['Type'])));
		                                        if (in_array("work", $typearr_lower)) {
		                                                $type = "work";
		                                        }
							elseif (in_array("cell", $typearr_lower)) {
								$type = "mobile";
							}
							elseif (in_array("home", $typearr_lower)) {
								$type = "home";
								$prio = 1;
							}
							elseif (in_array("fax", $typearr_lower)) {
								$type = "fax_work";
							}
							else {
								continue;
							}
						}

Kurz und bündig, ab Zeile 155 habe ich diesen kleinen Code hinzugefügt (dank eurer tollen Vorlage!):
Code:
							elseif (in_array("fax", $typearr_lower)) {
								$type = "fax_work";
							}

Nochmals herzlichen Dank! Nach über 15 Jahren ist es am PC augenscheinlich endlich möglich zentralisierte Adressbücher übergreifend einzusetzen. Das Manko ging mir bislang so unglaublich auf den Schnürsenkel...

Kann es evtl. daran liegen, dass ich mein owncloud /data Verzeichnis ausserhalb vom owncloud Verzeichnis habe?
Ach, die Bilder sollen eigentlich auch automatisch hochgeladen werden können? Bislang klappte das bei mir so auch nicht - ich musste den Umweg über das manuelle Hochladen in den Ordner fonpix machen.

Die Position Deines Datenverzeichnes ist wie bei mir außerhalb des webroots. Allerdings sollte das keinerlei Einfluss haben, weil die Kontaktbilder nicht in dem Ordner gespeichert werden - sie sind in der Datenbank selbst gespeichert. Das aber nur so als Meinung eines Laien!
 
Zuletzt bearbeitet:
Versuche das Script auf einer Synology DS212+ zum Laufen zu bekommen (DSM 5).
Verwende das angepasste Script von damato (https://github.com/jens-maus/carddav2fb)

Um das Script zum Laufen zu bekommen musste ich das open_basedir anpassen und den Pfad "/usr/local/carddav2fb" ergänzen.
Weiterhin habe ich memcached.so aktiviert (vi /etc/php/conf.d/extensions.ini, dann ein „;“ for memcached.so setzen).

Beim Ausführen der carddav2fb.php bekomme ich jedoch folgende Fehlermeldung:
Code:
Get all entries from CardDAV server(s)... PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 24 bytes) in /usr/local/carddav2fb/lib/vCard-parser/vCard.php on line 606

Hat jemand eine Idee was das Problem sein könnte?
 
Problem selbst gelöst: siehe Post #7.

Vielleicht kann das jemand auf dem Github ändern...
 
Hallo damato,
evtl. kannst Du mir weiterhelfen.
Ich nutze Deine Version zum Abgleich mit meiner owncloud Installation (Vers. 7.02 auf einem Synology NAS DS213j) mit einer Fritz!Box 7390, Firmware 6.20.
Ich bekomme beim ausführen der carddav2fb.php immer folgenden Fehler angezeigt (nutze putty):
Code:
[ INFO ] Saving image as XML: Vorname_Nachname.xmlPHP Warning:  ftp_put(): Timeout (120 seconds): closing control connection. in /.../.../carddav2fb/carddav2fb.php on line 181

Warning: ftp_put(): Timeout (120 seconds): closing control connection. in /volume1/web/carddav2fb/carddav2fb.php on line 181

[ ERROR ] While uploading file Vorname_Nachname.jpg an error occurred.

In Zeile 181 der carddav2fb.php steht:
Code:
 if (ftp_put($conn_id, $remote_path."/".$file, $remote_file, FTP_BINARY)) {

Sowohl verschlüsselte FTP-Verbindung als auch unverschlüsselte FTP-Verbindung bleiben erfolglos.

Das Telefonbuch wird geschrieben. Es werden nur nicht die Bilder hochgeladen.

Ein Test mit "Zarafa", welches ja auch CardDAV Dateien erzeugt, hat reibungslos funktioniert.

Kann es evtl. daran liegen, dass ich mein owncloud /data Verzeichnis ausserhalb vom owncloud Verzeichnis habe?

Vielen Dank für einen guten Tip.


ich heiße zwar nicht damato aber ich hatte das gleiche Problem und habe es gelöst (siehe Script "carddav2fb.php" anbei).
Das Problem ist bei mir, dass es sehr lange dauert um die vCards von Owncloud zu lesen und zu verarbeiten. Im Script wird jedoch die FTP-Verbindung zur FritzBox nur einmal ganz zu Beginn aufgebaut. Ich habe das nun geändert, so dass jedes Mal, wenn ein Bild hochgeladen werden soll eine FTP-Verbdinung aufgebaut wird. Vielleicht kann einer der Profis das noch optimieren und zunächst abfragen ob eine Verbinung besteht und nur wenn nicht dann diese wieder aufbauen...
 

Anhänge

  • carddav2fb.php.zip
    4.7 KB · Aufrufe: 65
Hallo,

erst mal vielen Dank, dass sich noch jemand um dieses Skript kümmert.

Ich versuche das ganze mit dem Apple Adressbuchserver zum laufen zu bekommen. Ich bekomme aber immer die Meldung:

Code:
php carddav2fb.php 
Get all entries from CardDAV server(s)... PHP Fatal error:  Uncaught exception 'Exception' with message 'Woops, something's gone wrong! The CardDAV server returned the http status code 403.' in /home/service/carddav2fb/lib/CardDAV-PHP/carddav.php:285
Stack trace:
#0 /home/service/carddav2fb/carddav2fb.php(86): carddav_backend->get()
#1 /home/service/carddav2fb/carddav2fb.php(48): CardDAV2FB->get_carddav_entries()
#2 {main}
  thrown in /home/service/carddav2fb/lib/CardDAV-PHP/carddav.php on line 285

hier die config.php

Code:
// CONFIG
$config['fritzbox_url'] = 'IPADRESSE';
$config['fritzbox_port'] = 80;
$config['fritzbox_pw'] = 'PASSWORT';

// multiple carddav adressbooks could be specified

// first
$config['carddav'][0] = array(
        'url' => 'https://server.int.domain.tld:8843/addressbooks/users/service/addressbook',
        'user' => 'USER',
        'pw' => 'PASSWORT'
);

Hat jemand eine Idee?

gabs hierzu je eine lösung? ich stehe vor dem gleichen problem :(
 
Bilderupload funktioniert jetzt

...Ich habe das nun geändert, so dass jedes Mal, wenn ein Bild hochgeladen werden soll eine FTP-Verbdinung aufgebaut wird...

@AlwaysOn: Ich habe Deine Datei einmal ausprobiert. Jetzt funktioniert es auch bei mir :)

Es werden jetzt fast alle Bilder hochgeladen.

In diesem Zuge habe ich mir mal ein paar Gedanken gemacht. Klasse wäre es noch, wenn beim Upload vorher abgefragt werden könnte, ob das Bild (also der Dateiname) schon vorhanden ist.

Leider bin ich da der absolute DAU, sonst hätte ich mich daran schon versucht.
 
gabs hierzu je eine lösung? ich stehe vor dem gleichen problem :(

hallo zusammen,
ich antworte mir mal selbst: nach einiger Einarbeitung (bin kein Programmierer) habe ich herausgefunden, das der apple carddav server folgende Anpassung in der lib/CardDAV-PHP/carddav.php Zeile 620 benötigt:

ALT:
curl_setopt($this->curl, CURLOPT_HTTPHEADER, array());

NEU:
curl_setopt($this->curl, CURLOPT_HTTPHEADER, array('Depth: 1'));

Dann klappt es auch endlich :) Da gab es wohl im Carddav Protokoll des Server eine Anpassung, das mit der Methode "PROPFIND" nicht ohne Angabe der Tiefe für die rekursive Suche gesucht werden darf. Der Default Wert ist "inifinite" und darauf Antwortet der Server mit einem 403 Error.

Gruss
 
Hallo zusammen,

bin heute auf diesen Thread gestoßen und möchte meine ownCloud Kontakte gerne in das FB7390 Telefonbuch einspielen.

Eine grundlegende Frage habe ich noch,
wird das FB Telefonbuch vor dem Import geleert oder nur aus ownCloud hinzu importiert? Verhalten bei existierenden Kontakten in FB?

Danke
giovanne
 
Mach doch einfach eine Sicherung des FB-Telefonbuches und starte danach den Import.
So siehst du doch genau, was passiert und kannst notfalls das FB-Telefonbuch zurückspielen.

Joe
 
Hast recht, so kann ich es auch machen/testen.
Ich dachte einer von den Nutzern wüßte das Verhalten so ;)
 
Die Kontakte werden überschrieben. Das ist auch gut so, weil wenn man das Script beispielsweise alle 24 Stunden laufen lässt hätte man nach 5 Tagen sonst jeden Kontakt 5-fach drin.
Ich habe für jeden ownCloud-Account ein eigenes Telefonbuch angelegt und noch ein weiteres mit internen Kurzwahlen (**700 etc), dann kommen die Sachen sich nicht gegenseitig in die Quere.
 
Danke für Deine Antwort.
Überschreiben ist schon klar.
Aber was wenn ich z.B. jetzt vor dem Import bereits Einträge im Telefonbuch der FB habe, die aber nicht im Importumfang enthalten sind.
Bleiben die erhalten? (werde es ausprobieren ;-))

Bei uns wäre es "aktuell" nur genau ein ownCloud Account (Familie) der mit dem Haupttelefonbuch der FB abgeglichen werden sollte, da die Familienmitglieder nicht immer zwischen den Telefonbücher in den DECT Handgeräten wechseln möchten...
 
Wenn ich das richtig sehe ist das eine Limitierung der Fritzbox Firmware. Man kann via XML upload (das macht das Script ja) nur alles löschen und ersetzen.
Anders könnte die Box ja auch umbenannte oder gelöschte Kontakte nicht von solchen unterscheiden, die du direkt in der Box eingetragen hast.

Wir haben dem DECT Telefon im Zimmer vom Sohn sein eigenes Telefonbuch zugewiesen. Und eingehende Anrufe werden eh mit dem erst besten Namen aus egal welchem Telefonbuch markiert (keine Ahnung welcher Eintrag gewinnt, wenn sie verschiedene Namen haben).

Man könnte natürlich auch das Script erweitern, um die Kontakte aus mehreren Accounts zusammenzuführen, bevor das in die Box geladen wird.
 
Zuletzt bearbeitet:
Klasse Script! Hat auf Anhieb funktioniert. Vielen Dank!!!
 
Hallo,

was genau benötigt man denn jetzt alles zum Import von Owncloud in die FB?

Danke
 
das angebotene script und nen php-fähigen rechner. steht doch schon alles da, warum sollte man noch etwas brauchen?
 
Zuletzt bearbeitet:
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.