wiki:releases/0.2x/Nokia_E51

Nokia? E51

Low-level syncing over Bluetooth/OBEX works fine with libsyncml 0.4.6. Channel 10. Calendar syncing did not work with libsyncml 0.4.5 or earlier. Commands to test low-level operations:

jas@mocca:~$ syncml-obex-client -b $MAC $CHANNEL --slow-sync text/x-vcard Contacts --wbxml --identifier "PC Suite"
...
jas@mocca:~$ syncml-obex-client -b $MAC $CHANNEL --slow-sync text/x-vcalendar Calendar --wbxml --identifier "PC Suite"
...

To download both contact and calendar, you can use:

jas@mocca:~$ syncml-obex-client -b $MAC $CHANNEL --slow-sync text/x-vcard Contacts --slow-sync text/x-vcalendar Calendar --wbxml --identifier "PC Suite"
...

It is not clear to me whether to use text/x-vcalendar or text/calendar. Both appear to work. They may trigger some different behaviour, for example vCal vs iCal. Anyone?

With opensync (i.e., msynctool) I ran into severe problems when trying to sync both calendar and contacts at the same time. The phone hang displaying 'Ansluter' (Swedish for 'Connecting') and never replied. I debugged this and discovered that the phone cannot mix versions: either you use vcard21 and vevent10 or you use vcard30 and vevent20. You can't use vcard21 with vevent20 or vcard30 with vevent10.

OpenSync? configuration below. When I also use iSync on Mac OS X, I get duplicates in the non-phone stores in opensync. Slow-syncing the contact/calendar to an empty file store works relatively reliably.

jas@mocca:~$ msynctool --showgroup e51-file
Group: e51-file
Member 2: syncml-obex-client
	Configuration : <?xml version="1.0"?>
<config>
  <!-- sets the connection type to use. -->
  <!-- please note that actually OBEX over network is not supported -->
  <!-- 1 means obex over serial cable -->
  <!-- 2 means obex over bluetooth    -->
  <!-- 3 means obex over IRDA         -->
  <!-- 4 means obex over network      -->
  <!-- 5 means obex over usb          -->
  <type>2</type>
  
  <!-- (Only for bluetooth) The bluetooth address if the bluetooth mode is selected.
       `hciconfig scan` to search bluetooth devices.  -->
  <bluetooth_address>...</bluetooth_address>
  
  <!-- (Only for bluetooth) The bluetooth channel to use.
       `sdptool browse $MAC` to search for the correct channel -->
  <bluetooth_channel>10</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>PC Suite</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>
 
  <!-- 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>
  
  <!-- XXX: Currently you need to write this by your own.
       Later it's planned to create such entries on the fly during
       the discovery() call. Example database field:
-->
  <database>
     <name>Contacts</name>
     <objtype>contact</objtype>
     <objformat>vcard30</objformat>
  </database>

  <database>
    <name>Calendar</name>
    <objtype>event</objtype>
    <objformat>vevent20</objformat>
  </database>

</config>

Member 1: file-sync
	Configuration : <?xml version="1.0"?>
<config>
<!--
  <directory>
    <path></path>
    <objtype>data</objtype>
  </directory>

   
   Field objformat set the object format which should be used to store.
   objformat is optional - by default objformat is "file".

  --> 
        
  <directory>
    <path>/home/jas/sync/contact</path>
    <objtype>contact</objtype>
    <objformat>vcard30</objformat>
  </directory>

  <directory>
    <path>/home/jas/sync/event</path>
    <objtype>event</objtype>
    <objformat>vevent20</objformat>
  </directory>

</config>
jas@mocca:~$