Using opensync with old Nokia phones

This guide is for people which nokia phone doesn't support syncml over obex. for example Nokia 7650.

Setting up your phone

* download and install gnubox on your phone

gnubox is a piece of software that change the routing table of your mobile phone. so you are able to use a connection profile with bluetooth or rather with infrared instead of GPRS. be sure that you install the right version for your phone.

http://gnubox.dnsalias.org/gnubox/#download

* create a connection profile

Connection name: Bt
Data bearer: High speed GSM
Dial-up number: 2222
User name: None
Prompt password: No
Password: ****
Authentication: Normal
Gateway IP address: 0.0.0.0
Data call type: Analogue
Maximum data speed: Automatic

advanced settings:
Phone IP address: Dynamic
Primary name server: 0.0.0.0
Second. name server: 0.0.0.0
Use callback: No
Callback type: Use server no.
Callback number: None
Use PPP compression: Yes
Use login script: No
Login script: None
Modem initialisation: None

* use gnubox

be sure that you called the connection profile "Bt".

gnubox->2box Direct->Bluetooth

* install remote sync

on some old nokia phones the syncml software was not shipped with the phone. so you maybe have to download and install it seperatly. for the nokia 7650 you can download it from here.

* create the syncprofile

Sync profile name: evolution
Bearer type: Internet
Access point: Bt
Host address: 192.168.69.1
Port: 8080
User name: test
Password: test
Calendar: No
Remote calendar: calendar
Contacts: Yes
Remote contacts: addressbook
HTTP authentication: Yes
HTTP user name: test
HTTP password: test

download and install opensync

* use the latest version from svn

* configure a sync pair

$ msynctool --addgroup nokia
$ msynctool --addmember nokia syncml-http-server
$ msynctool --addmember nokia evo2-sync
$ msynctool --configure nokia 1
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<config>
	<username></username>
	<password></password>
	<url></url>
	<port>8080</port>
	<usestringtable>0</usestringtable>
	<onlyreplace>0</onlyreplace>
	<recvLimit>0</recvLimit>
	<maxObjSize>0</maxObjSize>
	<contact_db>addressbook</contact_db>
	<calendar_db></calendar_db>
	<note_db></note_db>
</config>
$ msynctool --configure nokia 2
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<config>
	<address_path>default</address_path>
	<calendar_path></calendar_path>
	<tasks_path></tasks_path>
</config>
$ msynctool --sync nokia --wait

* get the btaddress and the serial port channel from your phone

$ hcitool scan
Scanning ...
        00:00:00:00:00:00       f-bert

$ sdptool browse  00:00:00:00:00:00
Browsing 00:00:00:00:00:00 ...
...
Service Name: Bluetooth Serial Port
Service RecHandle: 0x10002
Service Class ID List:
  "Serial Port" (0x1101)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 2
Language Base Attr List:
  code_ISO639: 0x656e
  encoding:    0x6a
  base_offset: 0x100
...

* wait of a connection from the phone

  • maybe you have to replace the serial port channel number
  • 192.168.69.1 should be replaced with the ip of eth0
  • 192.168.69.2 the phone will get this ip number
$ rfcomm bind 3 00:00:00:00:00:00 2
$ sdptool add --channel=2 SP
$ dund -n --listen --channel 2 --msdun noauth debug nodetach \
192.168.69.1:192.168.69.2 crtscts 115200 ms-dns 192.168.69.1 lock

maybe you must send anything to your phone at the very first time.

echo -n x > /dev/rfcomm3

Sync

sync->options->synchronize