librelist archives

« back to archive

radicale carddav test - Android

radicale carddav test - Android

From:
Michael Domann
Date:
2012-02-10 @ 19:40
hi,

today i have tested the actually git source for carddav support.
i have had tested also the old carddav branch, without success. so i 
thought, give it a new try.

the first question is, must i create a file for carddav like for the old 
cardav branch? Or should the  file be created?

OPTIONS request at /contacts/micha/ received
Request headers:
{'CONTENT_LENGTH': '0',
  'CONTENT_TYPE': 'text/plain',
  'GATEWAY_INTERFACE': 'CGI/1.1',
  'HTTP_CONNECTION': 'Keep-Alive',
  'HTTP_HOST': 'server:5232',
  'HTTP_USER_AGENT': 'CardDAV-Sync (Android) (like iOS/5.0.1 (9A405) 
dataaccessd/1.0) gzip',
  'PATH_INFO': '/contacts/micha/',
  'QUERY_STRING': '',
  'REMOTE_ADDR': '94.222.38.142',
  'REMOTE_HOST': 'dslb-094-222-038-142.pools.arcor-ip.net',
  'REQUEST_METHOD': 'OPTIONS',
  'SCRIPT_NAME': '',
  'SERVER_NAME': 'sysiphus',
  'SERVER_PORT': '5232',
  'SERVER_PROTOCOL': 'HTTP/1.1',
  'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.2+',
  'wsgi.errors': <open file '/dev/null', mode 'w' at 0x7f11d76f0150>,
  'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x7f11d7ea16d0>,
  'wsgi.input': <socket._fileobject object at 0x7f11d7676bd0>,
  'wsgi.multiprocess': False,
  'wsgi.multithread': True,
  'wsgi.run_once': False,
  'wsgi.url_scheme': 'http',
  'wsgi.version': (1, 0)}
Sanitized path: /contacts/micha/

the app try to connect, seems fine i think.


The android app carddav sync try to create one, but without  success.

PROPFIND request at /.well-known/carddav/ received
Request headers:
{'CONTENT_LENGTH': '130',
  'CONTENT_TYPE': 'application/xml; charset="utf-8"',
  'GATEWAY_INTERFACE': 'CGI/1.1',
  'HTTP_ACCEPT_ENCODING': 'gzip',
  'HTTP_CONNECTION': 'Keep-Alive',
  'HTTP_DEPTH': '0',
  'HTTP_HOST': 'sysiphus-btz.dyndns.org:5232',
  'HTTP_USER_AGENT': 'CardDAV-Sync (Android) (like iOS/5.0.1 (9A405) 
dataaccessd/1.0) gzip',
  'PATH_INFO': '/.well-known/carddav/',
  'QUERY_STRING': '',
  'REMOTE_ADDR': '94.222.38.142',
  'REMOTE_HOST': 'dslb-094-222-038-142.pools.arcor-ip.net',
  'REQUEST_METHOD': 'PROPFIND',
  'SCRIPT_NAME': '',
  'SERVER_NAME': 'sysiphus',
  'SERVER_PORT': '5232',
  'SERVER_PROTOCOL': 'HTTP/1.1',
  'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.2+',
  'wsgi.errors': <open file '/dev/null', mode 'w' at 0x7f11d76f0150>,
  'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x7f11d7ea16d0>,
  'wsgi.input': <socket._fileobject object at 0x7f11d7676bd0>,
  'wsgi.multiprocess': False,
  'wsgi.multithread': True,
  'wsgi.run_once': False,
  'wsgi.url_scheme': 'http',
  'wsgi.version': (1, 0)}
Sanitized path: /.well-known/carddav/
Request content:
<?xml version="1.0" encoding="utf-8" ?>
<D:propfind xmlns:D="DAV:">
<D:prop>
<D:current-user-principal />
</D:prop>
</D:propfind>

Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:">
   <response>
     <href>/.well-known/carddav/</href>
     <propstat>
       <prop />
       <status>HTTP/1.1 200 OK</status>
     </propstat>
     <propstat>
       <prop>
         <current-user-principal />
       </prop>
       <status>HTTP/1.1 404 Not Found</status>
     </propstat>
   </response>
</multistatus>

Answer status: 207 Unknown

i don't know for what the app is looking for, but i think there should 
be a file.

