Skip to content
This repository has been archived by the owner on Dec 27, 2023. It is now read-only.

CalDav Problem mit Thunderbird (2018089) #6986

Closed
koelschejung74 opened this issue Jan 17, 2019 · 19 comments
Closed

CalDav Problem mit Thunderbird (2018089) #6986

koelschejung74 opened this issue Jan 17, 2019 · 19 comments

Comments

@koelschejung74
Copy link

Hallo,

bei mir werden via CalDav (Thunderbird) nicht alle Kontakte synchronisiert.

Im Anhang einen Auszug der Logdatei mit Level 7. Es werden nur die Kontakte ohne Bilder synchronisiert, die mit den Bildern nicht.

Könnt Ihr etwas mit dem Log anfangen?

TineFehler.txt

Ich habe so was ähnliches schon gemeldet, in diesem Ticket wird aber ActiveSync und CalDav vermischt, daher habe ich dieses neue Ticket eröffnet.

VG
Uli

@koelschejung74
Copy link
Author

Noch eine Zusatzinfo.

Ich habe im Thunderbird einen Kontakt mit Bild eingerichtet, dieser wurde auch mit Bild hochgeladen.

@pschuele
Copy link
Member

hm, leider wird anhand des logs noch nicht klar, warum bilder nicht klappen.
der TB hat doch vermutlich auch ein log von dem sync. kannst du das ausfindig machen? vielleicht steht dann dort drin, warum er die kontakte mit bildern nicht mag.

@koelschejung74
Copy link
Author

Laut Google hat TB kein richtiges Log, aber in der Fehlerkonsole bekomme ich folgende Meldung:

Warnung: 'nsIOService::NewChannelFromURI()' sollte nicht mehr verwendet werden, bitte verwenden Sie 'nsIOService::NewChannelFromURI2()' sogoWebDAV.js:175:22
Warnung: 'nsIOService::NewChannelFromURI()' sollte nicht mehr verwendet werden, bitte verwenden Sie 'nsIOService::NewChannelFromURI2()' sogoWebDAV.js:175:22
Warnung: 'nsIOService::NewChannelFromURI()' sollte nicht mehr verwendet werden, bitte verwenden Sie 'nsIOService::NewChannelFromURI2()'

Was komisch ist, die Benachrichtigung beim ersten Sync sagt, 162 Kontakte herunter geladen, aber wenn ich mir das Adressbuch anschaue, sehe ich 138 Kontakt und auf den ersten Blick, sind Kontakte nicht vorhanden, die auch Bild haben.

@koelschejung74
Copy link
Author

Ich glaube ich bin einen Schritt weiter gekommen. Es liegt wohl am TB Plugin/Addon SogoConnector.

Ich habe nun das Addon Cardbook eingerichtet und auch mal bei KDE - Contacts eingerichtet. Hier werden alle Kontakte Synchronisiert, inkl. der Bilder.

@koelschejung74
Copy link
Author

Aber leider kann ich über dieses Addon kein Kontakt bearbeiten. Im Log finde ich folgendes:

