1. OpenSync FAQ
    1. What is OpenSync?
    2. How do I get started?
    3. What devices are known to work?
    4. How stable is it?
    5. How do I clean up a sync group for testing?
    6. How do I compile OpenSync from Subversion? There's no configure or …
    7. With autoreconf -sfi I got the error "invalid unused variable name: …
    8. Is there a Windows Port?
  2. Bluetooth (Linux/BlueZ)
    1. How do I find the phone's MAC address?
    2. What channel should I use?
    3. Bluetooth pairing trouble
  3. File-Sync Plugin
    1. What is the File-Sync Plugin useful for?
    2. What are it's limitations?
  4. Evolution 2 Plugin
    1. I have successfully synced a modified event with evo2-sync but Evolution …
  5. Gnokii Plugin
  6. Google Calendar Plugin
  7. GPE Plugin
  8. Irmc Plugin
    1. libopensync-plugin-irmc does not work with Sony Ericsson phones
  9. Jescs Plugin
    1. What is the Jescs Plugin for?
  10. KDE PIM Plugin
    1. I got: "Error synchronizing: Unable to connect to one of the members"
    2. kdepim-sync had an error while connecting: Unable to lock addressbook for …
  11. LDAP Plugin
  12. Moto Plugin
    1. I got "ImportError: No module named opensync"
  13. Opie Plugin
  14. Palm Plugin
  15. Python Plugin
  16. Sunbird Plugin
  17. Synce Plugin
    1. How can I sync my Windows Mobile 5 device?
  18. SyncML
    1. I got Error XYZ ... what does it mean?
    2. I got one hour difference between my phone and .…
    3. syncml-obex-client
      1. My device has SyncML support and supports OBEX but it did not work.
      2. I only received error 67
    4. syncml-http-server
      1. I'm trying to use a username/password with syncml, but it's not working
    5. syncml-http-client
      1. Where can I find a syncml-http-client? or Can I use OpenSync with syncml …
      2. I use SyncML over https, so what about the certificates?
      3. Do you support CRLs?

OpenSync FAQ

What is OpenSync?

OpenSync is a PIM (Personal Information Management) data synchronization framework that consists of several plug-ins that can be used to connect to different devices and systems.

How do I get started?

You can either get pre-built binaries for SuSE, Debian, Ubuntu or Mandriva, or build from source. The download page contains all the information you need.

Once all the software is installed, it is time to start tinkering. A couple of tips:

  • using multisync-gui, start by trying to sync your various devices and applications one by one with a directory; then try to assemble the devices in the way you want.
  • Do not disable the syncing of the object type data, as it will disable syncing everything.

What devices are known to work?

http://www.opensync.org/wiki/DeviceCompatibilityList

How stable is it?

OpenSync is currently in Alpha state, so it is not quite stable or safe enough to be used in a production environment.

Some simple setups are known to work quite well, while some are still quite experimental and unstable.

Currently we recommend everyone to make backups of everything for getting in touch with OpenSync.

How do I clean up a sync group for testing?

You need to purge all files except *.conf in the OpenSync group path. Alternatively, you could use this Bash script:

#! /bin/bash

if [[ -z $1 ]] ; then
        echo "Usage: $0 (groupname | all)"
        exit 1
fi

OPENSYNC_HOME="$HOME/.opensync"   # If you're running $0 via sudo, please change $HOME to the home directory of the other user explicitly

# First check for "all"
if [[ $1 = all ]] ; then
        msynctool --listgroups | sed '/Available groups:/d'
        read -p "Are you sure you want to remove the cache for all these groups (y/n)? " -n 1 response; echo;
        if [[ $response = 'y' ]] ; then
                msynctool --listgroups | sed '/Available groups:/d' | while read arg; do $(readlink -f $0) $arg; done
        else echo "Nothing to do"; exit 0
        fi
        exit 0
fi

SYNC_GROUP_FILE=$(grep -R -l --include="syncgroup.conf" "<groupname>$1</groupname>" $OPENSYNC_HOME)

if [[ -n $SYNC_GROUP_FILE ]] ; then
        SYNC_GROUP_PATH=$(dirname "$SYNC_GROUP_FILE")
        if [[ -n $SYNC_GROUP_PATH ]] ; then
                find "$SYNC_GROUP_PATH" -type f ! -name "*.conf" -print0 | xargs -0r rm
                echo "Removed cache of group $1 successfully"
        else
                echo "Dirname error. This means that there was an internal error in the script. Please look into the script"
                exit 1
        fi
else
        echo "Syncgroup $1 not found. Please use msynctool --listgroups to list available groups"
        exit 1
fi

