[Info] Kontakte (inkl. Bild) von ownCloud (CardDAV) in Telefonbuch replizieren

@twipster
hast Du das Problemmittlerweile lösen können?
Ich hab das gleiche Problem mit dem leeren Adressbuch.

Gruss,
Wolle
 
Ich konnte es in der Tat lösen. Man darf keinen Adressbuchnamen verwenden den man schon mal benutzt hat und man darf das Adressbuch nicht manuell anlegen. Nach dem Löschen des Adressbuchs bleibt es scheinbar im System erhalten. Jedenfalls ist die App jetzt bereits in Freetz integriert und es funktioniert.
 
Was meinst Du mit Adressbuch manuell anlegen, in owncloud oder in freetz oder avm?
 
Man muss es nicht händisch anlegen. Man trägt die Daten im Freetz Modul ein, also einen Adressbuchnamen den es vorher nicht gab, z.B "owncloud_kontakte" und lässt es durch das Modul automatisch anlegen. Im Fritz-Webinterface von AVM muss man gar nichts machen, ausser später das neue Adressbuch den Telefonen zuweisen.
Achja! Mir fällt ein, dass es Probleme mit den Kontakt-Bildern gab. Die Kontaktbilder in Owncloud sind größtenteils korrupt weil die nen falschen Dateiheader haben (in der VCF-Datei dann Base64 codiert), das passiert durch OC selbst. Der Bug ist bekannt und wurde bis dato nicht behoben. D.h. du solltest auf Kontaktbilder verzichten. Dann ging es bei mir.

Edit: Also in OC Selbst kann man die Bilder haben, aber im Freetz-Modul sollte man in den Optionen "Include contact images" nicht anhaken. Viel erfolg.

Edit2: Für die Nachwelt (falls ich mich recht erinnere): Einige Bilder in Owncloud sind PNGs, obwohl man JPGEs hochgeladen hat. Das Import-Tool im Freetz kann keine PNGs bearbeiten, dazu braucht man ImageMagic o.ä. Ob es damit dann geht weiß ich nicht, weil damit mein Image zum Flashen zu groß war.
 
Zuletzt bearbeitet:
Hi,
danke für die ausführliche Antwort. Leider klappt es bei mir nicht.
Gruss,
Wolle

Edit: wenn Du sagst, dass die App bereits in Freetz drin ist, wo finde ich die denn? Ich hab gerade ein aktuelles trunk gezogen und finde bei packages kein pbupd_carddav

Edit 2: welche Owncloud Version nimmst Du? Ich hab derzeit OC 7 drauf undfrag mich ob es daran liegt
 
Zuletzt bearbeitet:
Habe gerade einen neuen Trunk gezogen und alles neu aufgesetzt. Jetzt finde ich das Paket auch nicht mehr. hmmm? Kann da jemand helfen?
 
Hallo,

Habe gerade einen neuen Trunk gezogen und alles neu aufgesetzt. Jetzt finde ich das Paket auch nicht mehr. hmmm? Kann da jemand helfen?

also ich habe mir das Paket von http://freetz.org/ticket/1885 heruntergeladen. Nach dem Entpacken hast Du ein Verzeichnis »make«, alles was darin ist, in das »make«-Verzeichnis Deiner Freetz-Quellen kopieren (darauf achten, daß die Ordnerstruktur erhalten bleibt). Dann mußt Du noch in freetz/make/Config.in eine Zeile
Code:
source make/pbupd_carddav/Config.in
einfügen. Beim nächsten
Code:
make menuconfig
sollte das Paket dann erscheinen und auswählbar sein.

@wollet42:
Edit 2: welche Owncloud Version nimmst Du? Ich hab derzeit OC 7 drauf undfrag mich ob es daran liegt

Probier' mal folgendes: Ruf die URL, die Du in den Telefonbucheinstellungen angegeben hast, in einem Browser auf. Du wirst wahrscheinlich eine Reihe von Einträgen wie »cb6a2e4c-a85a-4dc2-87c5-be195eb276f4%40meine.domain.vcf« sehen. Das Skript pbupd_carddav sucht sich aus dieser HTML-Datei die Namen der vcf-Dateien, die es herunterladen und in das Telefonbuch der FB umwandeln muß. Anscheinend hat sich das Namensformat geändert, in älteren OC-Versionen fehlte wohl der Teil ab »%40« (@meine.domain). Deshalb findet das Skript keine vCards und glaubt, das OC-Adreßbuch sei leer und macht dann einfach weiter – deshalb bekommst Du auch keine Fehlermeldung.

