Add ActiveSync support to Horde for allowing Horde to sync with mobile devices using the mobile device's support for Microsoft Exchange/ActiveSync. Use Z-Push library (http://z-push.sourceforge.net) for handling ActiveSync protocol communication.
Integrate the Z-Push library into Horde. Provide the ability for Horde to provide over the air synchronization of email, contacts, and calendar data to devices such as the iPhone/iPod Touch, Android and any other system supporting ActiveSync. This implementation supports Microsoft ActiveSync protocol versions up to 2.5 - the version implemented by Microsoft Exchange 2003.
The ActiveSync code has been merged into git master, but is not active by default. You should be aware that this code is still very experimental. While it mostly works for me in my tests, on my test devices, there are likely still many bugs. It may work, it might not, or it might make your iPod grow legs and run for higher ground. You have been warned.
To activate the server, you need to enable it in Horde's configuration. You will see an ActiveSync tab. Right now, the only thing configurable is the directory you would like to store the state files in.
You will also need to configure your webserver to redirect the URL Microsoft-Server-ActiveSync to your horde/rpc.php file. How you do this depends on your webserver and it's configuration. For Apache, something like:
Alias /Microsoft-Server-ActiveSync /var/www/html/horde/rpc.php
or for lighttpd:
alias.url = ("/Microsoft-Server-ActiveSync" => "/var/www/html/horde/rpc.php");
Contacts and Calendar syncing is mostly working. The most notable issue is with recurring event exceptions. Exceptions created on the PIM work to a point, exceptions created in Kronolith, well, not so much.This code has been tested to some degree on the following devices:
|Android SDK Emulator||2.0.1 and 2.1||Contacts only as the emulator does not have a native calendar application|
|Motorola Droid||Android 2.0.1||Contacts and Calendar data (Droid's Corporate Calendar has a buggy client implementation)|
|TouchDown For Droid||Version 5.1.0028||Contacts and Calendar|
|iPod Touch||3.1.3||Contacts and Calendar|
It's beyond the scope of this page to go into detail for each individual device. In general, you will need to create a new account on your device. The account type should be something like Microsoft Exchange or ActiveSync. Some devices use Corporate. You will need to enter your normal Horde username and password in the appropriate fields. In the field for the server address, you should enter the root of the webserver or virtual host that hosts Horde. For example, if you host horde at http://host.example.com/horde then you should enter http://host.example.com. You can ignore any reference to a domain entry.
A special note for the iPhone/iPod (and possibly others) - if you do not use a SSL enabled site you may receive errors about not being able to find the ActiveSync server. If this happens, just continue, or save, or whatever your option is to continue. On the iPhone, after everything is completely set up, you must go back into the account settings and disable SSL.
After the connection particulars are entered, you should choose to enable the folders that you want sync'd. Right now only Contacts and Calendar are supported.
Some discussion/issues/info on calendar sycing
Some discussion on remote wipe issues with various devices
Another AS implementation in PHP - there is some good implementation information there for the taking.
Back to the Project List