If you’re using Sun Calendar Server (a.k.a. JESCS for “Java Enterprise System Calendar Server) and have tried to synchronize it using anything else but a Windows machine or a SyncML Server, you already know what pain is, for sure. Been doing that a while ago when the connector for evolution was in its infancy. What I tried then was synching my Palm with evolution and trying to select the Sun Calendar as the backend. Well, it didn’t work.
Now that I have received this nice Nokia E61 gadget (how can Apple make the iPhone not have UMTS support?) originally just for use as an UMTS modem I find all those other things you can do with it and decided to revisit calendar synch. I expected to have to move along the lines of my previous attempt and was quite surprised to learn that multisync no longer exists, but has turned into opensync. And opensync has a jescs plugin, yay!
Here’s what I did to make it work:
- Install opensync
On my ubuntu (feisty) system I installed the opensync 0.21 packages from here:
The packages I installed are:
- Configure a synchronization group
To do that I used
multisync-guiand added a synchronization group with a syncml-obex-client and a jescs-sync member. You may want to disable the synchronization of everything but events and todos.The configuration for the jescs-sync member is trivial and looks like this:
<!– Server address with optional port (<server_url>[:<port>]) –>
<!– Authentication data –>
<!– Notify attendees about event/task deletion ( 0 = no, 1 = yes ) –>
Note that the server is specified without protocol (i.e. “http://”) prefix.
The config for the E61 syncml client is a little bit more complex:
<!– (Only for bluetooth) The bluetooth address if the bluetooth mode is selected –>
<bluetooth_address>00:17:E3:0C:20:F2</bluetooth_address><!– (Only for bluetooth) The bluetooth channel to use. `sdptool browse $MAC` to search for the correct channel –>
<!– (Only for USB) The usb interface number of the SYNCML-SYNC target. use syncml-obex-client -u (you will need access to the USB raw device) to find it. –>
<!– The string that the plugin will use to identify itself. Some devices need a special string here. –>
<!– The syncml version to use: 0 for 1.0, 1 for 1.1 and 2 for 1.2 –>
<!– if the plugin should use wbxml –>
<!– The username to use. Leave empty to not require a username –>
<!– the password for the username –>
<!– sets the connection type to use. 5 means obex over usb, 2 means obex over bluetooth –>
<!– If wbxml is enabled, defines wether the wbxml should use string tables –>
<!– Never send ADD command, but send REPLACE (not needed normally) –>
<!– Workaround around for mobile phones which only use local timestamps and _no_ UTC timestamps! –>
<!– Sets the maximum allowed size in bytes of incoming messages (some device need this option set). Example: 10000 –>
<!– The name of the contacts db. Must be the same as the phones sends –>
<!– The name of the calendar db. Must be the same as the phones sends –>
<!– The name of the note db. Must be the same as the phones sends –>
- Make sure the bluetooth connection works
A typical thing you may need to do is install bluez-gnome.
- Install missing wcaptool script
This script is missing from the opensync jescs plugin package for feisty. It needs to go to /usr/lib/libopensync-plugin-jescs/wcaptool. Don’t forget to make it executable.
- Configure synchronization profile on the E61
If you don’t have a recipient for your telephone’s Notes in your opensync synchronization group, you should keep the phone from trying to send them. Otherwise the synch was always stalled there and finally timed out. To tell your phone not to send them, you do this:
- Open Main Menu->Connections->Synchronization
- Options->New Synchronization Profile (name=test, when asked chose to copy PC Suite profile)
- Deactivate original PC Suite Profile by selecting it and Options->Edit Synchronization Profile->Connection Settings->Allow Synchronization Requests->No
- With the newly created one change the name from “test” to “PC Suite” and disable all programs but Calendar
- Run synchronization
Try with msynctool –sync <groupname> first. I’ve had cases where the GUI would not work, but the command line would.