Wenn Du einen telnet-/ssh-Zugang zur Box hast, kannst Du ausprobieren, ob das der Fehler ist: Auf der Box einloggen und die Datei /usr/sbin/pbupd_carddav in ein Verzeichnis, in dem Du Schreibrechte hast (z. B. /var/media/ftp/UStorXX) kopieren. Die Datei mit einem Editor (vi, nnano) öffnen und in Zeile 108 unmittelbar vor .vcf (auf den Punkt achten!) einen Punkt und danach ein Sternchen eingeben. Die Zeile sieht danach so aus:
Code:
  | sed -n 's|.*/\([0-9a-zA-Z-][0-9A-Za-z-]*.*.vcf\).*|\1|p' \
Abspeichern und dann die geänderte Datei aufrufen, z. B. mit
Code:
./pbupd_carddav --oneshot
Wichtig ist, beim Aufruf den Pfad anzugeben, damit nicht das Skript in /usr/sbin aufgerufen wird. Jetzt sollte das Skript arbeiten und am Ende sollten Deine Kontakte im FB-Telefonbuch zu finden sein. Mit ».*« sagst Du sed, daß er auch alle beliebigen Zeichen (.) in beliebiger Anzahl (*) finden soll, bis er zu .vcf kommt, damit erfaßt Du auch vcf-Dateien, die den Domain-Namen enthalten.

Das funktioniert aber nur, wenn Du das geänderte Skript aufrufst. Bei einer automatischen Aktualisierung wird natürlich das Skript in /usr/sbin/ genommen und Du hast danach wieder ein leeres Telefonbuch. Du müßtest also die Änderung im Quellcode (siehe oben meine Antwort auf twipsters Frage) vornehmen und dann ein neues Freetz-Image erstellen. Außerdem ist der reguläre Ausdruck ».*« eigentlich zu weit, da ließe sich sicher etwas besseres finden. Ich bin aber kein RegEx-Fachmann und für einen ersten Test sollte es auf jeden Fall reichen.

Viel Erfolg!

Frank
 
@F.Ellebrecht

Hi Frank,

ich hab das mit dem veränderten RegExp getestet, es hat funktioniert!

Super Tipp, danke.

Gruss,
Wolle
 
Hallo zusammen,

hat das schon mal jemand mit mit dem CardDav von Tine 2.0 ans laufen gebracht?
Oder kann mir jemand sagen, wo ich überall Änderungen machen muss?

Vielen Dank


Update am 26.01.2015:
Hallo zusammen,

wer das auch nicht ans laufen bekommt:
http://www.ip-phone-forum.de/showthread.php?t=267477
Das funktioniert SUPER!

Gruß
 
Zuletzt bearbeitet:
Hallo,

ich habe das Tool auch einmal mit eiingebunden. Ein Telefonbuch wird auch angelegt, und lt. Syslog wird anscheinend auch etwas gelesen - jedoch ist in dem angelegten Telefonbuch nichts zu sehen.
Die weiter oben beschriebene Korrektur wg. OC7 habe ich bereits vor dem Freetz-Make eingebaut, da ich mit Benutzern arbeite und somit mittels Telnet oder SSH nicht so einfach auf die Box komme ...

