KDAV bei Kopano auf UCS

kopano
german

#1

Hallo,

hat jemand von euch schon kdav in Verbindung mit Kopano und UCS zum Laufen gebracht und kann mir Tipps geben?

LG

René


#2

Läuft bei mir “out of the box”, es müssen einfach nur die Anweisungen in der Readme befolgt werden.


#3

Hallo,

so wie es aussieht, arbeitet Rainlendar (Dektop Kalender) und Edomi (Smart Home Steuerung) nicht mit der direkten caldav-Schnittstelle von Kopano zusammen.
Mein Versuch, dafür KDAV i.V.m. UCS/Kopano “out of the box” aufzusetzen, scheitert leider:

Was muss bei MAPI_SERVER in der config.php eingesetzt werden? Die reine Serveradresse https://mail.xxx.de (interne Subdomain) führt ja direkt zum UCS-Portal. Wie lautet die “Kopano instance” unter UCS?

Die vorgeschlagene Apache-Konfiguration auf der Website weicht von der config im git-Repo ab, insb. der Pfad “DocumentRoot /usr/share/kdav” verwirrt mich. Auf einer frischen Debian9-Installation mit Apache- und Composer-Paket habe ich:

cd /usr/share
git clone https://github.com/Kopano-dev/kdav.git
cd /usr/share/kdav
composer install

durchgeführt, die Apache config in /etc/sites-available gelegt und ein Symlink in /etc/site-enabled erstellt. Logdir angelegt und schreibbar gemacht. Apache restart.
Ergebnis: Die Website kann nicht geladen werden.

Bzgl. Sync-States: Muss hier vorher noch das sqlite-Paket installiert werden?

Vielen Dank für Deine Tips im voraus!
Frank


#4

Habe jetzt alles noch einmal von vorn begonnen und genau nach Readme installiert.
Beim Aufruf über den Browser bekomme ich jetzt in der apache2/error.log folgenden Fehler:

[Tue Mar 05 21:34:49.065771 2019] [:error] [pid 4056] [client 192.168.178.20:51047] PHP Fatal error:  Uncaught Error: Call to undefined function mapi_make_scode() in /usr/share/kdav/mapi/mapicode.php:28\nStack trace:\n#0 /usr/share/kdav/mapi/mapicode.php(96): make_mapi_e(258)\n#1 /usr/share/kdav/vendor/composer/autoload_real.php(66): require('/usr/share/kdav...')\n#2 /usr/share/kdav/vendor/composer/autoload_real.php(56): composerRequire9210e8d752c175176fe4a03053357b39('df4666c38194aee...', '/usr/share/kdav...')\n#3 /usr/share/kdav/vendor/autoload.php(7): ComposerAutoloaderInit9210e8d752c175176fe4a03053357b39::getLoader()\n#4 /usr/share/kdav/server.php(36): require('/usr/share/kdav...')\n#5 {main}\n  thrown in /usr/share/kdav/mapi/mapicode.php on line 28

./phpunit tests formatiert es etwas schöner, scheint aber dergleiche Fehler zu sein:

frank@vm178-ucs-kdav:/usr/share/kdav$ ./phpunit tests
PHP Fatal error:  Uncaught Error: Call to undefined function mapi_make_scode() in /usr/share/kdav/mapi/mapicode.php:28
Stack trace:
#0 /usr/share/kdav/mapi/mapicode.php(96): make_mapi_e(258)
#1 /usr/share/kdav/vendor/composer/autoload_real.php(66): require('/usr/share/kdav...')
#2 /usr/share/kdav/vendor/composer/autoload_real.php(56): composerRequire9210e8d752c175176fe4a03053357b39('df4666c38194aee...', '/usr/share/kdav...')
#3 /usr/share/kdav/vendor/autoload.php(7): ComposerAutoloaderInit9210e8d752c175176fe4a03053357b39::getLoader()
#4 /usr/share/kdav/vendor/phpunit/phpunit/phpunit(50): require('/usr/share/kdav...')
#5 {main}
  thrown in /usr/share/kdav/mapi/mapicode.php on line 28

Wo könnte das Problem liegen?

BG
Frank


#5

kein php-mapi vorhanden?


#6
root@vm178-ucs-kdav:/home/frank# apt install php-mapi
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
E: Paket php-mapi kann nicht gefunden werden.

Ist das letzte Debian iso - debian-9.8.0-amd64-netinst.iso

Sehe gerade in sid ist es da. Dann morgen ein neuer Versuch…


#7

Php-mapi ist ein Paket welches zu unseren Downloads gehört.

Warum installierst du kdav nicht einfach auf dem Univention System?


#8

Stand ja nirgends :slight_smile: und ich wollte bei UCS nichts durcheinanderbringen.

Mich hat zudem die vhost-config irritiert - auf Port 443 läuft doch das Univention Portal. Das gibt doch Probleme, oder?


#9

