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
(Manual)
(CGI mode)
Line 45: Line 45:
  
 
http://z-push.sourceforge.net/phpbb/viewtopic.php?f=4&t=1245&p=4762&hilit=apache_request_headers#p4762
 
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:
 +
 +
<pre>
 +
Options +FollowSymLinks
 +
RewriteEngine On
 +
RewriteRule /Microsoft-Server-ActiveSync(.*) modules/z-push/index.php$1 [E=ACTIVESYNC:true,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
 +
</pre>
 +
 +
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: ?>
 +
 +
<pre>
 +
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)));
 +
}
 +
</pre>
  
 
=Uninstall=
 
=Uninstall=

Revision as of 10:57, 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!

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.