Hier einmal ein Auszug aus der Syslog:
Code:
Nov  5 21:58:44 fritz user.notice pbupd_carddav: Fork continuous mode
Nov  5 21:58:44 fritz user.notice pbupd_carddav: Continuous mode
Nov  5 21:58:44 fritz user.info pbupd_carddav: Update phone books periodically every '86400' seconds
Nov  5 21:58:44 fritz user.debug pbupd_carddav: Download directory '/tmp' exists
Nov  5 21:58:44 fritz user.debug pbupd_carddav: Successfully parsed configuration file '/tmp/flash/pbupd_carddav/pbupd_carddav.db'
Nov  5 21:58:44 fritz user.err telefon[1665]: set initial telefon time from linux time to 21:58:44 5.11 2014!
Nov  5 21:58:44 fritz user.notice pbupd_carddav: Processing phone book 'Familien-Telefonbuch' with owner '245'
Nov  5 21:58:44 fritz user.debug pbupd_carddav: Seems there is only one unique id. Splitting into multiple phone books will not be possible.
Nov  5 21:58:44 fritz user.info pbupd_carddav: CardDAV contacts for phone book 'Familien-Telefonbuch' have changed.
Nov  5 21:58:44 fritz user.debug pbupd_carddav: Printing contacts in VCF format successfully
Nov  5 21:58:44 fritz user.debug pbupd_carddav: Converting contacts from VCF to XML successfully
Nov  5 21:58:44 fritz user.debug pbupd_carddav: Configuration parsed successfully
Nov  5 21:58:44 fritz user.debug pbupd_carddav: XML phone book file '/tmp/pbupd_carddav-phonebooks.xml' constructed successfully
Nov  5 21:58:44 fritz user.debug pbupd_carddav: Import file '/tmp/pbupd_carddav-phonebooks.xml' includes phone books
Nov  5 21:58:44 fritz user.info pbupd_carddav: Import of CardDAV phone books successful
Nov  5 21:58:44 fritz user.notice pbupd_carddav: No issues occured

Im OC-Adressbuch sind definitiv Kontakte enthalten, da ich bereits einige Zeit die Kontakte mit den Familien-Smartphones per cardDav synchronisiere. Als Krönung fehlt jetzt nur noch das Telefonbuch der FB ;-)

Gruß
 
@caldir65
das ist genau das Verhalten, wenn Du eine falsche Regexp verwendest.
Check mal, ob Du auf der Box in der /usr/sbin/pbupd_carddav wirklich die Änderung eingefügt hast.
Gruss,
Wolle
 
Hallo Wolle,

ich habe es mir noch al angeschauut, less /usr/sbin/pbupd_carddav gab folgendes aus:
Code:
    $PB_URL             \
  | sed -n 's|.*/\([0-9a-zA-Z-][0-9A-Za-z-]*.*.vcf\).*|\1|p' \
  | sort -u
}

und wenn ich das jetzt richtig sehe, entspricht das doch Deiner Modifikation ...

Ich habe auch mal Deinenn o.g. Test durchgeführt:
Code:
root@fritz:/usr/sbin# ./pbupd_carddav --oneshot
pbupd_carddav: One shot mode
pbupd_carddav: Download directory '/tmp' exists
pbupd_carddav: Successfully parsed configuration file '/tmp/flash/pbupd_carddav/pbupd_carddav.db'
curl: can't load library 'libssl.so.0.9.8'
pbupd_carddav: Processing phone book 'Familien-Telefonbuch' with owner '245'
pbupd_carddav: Seems there is only one unique id. Splitting into multiple phone books will not be possible.
pbupd_carddav: CardDAV contacts for phone book 'Familien-Telefonbuch' have not changed. Skip processing.
pbupd_carddav: Configuration parsed successfully
pbupd_carddav: XML phone book file '/tmp/pbupd_carddav-phonebooks.xml' constructed successfully
pbupd_carddav: Import file '/tmp/pbupd_carddav-phonebooks.xml' includes no phone books
pbupd_carddav: No phone book has changed. Import not needed.
pbupd_carddav: No issues occured

Ich vermute mal, das Problem liegt darin, daß ich in meiner OC-Installation ausschließlich via HTTPS / SSL erreichbar ist...

Gruß
 
Zuletzt bearbeitet:
Hi caldir65,
sieht soweit ich das beurteilen kann ok aus (bin aber auch kein Regexp Experte).

Was https/ssl angeht kann das nicht die Ursache sein, da ich das auch so eingerichtet habe.

Sind denn in /tmp/pbupd_carddav-phonebooks.xml auch keine Kontakte drin?
Lager das mal auf USB stick aus (kannst Du im Freetz Webinterface einstellen)

Du musst noch in der Fritzbox für jedes Handgerät das neue Telefonbuch einstellen, kann das der Grund sein?

Gruss,
Wolle
 
Hallo Wolle,