Nein, gibt es nicht. Webserver unterstützen seid Jahren eine Technik mit Namen SNI die eben dieses möglich macht.


#10

in welchem der vielen Apache conf verzeichnissen muss ich den die KDAV.conf anlegen damit es
Out of the Box läuft.

UCS ist Version 4.4


#11

Innerhalb von Debian Systemen wird hierfür üblicherweise /etc/apache2/sites-available verwendet. Nachdem die Datei dort erstellt wurde muss diese dann noch mit dem mittels a2ensite aktiviert werden.

Unter https://github.com/zokradonh/kopano-docker baue ich für kdav bereits einen Docker container, vielleicht sollte ich auf dieser Basis mal eine app für ucs zusammenstellen.


#12

Die Docker Container Nummer finde ich sehr interessant.

Leider bekomme ich es auf dem normalen weg nicht an den Start.

Bin halt noch neu in der Linux Welt.

Wie bekomme ich den das Docker Image richtig in UCS an den Start hier verhält sich vieles ja auch nochmal anders.


#13

@fmontebaur If I reply now, will it again be weeks before I hear from you again?

I discarded the idea of an official app at this point in time, but could create a small script similar to https://github.com/fbartels/univention-bitwarden.

The question is: what would you be willing to invest to jumpstart such a script?


#14

sorry mein Problem ist da ich die ganze sache noch Teste. Ich möchte nicht vor solchen
Problemen stehen wenn das System schon laufen soll.
Das geht aber immer nur neben der normalen Arbeit und die geht vor, aber das kennen Sie sicher.

Mein Problem erstes problem konnte ich lösen. sqlite war nicht installiert.

Nun habe ich leider ein neus Problem.

ich kann mich in der Weboberfläche von sabredav über Https anmelden.
hier sehe ich alle in meinem testkonto vorhandenen Adressbücher.

mit den in der Anleitung angegebenen Daten kann ich das Mac OS Adressbuch aber nicht zum arbeiten bewegen.

MAC OS ist 10.14.4

Es wird mir immer angezeigt das der User sich nicht anmelden kann.

das Logfile sagt aber das er angemeldet ist:

08.05.2019 22:40:19 [21437] [DEBUG] main ------------------ Start
08.05.2019 22:40:19 [21437] [DEBUG] main PROPFIND /
08.05.2019 22:40:19 [21437] [DEBUG] main KDAV version master-ad05c96
08.05.2019 22:40:19 [21437] [DEBUG] main SabreDAV version 3.2.2
08.05.2019 22:40:19 [21437] [TRACE]  dav KopanoSyncState->__construct(): Using db sqlite:/var/lib/kopano/kdav/syncstate.db
08.05.2019 22:40:19 [21437] [DEBUG] main KLogger->LogIncoming(): INPUT
PROPFIND / HTTP/1.1
Host: kdav.starlineshow.de
Content-Type: text/xml
Depth: 0
Brief: t
Accept: */*
Connection: keep-alive
Prefer: return=minimal
User-Agent: Mac OS X/10.14.4 (18E226) AddressBookCore/1
Content-Length: 181
Accept-Language: de-de
Accept-Encoding: br, gzip, deflate

<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <A:current-user-principal/>
    <A:principal-URL/>
    <A:resourcetype/>
  </A:prop>
</A:propfind>

08.05.2019 22:40:19 [21437] [DEBUG] main KLogger->LogOutgoing(): OUTPUT:
HTTP/1.1 401 Unauthorized
X-KDAV-Version: master-ad05c96
WWW-Authenticate: Basic realm="Kopano DAV", charset="UTF-8"
Content-Type: application/xml; charset=utf-8

<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
  <s:sabredav-version>3.2.2</s:sabredav-version>
  <s:exception>Sabre\DAV\Exception\NotAuthenticated</s:exception>
  <s:message>No 'Authorization: Basic' header found. Either the client didn't send one, or the server is misconfigured</s:message>
</d:error>

08.05.2019 22:40:19 [21437] [DEBUG] main httpcode='401' memory='969.56 KiB/2.00 MiB' time='0.06s'
08.05.2019 22:40:19 [21437] [DEBUG] main ------------------ End
08.05.2019 22:40:19 [23413] [DEBUG] main ------------------ Start
08.05.2019 22:40:19 [23413] [DEBUG] main PROPFIND /
08.05.2019 22:40:19 [23413] [DEBUG] main KDAV version master-ad05c96
08.05.2019 22:40:19 [23413] [DEBUG] main SabreDAV version 3.2.2
08.05.2019 22:40:19 [23413] [TRACE]  dav KopanoSyncState->__construct(): Using db sqlite:/var/lib/kopano/kdav/syncstate.db
08.05.2019 22:40:19 [23413] [DEBUG] main KLogger->LogIncoming(): INPUT
PROPFIND / HTTP/1.1
Host: kdav.starlineshow.de
Accept: */*
Brief: t
Accept-Language: de-de
Accept-Encoding: br, gzip, deflate
Content-Type: text/xml
Content-Length: 181
Depth: 0
Connection: keep-alive
User-Agent: Mac OS X/10.14.4 (18E226) AddressBookCore/1
Prefer: return=minimal
Authorization: Basic REDACTED