as info, i use the carddav app to sync my contacts with owncloud, so i 
works. :-)
would be great, if you can offer some info to git how to test the 
carddav sync.

at least, seems that i am to stupid to use the jabber with pidgin. cat 
someone tell me what i have to insert in pidgin to work? :-)

regards micha

Re: [radicale] radicale carddav test - Android

From:
Michael Domann
Date:
2012-02-21 @ 19:09
Hi there,

just another test from today with actually git.
sogo connector with thunderbird

PROPFIND request at /collections/micha/ received
Request headers:
{'CONTENT_LENGTH': '175',
  'CONTENT_TYPE': 'application/xml; charset=utf8',
  'GATEWAY_INTERFACE': 'CGI/1.1',
  'HTTP_ACCEPT': 'text/xml',
  'HTTP_ACCEPT_CHARSET': 'utf-8,*;q=0.1',
  'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
  'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5',
  'HTTP_CACHE_CONTROL': 'no-cache',
  'HTTP_CONNECTION': 'keep-alive',
  'HTTP_DEPTH': '0',
  'HTTP_HOST': '192.168.2.105:5232',
  'HTTP_PRAGMA': 'no-cache',
  'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:9.0) 
Gecko/20120124 Icedove/9.0.1 Lightning/1.1.1',
  'PATH_INFO': '/collections/micha/',
  'QUERY_STRING': '',
  'REMOTE_ADDR': '192.168.2.105',
  'REMOTE_HOST': '',
  'REQUEST_METHOD': 'PROPFIND',
  'SCRIPT_NAME': '',
  'SERVER_NAME': 'sysiphus',
  'SERVER_PORT': '5232',
  'SERVER_PROTOCOL': 'HTTP/1.1',
  'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.2+',
  'wsgi.errors': <open file '/dev/null', mode 'w' at 0x7f2a89301150>,
  'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x7f2a89ab26d0>,
  'wsgi.input': <socket._fileobject object at 0x7f2a89287650>,
  'wsgi.multiprocess': False,
  'wsgi.multithread': True,
  'wsgi.run_once': False,
  'wsgi.url_scheme': 'http',
  'wsgi.version': (1, 0)}
Sanitized path: /collections/micha/
Request content:
<?xml version="1.0"?>
<D:propfind xmlns:D="DAV:" 

xmlns:x0="http://calendarserver.org/ns/"><D:prop><D:resourcetype/><D:supported-report-set/><x0:getctag/></D:prop></D:propfind>
Response content:
<?xml version="1.0"?>
<multistatus xmlns="DAV:" xmlns:CS="http://calendarserver.org/ns/">
   <response>
     <href>/collections/micha/</href>
     <propstat>
       <prop>
         <resourcetype>
           <collection />
         </resourcetype>
         <supported-report-set>
           <supported-report>
             <report>principal-property-search</report>
           </supported-report>
           <supported-report>
             <report>sync-collectionexpand-property</report>
           </supported-report>
           <supported-report>
             <report>principal-search-property-set</report>
           </supported-report>
         </supported-report-set>
         <CS:getctag>"0"</CS:getctag>
       </prop>
       <status>HTTP/1.1 200 OK</status>
     </propstat>
   </response>
</multistatus>

Answer status: 207 Unknown

after this, a file is created.
└── collections
         └── micha.props

but i think this is not enough. after the file was created, i try the 
android app again, but without success. any hints?

micha


