This manual is deprecated. Please visit https://groupoffice.readthedocs.io for the latest documentation.

Difference between revisions of "Z-push"

From Group-Office Groupware and CRM Documentation
Jump to: navigation, search
(Installation)
(Manual)
Line 36: Line 36:
 
5. Copy config.php from modules/sync/z-push/ to modules/z-push/
 
5. Copy config.php from modules/sync/z-push/ to modules/z-push/
  
6. Now, you must configure Apache to redirect the URL 'Microsoft-Server-ActiveSync' to the index.php file in the modules/z-push/ directory.<br />This can be done by adding the line Alias /Microsoft-Server-ActiveSync /path/to/groupoffice/modules/z-push/index.php<br />Don't use a symlink, this won't work.
+
6. Now, you must configure Apache to redirect the URL 'Microsoft-Server-ActiveSync' to the index.php file in the modules/z-push/ directory.<br />This can be done by adding the line:
 +
 
 +
Alias /Microsoft-Server-ActiveSync /path/to/groupoffice/modules/z-push/index.php
 +
 
 +
Don't use a symlink, this won't work.
  
 
7. Restart apache2 and configure your mobile device with the servername, username and password and you should be in sync!
 
7. Restart apache2 and configure your mobile device with the servername, username and password and you should be in sync!

Revision as of 10:58, 23 May 2013

Overview

This module can be used to synchronize Emails, Contacts, Tasks and Calendars to a mobile device/tablet.

Dependencies

Apache modules

Some apache modules cannot be enabled because Z-Push is NOT working when they are enabled.

Requirements

Installation

IMPORTANT NOTE: remember to replace the z-push files again when you are upgrading Group-Office if you installed Group-Office manually! Debian packages will do this automatically for you from now on. But you need to perform step 5 manually (this can not be automated due to licensing issues with z-push).

Automatic

To install the z-push module automatically, you can use the script that is provided with the "Sync" module. (install.sh)

The script is located in the "modules/sync/z-push" folder.

Manual

ActiveSync support does not work out of the box. To add support of ActiveSync take the following steps (Step 1 to 5 can be done with modules/sync/z-push2/install.sh too):

1. Download z-push from http://zarafa-deutschland.de/z-push-download/final/1.5/. We used version 1.5.2 (But it's probably best to take the latest stable 1.x version of z-push).

2. Unpack the archive and put it in the "modules" directory of Group-Office.

3. rename the folder to "z-push"

4. Copy the file backend/GObackend.php from modules/sync/z-push/ to modules/z-push/backend/

5. Copy config.php from modules/sync/z-push/ to modules/z-push/

6. Now, you must configure Apache to redirect the URL 'Microsoft-Server-ActiveSync' to the index.php file in the modules/z-push/ directory.
This can be done by adding the line:

Alias /Microsoft-Server-ActiveSync /path/to/groupoffice/modules/z-push/index.php

Don't use a symlink, this won't work.

7. Restart apache2 and configure your mobile device with the servername, username and password and you should be in sync!

CGI mode

By default z-push only works when PHP is loaded as an Apache module. If you use PHP in CGI mode you'll have to follow this workaround:

http://z-push.sourceforge.net/phpbb/viewtopic.php?f=4&t=1245&p=4762&hilit=apache_request_headers#p4762

You can also try to create a .htaccess file in the Group-Office root dir and add the following lines to it:

Options +FollowSymLinks
RewriteEngine On
RewriteRule /Microsoft-Server-ActiveSync(.*) modules/z-push/index.php$1 [E=ACTIVESYNC:true,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

In some versionw of PHP the apache_request_header() function doesn't exist and the following needs to be added to modules/z-push/compat.php at the end of the file just before: ?>

if (!function_exists('apache_request_headers')) {
    function apache_request_headers() {
        $header = array();
        $header['Ms-Asprotocolversion'] = $_SERVER['HTTP_MS_ASPROTOCOLVERSION'];
        $header['X-Ms-Policykey'] = $_SERVER['HTTP_X_MS_POLICYKEY'];
        $header['User-Agent'] = $_SERVER['HTTP_USER_AGENT'];

        return $header;
    }
    
    list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['REDIRECT_HTTP_AUTHORIZATION'], 6)));
}

Uninstall

Remove the z-push folder from the modules directory of Group-Office.

User Manual

  • LINK TO USERMANUAL

Additional Notes

For debugging change modules/z-push/config.php:

define('LOGLEVEL', LOGLEVEL_ALL);

A log will be generated in /home/groupoffice/log/

Debugging

Sometimes it can happen that an item is not synced to the device.

Then you get an error in the "z-push-error.log" file that is located in the {go_file_storage_path}/log/z-push/ folder.

The error can look like this:

01/02/2013 12:22:31 [24372] [ERROR] [john@doe.com] Ignored broken message (SyncAppointment). Reason: '4' Folderid: 'a/GroupOfficeCalendar' message id '25'
01/02/2013 12:33:53 [28717] [ERROR] [john@doe.com] Ignored broken message (SyncMail). Reason: '2' Folderid: 'm/INBOX' message id '1674'
01/02/2013 12:34:02 [28717] [ERROR] [john@doe.com] Ignored broken message (SyncMail). Reason: '2' Folderid: 'm/INBOX' message id '1674'
01/02/2013 12:36:35 [13733] [ERROR] [john@doe.com] Ignored broken message (SyncMail). Reason: '2' Folderid: 'm/INBOX' message id '1674'

When this happens you can usually find more info on this error by using the "z-push-admin.php" file that is located in the z-push folder.

This is a commandline tool that is shipped with the z-push2 package.

You can use it like this:

cd /usr/share/groupoffice/modules/z-push2
php z-push-admin.php -a list -u {go_username}
  • Note: You need to go to the directory of z-push2 first because otherwise the GO config file cannot be loaded.

When you have runned the z-push-admin tool then you can find a better error description for each device in the result of the "list" command.