# Check for lockfile. If exist, remove. Please make sure that OpenSync isn't running when this script is being executed
if [[ -e "$SYNC_GROUP_PATH/lock" ]] ; then
        rm "$SYNC_GROUP_PATH/lock"
fi

exit 0

How do I compile OpenSync from Subversion? There's no configure or autogen script, or a Makefile.

OpenSync is transitioning from autoconf/automake via scons to CMake. You need CMake installed, then you can create a build directory and run from this build directory cmake -DCMAKE_INSTALL_PREFIX=/path/to/prefix /path/to/opensync/source to build the project. See also http://www.opensync.org/wiki/devel-branch-0.30. Some of the plugins still use autoconf/automake - for those you should use:

autoreconf -sfi

With autoreconf -sfi I got the error "invalid unused variable name: `AM_LDFLAGS'"

You need at least Automake 1.9 and Autoconf 2.60.

Is there a Windows Port?

This is being worked on - see http://www.opensync.org/wiki/CompilingForWin32_with_MinGW for the current status.

Bluetooth (Linux/BlueZ)

How do I find the phone's MAC address?

KDE3: Install kdebluetooth and start Konqueror/KIOSlave bluetooth:/ to discover devices or press the kbluetooth trayicon.

Console:

hcitool scan

What channel should I use?

sdptool search SYNCML

Bluetooth pairing trouble

Modern distribution ship with BlueZ 3.x have Bluetooth Passkey Agent included in bluez-gnome and kdebluetooth which handle the pairing/bonding of Bluetooth remote devices.

Older distribution still use something called "pin_helper". You can try to change your pin_helper in /etc/bluetooth/hcid.conf to one of the following (depending on distribution and version):

pin_helper /usr/bin/bluez-pin;
pin_helper /usr/lib/kdebluetooth/kbluepin;
pin_helper /usr/bin/bluepin;
pin_helper /usr/bin/pinwrapper;

pin_helpers are just old.- Use Passkey Agents!

If you have still trouble (maybe with feisty) start Konqueror and open obex://[xx:xx:xx:xx:xx:xx] (your BT address).

File-Sync Plugin

What is the File-Sync Plugin useful for?

The file-sync plugin is intended to synchronize all kinds of data directly to the file-system.
It is mainly used for backup and testing.

What are it's limitations?

http://www.nabble.com/forum/ViewPost.jtp?post=14778865&framed=y

Evolution 2 Plugin

http://www.opensync.org/wiki/Evo2-File

I have successfully synced a modified event with evo2-sync but Evolution still shows the old one

The reason for this is the cache in evolution-data-server. You should quit evolution before syncing, and also kill the evolution dataserver.

ps aux | grep ^"$USER" | grep "lib/evolution"
mjahn    19187  0.2  1.5  50604  7704 ?        Sl   22:59   0:00 /usr/lib/evolution/evolution-data-server-1.6 --oaf-activate-iid=OAFIID:GNOME_Evolution_DataServer_BookFactory:1.2 --oaf-ior-fd=42
mjahn    19269  0.2  2.0  67768  9984 ?        Sl   22:59   0:00 /usr/lib/evolution/2.6/evolution-alarm-notify --oaf-activate-iid=OAFIID:GNOME_Evolution_Calendar_AlarmNotify_Factory:2.6 --oaf-ior-fd=44
kill `pidof evolution-data-server-1.6`
kill `pidof evolution-alarm-notify`

A evolution --force-shutdown should also do the trick

Gnokii Plugin

Google Calendar Plugin

GPE Plugin

Irmc Plugin

libopensync-plugin-irmc does not work with Sony Ericsson phones

Syncronisation of notes does not work with newer Sony Ericsson cell phones.
If your phone is crashing, or you receive an error "Request failed" or similar, and you are using msynctool, please try "--filter-objtype note". If you're using a GUI frontend to OpenSync, use the appropriate option for the sync group to disable synchronising notes.

Jescs Plugin

What is the Jescs Plugin for?

The Jescs plugin can be used to connect to Java Enterprise System Calendar.

KDE PIM Plugin

I got: "Error synchronizing: Unable to connect to one of the members"

Kontact or KAddressbook is running, please close it before syncing. In KDE 3.x the PIM data must be accessed through methods that are tied to the frontends, thus they cannot be running at the same time. The upcoming Akonadi framework in KDE 4 should solve this problem.

kdepim-sync had an error while connecting: Unable to lock addressbook for writing

I had two 'resource' entries in kaddress book, pointing to the same std.vcf. Although, the other was not ticked active, it could not lock it.

LDAP Plugin

Moto Plugin

I got "ImportError: No module named opensync"

