Help with Z-Push on custom webserver and CalDAV backend
cpanelrikus last edited by
I am trying to get Z-Push set up for use with a CalDAV/CardDAV backend, running from a proprietary webserver that launches it as a CGI subprocess (using PHP 7.3). The connections come in on a nonstandard HTTPS port, HTTP basic auth is used for authentication, and then execution switches to the correct user id based on the authenticated account. Due to privilege issues, there is a unique Z-Push logging/storage area for each distinct system user.
Tested Z-Push versions: release/2.5 and release/2.6 (outcome was similar on both)
Although I have managed to get the service running, I am still having some major problems getting clients to work with it reliably. A calendar event created on a mobile client is (sometimes) successfully synced over EAS through Z-Push to the CalDAV backend, but then it promptly disappears from the mobile client. Events are not synced in the other direction at all. Interestingly, the EAS-created event remains visible on other devices connected through CalDAV even after it has disappeared from the EAS client.
I think the fact that events sync at all (even in a broken way) is a very good sign, but I’m not sure how much is still misconfigured. From watching HTTP traffic in and out, I can see that a fair number of requests go through with some ActiveSync data in the body and get a 200 response from Z-Push with more ActiveSync data. Part of the problem is my very limited knowledge of how the EAS protocol is supposed to work.
Testing so far has been done using an outdated Samsung tablet running Android 5.1.1. I have ordered a Google Pixel 4a which should arrive on Fri Oct 16 and will come with Android 10. (The target platform for end-users of this integration is Android.) If you think this version difference is significant, then the best time to resume testing would be next week once the device has arrived.
Would anyone with better knowledge of Z-Push be able to provide some help with troubleshooting these problems? Any ideas at all would be appreciated, and I’m happy to provide log details. We could even set up a shared testing environment and do a Zoom call if you’re interested.