SDB:SyncML OBEX client
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 | contacts | calendar | notes | todo | PC Suite | 1.1 | | | - | - | 0.4.4.2 | ligfiets | ||||
6300 | v5.0 | contacts | calendar | notes | Todo | PC Suite | 1.1 | | | - | - | 0.4.4 | jh40 | "Clean Screen" required for sync | ||
6230 | v5.50 | contacts | calendar | notes | PC Suite | 1.1 | | | 0x421 | 0x40f | 0.4.2 | dgollub | "Clean Screen" required for sync | |||
6230i | v3.70 | contacts | calendar | notes | PC Suite | 1.1 | 0x421 | 0x428 | 0.4.2 | dgollub | "Clean Screen" required for sync | ||||
6650 | v3.31.TMD.01 | Contacts | Calendar | Notes | Tasks | PC Suite | 1.1 | 0x421 | 0x0E2 | 0.4.6-3build1 | albitz | ||||
6680 | v4.05.07 | Contacts | Calendar | Notes | PC Suite | 1.1 | - | - | 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 | Calendar | RcntTask | PC Suite | 1.1 | - | - | 0.4.4 | kwbolte | Config file is here: http://www.opensync.org/wiki/Model_N9300i | ||||
9500 | v5.22(1) | Contacts | Calendar | Notes | PC Suite | 1.1 | - | - | 0.4.2 | FunkyM | DB Names differ, "msynctool --sync nokia" works / multisync-gui fails on evo2-sync | ||||
E51 | v100.34.20 | Contacts | Calendar | Notes | PC Suite | 1.1 | - | - | 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 | Notes | PC Suite | 1.1 | 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 | Calendar | Notes | PC Suite | 1.1 | - | - | 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 | Contacts | Calendar | Notes | Calendar | PC Suite | 1.1 | 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 | Calendar | Notes | Tasks | PC Suite | 1.1 | - | - | 0.4.4 | lijews | Works fines in both sides, but I need to disable Notes synchro | |||
E90 | Contacts | Calendar | Notes | PC Suite | 1.1 | - | - | 0.4.4 | kwbolte | Config file is here:: http://www.opensync.org/wiki/Nokia_E90 | |||||
N73 | v3.0638.0.0.1 | Contacts | Calendar | Notes | PC Suite | 1.1 | - | - | 0.4.2 | Priwinn | "Clean Screen" not neccessary, only tested with kdepim-sync | ||||
N95 | v10.2.006 | Contacts | Calendar | Notes | PC Suite | 1.0 | 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 | agenda | notes | tasks | 1.1 | d016 | 0fce | 0.4.2 | fasa01 | tested with SL10.1,SL10.2 | ||||
K530i | R8BB001 | contacts | agenda | notes | tasks | 1.1 | d079 | 0fce | 0.4.4-42 | RedDwarf | openSUSE 10.3 GM | ||||
K750i | contacts | agenda | notes | tasks | 1.1 | d016 | 0fce | 0.4.2 | cstender | ||||||
K770i | R8AB001 | Contacts | Calendar | Notes | Tasks | 1.1 | d0b7 | 0fce | 0.4.4-42 | Dukla2000 | openSUSE 10.3 GM | ||||
K800i | R1KG001 | contacts | agenda | notes | tasks | 1.1 | 0.4.4-42 | drye | openSUSE 10.3 GM | ||||||
V630i | R1ED001 | contacts | agenda | notes | tasks | 1.1 | d043 | 0fce | 0.4.4_SVN237 | felixmoeller2 | openSUSE 10.3-alpha2 | ||||
W800i | R1AA008 | contacts | calendar agenda |
notes | tasks | 1.1 | d028 | 0fce | 0.4.4-98 | casualprogrammer | openSUSE 11.0 RC1 | ||||
W810i | O2-firmware | contacts | agenda | notes | tasks | 0.4.4-42 | Danielmader | openSUSE 10.3 GM | |||||||
W902 | R3EA036 | contacts | agenda | notes | tasks | 1.1 | 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