[cvs] [Wiki] changed: Project/ActiveSync
Michael Rubinsky
mrubinsk at horde.org
Sat Apr 24 17:26:03 UTC 2010
mrubinsk Sat, 24 Apr 2010 13:26:02 -0400
Modified page: http://wiki.horde.org/Project/ActiveSync
New Revision: 1.48
Change log: git rid of a big todo =)
@@ -17,11 +17,11 @@
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.
++ Trying it out
-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.
+The !ActiveSync code has been merged into git master, but is not
active by default. You should be aware that this code is still
considered experimental. While it mostly works for me in my tests, on
my test devices, there may still be 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.
+To activate the server, you need to enable it in Horde's
configuration, on the !ActiveSync tab. There are two possible state
drivers, a file based driver based on Z-Push's //diff// backend, and a
Horde_History based driver that is orders of magnitude more efficient
for synching with Horde. The file based state driver is included as a
state driver for those using the Horde_ActiveSync library as a
solution for other groupware backends. You should use the History
driver with Horde. You will need to create the SQL tables that the
driver uses using the //horde/scripts/sql/horde_activesync.sql//
creation script.
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:
<code>
Alias /Microsoft-Server-ActiveSync /var/www/html/horde/rpc.php
@@ -60,20 +60,13 @@
+++ Provisioning/!RemoteWipe
Provisioning allows devices to be more tightly registered with a
particular server. It enables the server to be able to send policy
settings to the device. These policy settings include things like
requiring a PIN to unlock the device, the complexity of the PIN
required, the number of failed login attempts allowed etc...
Additionally, it enables devices to be remotely wiped so that if a
device is lost or stolen, the user or administrator can request the
device to be wiped.
-As of yet, no user interface yet exists for initiating a remote wipe,
but the functionality is there. If you want to test this you need to:
+As of yet, no user interface yet exists for initiating a remote wipe,
but the functionality is there. To manually test this, you need to set
the value of the device_rwstatus field from 0 to 2 and change the
value of device_policykey to 0 in the horde_activesync_device table
for the device you want to wipe. **PLEASE MAKE SURE YOU KNOW WHAT YOU
ARE DOING - THIS RESETS SOME DEVICES TO FACTORY DEFAULTS**
-# Open up the device's state info file. This is in your state
directory and is named info-{deviceidgoeshere}.
-# Set the 'rwstatus' value from 0 to 2.
-# Change the policykey to 0 (actually, any value other then the
current policykey would work).
-# Save the file
-
-The next time the device attempts to request a command other then
PING or OPTIONS, it will be wiped. DO THIS AT YOUR OWN RISK!!! After
it is wiped, if you wish to allow the device to connect to your server
again, you should remove the info-{deviceidgoeshere} file so it can be
rebuilt. If you do not remove this file, or at least set the value of
rwstatus back to 0, the device will continue to be wiped each time it
reconnects to the server.
+The next time the device attempts to request a command other then
PING or OPTIONS, it will be wiped. **DO THIS AT YOUR OWN RISK!!!**
After it is wiped, if you wish to allow the device to connect to your
server again, you should remove the entry in the device table for the
device so it can be rebuilt. If you do not remove this entry, or at
least set the value of rwstatus back to 0, the device will continue to
be wiped each time it reconnects to the server.
++ Rough list of issues/todos/development notes in no particular order
-
-* Horde_History state driver. Currently, !ActiveSync support uses a
file-based state driver to persist the PIM state so we know what
changes. This is a refactored implementation of what the Z-Push
library does. For Horde, this is inefficient, as we have the data
needed to know what has changed and when. Once the majority of the
feature set is working, a Horde_History driver should be written to
replace the file based driver when syncing contacts, calendar, and
todo data. We might still need it if/when push email is implemented.
The backend drivers are able to specify a particular state storage to
enable this functionality if it is needed.
* Need to implement ghosted properties / SUPPORTED tag. Currently,
each message that is sent from PIM -> Server is overwritten and
replaced with only what the PIM sends. It's possible for some PIMS to
ghost contact and calendar properties so that only the supplied tags
are changed and missing, ghosted, properties are retained on the
server. When a PIM supports this, it sends a SUPPORTED tag with
children representing the NON-ghosted properties. The absence of the
SUPPORTED tag would indicate that any property not transmitted should
be handled as a ghosted property.
* Implement more recent protocol version support - version 12 or
maybe 12.1 (Exchange 2007??) should be fairly non-disruptive. Version
12 would get us more atomic policy settings, local wipe rules, as well
as the ability to send the policy settings to the client as the more
compact wbxml. 14 (Exchange 2010?) would probably be lots more work as
it does away with PING, using SYNC for waiting for changes instead.
More information about the cvs
mailing list