[[0mf6db0 ^[[1m^[[32mulrich^[[0m - ^[[1m^[[36m2019-01-18T19:22:52+01:00 NOTICE (5): Tinebase_Core::errorHandler::698 #0 [internal function]: Tinebase_Core::errorHandler(1024, 'Failed saving m...', '/srv/www/skippe...', 839, Array)
#1 /srv/www/skippersnet/2018089/vendor/zendframework/zendframework1/library/Zend/Db/Table/Abstract.php(839): trigger_error('Failed saving m...', 1024)
#2 /srv/www/skippersnet/2018089/vendor/zendframework/zendframework1/library/Zend/Db/Table/Abstract.php(858): Zend_Db_Table_Abstract->_setupMetadata()
#3 /srv/www/skippersnet/2018089/vendor/zendframework/zendframework1/library/Zend/Db/Table/Abstract.php(903): Zend_Db_Table_Abstract->_getCols()
#4 /srv/www/skippersnet/2018089/vendor/zendframework/zendframework1/library/Zend/Db/Table/Abstract.php(988): Zend_Db_Table_Abstract->_setupPrimaryKey()
#5 /srv/www/skippersnet/2018089/vendor/zendframework/zendframework1/library/Zend/Db/Table/Select.php(100): Zend_Db_Table_Abstract->info()
#6 /srv/www/skippersnet/2018089/vendor/zendframework/zendframework1/library/Zend/Db/Table/Select.php(78): Zend_Db_Table_Select->setTable(Object(Tinebase_Db_Table))
#7 /srv/www/skippersnet/2018089/vendor/zendframework/zendframework1/library/Zend/Db/Table/Abstract.php(1024): Zend_Db_Table_Select->__construct(Object(Tinebase_Db_Table))
#8 /srv/www/skippersnet/2018089/vendor/zendframework/zendframework1/library/Zend/Db/Table/Abstract.php(1379): Zend_Db_Table_Abstract->select()
#9 /srv/www/skippersnet/2018089/Tinebase/Db/Table.php(52): Zend_Db_Table_Abstract->fetchAll(Array, NULL, NULL, NULL)
#10 /srv/www/skippersnet/2018089/Tinebase/Relation/Backend/Sql.php(240): Tinebase_Db_Table->fetchAll(Array)
#11 /srv/www/skippersnet/2018089/Tinebase/Relations.php(450): Tinebase_Relation_Backend_Sql->getAllRelations('Addressbook_Mod...', 'Sql', Array, NULL, Array, false, NULL)
#12 /srv/www/skippersnet/2018089/Tinebase/Controller/Record/Abstract.php(549): Tinebase_Relations->getRelations('Addressbook_Mod...', 'Sql', 'e996ed9fcdecaba...')
#13 /srv/www/skippersnet/2018089/Tinebase/Controller/Record/Abstract.php(501): Tinebase_Controller_Record_Abstract->_getRelatedData(Object(Addressbook_Model_Contact))
#14 /srv/www/skippersnet/2018089/Addressbook/Controller/Contact.php(107): Tinebase_Controller_Record_Abstract->get('e996ed9fcdecaba...', NULL, true, false)
#15 /srv/www/skippersnet/2018089/Tinebase/WebDav/Collection/AbstractContainerTree.php(1093): Addressbook_Controller_Contact->get('e996ed9fcdecaba...')
#16 /srv/www/skippersnet/2018089/Tinebase/WebDav/Collection/AbstractContainerTree.php(233): Tinebase_WebDav_Collection_AbstractContainerTree->_getUser('e996ed9fcdecaba...')
#17 /srv/www/skippersnet/2018089/Tinebase/WebDav/Collection/AbstractContainerTree.php(197): Tinebase_WebDav_Collection_AbstractContainerTree->_getToplevelTree('e996ed9fcdecaba...')
#18 /srv/www/skippersnet/2018089/Addressbook/Frontend/WebDAV.php(40): Tinebase_WebDav_Collection_AbstractContainerTree->getChild('e996ed9fcdecaba...')
#19 /srv/www/skippersnet/2018089/vendor/sabre/dav/lib/Sabre/DAV/ObjectTree.php(72): Addressbook_Frontend_WebDAV->getChild('e996ed9fcdecaba...')
#20 /srv/www/skippersnet/2018089/vendor/sabre/dav/lib/Sabre/DAV/ObjectTree.php(67): Sabre\DAV\ObjectTree->getNodeForPath('addressbooks/e9...')
#21 /srv/www/skippersnet/2018089/vendor/sabre/dav/lib/Sabre/DAV/ObjectTree.php(96): Sabre\DAV\ObjectTree->getNodeForPath('addressbooks/e9...')
#22 /srv/www/skippersnet/2018089/vendor/sabre/dav/lib/Sabre/DAVACL/Plugin.php(701): Sabre\DAV\ObjectTree->nodeExists('addressbooks/e9...')
#23 [internal function]: Sabre\DAVACL\Plugin->beforeMethod('PUT', 'addressbooks/e9...')
#24 /srv/www/skippersnet/2018089/vendor/sabre/dav/lib/Sabre/DAV/Server.php(433): call_user_func_array(Array, Array)
#25 /srv/www/skippersnet/2018089/vendor/sabre/dav/lib/Sabre/DAV/Server.php(455): Sabre\DAV\Server->broadcastEvent('beforeMethod', Array)
#26 /srv/www/skippersnet/2018089/vendor/sabre/dav/lib/Sabre/DAV/Server.php(214): Sabre\DAV\Server->invokeMethod('PUT', 'addressbooks/e9...')
#27 /srv/www/skippersnet/2018089/Tinebase/Server/WebDAV.php(279): Sabre\DAV\Server->exec()
#28 /srv/www/skippersnet/2018089/Tinebase/Core.php(261): Tinebase_Server_WebDAV->handle(Object(Tinebase_Http_Request))
#29 /srv/www/skippersnet/2018089/index.php(24): Tinebase_Core::dispatchRequest()
#30 {main}
^[[0mf6db0 ^[[1m^[[32mulrich^[[0m - ^[[1m^[[33m2019-01-18T19:22:52+01:00 WARN (4): Addressbook_Frontend_WebDAV_Contact::put::261 update by generic client not allowed. See Addressbook_Convert_Contact_VCard_Factory for supported clients.

Welche Clients werden denn supported?

@koelschejung74
Copy link
Author

Guten Morgen,

mit dem Evolution scheint auch alles zu funktionieren. Es besteht also ein Problem mit dem Thunderbird und dem Sogo-Connector. Ich habe nach "Addressbook_Convert_Contact_VCard_Factory" gesucht und die Liste gefunden, da wird sogo aufgelistet.

Wenn ich hier noch was ausprobieren kann, gerne. Solange der TB nicht funktioniert werde ich Evolution nehmen, muss ich mich nur umgewöhnen.

Viele Grüße
Uli

@pschuele pschuele self-assigned this Jan 21, 2019
@pschuele
Copy link
Member

du kannst ja mal probieren, den "Cardbook" connector auch in die factory einzutragen. vielleicht funktioniert der ja mit dem generischen converter. ansonsten kläre ich nochmal, welchen connector tine20 am liebsten im TB unterstützt.

@koelschejung74
Copy link
Author

Wie müsste die Zeile denn heißen?

const CLIENT_GENERIC = 'Cardbook';

habe die Zeile hinzugefügt, dann funktioniert die Kommunikation gar nicht.

Wenn es keine Umständen macht, würde mich schon interessieren, welchen Connector Ihr verwendet.

Optisch und funktionell ich der Cardbook schon gut, hier wird ein weiterer Reiter (wie der Kalender) hinzugefügt, nicht wie beim SogoConnector ein neues Fenster.

@pschuele
Copy link
Member

hm, ich weiss leider nicht, wie der user agent von CardBook aussieht. wenn ich die zeit finde, schaue ich mir den mal an. bisher haben wir den sogo connector empfohlen.

@koelschejung74
Copy link
Author

Nur leider mit TB Vers. 60 und dem sogo Connector funktioniert es ja leider nicht mehr

@mgoppold
Copy link

habe gerade mal CardBook installiert und es wurden alle Kontakte, incl. derer mit Bild, importiert.

TB: 60.3.0
Tine20: 2018.08.9

keine Änderungen am Tine20 Code.

@koelschejung74
Copy link
Author

Die Sync Tine -> TB funktioniert ja, nur der Sync TB (CardBook) -> Tine nicht.
Alle Änderungen, die ich via ActiveSync oder via Webbrowser in den Kontakten mache, werde mir im TB angezeigt.

Ändere ich aber Kontakte im TB, werden diese nicht nach Tine synchronisiert. Hier zeigt CardBook einen Fehler an. Den Logeintrag habe ich ja schon gesendet.

@mgoppold Funktioniert der Sync TB -> Tine bei Dir?

@pschuele
Copy link
Member

ja, der schreibzugriff wird innerhalb von tine verhindert, da CardBook eben noch kein "bekannter" client ist. siehe https://github.com/tine20/tine20/blob/master/tine20/Addressbook/Convert/Contact/VCard/Factory.php

@topaDev
Copy link

topaDev commented Jan 26, 2019

Vom SogoConnector (und CalDav und CardDav im Allgemeinen) würde ich eh abraten.
TbSync rüstet ActiveSync im Thunderbird nach und funktioniert trotz der "niedrigen" Versionsnr. schon echt gut.

@mgoppold
Copy link

Die Sync Tine -> TB funktioniert ja, nur der Sync TB (CardBook) -> Tine nicht.
Alle Änderungen, die ich via ActiveSync oder via Webbrowser in den Kontakten mache, werde mir im TB angezeigt.

Ändere ich aber Kontakte im TB, werden diese nicht nach Tine synchronisiert. Hier zeigt CardBook einen Fehler an. Den Logeintrag habe ich ja schon gesendet.

@mgoppold Funktioniert der Sync TB -> Tine bei Dir?

Nein, kann ja nicht wie @pschuele schreibt.

Die Meldung im Log:

7def0 USER - 2019-01-26T18:17:46+00:00 WARN (4): Addressbook_Frontend_WebDAV_Contact::put::261 update by generic client not allowed. See Addressbook_Convert_Contact_VCard_Factory for supported clients.

So meldet sich der CardBook

7def0 USER - 2019-01-26T18:17:46+00:00 DEBUG (7): Calendar_Convert_Event_VCalendar_Factory::parseUserAgent::162 Thunderbird CardBook/33.8 Lightning/6.2.3 ->  backend: thunderbird version: 6.2.3⏎

Was genau ist als CLIENT_CARDBOOK einzutragen?

Ich habe es mit 'CardBook' und 'Thunderbird CardBook' und 'Thunderbird CardBook/33.8 Lightning/6.2.3' versucht.

--- Addressbook/Convert/Contact/VCard/Factory.php.orig	2019-01-26 19:24:26.296637957 +0100
+++ Addressbook/Convert/Contact/VCard/Factory.php	2019-01-26 19:31:52.793219126 +0100
@@ -31,6 +31,7 @@
     const CLIENT_DAVDROID       = 'davdroid';
     const CLIENT_CARDDAVSYNC    = 'org.dmfs.carddav.sync';
     const CLIENT_CALDAVSYNCHRONIZER = 'caldavsynchronizer';
+    const CLIENT_CARDBOOK       = 'Thunderbird CardBook/33.8 Lightning/6.2.3';
     
     /**
      * cache parsed user-agent strings
@@ -110,6 +111,9 @@
 
             case Addressbook_Convert_Contact_VCard_Factory::CLIENT_EVOLUTION:
                 return new Addressbook_Convert_Contact_VCard_Evolution($_version);
+
+            case Addressbook_Convert_Contact_VCard_Factory::CLIENT_CARDBOOK:
+                return new Addressbook_Convert_Contact_VCard_CardBook($_version);
 	}
     }
     
@@ -184,6 +188,11 @@
             $backend = Calendar_Convert_Event_VCalendar_Factory::CLIENT_CALDAVSYNCHRONIZER;
             $version = $matches['version'];
 
+        // CardBook
+        } elseif (preg_match(Addressbook_Convert_Contact_VCard_Cardbook::HEADER_MATCH, $_userAgent, $matches)) {
+            $backend = Calendar_Convert_Event_VCalendar_Factory::CLIENT_CARDBOOK;
+            $version = $matches['version'];
+
         // generic client
         } else {
             $backend = Addressbook_Convert_Contact_VCard_Factory::CLIENT_GENERIC;

@mgoppold
Copy link

Es fehlt noch die Klasse: Addressbook/Convert/Contact/VCard/CardBook.php welche ich versuchsweise von Sogo.php kopiert und wie folgt angepasst habe:

const HEADER_MATCH = '/CardBook\/(?P<version>.*)/';

und in der Factory.php

const CLIENT_CARDBOOK       = 'CardBook';

Hier das Log wenn ich im TB Reiter Cardbook auf Sync klicke:

CardBook.log

@pschuele
Copy link
Member

TbSync rüstet ActiveSync im Thunderbird nach

das klingt gut. das werden wir uns auch mal ansehen. siehe auch https://github.com/tine20/tine20/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+tbsync

@pschuele
Copy link
Member

wir haben den CardBook client jetzt ergänzt. der change liegt gerade noch bei uns in der QA.

@pschuele pschuele added this to To do in Tine 2.0 Development via automation Jan 30, 2019
@pschuele pschuele moved this from To do to To be tested / reviewed in Tine 2.0 Development Jan 30, 2019
@koelschejung74
Copy link
Author

Da freue ich mich drauf, finde CardBook eine schöne Integration im TB, keine neues Fenster für Adressbuch, sondern ein extra Tab, neben dem Kalender, aber auch die Tags werden übernommen.

Tine 2.0 Development automation moved this from To be tested / reviewed to Done Feb 6, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
Development

No branches or pull requests

4 participants