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.
The required packages, not including Evolution, are:
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.
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:
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.
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.