Syncing Phones with Horde via SyncML

I am running currently a Horde 3.3.8 installation (Debian Squeeze)

Nokia E51

My first experiences were with a Nokia E51 which supported a synchronization with Horde out of the Box. No Problems, worked like a charm for years until my phone was wearing down and down more. Nokia announced to discontinue Symbian and Android started to rise...

My first Android Phone was a Huawei Ideos X3 (also known as U8510) with an Android version 2.3.5. I downloaded the 4myPAL SyncML-client, which worked out of the box. I just had issues syncing the common phone numbers (thus I switched these to the private ones with a CSV mass down and upload in Horde).

Simvalley SP-120

At some point I found the Ideos X3 too slow and I wanted a phone with a second SIM-card-slot. First try was the Simvalley SP-120 with Android 4.0.x. Unfortunately 4MyPAL did not work properly (crashed after entering the login-information). Thus I tried Mokobi Sync.

Here, I already experienced that the most important phone numbers (private-home, work-home, work-mobile) were not synchronized to the phone. Comparing the sync-output (see SyncMLProblemReport in Horde) to the Huawei-output I recognized that the Huawei reported an empty CTCaps-Section in the XML-output. However, before I could dig deeper into the problem I recognized that the GPS of this phone was extremely unreliable (impossible to use it as a GPS in the car, location jumped always around a few hundred meters) and I sent it back to the dealer (after some discussion with Pearl and they being unable to provide a replacement for a couple of weeks). What a pity otherwise I was pleased with the phone.

Alcatel 997D One Touch

Next try was the Alcatel 997D One Touch (also double-SIM) and Android 4.0.x (update for 4.1.x promised but who knows....). Same issues here. 4myPAL crashes when entering the credentials and Mokobi Sync not synchronizing some of the most important telephone numbers (calender etc. everything fine). Same problem found in the log files. The Phone is announcing the capability of TEL;VOICE;HOME, etc. but Horde seems to know only TEL;HOME, etc. Similar for the e-mail addresses, where the Funambol-client uses EMAIL;INTERNET.... while Horde seems to know only EMAIL...

Then I evaluated the SyncML client from Synthesis (not restricted version is quite expensive). It is really nice and fancy and has a lot of options, e.g. automatically write birthdays from the contacts into the calendar, etc. and it synced all information although sometimes I found the connection between the horde and the phone-fields a bit strange. However, two times it deleted all my contacts on the server (fortunately I had a backup). Even with debugging on in Horde I could not easily find an error. I though about reporting it to Synthesis but decided that it might be a problem difficult to track and also specific to my configuration (contacts in an LDAP-database).

Next I found that also the official legacy Funambol Client is available at Google Play. However it suffered the same problem as the Mokobi Client (which is based on the funambol-Code as is 4myPAL). Initially I thought the Funambol Client would only sync with funambol-servers but it also works with any SyncML-Server.

Finally, I solved it on the Horde installation with patching the file State.php in the Horde SyncML folder (Patchfile) and creating a Alcatel997D.php file in the SyncML/Device folder which is called by the patched State.php if the Alcatel 997D is detected. Now I can finally sync my phone an after the recent firmware upgrade (October 2012) the once in a while crashes of the phone seem to be gone - keeping my fingers crossed :-). I am pleased with the overall performance of the phone and it enables me to freely choose the mobile internet provider (so I can keep my number and use any prepaid-SIM especially if I am in other countries).

If you want to use it for other phones (based on my experience I would expect the same behavoir by other 4.x Anroid-phones) you would have to adjust the Phone identification in the patch of State.php (find out via SyncMLProblemReport). However be warned!!!! The file Alcatel997D.php contains an ugly hack which removes all capabilities. This might break something although I believe that would be the same state as for the old Huawei phone. Probably it would be cleaner to adjust the capabilities in the array. However, I was too lazy to figure that out. If you have a cleaner solution please let me know --- hwahl (at) hwahl (dot) de.

Horde rules!