SDB:SyncML OBEX client

Jump to: navigation, search
Icon-cleanup.png
This article is in need of attention because it does not follow our wiki guidelines.
If you want to contribute, please read the rules for this wiki and if you have any questions, don't hesitate to contact the wiki team, we are more then willing to help you! :-)

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 Icon-question.png contacts Icon-checked.png calendar Icon-checked.png notes Icon-checked.png todo Icon-checked.png Icon-checked.png PC Suite 1.1 Icon-checked.png|Icon-checked.png Icon-question.png - - 0.4.4.2 ligfiets
6300 v5.0 contacts Icon-checked.png calendar Icon-checked.png notes Icon-checked.png Todo Icon-checked.png Icon-checked.png PC Suite 1.1 Icon-checked.png|Icon-checked.png Icon-checked.png - - 0.4.4 jh40 "Clean Screen" required for sync
6230 v5.50 contacts Icon-checked.png calendar Icon-checked.png notes Icon-checked.png NotApplicable.png Icon-checked.png PC Suite 1.1 Icon-checked.png|Icon-checked.png Icon-checked.png 0x421 0x40f 0.4.2 dgollub "Clean Screen" required for sync
6230i v3.70 contacts Icon-checked.png calendar Icon-checked.png notes Icon-checked.png NotApplicable.png Icon-checked.png PC Suite 1.1 Icon-checked.png Icon-checked.png 0x421 0x428 0.4.2 dgollub "Clean Screen" required for sync
6650 v3.31.TMD.01 Contacts Icon-checked.png Calendar Icon-checked.png Notes Icon-checked.png Tasks Icon-checked.png Icon-checked.png PC Suite 1.1 Icon-question.png Icon-checked.png 0x421 0x0E2 0.4.6-3build1 albitz
6680 v4.05.07 Contacts NotApplicable.png Calendar Icon-checked.png Notes NotApplicable.png Icon-question.png Icon-checked.png PC Suite 1.1 Icon-checked.png NotApplicable.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 Icon-checked.png Calendar Icon-checked.png RcntTask Icon-checked.png Icon-question.png Icon-checked.png PC Suite 1.1 Icon-checked.png Icon-question.png - - 0.4.4 kwbolte Config file is here: http://www.opensync.org/wiki/Model_N9300i
9500 v5.22(1) Contacts Icon-checked.png Calendar Icon-checked.png Notes Icon-question.png Icon-question.png Icon-checked.png PC Suite 1.1 Icon-checked.png NotApplicable.png - - 0.4.2 FunkyM DB Names differ, "msynctool --sync nokia" works / multisync-gui fails on evo2-sync
E51 v100.34.20 Contacts Icon-checked.png Calendar Icon-checked.png Notes Icon-checked.png Icon-question.png Icon-checked.png PC Suite 1.1 Icon-checked.png Icon-question.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.
E61i v3.0633.69.00 Contacts Icon-checked.png Icon-question.png Notes Icon-checked.png Icon-question.png Icon-checked.png PC Suite 1.1 Icon-question.png Icon-checked.png 0x421 0x001 0.4.4 User:peternixon Cant get Calendar or Toto list to sync yet. I receive the error: Received an Alert for the DS Server at Calendar: Type: 201, Last , Next 20090825T212021Z

Slowsyncing Just received a new session with ID 1 Received the DevInf Session 1 reported final. flushing Received an reply to our Alert Session 1 reported final. flushing Session 1 has ended

E65 v2.0633.01.00 Contacts Icon-checked.png Calendar Icon-checked.png Notes NotApplicable.png Icon-question.png Icon-checked.png PC Suite 1.1 Icon-checked.png NotApplicable.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.
E65 Icon-question.png Contacts Icon-checked.png Calendar Icon-checked.png Notes NotApplicable.png Calendar Icon-checked.png Icon-checked.png PC Suite 1.1 NotApplicable.png Icon-checked.png 0x0421 0x0508 0.4.2-0.4.4 Ugnb94na Syncing E65 (SyncML-OBEX-Client) with Evolution 2.x (evo2-sync). First sync worked fine (E65->Evolution), subsequent sync without having changed anything on either side reported lots of conflicts. (making it unusable for me as it is).
E65 v2.0633.65.01 Contacts Icon-checked.png Calendar Icon-checked.png Notes Icon-cross.png Tasks Icon-checked.png Icon-checked.png PC Suite 1.1 Icon-checked.png Icon-cross.png - - 0.4.4 lijews Works fines in both sides, but I need to disable Notes synchro
E90 Icon-question.png Contacts Icon-checked.png Calendar Icon-checked.png Notes Icon-checked.png Icon-question.png Icon-checked.png PC Suite 1.1 Icon-checked.png Icon-question.png - - 0.4.4 kwbolte Config file is here:: http://www.opensync.org/wiki/Nokia_E90
N73 v3.0638.0.0.1 Contacts Icon-checked.png Calendar Icon-checked.png Notes Icon-checked.png Icon-question.png Icon-checked.png PC Suite 1.1 Icon-checked.png NotApplicable.png - - 0.4.2 Priwinn "Clean Screen" not neccessary, only tested with kdepim-sync
N95 v10.2.006 Contacts Icon-checked.png Calendar Icon-checked.png Notes Icon-checked.png Icon-question.png Icon-checked.png PC Suite 1.0 Icon-question.png Icon-checked.png 0x421 0x4f0 0.4.4-99.1 mceli Tested with command line and Kitchensync, N95->KDEPIM


  • "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