habe jetzt einmal ein neues Temp-Dir angelegt - dabei gab es schon das erste Problem, daß ich "/var/media/ftp/USB2-0-MobileDisk-01/freetz" anlegen wollte, aber mehr als"/var/media/ftp/USB2-0-MobileDisk-01/free" ging nicht in das Feld, also habe ich "/var/media/ftp/USB2-0-MobileDisk-01" genommen. Es werden auch zwei Dateien angelegt:
Code:
ls -l
-rwxrwxrwx    1 root     root            33 Nov  8 14:19 pbupd_carddav-phonebook-244.sum
-rwxrwxrwx    1 root     root            66 Nov  8 14:19 pbupd_carddav-phonebooks.xml

Aber wie zu sehen ist, sind die zu klein, als daß dort Inhalte vorhanden sein könnten.
Ich habe noch einmal einen -Oneshot durchgeführt:
Code:
root@fritz:/var/media/ftp/USB2-0-MobileDisk-01$ /usr/sbin/pbupd_carddav --oneshot
pbupd_carddav: One shot mode
pbupd_carddav: Download directory '/var/media/ftp/USB2-0-MobileDisk-01' exists
pbupd_carddav: Successfully parsed configuration file '/tmp/flash/pbupd_carddav/pbupd_carddav.db'
[B]Warning: error trying read config from the '/tmp/flash/pbupd_carddav/curlrc-4'[/B]
Warning: file
pbupd_carddav: Processing phone book 'Familien-Telefonbuch' with owner '244'
pbupd_carddav: Seems there is only one unique id. Splitting into multiple phone books will not be possible.
pbupd_carddav: CardDAV contacts for phone book 'Familien-Telefonbuch' have not changed. Skip processing.
pbupd_carddav: Configuration parsed successfully
pbupd_carddav: XML phone book file '/var/media/ftp/USB2-0-MobileDisk-01/pbupd_carddav-phonebooks.xml' constructed successfully
pbupd_carddav: Import file '/var/media/ftp/USB2-0-MobileDisk-01/pbupd_carddav-phonebooks.xml' includes no phone books
pbupd_carddav: No phone book has changed. Import not needed.
pbupd_carddav: No issues occured
root@fritz:/var/media/ftp/USB2-0-MobileDisk-01$
Dabei ist mir die markierte Zeile aufgefallen - könnte dort das Problem liegen?

Gruß

[edit] Es läuft! es lag wirklich an dieser Zeile - aber anders als ich vermutete. Ich habe die Konfiguration (beide Seiten) einmal neu schreiben lassen, es wurde eine Datei curlrc-4 neu angelegt, und schon habe ich nach dem -oneshot ein volles Telefonbuch! Jetzt fehlt nur noch eine Bildkonvertierung ;-) und andere Sortierung, z.B. NN, VN
 
Zuletzt bearbeitet:
pbupd_carddav startet nicht

hallo Experten,

habe v mit der hier beschriebenen Änderung in Zeile 108 im Quellcode ein image zu bauen.

| sed -n 's|.*/\([0-9a-zA-Z-][0-9A-Za-z-]*.*.vcf\).*|\1|p' \

Mit diesem Eintrag startet der pbupd_carddav Dienst nicht mehr. Das syslog gibt keinen mir ersichtlichen Hinweis.

Ein image ohne diesen Eintrag bringt mir leider auch nur ein leeres Telefonbuch.

7390 OS6.20
freetz-devel
CardDav 0.8

Was könnte ich hier falsch gemacht haben?
 
Guten Abend und ein frohes neues :)

beim syncen der Telefonbücher, gibt meine 7390 "Die Aktualisierung ist gescheitert. Bitte überprüfen Sie die Benutzerdaten.(32000)" aus.
Das eingetragene TB wird angezeigt. Der Link und die Userdaten sind richtig.

10|user1|**********|user1|https://192.168.0.1:1011/remote.php/carddav/addressbooks/user1/kontakte

Hat jemand einen Tip ?

Gruß

p.s. es liegt nicht an Sonderzeichen.
 
Zuletzt bearbeitet:
Vorschlag für neue Version pbupd_carddav 0.81

Hi,

ich hab mal eine neue Version 0.81 erzeugt und ein neues Packet gebaut mit 2 Änderungen in der Datei pbupd_carddav/files/root/usr/sbin/pbupd_carddav:

