OpenSync/SyncML-OBEX-Client

From openSUSE

Contents

Introduction

The SyncML OBEX Client plugin allows many modern mobile phones to do a local synchronization. The synchronization is supported via Bluetooth and USB. In openSUSE 10.2 Beta 2 there is no permission for the desktop user to access the USB raw interface by default. This will hopefully change ( still not there with 11.0 RC1 ) when we receive lots of USB Products and Vendor IDs of mobile phones, from the community. Then we can provide for the next openSUSE Beta a hal-resmgr fdi file which grants access to the USB RAW interface of your mobile phone. This is already done for palm devices.

Please also add the detailed information of your mobile phone to the "Test device" section, if you don't have any success yet.

Tested Devices

Nokia


Model Firmware Contact DB Event DB Note DB Todo DB wbxml identifier SyncML Bluetooth USB USB Product ID USB Vendor ID libsyncml Tester comments
2630 contacts Image:22px-Tick.png calendar Image:22px-Tick.png notes Image:22px-Tick.pngtodo Image:22px-Tick.png Image:22px-Tick.png PC Suite 1.1 Image:22px-Tick.png - - 0.4.4.2 ligfiets
6300 v5.0 contacts Image:22px-Tick.png calendar Image:22px-Tick.png notes Image:22px-Tick.png Todo Image:22px-Tick.png Image:22px-Tick.png PC Suite 1.1 Image:22px-Tick.pngImage:22px-Tick.png - - 0.4.4 jh40"Clean Screen" required for sync
6230 v5.50 contacts Image:22px-Tick.png calendar Image:22px-Tick.png notes Image:22px-Tick.png Image:22px-Tick.png PC Suite 1.1 Image:22px-Tick.pngImage:22px-Tick.png 0x421 0x40f 0.4.2 dgollub "Clean Screen" required for sync
6230i v3.70 contacts Image:22px-Tick.png calendar Image:22px-Tick.png notes Image:22px-Tick.png Image:22px-Tick.png PC Suite 1.1 Image:22px-Tick.pngImage:22px-Tick.png 0x421 0x428 0.4.2 dgollub "Clean Screen" required for sync
6680 v4.05.07 Contacts Calendar Image:22px-Tick.png Notes Image:22px-Tick.png PC Suite 1.1 Image:22px-Tick.png - - 0.4.2-0.4.4 Arinium Using msynctool works perfectly. Syncml-obex-client as described here doesn't work at all.
9300i v6.27(00) Contacts Image:22px-Tick.png Calendar Image:22px-Tick.png RcntTask Image:22px-Tick.png Image:22px-Tick.png PC Suite 1.1 Image:22px-Tick.png - - 0.4.4 kwbolte Config file is here: http://www.opensync.org/wiki/Model_N9300i
9500 v5.22(1) Contacts Image:22px-Tick.png Calendar Image:22px-Tick.png Notes Image:22px-Tick.png PC Suite 1.1 Image:22px-Tick.png - - 0.4.2 FunkyM DB Names differ, "msynctool --sync nokia" works / multisync-gui fails on evo2-sync
E51 v100.34.20 Contacts Image:22px-Tick.png Calendar Image:22px-Tick.png Notes Image:22px-Tick.png Image:22px-Tick.png PC Suite 1.1 Image:22px-Tick.png - - 0.4.6 User:Jas4711 Bugs in opensync (?) causes duplicated contacts when I also use iSync on Mac OS X. 0.4.5 did not work with calendar syncing.
E65 v2.0633.01.00 Contacts Image:22px-Tick.png Calendar Image:22px-Tick.png Notes Image:22px-Tick.png PC Suite 1.1 Image:22px-Tick.png - - 0.4.2-0.4.4 Arinium Using msynctool works but only one way: E65->Suse. Syncml-obex-client as described here doesn't work at all.
E90 Contacts Image:22px-Tick.png Calendar Image:22px-Tick.png Notes Image:22px-Tick.png Image:22px-Tick.png PC Suite 1.1 Image:22px-Tick.png - - 0.4.4 kwbolte Config file is here:: http://www.opensync.org/wiki/Nokia_E90
N73 v3.0638.0.0.1 Contacts Image:22px-Tick.png Calendar Image:22px-Tick.png Notes Image:22px-Tick.png Image:22px-Tick.png PC Suite 1.1 Image:22px-Tick.png - - 0.4.2 Priwinn "Clean Screen" not neccessary, only tested with kdepim-sync


  • "Clean Screen" required for sync
    • This means that the mobile phone will not accept a synchronization request when there is another application is running. Even the previous synchronization status report avoid a sync request.
    • In short: Make sure no application or dialog is visible and the "screen is clean".
    • "Received an transport error: Request not successfull: 67" - will appear when synchronization gets rejected