D750i R1N035 contacts Icon-checked.png agenda Icon-checked.png notes Icon-checked.png tasks Icon-checked.png Icon-checked.png NotApplicable.png 1.1 Icon-checked.png Icon-checked.png d016 0fce 0.4.2 fasa01 tested with SL10.1,SL10.2
K530i R8BB001 contacts Icon-checked.png agenda Icon-checked.png notes Icon-checked.png tasks Icon-checked.png Icon-checked.png NotApplicable.png 1.1 Icon-question.png Icon-checked.png d079 0fce 0.4.4-42 RedDwarf openSUSE 10.3 GM
K750i Icon-question.png contacts Icon-checked.png agenda Icon-checked.png notes Icon-checked.png tasks Icon-question.png Icon-checked.png NotApplicable.png 1.1 Icon-checked.png Icon-question.png d016 0fce 0.4.2 cstender
K770i R8AB001 Contacts Icon-checked.png Calendar Icon-checked.png Notes Icon-checked.png Tasks Icon-checked.png Icon-checked.png NotApplicable.png 1.1 Icon-question.png Icon-checked.png d0b7 0fce 0.4.4-42 Dukla2000 openSUSE 10.3 GM
K800i R1KG001 contacts Icon-checked.png agenda Icon-checked.png notes Icon-checked.png tasks Icon-checked.png Icon-checked.png NotApplicable.png 1.1 Icon-checked.png Icon-question.png Icon-question.png Icon-question.png 0.4.4-42 drye openSUSE 10.3 GM
V630i R1ED001 contacts Icon-checked.png agenda Icon-checked.png notes Icon-checked.png tasks Icon-checked.png Icon-checked.png Icon-checked.png 1.1 Icon-question.png Icon-checked.png d043 0fce 0.4.4_SVN237 felixmoeller2 openSUSE 10.3-alpha2
W800i R1AA008 contacts Icon-checked.png calendar
agenda Icon-checked.png
notes Icon-checked.png tasks Icon-checked.png Icon-checked.png NotApplicable.png 1.1 Icon-checked.png Icon-checked.png d028 0fce 0.4.4-98 casualprogrammer openSUSE 11.0 RC1
W810i O2-firmware contacts Icon-checked.png agenda Icon-checked.png notes Icon-checked.png tasks Icon-checked.png Icon-question.png Icon-question.png Icon-question.png Icon-checked.png Icon-question.png Icon-question.png Icon-question.png 0.4.4-42 Danielmader openSUSE 10.3 GM
W902 R3EA036 contacts Icon-checked.png agenda Icon-checked.png notes Icon-checked.png tasks Icon-checked.png Icon-checked.png Icon-question.png 1.1 Icon-checked.png Icon-checked.png d0f5 0fce 0.4.4-29 Czerwinski1977 openSUSE 11.1

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. For example, a Nokia E61i gives the following output (Interface 0 is the correct one to use).

syncml-obex-client -u
Found 3 USB OBEX interfaces
Interface 0:
       Manufacturer: Nokia
       Product: Nokia E61i
       Interface description: SYNCML-SYNC
Interface 1:
       Manufacturer: Nokia
       Product: Nokia E61i
       Interface description: PC Suite Services
Interface 2:
       Manufacturer: Nokia
       Product: Nokia E61i
       Interface description: SYNCML-DM

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.

  • Remember that the data base name is case sensitive. if you get "Received an transport error: Forbidden (0x43)" make sure that you enter the database name correctly,even with respect to the case.

for eg. on my N70 the database names start with capitals. So had to use Contacts in place of contacts.

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.subsystem" 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