<?xml version="1.0" encoding="UTF-8"?>
<A:propfind xmlns:A="DAV:">
  <A:prop>
    <A:current-user-principal/>
    <A:principal-URL/>
    <A:resourcetype/>
  </A:prop>
</A:propfind>

08.05.2019 22:40:19 [23413] [TRACE]  dav KopanoDavBackend->Logon(): fmontebaur / password
08.05.2019 22:40:19 [23413] [DEBUG]  dav KopanoDavBackend->Logon(): Auth: OK - user fmontebaur - session Resource id #10
08.05.2019 22:40:19 [23413] [DEBUG] main KLogger->LogOutgoing(): OUTPUT:
HTTP/1.1 207 Multi-Status
X-KDAV-Version: master-ad05c96
X-Sabre-Version: 3.2.2
Content-Type: application/xml; charset=utf-8
Vary: Brief,Prefer
DAV: 1, 3, extended-mkcol, access-control, calendarserver-principal-property-search, calendar-auto-schedule, calendar-availability, addressbook, calendar-access, calendar-proxy

<?xml version="1.0"?>
<d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:card="urn:ietf:params:xml:ns:carddav" xmlns:cal="urn:ietf:params:xml:ns:caldav" xmlns:cs="http://calendarserver.org/ns/">
  <d:response>
    <d:href>/</d:href>
    <d:propstat>
      <d:prop>
        <d:current-user-principal>
          <d:href>/principals/fmontebaur/</d:href>
        </d:current-user-principal>
        <d:resourcetype>
          <d:collection/>
        </d:resourcetype>
      </d:prop>
      <d:status>HTTP/1.1 200 OK</d:status>
    </d:propstat>
  </d:response>
</d:multistatus>

08.05.2019 22:40:19 [23413] [DEBUG] main httpcode='207' memory='1.04 MiB/2.00 MiB' time='0.10s'
08.05.2019 22:40:19 [23413] [DEBUG] main ------------------ End
08.05.2019 22:40:19 [23413] [DEBUG] main ------------------ Start
08.05.2019 22:40:19 [23413] [DEBUG] main OPTIONS /principals/fmontebaur/
08.05.2019 22:40:19 [23413] [DEBUG] main KDAV version master-ad05c96
08.05.2019 22:40:19 [23413] [DEBUG] main SabreDAV version 3.2.2
08.05.2019 22:40:19 [23413] [TRACE]  dav KopanoSyncState->__construct(): Using db sqlite:/var/lib/kopano/kdav/syncstate.db
08.05.2019 22:40:19 [23413] [DEBUG] main KLogger->LogIncoming(): INPUT
OPTIONS /principals/fmontebaur/ HTTP/1.1
Host: 
Content-Length: 0
Connection: keep-alive
Accept: */*
User-Agent: Mac OS X/10.14.4 (18E226) AddressBookCore/1
Accept-Language: de-de
Accept-Encoding: br, gzip, deflate
Authorization: Basic REDACTED


08.05.2019 22:40:19 [23413] [TRACE]  dav KopanoDavBackend->Logon(): fmontebaur / password
08.05.2019 22:40:19 [23413] [DEBUG]  dav KopanoDavBackend->Logon(): Auth: OK - user fmontebaur - session Resource id #10
08.05.2019 22:40:19 [23413] [TRACE]  dav KopanoDavBackend->GetStore(): storename fmontebaur
08.05.2019 22:40:19 [23413] [TRACE]  dav KopanoDavBackend->GetUser(): fmontebaur
08.05.2019 22:40:19 [23413] [TRACE]  dav KopanoDavBackend->GetStore(): storename fmontebaur
08.05.2019 22:40:19 [23413] [TRACE]  dav KopanoDavBackend->GetStore(): storename fmontebaur
08.05.2019 22:40:19 [23413] [DEBUG] main KLogger->LogOutgoing(): OUTPUT:
HTTP/1.1 200 OK
X-KDAV-Version: master-ad05c96
X-Sabre-Version: 3.2.2
Allow: OPTIONS, GET, HEAD, DELETE, PROPFIND, PUT, PROPPATCH, COPY, MOVE, REPORT
DAV: 1, 3, extended-mkcol, access-control, calendarserver-principal-property-search, calendar-auto-schedule, calendar-availability, addressbook, calendar-access, calendar-proxy
MS-Author-Via: DAV
Accept-Ranges: bytes
Content-Length: 0


08.05.2019 22:40:19 [23413] [DEBUG] main httpcode='200' memory='961.73 KiB/2.00 MiB' time='0.27s'
08.05.2019 22:40:19 [23413] [DEBUG] main ------------------ End

Der Kalender Sync mit OS X spielt ohne Problem