On 10.02.2012 20:40, Michael Domann wrote:
> hi,
>
> today i have tested the actually git source for carddav support.
> i have had tested also the old carddav branch, without success. so i
> thought, give it a new try.
>
> the first question is, must i create a file for carddav like for the old
> cardav branch? Or should the  file be created?
>
> OPTIONS request at /contacts/micha/ received
> Request headers:
> {'CONTENT_LENGTH': '0',
>    'CONTENT_TYPE': 'text/plain',
>    'GATEWAY_INTERFACE': 'CGI/1.1',
>    'HTTP_CONNECTION': 'Keep-Alive',
>    'HTTP_HOST': 'server:5232',
>    'HTTP_USER_AGENT': 'CardDAV-Sync (Android) (like iOS/5.0.1 (9A405)
> dataaccessd/1.0) gzip',
>    'PATH_INFO': '/contacts/micha/',
>    'QUERY_STRING': '',
>    'REMOTE_ADDR': '94.222.38.142',
>    'REMOTE_HOST': 'dslb-094-222-038-142.pools.arcor-ip.net',
>    'REQUEST_METHOD': 'OPTIONS',
>    'SCRIPT_NAME': '',
>    'SERVER_NAME': 'sysiphus',
>    'SERVER_PORT': '5232',
>    'SERVER_PROTOCOL': 'HTTP/1.1',
>    'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.2+',
>    'wsgi.errors':<open file '/dev/null', mode 'w' at 0x7f11d76f0150>,
>    'wsgi.file_wrapper':<class wsgiref.util.FileWrapper at 0x7f11d7ea16d0>,
>    'wsgi.input':<socket._fileobject object at 0x7f11d7676bd0>,
>    'wsgi.multiprocess': False,
>    'wsgi.multithread': True,
>    'wsgi.run_once': False,
>    'wsgi.url_scheme': 'http',
>    'wsgi.version': (1, 0)}
> Sanitized path: /contacts/micha/
>
> the app try to connect, seems fine i think.
>
>
> The android app carddav sync try to create one, but without  success.
>
> PROPFIND request at /.well-known/carddav/ received
> Request headers:
> {'CONTENT_LENGTH': '130',
>    'CONTENT_TYPE': 'application/xml; charset="utf-8"',
>    'GATEWAY_INTERFACE': 'CGI/1.1',
>    'HTTP_ACCEPT_ENCODING': 'gzip',
>    'HTTP_CONNECTION': 'Keep-Alive',
>    'HTTP_DEPTH': '0',
>    'HTTP_HOST': 'sysiphus-btz.dyndns.org:5232',
>    'HTTP_USER_AGENT': 'CardDAV-Sync (Android) (like iOS/5.0.1 (9A405)
> dataaccessd/1.0) gzip',
>    'PATH_INFO': '/.well-known/carddav/',
>    'QUERY_STRING': '',
>    'REMOTE_ADDR': '94.222.38.142',
>    'REMOTE_HOST': 'dslb-094-222-038-142.pools.arcor-ip.net',
>    'REQUEST_METHOD': 'PROPFIND',
>    'SCRIPT_NAME': '',
>    'SERVER_NAME': 'sysiphus',
>    'SERVER_PORT': '5232',
>    'SERVER_PROTOCOL': 'HTTP/1.1',
>    'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.2+',
>    'wsgi.errors':<open file '/dev/null', mode 'w' at 0x7f11d76f0150>,
>    'wsgi.file_wrapper':<class wsgiref.util.FileWrapper at 0x7f11d7ea16d0>,
>    'wsgi.input':<socket._fileobject object at 0x7f11d7676bd0>,
>    'wsgi.multiprocess': False,
>    'wsgi.multithread': True,
>    'wsgi.run_once': False,
>    'wsgi.url_scheme': 'http',
>    'wsgi.version': (1, 0)}
> Sanitized path: /.well-known/carddav/
> Request content:
> <?xml version="1.0" encoding="utf-8" ?>
> <D:propfind xmlns:D="DAV:">
> <D:prop>
> <D:current-user-principal />
> </D:prop>
> </D:propfind>
>
> Response content:
> <?xml version="1.0"?>
> <multistatus xmlns="DAV:">
>     <response>
>       <href>/.well-known/carddav/</href>
>       <propstat>
>         <prop />
>         <status>HTTP/1.1 200 OK</status>
>       </propstat>
>       <propstat>
>         <prop>
>           <current-user-principal />
>         </prop>
>         <status>HTTP/1.1 404 Not Found</status>
>       </propstat>
>     </response>
> </multistatus>
>
> Answer status: 207 Unknown
>
> i don't know for what the app is looking for, but i think there should
> be a file.
>
> as info, i use the carddav app to sync my contacts with owncloud, so i
> works. :-)
> would be great, if you can offer some info to git how to test the
> carddav sync.
>
> at least, seems that i am to stupid to use the jabber with pidgin. cat
> someone tell me what i have to insert in pidgin to work? :-)
>
> regards micha

Re: [radicale] radicale carddav test - Android

From:
Guillaume Ayoub
Date:
2012-02-23 @ 15:25
On 10.02.2012 20:40, Michael Domann wrote:
> hi,

Hi!

> today i have tested the actually git source for carddav support.
> i have had tested also the old carddav branch, without success. so i
> thought, give it a new try.

