[horde] Activesync | WP7 cannot sync

Michael J Rubinsky mrubinsk at horde.org
Wed Feb 1 15:26:29 UTC 2012


Quoting Martin Hochreiter <linuxbox at wavenet.at>:

> We see problems of the newer WP phones on other active sync  
> (alternative) implemenations too.
> I dont know where microsoft is heading with that, but unfortunately  
> (for you guys) the number of newer wp7 phones rises ...

Yeah, the whole ActiveSync landscape is pretty messed up if you ask  
me. Different vendors supporting slightly different implementations of  
the protocol, with even Microsoft doing things differently than what  
is documented in their own documentation. Still, IMO, it's probably  
the best sync option we have at the moment.

I tried to allow turning off all of what I call the "extended"  
policies - things like requiring alphanumeric pins vs numeric, number  
of attempts before wipe - and just sending the "require a PIN" policy  
but this screws up ALL of my Android test devices, including the  
Galaxy Nexus with ICS - as they won't require a PIN at all if they  
don't receive a specifier as to what type of PIN to require. So I have  
reverted this change. This, by the way, is also not quite to spec  
either. FWIW, as you have found, other non Microsoft EAS  
implementations have major issues with provisioning. ZPush, for  
example, only send a very bare-bones policy string for EAS 2.5 - which  
also breaks Android requiring a PIN and has issues with remote wipe on  
a number of newer devices. At least with our current implementation,  
we get *most* devices to properly provision and wipe.

So, I see two options here:

(1) Try to track down *exactly* what policies we are sending that WP7  
is unhappy about and device-sniff. We already do a small amount of  
device sniffing to deal with early Android version issues. If you have  
tried the previous suggestion I gave you to set the codewordfrequency  
value to 0 (numeric, not string) and it still did not work, then there  
is obviously more that WP7 does not like than what is listed in the KB  
article. If we can find out exactly which policies are causing the  
problem, I can work around it.

(2) Add WP7 to the list of "hasBrokenProvisiong" devices. This will  
cause all WP7 devices to NEVER be provisioned if using  
PROVISIONING_LOOSE. If set to PROVISIONING_FORCE, the devices that  
exibit this behaviour will never be able to connect (as you are seeing  
now). Of course, using PROVISIONING_NEVER will work with any device -  
but will not allow for remote wipe or security policies.

(2) is definitely the easiest to implement and is the right thing to  
do if we want to only support exactly what the documentation says.  
That being said, we already work around a *lot* of vendor specific  
client issues. Otherwise, we would have a very, very small list of  
working clients.

So, I'd really like to do (1), but other than the fact that I don't  
have a WP7 device to test against, it feels like in our current code  
base, it would be a slipperly slope that could end in all types of  
ugly device/version checks throughout the code.

I think what I'm going to do is implement (2) for now, and then  
implement (1) in the future, after I've refactored things a bit. I've  
already started some rudimentry planning on implementing a device  
class to wrap all of these types of device-specific behaviour.

-- 
mike

The Horde Project (www.horde.org)
mrubinsk at horde.org



More information about the horde mailing list