== What is OpenSync? ==
A great introduction in the form of [[http://files.opensuse.org/opensuse/en/b/bb/OpenSync_FOSDEM_2007.pdf|a presentation from FOSDEM 2007]]
== Example: Syncing a Nokia 5500 phone to filesystem trough SyncML, OBEX and a USB-cable ==
First, backup you phone data using a Windows machine and Nokia's PC Suite. The make a new sync profile in your phone: Main menu > Connections > Syncing > Menu > New profile. Set its settings to name: Linux, Server: Linux.
Connect you phone to the computer using a USB cable and choose "PC Suite mode".
Open a terminal and run:
{{{sudo apt-get install opensync-plugin-evolution opensync-plugin-file opensync-plugin-syncml opensyncutils multisync-tools multisync0.90}}}
Check what user group the USB device is
{{{
ls -la /dev/ttyA*
crw-rw---- 1 root dialout 166, 0 2008-02-02 16:11 /dev/ttyACM0
}}}
..and check that your username is in the group, so that your user can write to the device.
{{{
cat /etc/group | grep dial
dialout:x:20:cupsys,otto,hannele
}}}
Also you need to grant access based on the USB device ID:
{{{
$ lsusb
Bus 004 Device 003: ID 13fe:1a00
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 002: ID 046d:c016 Logitech, Inc. M-UV69a Optical Wheel Mouse
Bus 003 Device 001: ID 0000:0000
Bus 001 Device 002: ID 0421:043f Nokia Mobile Phones
}}}
To add the udev rule by running {{{sudo nano /etc/udev/rules.d/40-permissions.rules}}} and adding to the last line:
{{{
BUS=="usb", SYSFS{idVendor}=="0421", SYSFS{idProduct}=="043f", MODE="0660", GROUP="users"
}}}
Then run {{{sudo udevcontrol reload_rules}}} (if command udevcontrol is not found, try {{{sudo udevadm control --reload-rules}}})
make directory for sync files:
{{{
cd ~
mkdir sync
}}}
Run multisync (GTK-gui for syncing):
{{{multisync0.90}}}
Using the gui, add groupd "phone2nokia". Then add member "syncml-obex-client" and set its conf to:
{{{
0
Linux
2
1
5
1
0
10000
Contacts
Calendar
Notes
}}}
Then add member file-sync
{{{
/home/'''USER'''/sync/
FALSE
}}}
On the group main page disable syncing of notes and data, since they do not exist.
Finally run "refresh" to sync.
== See also ==
* http://www.opensync.org/wiki/syncml-guide
* http://libsyncml.opensync.org/wiki/obex-guide