Good idea.

> the first question is, must i create a file for carddav like for the
> old cardav branch? Or should the  file be created?

It depends on the client. Some clients create the address books or send
enough information to make Radicale understand that they want to. Other
ones only work with existing address books.

CardDAV-Sync only works with existing address books.

> as info, i use the carddav app to sync my contacts with owncloud, so i
> works. :-)
> would be great, if you can offer some info to git how to test the
> carddav sync.

Yes, definitely, I'll add help in the documentation as soon as I can :).

> at least, seems that i am to stupid to use the jabber with pidgin. cat
> someone tell me what i have to insert in pidgin to work? :-)

:) Here's what's you're looking for:

http://developer.pidgin.im/wiki/Protocol%20Specific%
20Questions#XMPPMulti-User-ConferencesChatrooms

> just another test from today with actually git.
> sogo connector with thunderbird
> 
>[...]
>
> Answer status: 207 Unknown
> 
> after this, a file is created.
> └── collections
>          └── micha.props
>
> but i think this is not enough. after the file was created, i try the 
> android app again, but without success. any hints?

You can create an empty file called "micha" in the "collections" folder,
that should be enough. Another easy solution is to send a GET request:

http://your.server:port/user/my-address-book.vcf/

If you type this kind of address in your browser (the ".vcf" and the
trailing / are mandatory), you'll magically create an empty address book
in your collection, ready to use.

Yes, this information is missing in the documentation, but it has been
tested/fixed a couple of minutes ago ;). (Don't forget to pull these
latest changes.)

I hope that it will help you,
See you in the jabber room :),
Regards,
-- 
Guillaume

Re: [radicale] radicale carddav test - Android

From:
Michael Domann
Date:
2012-03-01 @ 18:41

On 23.02.2012 16:25, Guillaume Ayoub wrote:
> On 10.02.2012 20:40, Michael Domann wrote:
hi

the get request about the browser creates a book

GET request at /micha/ received
Request headers:
{'CONTENT_LENGTH': '',
  'CONTENT_TYPE': 'text/plain',
  'GATEWAY_INTERFACE': 'CGI/1.1',
  'HTTP_ACCEPT': 
'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
  'HTTP_ACCEPT_LANGUAGE': 'de,en-us;q=0.7,en;q=0.3',
  'HTTP_CONNECTION': 'keep-alive',
  'HTTP_DNT': '1',
  'HTTP_HOST': '192.168.2.105:5232',
  'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:10.0.2) 
Gecko/20100101 Firefox/10.0.2 Iceweasel/10.0.2',
  'PATH_INFO': '/micha/',
  'QUERY_STRING': '',
  'REMOTE_ADDR': '192.168.2.105',
  'REMOTE_HOST': '',
  'REQUEST_METHOD': 'GET',
  'SCRIPT_NAME': '',
  'SERVER_NAME': 'sysiphus',
  'SERVER_PORT': '5232',
  'SERVER_PROTOCOL': 'HTTP/1.1',
  'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.2+',
  'wsgi.errors': <open file '/dev/null', mode 'w' at 0x7f092587d150>,
  'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x7f092602d6d0>,
  'wsgi.input': <socket._fileobject object at 0x7f09258036d0>,
  'wsgi.multiprocess': False,
  'wsgi.multithread': True,
  'wsgi.run_once': False,
  'wsgi.url_scheme': 'http',
  'wsgi.version': (1, 0)}
Sanitized path: /micha/
Response content:
BEGIN:VCALENDAR
PRODID:-//Radicale//NONSGML Radicale Server//EN
VERSION:2.0
END:VCALENDAR

Answer status: 200 OK

creates and work with sogo an thunderbird it seems well



