Skip to content

johan-smits/Z-Push-contrib

 
 

Repository files navigation

Z-Push-contrib

This is a Z-Push fork with changes that I will try to put into the contrib branch, so they can get into the official Z-Push

IMPORTANT: For them to get into the official Z-Push, you must sign a developer agreement with Zarafa (creators of Z-Push), and give them your rights over the code.

If you see some changes here, and you are the author, I will not contrib them, as I have no rights over them. But I will try to reimplement with different code/approach so I can contribute them. When a sustitution is ready I will remove your changes from this repo. If you want to help the community, contribute them yourself.

IMPORTANT 2: All the code is AGPL licensed (or compatible, like the "include" files). So you can get a copy, modify it, use... your only obligation it's to publish your changes somewhere.


Original Z-Push

URL: http://developer.berlios.de/projects/z-push/ URL: http://z-push.sourceforge.net/soswp/

Z-Push is an implementation of the ActiveSync protocol, which is used 'over-the-air' for multi platform ActiveSync devices, including Windows Mobile, Ericsson and Nokia phones. With Z-Push any groupware can be connected and synced with these devices.

License: GNU Affero Genaral Public License v3.0 (AGPLv3)

Documentation

Requisites

PHP 5.4 (5.3 should also work, but 5.4 is better) NGINX or APACHE PHP-FPM or MOD_PHP

Configuration

NGINX, 1.4 at least or you will need to enable chunkin mode (Use google for Apache configuration)

server { listen 443; server_name zpush.domain.com;

ssl on;
ssl_certificate         /etc/ssl/certs/zpush.pem;
ssl_certificate_key     /etc/ssl/private/zpush.key;

root    /usr/share/www/z-push-contrib;
index   index.php;

error_log /var/log/nginx/zpush-error.log;
access_log /var/log/nginx/zpush-access.log;

location / {
        try_files $uri $uri/ index.php;
}

location /Microsoft-Server-ActiveSync {
        rewrite ^(.*)$  /index.php last;
}

location ~ .php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_index index.php;
        fastcgi_param HTTPS on;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        # Z-Push Ping command will be alive for 470s, but be safe
        fastcgi_read_timeout 630;
}

}

PHP-FPM max_execution_time=600 short_open_tag=On

And configure enough php-fpm process to have 1.5 x number users

Backends

Each backend has a README file, or comments in their config.php file. Look at them to configure correctly.

StateMachine

You have 2 StateMachine methods.

  • FILE - FileStateMachine : will store state info into files. You will use it in Active-Pasive setups
  • SQL - SqlStateMachine: will store state info into a database. It uses PHP-PDO, so you will need to install the required packages for your database flavour and create the database. You will use it in Active-Active setups.

User-Device Permissions

Disabled by default, when enabled will limit what users and device can sync against your Z-Push installation. It can auto-accept users, users and device until a maximum number of devices is reached.

If using with FileStateMachine, edit the file STATE_DIR/PreAuthUserDevices to modificate the behaivour. That file is JSON formatted and it's filled each time a new user connect.

If using with SqlStateMachine, look at the zpush_preauth_users table.

Links

Microsoft ActiveSync Specification http://msdn.microsoft.com/en-us/library/cc425499%28v=exchg.80%29.aspx

About

Z-Push fork with changes that I will try to contrib

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published