Sony Ericsson

  • On Sony Ericsson you can ask for firmware version with: "> * < < * < *" , "<>" is the joystick left-right
Model Firmware Contact DB Event DB Note DB Todo DB wbxml identifier SyncML Bluetooth USB USB Product ID USB Vendor ID libsyncml Tester comments
K750i contacts Image:22px-Tick.png agenda Image:22px-Tick.png notes Image:22px-Tick.png tasks Image:22px-Tick.png 1.1 Image:22px-Tick.png d016 0fce 0.4.2 cstender
D750i R1N035 contacts Image:22px-Tick.png agenda Image:22px-Tick.png notes Image:22px-Tick.png tasks Image:22px-Tick.png Image:22px-Tick.png 1.1 Image:22px-Tick.pngImage:22px-Tick.png d016 0fce 0.4.2 fasa01 tested with SL10.1,SL10.2
V630i R1ED001 contacts Image:22px-Tick.png agenda Image:22px-Tick.png notes Image:22px-Tick.png tasks Image:22px-Tick.png Image:22px-Tick.png Image:22px-Tick.png 1.1 Image:22px-Tick.png d043 0fce 0.4.4_SVN237 felixmoeller2 openSUSE 10.3-alpha2
W800i R1AA008 contacts Image:22px-Tick.png calendar
agenda Image:22px-Tick.png
notes Image:22px-Tick.png tasks Image:22px-Tick.png Image:22px-Tick.png 1.1 Image:22px-Tick.pngImage:22px-Tick.png d028 0fce 0.4.4-98 casualprogrammer openSUSE 11.0 RC1
W810i O2-firmware contacts Image:22px-Tick.png agenda Image:22px-Tick.png notes Image:22px-Tick.png tasks Image:22px-Tick.png Image:22px-Tick.png 0.4.4-42 Danielmader openSUSE 10.3 GM
K530i R8BB001 contacts Image:22px-Tick.png agenda Image:22px-Tick.png notes Image:22px-Tick.png tasks Image:22px-Tick.png Image:22px-Tick.png 1.1 Image:22px-Tick.png d079 0fce 0.4.4-42 RedDwarf openSUSE 10.3 GM
K800i R1KG001 contacts Image:22px-Tick.png agenda Image:22px-Tick.png notes Image:22px-Tick.png tasks Image:22px-Tick.png Image:22px-Tick.png 1.1 Image:22px-Tick.png 0.4.4-42 drye openSUSE 10.3 GM
K770i R8AB001 Contacts Image:22px-Tick.png Calendar Image:22px-Tick.png Notes Image:22px-Tick.png Tasks Image:22px-Tick.png Image:22px-Tick.png 1.1 Image:22px-Tick.png d0b7 0fce 0.4.4-42 Dukla2000 openSUSE 10.3 GM

Testcase Basics

For the following testcases you will the command line program "syncml-obex-client" which is provided by the libsyncml package. The application is only used for testing and is quite complicated to use. Some basics:

--sync <type> <database>
--slow-sync <type> <database>

The --slow-sync parameter triggers a so called "slow sync" which request all entries of the requested database. --sync only request new or modified entries since last synchronization (not very helpful for testing).

  • type: stands for the mimetype -
    • text/x-vcard - for contacts
    • text/x-vcalendar - for events
    • text/plain - for notes
  • database: is the name of the database in the device which stores the entries. Known database names:
    • contacts
    • calendar
    • notes
    • tasks
    • agenda (on some Sony Ericsson, for W800i both calendar as well as agenda work)


--identifier <name>

This parameter sets the "Synchronization Software" Identifier, which will be used to identify to the mobile phone. Most mobile phones ignore this identifier value. So far we only know Nokia mobile phones, which reject the synchronization when the identifier is wrong. The identifier for Nokia mobile phones is:

  • "PC Suite"
--wbxml