Answer status: 207 Unknown
PUT request at /micha.vcf/C5236A07-18F0-0001-147F-14D71347CEF0.vcf received
Request headers:
{'CONTENT_LENGTH': '243',
  'CONTENT_TYPE': 'text/vcard; charset=utf-8',
  'GATEWAY_INTERFACE': 'CGI/1.1',
  'HTTP_ACCEPT': 'text/xml',
  'HTTP_ACCEPT_CHARSET': 'utf-8,*;q=0.1',
  'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
  'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5',
  'HTTP_CACHE_CONTROL': 'no-cache',
  'HTTP_CONNECTION': 'keep-alive',
  'HTTP_HOST': '192.168.2.105:5232',
  'HTTP_PRAGMA': 'no-cache',
  'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:9.0) 
Gecko/20120124 Icedove/9.0.1 Lightning/1.1.1',
  'PATH_INFO': '/micha.vcf/C5236A07-18F0-0001-147F-14D71347CEF0.vcf',
  'QUERY_STRING': '',
  'REMOTE_ADDR': '192.168.2.105',
  'REMOTE_HOST': '',
  'REQUEST_METHOD': 'PUT',
  'SCRIPT_NAME': '',
  'SERVER_NAME': 'sysiphus',
  'SERVER_PORT': '5232',
  'SERVER_PROTOCOL': 'HTTP/1.1',
  'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.2+',
  'wsgi.errors': <open file '/dev/null', mode 'w' at 0x7f092587d150>,
  'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x7f092602d6d0>,
  'wsgi.input': <socket._fileobject object at 0x7f09258036d0>,
  'wsgi.multiprocess': False,
  'wsgi.multithread': True,
  'wsgi.run_once': False,
  'wsgi.url_scheme': 'http',
  'wsgi.version': (1, 0)}
Sanitized path: /micha.vcf/C5236A07-18F0-0001-147F-14D71347CEF0.vcf
Request content:
BEGIN:VCARD
VERSION:3.0
PRODID:-//Inverse inc.//SOGo Connector 1.0//EN
UID:C5236A08-5320-0001-816A-1EAF1C8CF420
N:dir ;sag ich
FN:sag ich dir
NICKNAME:mal überhaupt
X-MOZILLA-HTML:FALSE
EMAIL;TYPE=work:nicht@niemals.de
END:VCARD


Answer status: 201 Created
PUT request at /micha.vcf/C5236A07-1900-0001-75D8-1A0023E01530.vcf received
Request headers:
{'CONTENT_LENGTH': '194',
  'CONTENT_TYPE': 'text/vcard; charset=utf-8',
  'GATEWAY_INTERFACE': 'CGI/1.1',
  'HTTP_ACCEPT': 'text/xml',
  'HTTP_ACCEPT_CHARSET': 'utf-8,*;q=0.1',
  'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
  'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5',
  'HTTP_CACHE_CONTROL': 'no-cache',
  'HTTP_CONNECTION': 'keep-alive',
  'HTTP_HOST': '192.168.2.105:5232',
  'HTTP_PRAGMA': 'no-cache',
  'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:9.0) 
Gecko/20120124 Icedove/9.0.1 Lightning/1.1.1',
  'PATH_INFO': '/micha.vcf/C5236A07-1900-0001-75D8-1A0023E01530.vcf',
  'QUERY_STRING': '',
  'REMOTE_ADDR': '192.168.2.105',
  'REMOTE_HOST': '',
  'REQUEST_METHOD': 'PUT',
  'SCRIPT_NAME': '',
  'SERVER_NAME': 'sysiphus',
  'SERVER_PORT': '5232',
  'SERVER_PROTOCOL': 'HTTP/1.1',
  'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.2+',
  'wsgi.errors': <open file '/dev/null', mode 'w' at 0x7f092587d150>,
  'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x7f092602d6d0>,
  'wsgi.input': <socket._fileobject object at 0x7f09258036d0>,
  'wsgi.multiprocess': False,
  'wsgi.multithread': True,
  'wsgi.run_once': False,
  'wsgi.url_scheme': 'http',
  'wsgi.version': (1, 0)}
Sanitized path: /micha.vcf/C5236A07-1900-0001-75D8-1A0023E01530.vcf
Request content:
BEGIN:VCARD
VERSION:3.0
PRODID:-//Inverse inc.//SOGo Connector 1.0//EN
UID:C5236A08-5340-0001-132C-1A4619031D80
N:rtzu;wertz
FN:wertz rtzu
NICKNAME:rtz
X-MOZILLA-HTML:FALSE
END:VCARD


