Syncing with Samsung SGH-D600
Update!
Please have a look on this mail first: http://article.gmane.org/gmane.comp.misc.opensync.devel/2010
It's about the initial support for the Samsung mobiles.
Background
According to http://www.traud.de/gsm/samsung.htm, the phone has an "internal OBEX server". So I figured using the opensync "syncml-obex-client" (with libsyncml-0.4.3) would be the right choice for accessing the phone.
Actually it was wrong choise. syncml-obex-client works via OBEX bluetooth profile. As noted in http://www.traud.de/gsm/samsung.htm sasmsung phones work differently. To start SyncML session you should connect to the COM or DUN bluetooth profile and send specific AT command ( http://www.traud.de/gsm/mobileleader.htm). Unfortunately there is no opensync plugin for that :(
First, pair the phone and make sure that e.g. "sdptool browse" or "hcitool scan" show it. Then create the syncgroup:
msynctool --addgroup samsung msynctool --addmember samsung file-sync msynctool --addmember samsung syncml-obex-client
And configure the file-sync plugin. To do this, simply specify a path to the file-sync-dir:
msynctool --configure samsung 1
Then, configure the syncml-obex-client plugin:
msynctool --configure samsung 2
Here, I defined the following settings:
<?xml version="1.0"?> <config> <!-- (Only for bluetooth) The bluetooth address if the bluetooth mode is selected --> <bluetooth_address>Yo:ur:BT:Ad:dr:es:ss</bluetooth_address> <!-- (Only for bluetooth) The bluetooth channel to use. `sdptool browse $MAC` to search for the correct channel --> <bluetooth_channel>3</bluetooth_channel> <!-- (Only for USB) The usb interface number of the SYNCML-SYNC target. use syncml-obex-client -u (you will need access to the USB raw device) to find it. --> <interface>0</interface> <!-- The string that the plugin will use to identify itself. Some devices need a special string here. --> <identifier></identifier> <!-- The syncml version to use: 0 for 1.0, 1 for 1.1 and 2 for 1.2 --> <version>1</version> <!-- if the plugin should use wbxml --> <wbxml>1</wbxml> <!-- The username to use. Leave empty to not require a username --> <username></username> <!-- the password for the username --> <password></password> <!-- sets the connection type to use. 5 means obex over usb, 2 means obex over bluetooth --> <type>2</type> <!-- If wbxml is enabled, defines wether the wbxml should use string tables --> <usestringtable>0</usestringtable> <!-- Never send ADD command, but send REPLACE (not needed normally) --> <onlyreplace>0</onlyreplace> <!-- Workaround around for mobile phones which only use local timestamps and _no_ UTC timestamps! --> <onlyLocaltime>0</onlyLocaltime> <!-- Sets the maximum allowed size in bytes of incoming messages (some device need this option set). Example: 10000 --> <recvLimit>0</recvLimit> <maxObjSize>0</maxObjSize> <!-- The name of the contacts db. Must be the same as the phones sends --> <contact_db>CONTACTS</contact_db> <!-- The name of the calendar db. Must be the same as the phones sends --> <calendar_db>Calendar</calendar_db> <!-- The name of the note db. Must be the same as the phones sends --> <note_db>NOTES</note_db> </config>
NOTES and CONTACTS are written uppercase, because http://www.traud.de/gsm/samsungAlert.xml seems to imply this is correct. I might be wrong though.
Anyway, now's the time to issue
msynctool --sync samsung
which gives me
Synchronizing group "samsung" Member 1 of type file-sync just connected Member 2 of type syncml-obex-client had an error while connecting: Request not successfull: 0 Member 1 of type file-sync just disconnected All clients have disconnected The sync failed: Unable to connect one of the members Error while synchronizing: Unable to connect one of the members
Even when I define
export OSYNC_TRACE=/tmp/logs/ export SYNCML_TRACE=/tmp/logs/
and then restart the sync, I don't get any files in /tmp/logs, so I'm stuck.
Setting <wbxml>0</wbxml> strange-reboots the phone. Strange, because you don't have to enter the PIN when restarting...
For reference, this is what "sdptool browse" says about the phone:
Inquiring ...
Browsing 00:15:B9:62:10:77 ...
Service Name: WBTEXT
Service RecHandle: 0x10000
Service Class ID List:
"Error: This is UUID-128" (0xdb1d8f12-95f3-402c-9b97-bc504c9a55c4)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Error: This is UUID-128" (0x1cdb1d8f-1295-f340-2c9b-97bc504c9a55)
Version: 0x0100
Service Name: Serial Port
Service RecHandle: 0x10001
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 2
Profile Descriptor List:
"Serial Port" (0x1101)
Version: 0x0100
Service Name: Dial-up Networking
Service RecHandle: 0x10002
Service Class ID List:
"Dialup Networking" (0x1103)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 3
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100
Service Name: Voice GW
Service RecHandle: 0x10003
Service Class ID List:
"Headset Audio Gateway" (0x1112)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 4
Profile Descriptor List:
"Headset" (0x1108)
Version: 0x0100
Service Name: Voice GW
Service RecHandle: 0x10004
Service Class ID List:
"Handfree Audio Gateway" (0x111f)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 5
Profile Descriptor List:
"Handsfree" (0x111e)
Version: 0x0101
Service Name: Advanced audio source
Service RecHandle: 0x10005
Service Class ID List:
"Audio Source" (0x110a)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 25
"AVDTP" (0x0019)
uint16: 0x100
Profile Descriptor List:
"Advanced Audio" (0x110d)
Version: 0x0100
Service RecHandle: 0x10006
Service Class ID List:
"AV Remote Target" (0x110c)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 23
"AVCTP" (0x0017)
uint16: 0x100
Profile Descriptor List:
"AV Remote" (0x110e)
Version: 0x0100
Service Name: OBEX File Transfer
Service RecHandle: 0x10007
Service Class ID List:
"OBEX File Transfer" (0x1106)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 6
"OBEX" (0x0008)
Profile Descriptor List:
"OBEX File Transfer" (0x1106)
Version: 0x0100
Here is a very incomplete listing of Samsung AT commands that I couldn't verify.
This guy also tried opensync, but (I think) used the wrong bluetooth channel. When I set the bluetooth channel to 6, I get the same error he got.
If you need someone to do tests with this phone, contact me at gmx dot net, my username is "benadler".
