++ General information
Syncing is currently developer-level code - you need to be able to at least read logfiles! Testing is welcome; please report to the sync list (sync@lists.horde.org), but please keep in mind that the code is still in heavy development.
you have to use cvs version or a cvs snapshot. The latest won't do.
client configuration is as follows:
The sync URL is http(s)://pathtoyourhordeinstall/rpc.php
Username/password: your Horde account data
Databases (sometimes called remote settings or 'server path') must be calendar, tasks, notes, or contacts.
For debug output create dir /tmp/sync and make it writeable by web server
Set log level to PEAR_LOG_DEBUG in Administration:Horde Setup_Logging. It may be helpful to filter the logs as follows:
tail -f /tmp/horde.log | grep "SyncML:"
++ Additional information for syncing with Outlook
You need the sync4j outlook connector. Go to http://www.sync4j.org/ -> Download -> v2.2 stable release -> SyncClient PIM Outlook 1.4.3. Download and install.
Configure as mentioned above. Device ID must be sc-pim-outlook or anything containing the text sync4j so that the Horde backend can identify the connector. If you're using multiple instances of the connector (one on your home pc, one on your laptop), make sure that the device ID is different on those.
++ Additional information for syncing PDAs
Syncing of PDAs requires the Synthesis Sync Client available from http://www.synthesis.ch/. There's a 30 days trial version.
Make sure to set the events server path to "calendar"
Uncheck the "only from 30 days before until 90 after today" setting
++ Sync clients being used succesfully:
Synthesis client (v2.5.0.30) -> PDA -> USB serial cable -> Powerbook G4 running The Missing Sync (http://www.markspace.com/missingsync_palmos.php) -> Horde test installation
Sony Ericsson P800/P900
Outlook with Sync4j SyncClient PIM outlook 1.4.3
++ Cleaning up when testing
//##red|DO NOT USE THIS IN PRODUCTION!##//
If you're debugging and want to clean out data between sync attempts, you can try this set of commands if you use mysql (or adjust appropriately for other backends):
delete from kronolith_events where calendar_id='YOUR CALENDAR';
delete from horde_datatree where group_uid='syncml';
delete from horde_datatree_attributes using
horde_datatree_attributes left join horde_datatree on
horde_datatree_attributes.datatree_id=horde_datatree.datatree_id where
horde_datatree.datatree_id IS NULL;
You can clear all session files (assuming the default backend) with {{rm -f /tmp/sess_*}}.
You'll have a lot of entries in the datatree with a group_uid of 'horde.history'. You will lose information from more than syncing by clearing them out, but you can do so. It is also useful to clear out horde.log and /tmp/sync to get a better feel for what is from the current sync attempt and what is not.
++ Using a Palm simulator to test the Synthesis client
++ Links
SyncMLDevicesFileFormats
SyncRoadMap
++ FAQ
+++ Syncing of events fails with a log entry like "No sync object found for URI=calendar?dr(-30,90)"
Syncing of date ranges as used by the Synthesis client is not yet supported. Please uncheck the "only from 30 days before until 90 days after today" checkbox.
+++ I can't find any *.xml log files in /tmp/sync anymore. They used to be there!
We now use our own wbxml libary in the XML_WBXML package. The wbxml gets directly passed and processed, no xml is produced. To see the xml, you can manually decode it like this:
for a in *.wbxml; do wbxml2xml -m 1 -i 4 -o basename $a .wbxml_conv.xml $a; done 2>/dev/null