This switch to WAP Binary XML instead of plain XML in the synchronization. So far as we known this is used by most mobile phones, so we enable it by default. If you have trouble with the initial sync testcase remove this parameter.

-u <id>

This parameter is for USB connections. Only -u without id, will only list all available interfaces. There is no access for users to the USB raw device by default at the moment. Please add the USB product and vendor id of your mobile phone to the "Tested Device" section, so we can provide access to the USB raw device for the next release.

-b <addr> <channel>

This parameter is for Bluetooth connections. For <addr> fill in the MAC address of your mobile phone and for <channel> the number of the SyncML service.

hcitool scan

Scans for Bluetooth devices and list the name of the device and the MAC address. (Please make sure your Bluetooth is enable on your mobile phone and is discoverable)

sdptool browse <mac>

Shows the Bluetooth service of the device and their channel numbers. Look for "SyncML" or "SyncML Client".

Testcases

Hint: export $MAC, $CHANNEL and $USBINT with the correct values and you can just copy & paste the test cases

If you don't have a Nokia mobile phone only copy until --identifier "PC Suite" or copy only until --wbxml if your device doesn't use wbxml.


Initial SyncML connection - read only

Contacts:

# Bluetooth
syncml-obex-client -b $MAC $CHANNEL --slow-sync text/x-vcard contacts --wbxml --identifier "PC Suite"
# USB
syncml-obex-client -u $USBINT --slow-sync text/x-vcard contacts --wbxml --identifier "PC Suite"


Events:

syncml-obex-client -b $MAC $CHANNEL --slow-sync text/x-vcalendar calendar --wbxml --identifier "PC Suite"
syncml-obex-client -u $USBINT --slow-sync text/x-vcalendar calendar --wbxml --identifier "PC Suite"

(On some Sony Ericsson mobile phones you have to use "agenda" instead "calendar")


Notes:

syncml-obex-client -b $MAC $CHANNEL --slow-sync text/plain notes --wbxml --identifier "PC Suite"
syncml-obex-client -u $USBINT --slow-sync text/plain notes --wbxml --identifier "PC Suite"


Todos: (only for devices which stores Todos/Tasks not in the Event database)

syncml-obex-client -b $MAC $CHANNEL --slow-sync text/x-vcalendar tasks --wbxml --identifier "PC Suite"
syncml-obex-client -u $USBINT --slow-sync text/x-vcalendar tasks --wbxml --identifier "PC Suite"


Synchronize multiple entries to device

syncml-obex-client -b $MAC $CHANNEL --slow-sync text/x-vcard contacts --slow-sync text/x-vcalendar calendar --wbxml --identifier "PC Suite"
syncml-obex-client -u $USBINT --slow-sync text/x-vcard contacts --slow-sync text/x-vcalendar calendar --wbxml --identifier "PC Suite"

Synchronize a single entry to device

syncml-obex-client -b $MAC $CHANNEL --sync text/x-vcalendar calendar --add text/x-vcalendar /tmp/test.vcal --wbxml --identifier "PC Suite"
syncml-obex-client -u $USBINT --sync text/x-vcalendar calendar --add text/x-vcalendar /tmp/test.vcal --wbxml --identifier "PC Suite"

Using your SyncML-OBEX-cell as a User

To use your cell as a normal user the permissions have to be set correctly. This is done by resmgr, hal and co.

Create a file /etc/hal/fdi/policy/20user/cell.fdi:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.category" string="usbraw">
      <match key="@info.parent:usb_device.vendor_id" int="<toInsert>">
        <match key="@info.parent:usb_device.product_id" int="<toInsert>">
          <merge key="resmgr.class" type="string">cell</merge>
        </match>
      </match>
    </match>
  </device>
</deviceinfo>

And to create the class, create /etc/resmgr.conf.d/50-cell.conf:

class cell
class desktop includes cell

usb_device.vendor_id and usb_device.product_id have to be adapted with the correct ids as seen with lsusb.

An alternative file /etc/hal/fdi/policy/20user/cell.fdi:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.bus" string="usb_device">
      <match key="usb_device.vendor_id" int="<toInsert>">
        <match key="usb_device.product_id" int="<toInsert>">
          <merge key="resmgr.class" type="string">cell</merge>
        </match>
      </match>
    </match>
  </device>
</deviceinfo>

Read more in Bug 258986.

Links

libsyncml project

Open Mobile Alliance (OMA) - SyncML Specification