[GroupDAV] Setting vCalendar CHARSET and ENCODING with Funambol GroupDAV connector

Samuli Seppänen groupdav@opengroupware.org
Thu, 23 Nov 2006 13:54:25 +0200


> On Nov 22, 2006, at 15:44, Samuli Seppänen wrote:
>> I've fixed this problem by crafting custom vCalendar files, like the 
>> one below (truncated):
>>
>> BEGIN:VCALENDAR
>> METHOD:REQUEST
>> PRODID:-//OpenGroupware.org/ZideStore 1.3//
>> VERSION:2.0
>> BEGIN:VEVENT
>> LOCATION;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:Ähmö
>> STATUS:CONFIRMED
>> SUMMARY;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:hälö
> 
> Is the content-type of the PUT properly set? Something like:
> 
>   content-type: text/icalendar; charset=utf-8
> 
> Thanks,
>   Helge
> 
> PS: its better to use ZideStore 1.5 (OGo 1.1), GroupDAV support has 
> improved a lot.
> --Helge Hess
> http://docs.opengroupware.org/Members/helge/

Yes, everything already uses UTF-8. Nokia just can't recognize the 
vCalendar encoding unless it is told within the vCalendar that the 
content is UTF-8. If ENCODING and CHARSET are defined as UTF-8, 
everything works like a charm.

Below is a typical entry in GroupDAV connector's storelog when I create 
an entry into the phone with ä (a umlaut) or ö (o umlaut) in the SUMMARY 
or LOCATION. As you can see both are empty, even though they should not 
be. Zidestore simply drops this kind of vCalendars

We sent:
PUT /zidestore/dav/johirv/Calendar/213470.ics HTTP/1.1
Authorization: Basic am9oaXJ2OnMxbGF3MGxrZXI=
Content-Type: text/calendar; charset=utf-8
If-Match:213470:1
Content-Length: 434
User-Agent: BionicMessage.net GroupDAV {0.9;Java}
Host: 172.20.1.40:80

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//BionicMessage.net GroupDAV//Funambol Connector//
BEGIN:VEVENT
UID:skyrix://bc1s4.tt.fi/bc1s4.tt.fi/213470
SUMMARY:
DTSTART:20061117T094000Z
DTEND:20061117T100000Z
X-EPOCAGENDAENTRYTYPE:APPOINTMENT
CLASS:PUBLIC
LOCATION:
SEQUENCE:0
X-METHOD:NONE
LAST-MODIFIED:20061122T131240Z
PRIORITY:0
STATUS:CONFIRMED
X-SYMBIAN-LUID:85
DESCRIPTION:
END:VEVENT
END:VCALENDAR

Zidestore outputs the following to ogo-zidestore-1.4-err.log:

Nov 23 13:30:43 ogo-zidestore-1.4 [1885]: <0x0946946C[WOContext]> could 
not construct NSURL from string 'http(s)://bc1s4.tt.fi'

Nov 23 13:30:43 ogo-zidestore-1.4 [1885]: <<0x0958DAD4[SxAppointment]>>D 
etag '213470:1' matches: 213470:1

Nov 23 13:30:43 ogo-zidestore-1.4 [1885]: <<0x0958DAD4[SxAppointment]>>D 
patch old=>new 1=>0

Nov 23 13:30:44 ogo-zidestore-1.4 [1885]: <0x09570714[SxAppointment]> 
TODO: implement if-none-match for etag: '*'

Nov 23 13:30:44 ogo-zidestore-1.4 [1885]: <0x09570714[SxAppointment]> 
Note: object not yet available in DB, creating a new one!

I'll try OGo 1.1 also to see how it's Zidestore works. First, however, 
I'd like to try modifying/configuring the GroupDAV connector to add 
those CHARSET and ENCODING strings automatically where they are needed. 
It would be much simpler that way, as we currently use OGo 1.0.

Samuli