Contrary to what I noted earlier, `mod_pagespeed` may be used together with Z-Push (thanks to Grayson Peddie for the hint). Any interference with the relevant parts can be prevented by the following lines in the module configuration:
source: Z-Push forum thread
For weeks I had the intention to use my Android phone with Zarafa and Z-Push. However, my phone always reported that protocol version provided by the server would not be supported. I had a day off today and dug into the code (first Z-Push, then CyanogenMod 10) to track down the problem. It seemed like there would be a problem with the OPTIONS request in ActiveSync and the headers sent by Z-Push. I ended up using Fiddler to inspect the HTTPS traffic, in particular the headers and it turned out that Z-Push did not send the headers to identify the ActiveSync protocol. But the PHP-code (already messed with debugging output of my own) did send the headers.
Surprisingly, a minimal PHP script that did nothing by sending headers also worked. After a while it seems like the PHP output buffering (ob_start) dropped the headers, but then ob_clean or _flush at before and/or after the header call didn’t change anything.
Staring at the Fiddler traffic of the working testing code brought the saving idea: I had mod_pagespeed enabled (which I noticed, because it also added a header of its own). Turning it off made everything work!
Conclusion: Z-Push is incompatible with mod_pagespeed!
This article has multiple motivations. First, it is a follow-up to an article by Patrick Ohly (author of syncEvolution). As such it illustrates my own experience with his software, but also is meant as a way to show my gratitude and give kudos to him and all contributors of syncEvolution. Second, but this is somehow related to the aforementioned article, it should show that synchronisation [of PIM data] can work reliably and as such it opposes a wide spread opinion.
What I’ll try to show is how I’m successfully synchronising my notebook, my workstation (both Fedora 15) and my Android phone using the SyncML protocol.
Disclaimer: on the phone, I’m currently using a non-free piece of software from Synthesis AG for the only reason that the free Funambol client doesn’t play well with my self-signed SSL certificate (yet!?).