Answer status: 201 Created
GET request at /micha.vcf/ received
Request headers:
{'CONTENT_LENGTH': '',
  'CONTENT_TYPE': 'text/plain',
  'GATEWAY_INTERFACE': 'CGI/1.1',
  'HTTP_ACCEPT': 'text/xml',
  'HTTP_ACCEPT_CHARSET': 'utf-8,*;q=0.1',
  'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
  'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5',
  'HTTP_CACHE_CONTROL': 'no-cache',
  'HTTP_CONNECTION': 'keep-alive',
  'HTTP_HOST': '192.168.2.105:5232',
  'HTTP_PRAGMA': 'no-cache',
  'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Linux x86_64; rv:9.0) 
Gecko/20120124 Icedove/9.0.1 Lightning/1.1.1',
  'PATH_INFO': '/micha.vcf/',
  'QUERY_STRING': '',
  'REMOTE_ADDR': '192.168.2.105',
  'REMOTE_HOST': '',
  'REQUEST_METHOD': 'GET',
  'SCRIPT_NAME': '',
  'SERVER_NAME': 'sysiphus',
  'SERVER_PORT': '5232',
  'SERVER_PROTOCOL': 'HTTP/1.1',
  'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.2+',
  'wsgi.errors': <open file '/dev/null', mode 'w' at 0x7f092587d150>,
  'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x7f092602d6d0>,
  'wsgi.input': <socket._fileobject object at 0x7f09258036d0>,
  'wsgi.multiprocess': False,
  'wsgi.multithread': True,
  'wsgi.run_once': False,
  'wsgi.url_scheme': 'http',
  'wsgi.version': (1, 0)}
Sanitized path: /micha.vcf/
Response content:
BEGIN:VCARD
VERSION:3.0
PRODID:-//Inverse inc.//SOGo Connector 1.0//EN
UID:C5236A08-5320-0001-816A-1EAF1C8CF420
N:dir ;sag ich
FN:sag ich dir
NICKNAME:mal überhaupt
X-MOZILLA-HTML:FALSE
EMAIL;TYPE=work:nicht@niemals.de
X-RADICALE-NAME:C5236A07-18F0-0001-147F-14D71347CEF0.vcf
END:VCARD
BEGIN:VCARD
VERSION:3.0
PRODID:-//Inverse inc.//SOGo Connector 1.0//EN
UID:C5236A08-5340-0001-132C-1A4619031D80
N:rtzu;wertz
FN:wertz rtzu
NICKNAME:rtz
X-MOZILLA-HTML:FALSE
X-RADICALE-NAME:C5236A07-1900-0001-75D8-1A0023E01530.vcf
END:VCARD
Answer status: 200 OK

important is, you have to use as url server:port/micha.vcf/ then it works
otherwise it seems to think its for calender.

and now carddav with android:


OPTIONS request at /micha.vcf/ received
Request headers:
{'CONTENT_LENGTH': '0',
  'CONTENT_TYPE': 'text/plain',
  'GATEWAY_INTERFACE': 'CGI/1.1',
  'HTTP_CONNECTION': 'Keep-Alive',
  'HTTP_HOST': 'sysiphus-btz.dyndns.org:5232',
  'HTTP_USER_AGENT': 'CardDAV-Sync (Android) (like iOS/5.0.1 (9A405) 
dataaccessd/1.0) gzip',
  'PATH_INFO': '/micha.vcf/',
  'QUERY_STRING': '',
  'REMOTE_ADDR': '178.5.85.83',
  'REMOTE_HOST': 'dslb-178-005-085-083.pools.arcor-ip.net',
  'REQUEST_METHOD': 'OPTIONS',
  'SCRIPT_NAME': '',
  'SERVER_NAME': 'sysiphus',
  'SERVER_PORT': '5232',
  'SERVER_PROTOCOL': 'HTTP/1.1',
  'SERVER_SOFTWARE': 'WSGIServer/0.1 Python/2.7.2+',
  'wsgi.errors': <open file '/dev/null', mode 'w' at 0x7f092587d150>,
  'wsgi.file_wrapper': <class wsgiref.util.FileWrapper at 0x7f092602d6d0>,
  'wsgi.input': <socket._fileobject object at 0x7f09258036d0>,
  'wsgi.multiprocess': False,
  'wsgi.multithread': True,
  'wsgi.run_once': False,
  'wsgi.url_scheme': 'http',
  'wsgi.version': (1, 0)}
Sanitized path: /micha.vcf/
Answer status: 200 OK


looks good i think. but i can finish the setup process with the app. so 
i can't test the sync itself. seems tp be a bug in the app, i will mail
to the developer.

micha