Skip to main content

Synchronizing Sony Ericsson K320i Calendar with Evolution Calendar

Sorry for the long absence, I'm quite busy with my studies and project works .. well its that time of the semester again .. *sigh

As promised , here is a simple howto for synchronizing Sony Ericson K320i with Ximian Evolution

Step 1: Getting the packages

  • multisync

  • libsyncml

  • bluez-utils

  • libopensync-plugin-evolution2

  • libopensync-plugin-syncml

All of these packages can be acquired from Fedora repositories except for libopensync-plugin-syncml which you can follow this guide to install it or until somebody push it into the repositories. If you would like a GUI for multisync, yum for multisync-gui. In this guide, however, I'll cover the console based set-up only.

Step 2: Setting up a multisync group

First, create a multisync group that will contain a member from evolution2 plugin and a member from syncml plugin. In this example I name the group SyncMe

msynctool --addroup SyncMe
msynctool --addmember SyncMe evo2-sync
msynctool --addmember SyncMe syncml-obex-client

Step 3: Configuring the SyncML plugin

Now to configure the SyncML plugin. You will need 2 informations for this.
  • You phone's Bluetooth MAC address

  • The channel where SyncML OBEX Client is listening on you phone

Getting you phone's MAC address

Turn on Bluetooth discovery on your phone. From the PC use hcitool to scan for your phone's MAC.

$ hcitool scan
Scanning ...
xx:xx:xx:xx:xx:xx K320i

The xx:xx:xx:xx:xx:xx is your phone's MAC address. Copy it and paste it somewhere.

Getting the SyncML OBEX Client Channel

$ sdptool browse xx:xx:xx:xx:xx:xx

From the output, find the block that look similar like this

Service Name: OBEX SyncML Client
Service RecHandle: 0x00000
Service Class ID List:
UUID 128: 00000000-0000-0000-0000-0000ee000000
Protocol Descriptor List:
"L2CAP" (0x0000)
"RFCOMM" (0x0000)
Channel: 11
"OBEX" (0x0000)

Take the channel number and remember/paste it somewhere.

Configuring the plugin

Run this to open a Vi session for editing the SyncML plugin config

msynctool --configure SyncMe 2

Edit the config. Put your phone's MAC address into the bluetooth_address tag and the SyncML OBEX Client channel into bluetooth_channel tag.

Set also the wbxml tag to the value 1 and the type tag to 2. For the calendar tag, change the value from calendar to agenda.

You configuration should look somehow like this after editing

<?xml version="1.0"?>
<!-- (Only for blue) The bluetooth address if the bluetooth mode is selected -->

<!-- (Only for blue) The bluetooth channel to use (usualy the 11) [x] -->

<!-- (Only for USB) The usb interface number of the SYNCML-SYNC target. use syncml-obex-client -u (as root!) 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) -->

<!-- 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 -->


Now that the configuration is done, you can sync your phone's calendar with Evolution's calendar by running this command.

msynctool --sync SyncMe

Done~. Your calendars should be synchronized after that.

Btwm there are some problems I'm facing with the sync process. For the contact sync, your contacts might be duplicated a lot of times (which annoys me and made me disable contact syncing altogether). Another problem is that the TODO sync doesnt work, and I get write error sometimes.

If anybody got a workaround for this , please tell me kay :D.

1 comment

Popular posts from this blog

Adding simple popup to Plone frontpage

Here is a little guide for those who want to add a simple popup to the Plone frontpage for some purpose (eg: announcements, advertisements, etc).

Create a basic html file containing the content you want to appear in the popup. Upload it into $PLONE_SITE/portal_skins/custom (as Page Template) and for the sake of this example, name it popup.html

Afterward, create a Javascript file with your Pop-Up loader script. For example , this script:

function popup(mylink, windowname)
if (! window.focus)return true;
var href;
if (typeof(mylink) == 'string')
href=mylink.href;, windowname, 'width=220,height=400,scrollbars=no');
return false;

popup('popup.html', 'My Popup');

Also upload this file into $PLONE_SITE/portal_skins/custom (as Page Template too). For this example, name it as popup.js

Afterward, in $PLONE_SITE/portal_javascripts , add popup.js as a new script into portal_javascripts…

Tee'ing Python subprocess.Popen output

A little hack for python coders out there who wanted to have a functionality similar to the unix's tee command for redirecting output to multiple places.

import sys
from subprocess import Popen,PIPE
p = Popen(['put','command','and','arguments','here'],stdout=PIPE)

while True:
o = p.stdout.readline()
if o == '' and p.poll() != None: break
# the 'o' variable stores a line from the command's stdout
# do anything u wish with the 'o' variable here
# this loop will break once theres a blank output
# from stdout and the subprocess have ended

HOWTO: Mirroring Yum repositories using Yum-Utils

As promised before in one of my previous post, a Howto on how to mirror and manage yum repositories using some of the utilities in yum-utils.

The first step is, well, of course, is to get yum-utils from fedora repository
yum install yum-utils

Reposync is a utility for mirroring and synchronizing local copy of a yum/rpmmetadata repository.

This utility is very useful if you wanted to make a yum repository mirror. Before this, I used "wget -R -np -N" but this method is a little bit tedious and it doesnt work with repos that didn't use directory listing. Plus, it also download together additional site stuff that I don't need/want and it doesn't verify checksum of the downloaded packages.

Mirroring a repo using this utility is easy, just execute this command
reposync -r <repoid> -a <arch> -n
and the repo will be mirrored in a folder with the same name of the repoid in the directory you executed the command. Eg: you executed the command in /mnt/storage/mi…