Python can't find opensync.py and _opensync.so from libopensync. This is probably because you installed libopensync with a non-standard $prefix. Also, it is possible that the files were not built. python-devel and swig are needed. CFLAGS="-fno-strict-aliasing" may be required.

  • $prefix=/usr/local/ in these examples:
  1. grep opensync.py install_manifest.txt to find the path. It should return /usr/local/lib/python2.5/site-packages/opensync.py
  2. Set the PYTHONPATH to include the new library path.
    • (bash) export PYTHONPATH=/usr/local/lib/python2.5/site-packages/:$PYTHONPATH

Opie Plugin

Palm Plugin

Python Plugin

Sunbird Plugin

Synce Plugin

How can I sync my Windows Mobile 5 device?

The libopensync-plugin-synce in OpenSync is currently not able to sync with WM5 devices.
There is also another project for syncing OpenSync with WM5 Devices.

SyncML

http://www.opensync.org/wiki/syncml-guide

I got Error XYZ ... what does it mean?

http://libsyncml.opensync.org/wiki/ErrorCodes

I got one hour difference between my phone and .…

You need to change the value in syncml-obex-client.conf (syncml-http-server.conf).

<!-- Workaround around for mobile phones which only use local timestamps and _no_ UTC timestamps! -->
  <onlyLocaltime>0</onlyLocaltime>

Kitchensync has currently no support for this option.

syncml-obex-client

http://libsyncml.opensync.org/wiki/obex-guide

My device has SyncML support and supports OBEX but it did not work.

  • Are you sure that you device supports SyncML over OBEX?
    sdptool browse XX:XX:XX:XX:XX:XX" (XX:XX:XX:XX:XX:XX is the MAC of your device)!!
    ............
    Service Name: OBEX SyncML Client
    Service RecHandle: 0x10001
    Service Class ID List:
      UUID 128: 00000002-0000-1000-8000-0002ee000002
    Protocol Descriptor List:
      "L2CAP" (0x0100)
      "RFCOMM" (0x0003)
        Channel: 1
      "OBEX" (0x0008)
    
    If you do not see the "OBEX SyncML Client" service, then your device does not support SyncML over OBEX.
  • Your device may need a identifier "PC Suite" or "opium" to work. See http://www.opensync.org/wiki/syncml-guide

I only received error 67

  • Maybe the OBEX stack crashed on your mobile. Try rebooting your mobile.
  • Maybe you used the wrong bluetooth channel?
    sdptool browse XX:XX:XX:XX:XX:XX" (XX:XX:XX:XX:XX:XX is the MAC of your device)!!
    ............
    Service Name: OBEX SyncML Client
    Service RecHandle: 0x10001
    Service Class ID List:
      UUID 128: 00000002-0000-1000-8000-0002ee000002
    Protocol Descriptor List:
      "L2CAP" (0x0100)
      "RFCOMM" (0x0003)
        Channel: 1
      "OBEX" (0x0008)
    
  • Maybe you need to enable wbxml ?
    syncml-obex-client -b $MAC 11 --slow-sync text/x-vcard Contacts --wbxml --identifier "PC Suite"
    

syncml-http-server

I'm trying to use a username/password with syncml, but it's not working

This is not yet fully supported, so you did't make any mistake.

syncml-http-client

Where can I find a syncml-http-client? or Can I use OpenSync with syncml to an online syncml server like mobical?

There is a syncml-client in svn, but there has been no reported success with it so far.
You need libsyncmlclient and syncmlclient-plugin to get it work:

#libsyncmlclient
svn co http://svn.opensync.org/plugins/syncml-client/api/trunk/development/src libsyncmlclient
#syncmlclient-plugin
svn co http://svn.opensync.org/plugins/syncml-client/plugin/trunk syncmlclient-plugin

If you would like to try other options, have a look at sync4jevolution

I use SyncML over https, so what about the certificates?

  1. You need a CA list file with the CA certificates (minimum the root CA but the intermediate CAs would be fine too).
  2. Your server must send a correct TLS certificate chain. This is sometimes problematic because GnuTLS (which is used by libsoup2 which is used by libsyncml which is used by syncml-http-client) expect a 100 percent RFC 2246 compliant certificate chain. This means certificate 0 must be the server cert. Cert 1 the signer cert of the server cert and so on. GnuTLS is not so tolerant like OpenSSL or all the browsers which process the correct order by themselves.
  3. You must configure the file with the CA certs in the configuration of the plugin (e.g. msynctool --configure group member).

Do you support CRLs?

No, we do not support CRLs until now. I don't think that GnuTLS checks the CDPs in certificates.