z-Push and zimbrabackend: The Zimbra companion for Mobility.
from the z-Push webpage:
Z-Push
Mobile data synchronization is becoming increasingly important for many people, and various standards have arisen to perform this two-way copying ‘over-the-air’. The most important platforms that can do wireless synchronisation are ActiveSync that is used to communicate with Exchange Server and Research-in-Motion’s BlackBerry Enterprise Server (BES). Both solutions require proprietary server-side software from the vendor, therefore limiting the use of PIMs (personal information managers) to either wired synchronization or irritating 3rd-party synchronizers requiring the installation of client software on the PDA.
steps to get z-Push and zimbrabackend to work:
To get this working on the same server as Zimbra is not suggested. Rather create a new LAMP server viewable from the Internet. Using VM to achieve this is the best.
- Download and install a LAMP Server from Turnkey:
- Download and install z-Push 2.0.4: (I installed it in /var/www/z-push24)
- Download and install zimbrabackend (z-push-2) – I saved all the files to a new directory in /var/www/z-push24/backend/zimbra/
https://zimbrabackend.svn.sourceforge.net/svnroot/zimbrabackend/zimbra-backend/branches/z-push-2/
- Move root server of your WWW (/etc/apache2/sites-available/default):
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/cert.pem
ServerAdmin webmaster@localhost
DocumentRoot /var/www/z-push24/
</VirtualHost>
- Edit your /var/www/<z-push dir>/config.php file:
define(‘BACKEND_PROVIDER’, “BackendZimbra“); #CHANGE this entry to read “Zimbra”
define(‘ZIMBRA_DEBUG’,true);
define(‘ZIMBRA_URL’, ‘https://<YOUR INTERNAL ZIMBRA IP ADDRESS>‘); # Update with you Zimbra server hostname
define(‘ZIMBRA_USER_DIR’, ‘zimbra’);
define(‘ZIMBRA_SYNC_CONTACT_PICTURES’, true);
define(‘ZIMBRA_VIRTUAL_CONTACTS’,true);
define(‘ZIMBRA_VIRTUAL_APPOINTMENTS’,true);
define(‘ZIMBRA_VIRTUAL_TASKS’,true);
define(‘ZIMBRA_IGNORE_EMAILED_CONTACTS’,true);
define(‘ZIMBRA_HTML’,true);
define(‘PROVISIONING’, false); #CHANGE this entry to read “false”
remember:
- Create a server viewable from the internet. (i.e. z-push.domain.com)
- Create a NAT/Firewall rule to allow port 443 traffic to flow unhindered.
- READ, Read, read…