Tag Archives: opensync

Synchronize Sony Ericsson K610i with Ximian Evolution on Ubuntu

Since I just started testing Evolution as my PIM, including mail, calendar, todo and contacts, I thought it would be in its place to write a short post on synchronizing Evolution with a Sony Ericsson K610i (and quite possible other SE phones as well).

My old post on doing the same with a Mozilla Sunbird can be found here: Synchronize Sony Ericsson K610i with Mozilla Sunbird on Ubuntu.

As in the previous try, I had no luck making the synchronization work with OpenML, but had to use IrMC instead. I have no idea if this is because of some problem with SE’s OpenML implementation, or perhaps it’s just that I have misunderstood what OpenML is all about. Anyway… IrMC works fine so far.

I had a few hiccups during the first synchronization, so a backup of your contacts and appointments might be a good idea if you value your data. I had to empty my phones calendar to get sync to work properly, even though you could just sort out the conflicts manually the first time. I also had to purge old appointments in my calendar to get the synchronization to work correctly. Initially my calendar file in ICS format was 121Kb, and that seems to be more appointments than the phone can handle. I purged all appointments older than 60 days, and that resolved the problem.

Installation

The required packages, not including Evolution, are:

  • multisync
  • multisync-tools
  • bluez-utils
  • opensync-plugin-evolution
  • opensync-plugin-irmc

You can get them all with:

sudo apt-get install multisync multisync-tools bluez-utils opensync-plugin-evolution opensync-plugin-irmc

After installing the packages you just need to setup a synchronization group using multisync tools.

msynctool --addgroup EvoK610irmc

Here “EvoK610irmc” is the name of the group that will hold the synchronization pairs, you can choose anything that you feel is appropriate.

Then it is time to add the participants to the group. First the evolution plugin, which need no further configuration, if you are using the standard calendar and address book:

msynctool --addmember EvoK610irmc evo2-sync

Then add the IrMC plugin by writing:

msynctool --addmember EvoK610irmc irmc-sync

That’s pretty straight forward so far.

Configuration

The evo2-sync plugin does not need any further configuration, as long as you are using the default calendar, address book etc. If you want to see, and possibly change the configuration, this can be done with the following command:

msynctool --configure EvoK610irmc 1

which allows you to view and change the settings of the first member in the EvoK610irmc group. The configuration is XML syntax, and is opened in the default editor, which is Nano in my terminal. My default configuration look like this: evo2-sync.config.

The second plugin configuration need to be set up with your phone’s address and IrMC channel. The first part is to find your phone’s address. Write:

hcitool scan

and note your phone’s MAC. Then proceed to write:

sdptool browse yourphonesmachere

and look for the “Service Name: OBEX IrMC Sync Server” section. Note the channel number, on my phone it’s channel 8.

Then it’s time for configuring the second member of the sync group, the irmc-plugin. Write:

msynctool --configure EvoK610irmc 2

The configuration should be like this: irmc-sync.config. Then it’s time to synchronize your data.

Usage

To synchronize your phone and Evolution simply fire up multisync with the command:

msynctool --sync EvoK610irmc

That’s at least what you should do, ideally. My experience is that you need to exclude some parts of the synchronization, and perhaps split it up in pairs. There are five types of objects available for synchronization: event, todo, contact, note and data. First, the note object type does not seem to have any effect on my synchronization. Notes on my phone are not synced to memos in Evolution, or the other way round, so I leave the note object type out of my synchronization. Secondly the data object must be included. If it’s exclude the synchronization can not connect to Evolution. Finally, my experience is that it’s best to split synchronization in two steps, since there is a tendency that the sync will hang and/or fail if you try performing a synchronization with all object types together.

So let’s start out with the calendar and todo list:

msynctool --sync EvoK610irmc --filter-objtype note --filter-objtype contact

I filter out the note (which does nothing) and the contacts. This leaves event, todo and data. To sync the contacts and the address book write:

msynctool --sync EvoK610irmc --filter-objtype event --filter-objtype todo --filter-objtype note

