Announcement

Collapse
No announcement yet.

Z-Push-OX - Active Sync Support for Community Version of OX

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Z-Push-OX - Active Sync Support for Community Version of OX

    Hi,

    After quite a lengthy development phase, far longer than I anticipated, I am proud to announce the first release of Z-Push-OX.

    Z-Push-OX is a Z-Push-2 backend for Open-Xchange. This means, it does provide you with the means to set up an Active Sync Server for OX. As you know there is the Open-Xchange OXtender for Business Mobility which also provides Active Sync capabilities. However, that is only a viable option if you are using the commercially supported OX version.

    Z-Push-OX is a community project. It is not intended for replacing OXtender for Business Mobility. It currently does not support many features the OXtender does, is not supported in any commercial way and most likely (I did not test it) does not scale as well. That said, if you employ the community version of OX this might be your way to support Active Sync.

    This release (v0.1.0) is not meant for production. However, I am using it on a daily basis and found it to be quite useful.

    More information like current feature set, known bugs, ... can be found on the project page. If you find an unknown bug and you most likely will, please report it on the bug tracker. The bug tracker can also be used to issue feature requests.

    Regards.

  • #2
    Z-Push-OX testing

    Hi!

    Thanks for the plugin and your work!

    I tested it intensively with a new virtual server with Debian 6 and OpenXchange Version 7.2.2.

    I installed Z-Push (2.0.7.) now 2.0.8 (direct download no d-push) and changed the configuration accordingly. Also I used git to download your current version of the Z-Push-OX-Connector.

    First, I got several errors in the error.log of Apache 2 (2.2) when trying to sync:

    Code:
    PHP Fatal error:  Declaration of BackendOX::ChangeMessage() must be compatible with that of BackendDiff::ChangeMessage() in /usr/share/z-push/backend/ox/ox.php on line 19
    PHP Fatal error:  Declaration of BackendOX::SetReadFlag() must be compatible with that of BackendDiff::SetReadFlag() in /usr/share/z-push/backend/ox/ox.php on line 19
    PHP Fatal error:  Declaration of BackendOX::DeleteMessage() must be compatible with that of BackendDiff::DeleteMessage() in /usr/share/z-push/backend/ox/ox.php on line 19
    PHP Fatal error:  Declaration of BackendOX::MoveMessage() must be compatible with that of BackendDiff::MoveMessage() in /usr/share/z-push
    The appropriate functions to be found in "ox.php" do have a variable
    PHP Code:
    $contentParameters 
    which courses the error:

    PHP Code:
    public function ChangeMessage($folderid$id$message$contentParameters )
    public function 
    SetReadFlag($folderid$id$flags$contentParameters )
    public function 
    DeleteMessage($folderid$id$contentParameters )
    public function 
    MoveMessage($folderid$id$newfolderid$contentParameters 
    If I remove this variable
    PHP Code:
    $contentParameters 
    I get rid of the error messages and the device begins to sync BUT:

    I tried it on a Blackberry 8120 (BB OS 4.5) with Notifysync (trialversion) and entered all the necessary information to login but I get an error "Authetication failed, check server settings and licence). There are no error messages neither in the apache2-logs nor in the Z-Push log files.

    Additionally I tried it on a Samsung Galaxytab with Android 4.0.4. (lates version for this device). It is kind of working but since the user can access 3 addressbooks (personal, collected contacts, global) the device syncs only one of them but randomly. So on the first sync it syncs the personal address book and on the second, it removes all contacts on the device and syncs the global address book and so on.
    Also, there are no pictures of the contacts synced.

    The email sync doesnt work as well since it allways shows "authetication failed" but there are no errors in the mail.log nor in the Z-Push.log. According to the logfiles on the server, the mailserver got an successful login. You can see the mails and folder on the device but there is a popup on the device which shows an authetication failed every second.

    The calendar works more or less, but the appointments dissapear randomly. I didn't check if the user on the device could access multiple calendars.

    I could attach some logfiles if it's helpful for you. Just wanted to drop some infos for you and would like to know, if this behaviour is normal.

    Would be nice if you can check this issue!

    Thank you!

    Comment


    • #3
      Hi!

      Thanks for the plugin and your work!

      I tested it intensively with a new virtual server with Debian 6 and OpenXchange Version 7.2.2.

      I installed Z-Push (2.0.7.) now 2.0.8 (direct download no d-push) and changed the configuration accordingly. Also I used git to download your current version of the Z-Push-OX-Connector.

      First, I got several errors in the error.log of Apache 2 (2.2) when trying to sync:

      Code:
      PHP Fatal error:  Declaration of BackendOX::ChangeMessage() must be compatible with that of BackendDiff::ChangeMessage() in /usr/share/z-push/backend/ox/ox.php on line 19
      PHP Fatal error:  Declaration of BackendOX::SetReadFlag() must be compatible with that of BackendDiff::SetReadFlag() in /usr/share/z-push/backend/ox/ox.php on line 19
      PHP Fatal error:  Declaration of BackendOX::DeleteMessage() must be compatible with that of BackendDiff::DeleteMessage() in /usr/share/z-push/backend/ox/ox.php on line 19
      PHP Fatal error:  Declaration of BackendOX::MoveMessage() must be compatible with that of BackendDiff::MoveMessage() in /usr/share/z-push
      The appropriate functions to be found in "ox.php" do have a variable
      PHP Code:
      $contentParameters 
      which courses the error:

      PHP Code:
      public function ChangeMessage($folderid$id$message$contentParameters )
      public function 
      SetReadFlag($folderid$id$flags$contentParameters )
      public function 
      DeleteMessage($folderid$id$contentParameters )
      public function 
      MoveMessage($folderid$id$newfolderid$contentParameters 
      If I remove this variable
      PHP Code:
      $contentParameters 
      I get rid of the error messages and the device begins to sync BUT:

      I tried it on a Blackberry 8120 (BB OS 4.5) with Notifysync (trialversion) and entered all the necessary information to login but I get an error "Authetication failed, check server settings and licence). There are no error messages neither in the apache2-logs nor in the Z-Push log files.

      Additionally I tried it on a Samsung Galaxytab with Android 4.0.4. (lates version for this device). It is kind of working but since the user can access 3 addressbooks (personal, collected contacts, global) the device syncs only one of them but randomly. So on the first sync it syncs the personal address book and on the second, it removes all contacts on the device and syncs the global address book and so on.
      Also, there are no pictures of the contacts synced.

      The email sync doesnt work as well since it allways shows "authetication failed" but there are no errors in the mail.log nor in the Z-Push.log. According to the logfiles on the server, the mailserver got an successful login. You can see the mails and folder on the device but there is a popup on the device which shows an authetication failed every second.

      The calendar works more or less, but the appointments dissapear randomly. I didn't check if the user on the device could access multiple calendars.

      I could attach some logfiles if it's helpful for you. Just wanted to drop some infos for you and would like to know, if this behaviour is normal.

      Would be nice if you can check this issue!

      Thank you!

      Comment


      • #4
        Hi,

        As Z-Push-OX is currently in development we use the trunk Z-Push-2 source. There has been a major change in the api for diff backends regarding 2.0.8 -> 2.1.0 requiring backends to implement a contentParameters value. This means that Z-Push-OX requires Z-Push-2 2.1.0 or higher (I will update the readme soon).

        As for your sync issues. Sadly I do not own a blackberry device. As there are no log entries my guess would be that you set up your Z-Push-2 instance without SSL. Some ActiveSync clients require SSL. Could this be the problem at hand? Please try to increase the log level in the Z-Push-2 config to webxml ("LOGLEVEL_WBXML").

        Now to your address book issue on Android. Z-Push-OX supports a folder like structure as in ActiveSync 14. I think the stock android client implements AcitveSync 2.1 which does not support this feature. My guess is, that the first folder that the OX server provides is synced with the device and that this may be a different folder, of the ones available, every time. I think the best move here would be to have the personal contacts folder always be the first one. If you want folder support on your Android device you most likely have to depend on third party software.

        I think your problems with EMail and Calendar (especially the disappearing of entries) are related to the lacking folder support of stock Android client. We need to address this since this will be a common client.

        Contact image sync is not yet implemented.

        I will not be able to address the issues over the next thirty days, however, I am confident that we will get them fixed in a reasonable timeframe.

        Thank you for giving the software such an intensive look.

        Regards.

        Comment


        • #5
          Hi,

          We just deployed a demo instance for Z-Push-OX for ox.io that you can test the capabilities without the hassle of setting up a test server. As the domain name of the demo server differs from that of your ox.io address you need to set up the client with advanced settings. Keep in mind, that this is merely a demo instance based on a shared cloud service (thanks redhat!) and will, by far, not perform like a dedicated server. More information can be obtained here: http://z-push-ox.github.io

          The demo is based on Z-Push-2 2.1.0. Release notes can be obtained here: http://z-push.sourceforge.net/phpbb/...php?f=4&t=2391

          Regards.

          Comment


          • #6
            Hi!

            First of all thank you for your reply and infos about the required versions!

            Originally posted by hbwinther View Post
            This means that Z-Push-OX requires Z-Push-2 2.1.0 or higher
            I updated the Z-Push Version to 2.1.0 accordingly.

            Originally posted by hbwinther View Post
            As there are no log entries my guess would be that you set up your Z-Push-2 instance without SSL. Some ActiveSync clients require SSL. Could this be the problem at hand? Please try to increase the log level in the Z-Push-2 config to webxml ("LOGLEVEL_WBXML").
            At that point, I already set the log level to "LOGLEVEL_WBXML" but there wasn't any log-entry. Anyway I got it to work properly. The problem was the "https"-setting in the config file of Z-Push:

            Code:
            /usr/share/z-push/config.php
            As you mentioned on your project-website, you can set your domain with "https" or "http":

            Code:
            define('BACKEND_PROVIDER', "BackendOX");
            define('OX_SERVER', 'https://your.server'); //http is also valid
            If I set my domain here with https, I got the following error while connection to "https://your.server/Microsoft-Server-ActiveSync":

            Code:
            Unable to connect to ssl://your.server:443. Error: stream_socket_client(): unable to connect to ssl://your.server:443 (Unknown error)
            stream_socket_client(): Failed to enable crypto
            stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:
            error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
            At this point I have to mention that I used an self signed SSL-certificate first, but got a approved SSL-certificate from my provider afterwards. But this didn't solve the problem. I also tried to set the path and owner of the certificate inside the config.php of Z-Push which did not solve it likewise.

            After changing the setting to http:
            Code:
            define('BACKEND_PROVIDER', "BackendOX");
            define('OX_SERVER', 'http://your.server');
            the error was gone and I got the message:
            Code:
            [B]GET not supported[/B]
            This is the Z-Push location and can only be accessed by Microsoft ActiveSync-capable devices
            which seems to be correct. So after using the correct version of Z-Push (2.1.0) and just using "http" in the config.php-file, it worked perfectly on the Blackberry device with AstraSync as well as Notifysync. Allthough, I am using the SSL (with a signed certificate) with the Blackberry device, it is just the setting in the config.php which caused the sync (and logs) to refuse.

            A few words to the sync itself:

            I am currently using Notifysync for the Blackberry since AstraSync didn't support multiple folders. Notifysync does sync all the contact-folders as well as sub-calenders. It is fast and almost in realtime - nice!

            A few data fields were not synced though:

            - field "description" of a calendar event
            - attendants of a calendar event
            - contact pictures (you already mentioned that it is not implemented yet)
            - Birthdays: If I add a birthday with the Blackberry device, it appears as a never ending appointment in the calender showing up on every day in the OpenXchange webinterface.
            - Tasks are not implemented yet (would be nice though )

            I didn't try the Android device again. As you mentioned, the ActiveSync client seems to be outdated on such devices. So I'm just using it on the Blackberry device.
            Thats it for the moment. I will keep you updated about my experience with the software.

            Thank you for your work!

            Regards,

            Comment


            • #7
              Hi!

              First of all thank you for your reply and infos about the required versions!

              Originally posted by hbwinther View Post
              This means that Z-Push-OX requires Z-Push-2 2.1.0 or higher
              I updated the Z-Push Version to 2.1.0 accordingly.

              Originally posted by hbwinther View Post
              As there are no log entries my guess would be that you set up your Z-Push-2 instance without SSL. Some ActiveSync clients require SSL. Could this be the problem at hand? Please try to increase the log level in the Z-Push-2 config to webxml ("LOGLEVEL_WBXML").
              At that point, I already set the log level to "LOGLEVEL_WBXML" but there wasn't any log-entry. Anyway I got it to work properly. The problem was the "https"-setting in the config file of Z-Push:

              Code:
              /usr/share/z-push/config.php
              As you mentioned on your project-website, you can set your domain with "https" or "http":

              Code:
              define('BACKEND_PROVIDER', "BackendOX");
              define('OX_SERVER', 'https://your.server'); //http is also valid
              If I set my domain here with https, I got the following error while connection to "https://your.server/Microsoft-Server-ActiveSync":

              Code:
              Unable to connect to ssl://your.server:443. Error: stream_socket_client(): unable to connect to ssl://your.server:443 (Unknown error)
              stream_socket_client(): Failed to enable crypto
              stream_socket_client(): SSL operation failed with code 1. OpenSSL Error messages:
              error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
              At this point I have to mention that I used an self signed SSL-certificate first, but got a approved SSL-certificate from my provider afterwards. But this didn't solve the problem. I also tried to set the path and owner of the certificate inside the config.php of Z-Push which did not solve it likewise.

              After changing the setting to http:
              Code:
              define('BACKEND_PROVIDER', "BackendOX");
              define('OX_SERVER', 'http://your.server');
              the error was gone and I got the message:
              Code:
              [B]GET not supported[/B]
              This is the Z-Push location and can only be accessed by Microsoft ActiveSync-capable devices
              which seems to be correct. So after using the correct version of Z-Push (2.1.0) and just using "http" in the config.php-file, it worked perfectly on the Blackberry device with AstraSync as well as Notifysync. Allthough, I am using the SSL (with a signed certificate) with the Blackberry device, it is just the setting in the config.php which caused the sync (and logs) to refuse.

              A few words to the sync itself:

              I am currently using Notifysync for the Blackberry since AstraSync didn't support multiple folders. Notifysync does sync all the contact-folders as well as sub-calenders. It is fast and almost in realtime - nice!

              A few data fields were not synced though:

              - field "description" of a calendar event
              - attendants of a calendar event
              - contact pictures (you already mentioned that it is not implemented yet)
              - Birthdays: If I add a birthday with the Blackberry device, it appears as a never ending appointment in the calender showing up on every day in the OpenXchange webinterface.
              - Tasks are not implemented yet (would be nice though )

              I didn't try the Android device again. As you mentioned, the ActiveSync client seems to be outdated on such devices. So I'm just using it on the Blackberry device.
              Thats it for the moment. I will keep you updated about my experience with the software.

              Thank you for your work!

              Regards,

              Comment


              • #8
                its really good to know me! Great site and a great topic as well i really get amazed to read this thanks. love this way!

                Comment


                • #9
                  @Moderator: Could you PLEASE activate my post which I posted on the 14th of November (!!!) ??
                  A forum discussion doesn't make sense if you wait for months (if ever) for your post to be activated.

                  Comment

                  Working...
                  X