Using Funambol on iPod Touch

Even if I don’t have an iPod (and I won’t buy one … I’ll tell you why one of these days) I’ve asked Funambol’s community to translate into English an article by Luis Medina written in Spanish. Paulo Sergio Lopes Fernandes and German Viscuso contributed the translation.

I liked the article not only because it’s a good hack, but mostly because it demonstrates the importance of being able to tinker with the hardware you own. You should always be able to improve, evolve, fix whatever software comes with any device. While we wait for Apple to open up its system releasing its awaited SDK, here is a good read for you iTouch users and Fedora 8 (easily portable to other GNU/Linux distributions).

Synchronizing contacts iPod Touch – Evolution

This guide should also work if you are using an iPhone although… no guarantees.
How to synchronize contacts from my iPod Touch and Fedora 8?

1. Register at myFunambol

2. Install syncevolution

# yum -y install syncevolution

3. Configure syncevolution:

$ mkdir -p ~/.sync4j/evolution
$ cp -r /usr/share/doc/syncevolution-0.6/scheduleworld ~/.sync4j/evolution/
$ gedit ~/.sync4j/evolution/scheduleworld/spds/syncml/config.txt

Change your syncURL to http://my.funambol.com/sync

# the base URL of the SyncML server:
# - Sync4j 2.3
#syncURL = http://localhost:8080/sync4j/sync
# - Funambol >= 3.0
#syncURL = http://localhost:8080/funambol/ds
# - myFUNAMBOL
syncURL = http://my.funambol.com/sync
# - sync.scheduleworld.com
#syncURL = http://sync.scheduleworld.com/funambol/ds

Then change the deviceId to something that represents you computer (in my case I used the hostname).

# the SyncML server gets this string and will use it to keep track of
# changes that still need to be synchronized with this particular
# client; it must be set to something unique if SyncEvolution is used
# to synchronize data between different computers
deviceId = mortylap

You also need to enter your username and password

# authorization for the SyncML server
username = lalbertme
password = *************

Save and close gedit.
4. Back in the console, and as Funambol client for iPod Touch does not support Calendars, Tasks or Notes yet, let’s delete some folders

$ rm -rf ~/.sync4j/evolution/scheduleworld/spds/sources/calendar
$ rm -rf ~/.sync4j/evolution/scheduleworld/spds/sources/memo
$ rm -rf ~/.sync4j/evolution/scheduleworld/spds/sources/todo

5. Configure the properties of your address book

$ gedit ~/.sync4j/evolution/scheduleworld/spds/sources/addressbook/config.txt

Change your evolution data source (in my case is “Personal”). In order to figure out yours just write “syncevolution” in the console and you’ll get something like this:

[luis@localhost ~]$ syncevolution
address books:
Personal (file:///home/luis/.evolution/addressbook/local/system)
calendars:
Personal (file:///home/luis/.evolution/calendar/local/system)
Birthdays & Anniversaries (contacts:///)
memos:
Personal (file:///home/luis/.evolution/memos/local/system)
tasks:
Personal (file:///home/luis/.evolution/tasks/local/system)
usage: syncevolution

Here you can change the value of your “evolutionsource”…

# picks one of Evolution’s data sources:
# enter either the name or the full URL
#
# To get a full list of available data sources,
# run syncevolution without parameters. The name
# is printed in front of the colon, followed by
# the URL. Usually the name is unique and can be
# used to reference the data source.
evolutionsource = Personal

6. Change the uri replacing “card3” with “card”

# this is appended to the server’s URL to identify the
# server’s database
uri = card

7. Install the Funambol client in your device.’  Open the installer… click in the tab “Install” -> “Productivity”

Install-productivity

Search for..(you guessed correctly =)…“Funambol”

Search Funambol

Now you have to press the Install button on the top left of your screen

Install

8. Configure Funambol
UPDATE: if you’re using firmware version 1.1.3 connect to the device via ssh and issue the following:

# chown mobile .sync4j

(You can skip the previous step if you have an older version of the firmware)
Open the Funambol client and press the top right button “Settings”

Settings

In the next window, enter your myFunambol username and password and then save.

myFunambol username and password

9. Synchronizing
In order to synchronize from your device, open the Funambol client and click on “Contacts” or “Sync All”

Settings

On your desktop go to the command line and run: “syncevolution scheduleworld”… You will see something like this (otherwise you made some mistake, lol):

[luis@localhost ~]$ syncevolution scheduleworld
22:00:04 GMT -0600 [INFO] - Synchronization URL: http://my.funambol.com/sync
22:00:04 GMT -0600 [INFO] - Preparing synchronization of addressbook…
22:00:24 GMT -0600 [INFO] - addressbook: sync mode is two-way’
Synchronization successful.
Modifications:
*** addressbook ***
no changes

That’s all, hope you find this interesting.