which filter out everything but contacts and data.

During synchronization conflicts might be encountered. You will be asked to resolve these conflicts, selecting either side 1 (Evolution), side 2 (the phone), duplicate, the newest etc. If you are certain how you want to resolve conflicts, it is possible to include the –conflict option when synchronizing. For example:

msynctool --sync EvoK610irmc --conflict n --filter-objtype note --filter-objtype contact

always keeps the newest event or contact. Possible options are: Resolve all conflicts as side [1-9] wins, [d]uplicate, [i]gnore, or keep [n]ewer.

That’s it. All you need to synchronize your phone with Evolution.

Notes

Synchronize Sony Ericsson K610i with Mozilla Sunbird on Ubuntu

I just wanted to write a quick howto, since it took me a while to dig this information up on the Net. The phone is a Sony Ericsson K610i and it’s being synced with Mozilla Sunbird 0.5 calendar via Bluetooth. The calendar is stored locally as an ics type calendar, but this really ought to work with calendar files stored on webdav as well. Apart from the phone and Sunbird, of course, you also need to install the following packages:

  • multisync
  • multisync-tools
  • bluez-utils
  • opensync-plugin-sunbird
  • opensync-plugin-irmc

Install them by writing:

sudo apt-get install multisync multisync-tools bluez-utils opensync-plugin-sunbird opensync-plugin-irmc

They first task is to make “msynctool” ready. Create a sync group and add two members by executing the following commands:

msynctool --addgroup SyncMe
msynctool --addmember SyncMe sunbird-sync
msynctool --addmember SyncMe irmc-sync

Now you need to discover your phone and then configure the sync. Execute:

hcitool scan

to see your phone’s MAC (remember to enable Bluetooth first….). Next do:

sdptool browse writeyourmachere

and look for the “Service Name: OBEX IrMC Sync Server” section. Note the channel number, on my phone it’s channel 8. Now you need to configure the synchronization itself. First Sunbird… write:

msynctool --configure SyncMe 1

which will open the cofinguration for the sunbird plugin in nano or vi or some other editor. Make it look like this:

<config>
<file path=”/path/to/calendarfile.ics” />
</config>

Change the path to reflect your calendar of course. Next, do the same for the IrMC plugin:

msynctool --configure SyncMe 2

It should look like this:

<config>
<bluetooth_address>yourphonemachere</bluetooth_address>
<bluetooth_channel>yourchannelhere</bluetooth_channel>
<interface>0</interface>
<identifier></identifier>
</config>

That’s really it for the configuration. To do a sync between the phone and calendar write:

msynctool --sync SyncMe --filter-objtype note --filter-objtype contact --filter-objtype todo

Notice the –filter-objtype commands I’m using here. I’m excluding notes, contacts and todos from the synchronization. If I don’t the synchronization will hang at some point. Some people report that the don’t need to do that, while others do. You will just have to try. Several people report that the need to empty their phone calendar before the first sync, but that might not be necessary. That’s really it… and it works for me :-) Some people are using the syncml package (opensync-plugin-syncm) rather that the irmc package. Since this is supported by the SE phones, it should work. In practise it didn’t for me, but it might be worth a try. If your going to try it, simply install the syncml package and instead of adding irmc as the second member of the SyncMe group, add syncml:

msynctool --addmember SyncMe syncml-obex-client

The configuration of the second member should the be something like this:

<weddav username=”user” password=”password” url=”http://server.com/path/to/webdav2.ics”></weddav>

You can find the channel in a similar way as before, just look for “OBEX SyncML Client” instead.

If you want to configure the Sunbird plugin for a webdav calendar, you could try writing as the path:

Thanks to the following sites, and many other I can’t remember any more. Go there and look for resources if you need additional help:

  • http://en.opensuse.org/OpenSync/irmc-sync
  • http://www.opensync.org/browser/plugins/sunbird/README?rev=971
  • http://www.nabble.com/problem-while-syncing-with-a-k750i-t4544072.html