Notes: This is the second alpha release r777 (Milestone 3) of Z-Push 2. This version contains visible feature for Android users as it supports HTML emails for these devices. Further this version has several stability improvements (full AS status support) in the case of errors as well as many internal improvements. The provisioning is fully functional, but still lacks of an user interface for e.g. the remote wipe. The combined backend was improved in this version and offers some features which were not available in alpha1. This version implements the same functionalities as Z-Push 1.5 (which was not the case in the alpha1). As many implementations where changed, we still require your feedback! The states from Z-Push 1.x or the 2.0alpha1 versions are not compatible. You should remove these states when updating. This version implements full automatic resynchronizing of the device when states are missing or faulty. The default state directory is /var/lib/z-push, the default log directory /var/log/z-push. Please create these directories and make them writeable for Apache or change the configuration parameters to fit your needs. Be aware that if you are using LOGLEVEL_DEBUG and LOGLEVEL_WBXML Z-Push will be quite talkative, so it is advisable to use log-rotate on the log file. Your feedback is highly appreciated! http://z-push.sf.net/phpbb/ http://forums.zarafa.com/viewforum.php?f=14 Changes: Changelog (major changes since Z-Push 2.0 alpha1 r639) - implemented: HTML e-mail support for Android 2.2+ phones - implemented: recreating a profile on a device or requesting ForceFullResync() removes all related old states - implemented: fail2ban compatibility - writes WARN into the main log - can be enabled with LOGAUTHFAIL - implemented: allow un-authenticated Provisioning commands for remote wipe - implemented: Status handling for FolderSync, Sync, GetItemEstimate, Ping, FolderChange(FolderCreate, FolderUpdate, FolderDelete), Search, GetHierarchy, GetAttachment, MeetingResponse, MoveItems commands - implemented: Status exceptions with HTTPReturnCodeException() for SendMail, SmartForward and SmartReply commands - implemented: Full StatusException handling to Zarafa and Diff backends, basic support in IMAP, Maildir and vCard backends - implemented: SyncProvisioning object for AS12+ provisioning - implemented: use forked php-mapi classes - implemented: better timezone handling (Mantis #479) - thx to Robert Scheck for suggestion and patch - implemented: alternative to apache_request_headers() - implemented: ContentParameters class for SYNC_OPTIONS triggering major improvements on IChanges sub-interfaces and implementing classes - implemented: basic AS12 body preference parsing - implemented: use DeviceManager->GetFolderClassFromCacheByID() to determine content class for AS12+ calls - implemented: GetStateHash() to IStateMachine - changed: Specific backend files are only included if necessary and on request - changed: CombinedBackend includes sub-backends dynamically - changed: re-factored Authentication into RequestProcessor - changed: re-factored BackendDiff internals - changed: general log date & time format changed - changed: configuration check order to improve logging - changed: write device id from Request into the log - changed: do not save devicedata for invalid "validate" device ids sent by Android server checks - changed: check config before starting to parse request data - changed: IBackend->MeetingResponse removing reference to resulting calendar entry, result is returned now. All backends updated. - changed: load backend and statemachine already during ZPush::CheckConfig() so errors could be displayed in browser - changed: renamed BackendVCDir to BackendVCardDir and SearchLDAP to BackendSearchLDAP to be compatible with ZPush::IncludeBackend() - changed: introduced SYNC_PROVISION_RWSTATUS_REQUESTED (intermediary between PENDING and WIPED) - changed: introduced latest known PolicyKey to PING data to push provisioning updates - changed: throw FatalMisconfigurationException if FileStateMachine->SetState() fails (runtime) - changed: IStateMachine gets and saves states as 'mixed' data. Serialization is then done inside FileStateMachine Fix not mergeable into 1.5.x - fixed: Exception body changes of recurring appointments are not displayed or saved on mobile (Mantis #461) Fixes from Z-Push 1.5.3, 1.5.4 and 1.5.5 (upcoming RC) merged: General - fixed: Sending attachments from Nokia may result in empty file at recipient (Mantis #451) - fixed: Eurosign (€) gets scrambled when sending email from Windows Mobile (Mantis #456) - fixed: patch to add forgotten licensing exception to LICENSE file (Mantis #462) (thx to Robert Scheck for reporting) - fixed: Streamer and RFC822 class should not be executable by default while z-push-admin should be (Mantis #472) (thx to bencer from Zentyal for reporting) - fixed: typo prevents LOOSE_PROVISIONING (Mantis #476) - fixed: Synchronizing an empty folder an additional ICS exporter is registered on each request (Mantis #480) - fixed: body truncation not always correct (Mantis #467) Zarafa/ICS - changed: GAL search returns not all values available in ADS (Mantis #469) - fixed: Android 2.2 displays emails as priority low which have NO priority (Mantis #439) - fixed: body truncation not always correct (Mantis #467) - fixed: HTML code in mails sent from Android 2.2 (Mantis #472) - fixed: Lazy conflict detection shows warnings and does not check conflicts (Mantis #481) - fixed: Appointment is not synchronized after meeting invitation was accepted in the Webaccess of ZCP 7 (Mantis #475) - fixed: Saving empty categories fails (Mantis #468) - fixed: Contacts Birthday not properly saved from Android (Mantis #487) - fixed: Contacts created on Android phones present doubled names (Mantis #486) - fixed: Meeting request responses can not be processed correctly (Mantis #485) - fixed: GAL search shows 'undefined offset of PR_ACCOUNT' warnings (Mantis #488) IMAP backend - fixed: no attachments on the mobile if Content-Disposition header is not set (Mantis #458) - fixed: email is not quoted-printable encoded even if the header states it (Mantis #460) - fixed: email can't be synchronized with certain date format in header (Mantis #454) - fixed: Folders with special chars break synchronization (Mantis #463)