Admins/Synchronisation

From Tine 2.0 - Wiki

Tine 2.0 enables you to have your data synchronized to your mobile phone. The synchronisation is based on ActiveSync, which allows you to choose from a broad range of devices. For example your can use any Nokia business phone(Exx), the IPhone, different Android based phones and all windows mobile based phones.

Patent warning for US-based users

Don't use our implementation of ActiveSync if you live in the USA. As Microsoft has a software patent on ActiveSync you can not use our code free of charge. We are currently in contact with Microsoft to negotiate a deal for our US-based users.

Any other users are free to use our ActiveSync implementation.

Requirements

ActiveSync requires a hardcoded path to be available. ActiveSync tries to connect to

http://your_webserver/Microsoft-Server-ActiveSync

To make this path available to your installation, the easiest is to use rewrite-rules. If you are using mod_pagespeed from Google - disable it for this site.

Apache Rewrite

Depending on your server/installation you have to choose one of the following ways:


Method 1: Rewrite in vHost configuration file

If you have access to the apache configuration files, add the following to the vHost.

<VirtualHost *:80>
  DocumentRoot "/var/www/tine20"
  .....
  <Directory "/var/www/tine20">
    .....
  </Directory>
  .....
  RewriteEngine on
  RewriteRule /Microsoft-Server-ActiveSync(.*) /path/to/index.php?frontend=activesync [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
</VirtualHost>

Adapt the path to 'index.php' to your environment.


Method 2: Rewrite configuration by a .htaccess file

If you don't have access to the apache configuration files, you can place a .htaccess directly in the document root of your webserver (regardless, where your Tine20 installation is located!).

Tine 2.0 is installed in the document root

RewriteEngine on
RewriteRule ^Microsoft-Server-ActiveSync index.php?frontend=activesync         [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]


Tine20 is installed in a subdirectory of your document root

RewriteEngine on
RewriteRule ^Microsoft-Server-ActiveSync /path/to/index.php?frontend=activesync         [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]


Reload the configuration of Apache

/etc/init.d/apache reload

Lighttpd rewrite

In order to set environment variables from within Lighttpd, you need to activate mod_setenv.

Lighttpd does not support setting environment variables on basis of rewrite conditions. Therefore, you need a little workaround: Instead of setting the required environment variable right during the rewrite, you first add an additional (otherwise unused) query parameter to the rewritten URL. In a match for this parameter, you can then set the corresponding variable.

A proper lighttpd vhost configuration could then look like this:

 $HTTP["host"] =~ "^…$" {
     # … your settings here …
 
     # Work around to set environment variable for ActiveSync
     # The query param "actredir" is set by the rewrite rule below
     $HTTP["querystring"] =~ "actredir" {
         setenv.add-environment = ( 
             "REDIRECT_ACTIVESYNC" => "true",
         )   
     }
 
     url.rewrite-once = (
         # Set the workaround parameter actredir on rewrite
         "^/Microsoft-Server-ActiveSync\??(.*)$" => "/index.php?actredir&$1"
     )
 }

Tine 2.0 Setup

Go to your Tine 2.0 Setup (http://your_webserver/path_to_tine/setup.php) and there to the Module "Application-Manager". There you have to install by right-click the ActiveSync module.


Test your setup

Use your browser and to to http://your_webserver/Microsoft-Server-ActiveSync

A popup should appear, asking for username/password. If you have entered your credentials correctly, you should see the message:

It works!
Your username is: <username> and your IP address is: xxx.xxx.xxx.xxx.

That's it. If anything other appears (or not appears), see your webservers and Tine20 logfiles for further details. If you get an emtpy page without a login-window first, check if the ActiveSync module is installed in setup.php!

Alternatively you can use this Web-Service to test your installations connectivity: https://www.testexchangeconnectivity.com/Default.aspx But use such services with care! Remember: You have to give a foreign system your credentials, so that they can test your system!

ActiveSync on Windows Mobile

1. Open ActiveSync on your windows mobile device
2. Choose "Configure Server..." in the Menu
3. Enter an email address
4. Disable auto configuration.
5. Enter your server address without the Microsoft-Server-ActiveSync at the end: e.g.

    subdomain.yourserver.de

containing the Path if needed with finishing /
6. Enter your valid username for Tine 2.0 as user name
7. Enter your valid password for Tine 2.0 as password
8. Enter Microsoft-Server-ActiveSync as the domain

ActiveSync on Windows Mobile and SSL

If you are using a self signed certificate for your server and want to sync with a windows mobile device you have to install the certificate on your device. A tutorial how to install a custom certificate on a windows mobile device can be found here: http://technet.microsoft.com/en-us/library/aa997575.aspx

Known supported devices

In general any ActiveSync enabled device should be working out of the box. See List of known supported devices for detailed information per device.


If your device is Android or Symbian S60 based, you can use RoadSync. See Configure RoadSync for information how to setup ActiveSync with RoadSync.


Some devices (e.g. Samsung Galaxy) need a special entry in ActiveSync/Controller/Calendar.php in order to correctly set a calendar entry which was created on the phone. Otherwise the entry is marked as "declined" and does not appear in the user's personal calendar (see http://www.tine20.org/forum/viewtopic.php?f=12&t=10856):


protected $_devicesWithWrongBusyStatusDefault = array(
        'samsunggti9100', // Samsung Galaxy S-2
        'samsunggtn7000', // Samsung Galaxy Note
        'samsunggti8160', // Samsung Ace II
    );

Supported datatypes

Currently we support the synchronisation of contact, events and tasks. Support for synchronizing emails is partly implemented (not working: email subfolders) since release Mialena (2010/03).


Further configuration related information and examples

Configuration using rewrite directive with CGI


More ActiveSync installation HowTos

- Android sync + Tine 2.0 HowTo (in german): http://luki.org/2011/07/android-sync-ohne-google-mit-opensource/