Nokia n900 with Oracle Beehive

Here are basic steps how I got N900 syncEvolution work with Oracle Beehive calendar.

Making syncEvolution certified client to Beehive :

  1. As user owning Beehive installation go to directory of templates
    cd $ORACLE_HOME/beehive/seed/oma
  2. copy nokia_s60e5.xml to nokia_maemo.xml
    cp nokia_s60e5.xml nokia_maemo.xml
  3. edit nokia_maemo.xml Remove all lines found between lines
    <DeviceTypes>
    </DeviceTypes>
    Then add syncevolution device type. Add following lines between tags < DeviceTypes > and < /DeviceTypes >
    <DeviceType>
      <DeviceProfileName>Nokia Maemo</DeviceProfileName>
      <Name>Nokia Maemo</Name>
      <IsCertified>true</IsCertified>
      <DeviceClass></DeviceClass>
      <Processor/>
      <OS/>
      <Dev_inf_dtd_version>1.2</Dev_inf_dtd_version>
      <Software_version>3.2.1.0</Software_version>
      <Model>SyncEvolution</Model>
      <Manufacturer>Patrick Ohly</Manufacturer>
    </DeviceType>
  4. upload new type to Beehive
    beectl upload_device_profiles --file $ORACLE_HOME/beehive/seed/oma/nokia_maemo.xml
    Now syncEvolution is accepted client for Beehive.

Install and configure syncEvolution

I used version coming from extras-devel repo for N900 PR 1.1.1. Same still works for version coming with PR 1.2 After istall, Create new profile using temple Oracle. Profile (/home/user/.config/syncevolution/< PROFILENAME >/config.ini) needs some editing, here are main lines

syncURL = https://your.beehive.server/mobilesync/server
username = <your beehive username>
password = <your beehive password>
clientAuthType = basic       
deviceId = it basically can be anything,
I used generated uuid example : ae400286df214c9b89b63738d0ee4da9

If you use SSL, but get certification errors while sync, then add following (not that secure anymore)

SSLVerifyServer = 0       
SSLVerifyHost = 0   

OR add latest ca-cert-bundle (from http://curl.haxx.se/ca/cacert.pem). Copy that cacert.pem to some common directory on phone and add parameter pointing to it on config.ini

SSLServerCertificates = /usr/local/share/curl/curl-ca-bundle.crt

I only use one way calendar sync, so my calendar config has lines (/home/user/.config/syncevolution/< PROFILENAME >/sources/calendar/config.ini)

sync = refresh-from-server
type = calendar
uri = ./calendar
Be aware the oneway sync from server to client clears the client calendar and then inserts events from server

My profile name is oracle and here is example output from sync :

Nokia-N900-02-8:~$ syncevolution oracle
Local data changes to be applied to server during synchronization:
"*** calendar"
no changes
[INFO] calendar: starting first time sync from server
[INFO] calendar: started
[INFO] calendar: received 1/316
[INFO] calendar: added 1, updated 0, removed 0
[INFO] calendar: received 107/316
[INFO] calendar: added 107, updated 0, removed 0
[INFO] calendar: first time sync done successfully
   
Synchronization successful.
   
Changes applied during synchronization:
+---------------|-------ON CLIENT-------|-------ON SERVER-------|-CON-+
|               |   rejected / total    |   rejected / total    | FLI |
|        Source |  NEW  |  MOD  |  DEL  |  NEW  |  MOD  |  DEL  | CTS |
+---------------+-------+-------+-------+-------+-------+-------+-----+
|      calendar | 0/107 |  0/0  | 0/107 |  0/0  |  0/0  |  0/0  |  0  |
|      refresh-from-server, 0 KB sent by client, 106 KB received      |
|      item(s) in database backup: 107 before sync, 107 after it      |
+---------------+-------+-------+-------+-------+-------+-------+-----+
|          start Sat May 29 13:42:48 2010, duration 2:31min           |
|               synchronization completed successfully                |
+---------------+-------+-------+-------+-------+-------+-------+-----+
   
Changes applied to client during synchronization:
*** calendar ***
no changes
   
[INFO] removing /home/user/.cache/syncevolution/oracle-2010-05-23-12-25

For two-way sync, tasks and other possibilities, it is a another story, but with this you should be able to get started.