1. die regexp ist angepasst fuer owncloud 7 (siehe Beitrag #67 von F.Ellebrecht)

2. die Funktion pb_has_pbs hab ich so angepasst, daß nicht auf das Vorhandensein eines (evtl leeren) Telefonbuches sondern auf das Vorhandensein von Einträgen im Telefonbuch geprüft wird.

Wofür braucht man das?

Sollte der Owncloud Server aus irgendeinem Grund nicht erreichbar sein legt das original Skript ein leeres Telefonbuch an und importiert das in die Fritzbox.
Resultat alle Telefonbuch Einträge sind weg. (gab ein paar mal schon Ärger hier zu Hause deswegen ;)

Mit dem geänderten Script wird das Telefonbuch einfach nicht importiert, wenn es leer ist. D.h. die alten Einträge sind weiterhin vorhanden bis der Owncloud Server wieder erreichbar ist.

Das ganze klappt bei mir seit einigen Wochen einwandfrei.

Ich fänd es klasse, wenn das in dem Freetzticket http://freetz.org/ticket/1885 aufgenommen wird, leider weiss ich nicht wen ich dazu ansprechen muss.

Rückmeldungen würden mich sehr freuen.

Gruß,
Wolle
 

Anhänge

  • freetz-pbupd_carddav-0.81.tgz
    9.6 KB · Aufrufe: 10
Zuletzt bearbeitet:
Man darf keinen Adressbuchnamen verwenden den man schon mal benutzt hat und man darf das Adressbuch nicht manuell anlegen. Nach dem Löschen des Adressbuchs bleibt es scheinbar im System erhalten.

kann man die "Geistertelefonbücher" auch löschen auf der Box ?

Hi,
ich hab mal eine neue Version 0.81 erzeugt und ein neues Packet gebaut mit 2 Änderungen in der Datei pbupd_carddav/files/root/usr/sbin/pbupd_carddav:
Rückmeldungen würden mich sehr freuen.
Gruß,
Wolle

Danke schön, für die neue Version.
Nach der installation erscheint kein TB von OC7 mehr in meiner 7390. Auch neue Namen für diese Telefonbücher bringen nichts.

Gruß
 
Zuletzt bearbeitet:
Hi geiercasi

ist der Dienst denn gestartet? siehe freetz web interface

Was sagt denn syslog?

Denk dran es dauert bei vielen Kontakten recht lange bis die Kontakte eingelesen sind.

Sind denn in /tmp/pbupd_carddav-phonebooks.xml auch keine Kontakte drin?
Lager das mal auf USB stick aus (kannst Du im Freetz Webinterface einstellen)

Du musst noch in der Fritzbox für jedes Handgerät das neue Telefonbuch einstellen, kann das der Grund sein?

Gruß,
Wolle
 
Zuletzt bearbeitet:
Hallo Wolle,

ist der Dienst denn gestartet? siehe freetz web interface
Ja, der Dienst ist gestartet.

Was sagt denn syslog?
Code:
Jan  1 01:00:51 fritz user.notice FREETZMOD: Starting CardDAV-Phonebook ...done.
Jan  1 01:00:52 fritz kern.warn kernel: [0]system-load 100 % loadavg 2.78 0.77 0.26 - 105 tasks:51 % curr:playerd_tables(35 %) max:playerd_tables(35 %, pid:1279), readytorun: 2, pgfault 7168/s (max 2 avg 1.0)
Loglevel 4

Denk dran es dauert bei vielen Kontakten recht lange bis die Kontakte eingelesen sind.
Sind denn in /tmp/pbupd_carddav-phonebooks.xml auch keine Kontakte drin?
die Datei pbupd_carddav-phonebooks.xml ist nicht vorhanden.

Du musst noch in der Fritzbox für jedes Handgerät das neue Telefonbuch einstellen, kann das der Grund sein?
Es erscheint der Menüpunkt "Telefonbuch wechseln" nicht. Vermutlich weil pbupd_carddav-phonebooks.xml nicht vorhanden ist.

Auch der Neubau von Freetz mit vorherigem make distclean usw. bringt nichts.
Mit Deiner Version .80, also der vorherigen, waren Telefonbücher zu sehen. Da gabs noch das Problem "Die Aktualisierung ist gescheitert. Bitte überprüfen Sie die Benutzerdaten.(32000)"
Aktuelle Firm freetz-devel-12884 FRITZ!OS 06.20.

Danke für deine Mühe

Gruß aus Starnberg
Carsten
 
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.