From cfb9d6fd17075d32796db573de6bac4a03efcbf0 Mon Sep 17 00:00:00 2001 From: polytan02 Date: Thu, 9 Feb 2017 18:11:17 +0000 Subject: [PATCH] Initial copy of updated config files --- conf/backend/config-caldav.php | 35 ++--- conf/backend/config-carddav.php | 33 +---- conf/backend/config-combined.php | 62 ++++---- conf/backend/config-imap.php | 64 +++----- conf/config.php | 242 +++++++++++++++---------------- 5 files changed, 188 insertions(+), 248 deletions(-) diff --git a/conf/backend/config-caldav.php b/conf/backend/config-caldav.php index 061f079..7abc60c 100644 --- a/conf/backend/config-caldav.php +++ b/conf/backend/config-caldav.php @@ -6,29 +6,13 @@ * * Created : 27.11.2012 * -* Copyright 2007 - 2013 Zarafa Deutschland GmbH +* Copyright 2012 - 2014 Jean-Louis Dupond +* +* Jean-Louis Dupond released this code as AGPLv3 here: https://github.com/dupondje/PHP-Push-2/issues/93 * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, -* as published by the Free Software Foundation with the following additional -* term according to sec. 7: -* -* According to sec. 7 of the GNU Affero General Public License, version 3, -* the terms of the AGPL are supplemented with the following terms: -* -* "Zarafa" is a registered trademark of Zarafa B.V. -* "Z-Push" is a registered trademark of Zarafa Deutschland GmbH -* The licensing of the Program under the AGPL does not imply a trademark license. -* Therefore any rights, title and interest in our trademarks remain entirely with us. -* -* However, if you propagate an unmodified version of the Program you are -* allowed to use the term "Z-Push" to indicate that you distribute the Program. -* Furthermore you may use our trademarks where it is necessary to indicate -* the intended purpose of a product or service provided you use it in accordance -* with honest practices in industrial or commercial matters. -* If you want to propagate modified versions of the Program under the name "Z-Push", -* you may only do so if you have a written permission by Zarafa Deutschland GmbH -* (to acquire a permission please contact Zarafa at trademark@zarafa.com). +* as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -49,19 +33,24 @@ define('CALDAV_PROTOCOL', 'https'); // Server name -define('CALDAV_SERVER', 'BAIKALDOMAIN'); +define('CALDAV_SERVER', 'caldavserver.domain.com'); // Server port define('CALDAV_PORT', '443'); // Path -define('CALDAV_PATH', 'BAIKALPATH/cal.php/calendars/%u/'); +define('CALDAV_PATH', '/caldav.php/%u/'); // Default CalDAV folder (calendar folder/principal). This will be marked as the default calendar in the mobile -define('CALDAV_PERSONAL', 'default'); +define('CALDAV_PERSONAL', 'PRINCIPAL'); // If the CalDAV server supports the sync-collection operation // DAViCal, SOGo and SabreDav support it // SabreDav version must be at least 1.9.0, otherwise set this to false // Setting this to false will work with most servers, but it will be slower define('CALDAV_SUPPORTS_SYNC', false); + + +// Maximum period to sync. +// Some servers don't support more than 10 years so you will need to change this +define('CALDAV_MAX_SYNC_PERIOD', 2147483647); \ No newline at end of file diff --git a/conf/backend/config-carddav.php b/conf/backend/config-carddav.php index a2809d2..ec6ed17 100644 --- a/conf/backend/config-carddav.php +++ b/conf/backend/config-carddav.php @@ -6,29 +6,11 @@ * * Created : 16.03.2013 * -* Copyright 2007 - 2013 Zarafa Deutschland GmbH +* Copyright 2013 - 2016 Francisco Miguel Biete * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, -* as published by the Free Software Foundation with the following additional -* term according to sec. 7: -* -* According to sec. 7 of the GNU Affero General Public License, version 3, -* the terms of the AGPL are supplemented with the following terms: -* -* "Zarafa" is a registered trademark of Zarafa B.V. -* "Z-Push" is a registered trademark of Zarafa Deutschland GmbH -* The licensing of the Program under the AGPL does not imply a trademark license. -* Therefore any rights, title and interest in our trademarks remain entirely with us. -* -* However, if you propagate an unmodified version of the Program you are -* allowed to use the term "Z-Push" to indicate that you distribute the Program. -* Furthermore you may use our trademarks where it is necessary to indicate -* the intended purpose of a product or service provided you use it in accordance -* with honest practices in industrial or commercial matters. -* If you want to propagate modified versions of the Program under the name "Z-Push", -* you may only do so if you have a written permission by Zarafa Deutschland GmbH -* (to acquire a permission please contact Zarafa at trademark@zarafa.com). +* as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -49,7 +31,7 @@ define('CARDDAV_PROTOCOL', 'https'); // Server name -define('CARDDAV_SERVER', 'BAIKALDOMAIN'); +define('CARDDAV_SERVER', 'localhost'); // Server port define('CARDDAV_PORT', '443'); @@ -63,21 +45,22 @@ define('CARDDAV_PORT', '443'); // %u: replaced with the username // %d: replaced with the domain // Add the trailing / -define('CARDDAV_PATH', 'BAIKALPATH/card.php/addressbooks/%u/'); +define('CARDDAV_PATH', '/caldav.php/%u/'); + // Server path to the default addressbook // Mobile device will create new contacts here. It must be under CARDDAV_PATH // %u: replaced with the username // %d: replaced with the domain // Add the trailing / -define('CARDDAV_DEFAULT_PATH', 'BAIKALPATH/card.php/addressbooks/%u/default'); +define('CARDDAV_DEFAULT_PATH', '/caldav.php/%u/addresses/'); // Server path to the GAL addressbook. This addressbook is readonly and searchable by the user, but it will NOT be synced. // If you don't want GAL, comment it // %u: replaced with the username // %d: replaced with the domain // Add the trailing / -define('CARDDAV_GAL_PATH', ''); +define('CARDDAV_GAL_PATH', '/caldav.php/%d/GAL/'); // Minimal length for the search pattern to do the real search. define('CARDDAV_GAL_MIN_LENGTH', 5); @@ -105,4 +88,4 @@ define('CARDDAV_SUPPORTS_FN_SEARCH', false); // If your carddav server needs to use file extension to recover a vcard. // Davical needs it // SOGo official demo online needs it, but some SOGo installation don't need it, so test it -define('CARDDAV_URL_VCARD_EXTENSION', '.vcf'); +define('CARDDAV_URL_VCARD_EXTENSION', '.vcf'); \ No newline at end of file diff --git a/conf/backend/config-combined.php b/conf/backend/config-combined.php index d48487e..aa9f002 100644 --- a/conf/backend/config-combined.php +++ b/conf/backend/config-combined.php @@ -7,29 +7,11 @@ * * Created : 29.11.2010 * -* Copyright 2007 - 2013 Zarafa Deutschland GmbH +* Copyright 2007 - 2016 Zarafa Deutschland GmbH * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, -* as published by the Free Software Foundation with the following additional -* term according to sec. 7: -* -* According to sec. 7 of the GNU Affero General Public License, version 3, -* the terms of the AGPL are supplemented with the following terms: -* -* "Zarafa" is a registered trademark of Zarafa B.V. -* "Z-Push" is a registered trademark of Zarafa Deutschland GmbH -* The licensing of the Program under the AGPL does not imply a trademark license. -* Therefore any rights, title and interest in our trademarks remain entirely with us. -* -* However, if you propagate an unmodified version of the Program you are -* allowed to use the term "Z-Push" to indicate that you distribute the Program. -* Furthermore you may use our trademarks where it is necessary to indicate -* the intended purpose of a product or service provided you use it in accordance -* with honest practices in industrial or commercial matters. -* If you want to propagate modified versions of the Program under the name "Z-Push", -* you may only do so if you have a written permission by Zarafa Deutschland GmbH -* (to acquire a permission please contact Zarafa at trademark@zarafa.com). +* as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -65,12 +47,24 @@ class BackendCombinedConfig { 'i' => array( 'name' => 'BackendIMAP', ), - 'c' => array( - 'name' => 'BackendCalDAV', + 'z' => array( + 'name' => 'BackendKopano', + ), + 'm' => array( + 'name' => 'BackendMaildir', + ), + 'v' => array( + 'name' => 'BackendVCardDir', + ), + 'l' => array( + 'name' => 'BackendLDAP', ), 'd' => array( 'name' => 'BackendCardDAV', ), + 'c' => array( + 'name' => 'BackendCalDAV', + ), ), 'delimiter' => '/', //force one type of folder to one backend @@ -81,24 +75,22 @@ class BackendCombinedConfig { SYNC_FOLDER_TYPE_WASTEBASKET => 'i', SYNC_FOLDER_TYPE_SENTMAIL => 'i', SYNC_FOLDER_TYPE_OUTBOX => 'i', - SYNC_FOLDER_TYPE_TASK => 'c', - SYNC_FOLDER_TYPE_APPOINTMENT => 'c', - SYNC_FOLDER_TYPE_CONTACT => 'd', - SYNC_FOLDER_TYPE_NOTE => 'c', - SYNC_FOLDER_TYPE_JOURNAL => 'c', + SYNC_FOLDER_TYPE_TASK => 'z', + SYNC_FOLDER_TYPE_APPOINTMENT => 'z', + SYNC_FOLDER_TYPE_CONTACT => 'z', + SYNC_FOLDER_TYPE_NOTE => 'z', + SYNC_FOLDER_TYPE_JOURNAL => 'z', SYNC_FOLDER_TYPE_OTHER => 'i', SYNC_FOLDER_TYPE_USER_MAIL => 'i', - SYNC_FOLDER_TYPE_USER_APPOINTMENT => 'c', - SYNC_FOLDER_TYPE_USER_CONTACT => 'd', - SYNC_FOLDER_TYPE_USER_TASK => 'c', - SYNC_FOLDER_TYPE_USER_JOURNAL => 'c', - SYNC_FOLDER_TYPE_USER_NOTE => 'c', - SYNC_FOLDER_TYPE_UNKNOWN => 'i', + SYNC_FOLDER_TYPE_USER_APPOINTMENT => 'z', + SYNC_FOLDER_TYPE_USER_CONTACT => 'z', + SYNC_FOLDER_TYPE_USER_TASK => 'z', + SYNC_FOLDER_TYPE_USER_JOURNAL => 'z', + SYNC_FOLDER_TYPE_USER_NOTE => 'z', + SYNC_FOLDER_TYPE_UNKNOWN => 'z', ), //creating a new folder in the root folder should create a folder in one backend 'rootcreatefolderbackend' => 'i', - //enable to use username mapping for the different backends - 'usemapping' => false, ); } } diff --git a/conf/backend/config-imap.php b/conf/backend/config-imap.php index 171f6e8..378c76e 100644 --- a/conf/backend/config-imap.php +++ b/conf/backend/config-imap.php @@ -6,29 +6,11 @@ * * Created : 27.11.2012 * -* Copyright 2007 - 2013 Zarafa Deutschland GmbH +* Copyright 2007 - 2016 Zarafa Deutschland GmbH * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, -* as published by the Free Software Foundation with the following additional -* term according to sec. 7: -* -* According to sec. 7 of the GNU Affero General Public License, version 3, -* the terms of the AGPL are supplemented with the following terms: -* -* "Zarafa" is a registered trademark of Zarafa B.V. -* "Z-Push" is a registered trademark of Zarafa Deutschland GmbH -* The licensing of the Program under the AGPL does not imply a trademark license. -* Therefore any rights, title and interest in our trademarks remain entirely with us. -* -* However, if you propagate an unmodified version of the Program you are -* allowed to use the term "Z-Push" to indicate that you distribute the Program. -* Furthermore you may use our trademarks where it is necessary to indicate -* the intended purpose of a product or service provided you use it in accordance -* with honest practices in industrial or commercial matters. -* If you want to propagate modified versions of the Program under the name "Z-Push", -* you may only do so if you have a written permission by Zarafa Deutschland GmbH -* (to acquire a permission please contact Zarafa at trademark@zarafa.com). +* as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -49,12 +31,11 @@ define('IMAP_SERVER', 'localhost'); // connecting to default port (143) -define('IMAP_PORT', 993); +define('IMAP_PORT', 143); // best cross-platform compatibility (see http://php.net/imap_open for options) -// Original : -//define('IMAP_OPTIONS', '/notls/norsh'); -define('IMAP_OPTIONS', '/ssl/novalidate-cert'); +define('IMAP_OPTIONS', '/notls/norsh'); + // Mark messages as read when moving to Trash. // BE AWARE that you will lose the unread flag, but some mail clients do this so the Trash folder doesn't get boldened @@ -87,16 +68,17 @@ define('IMAP_AUTOSEEN_ON_DELETE', false); // gmail is a special case, where the default folders are under the [gmail] prefix and the folders defined by the user are under INBOX. // This configuration seems to work: // define('IMAP_FOLDER_PREFIX', ''); + // define('IMAP_FOLDER_PREFIX_IN_INBOX', false); // define('IMAP_FOLDER_INBOX', 'INBOX'); // define('IMAP_FOLDER_SENT', '[Gmail]/Sent'); - // define('IMAP_FOLDER_DRAFTS', '[Gmail]/Drafts'); + // define('IMAP_FOLDER_DRAFT', '[Gmail]/Drafts'); // define('IMAP_FOLDER_TRASH', '[Gmail]/Trash'); // define('IMAP_FOLDER_SPAM', '[Gmail]/Spam'); // define('IMAP_FOLDER_ARCHIVE', '[Gmail]/All Mail'); // Since I know you won't configure this, I will raise an error unless you do. // When configured set this to true to remove the error -define('IMAP_FOLDER_CONFIGURED', true); +define('IMAP_FOLDER_CONFIGURED', false); // Folder prefix is the common part in your names (3, 4) define('IMAP_FOLDER_PREFIX', ''); @@ -105,22 +87,22 @@ define('IMAP_FOLDER_PREFIX', ''); define('IMAP_FOLDER_PREFIX_IN_INBOX', false); // Inbox folder name (case doesn't matter) - (empty in 4) -define('IMAP_FOLDER_INBOX', 'Inbox'); +define('IMAP_FOLDER_INBOX', 'INBOX'); // Sent folder name (case doesn't matter) -define('IMAP_FOLDER_SENT', 'Sent'); +define('IMAP_FOLDER_SENT', 'SENT'); // Draft folder name (case doesn't matter) -define('IMAP_FOLDER_DRAFT', 'Drafts'); +define('IMAP_FOLDER_DRAFT', 'DRAFTS'); // Trash folder name (case doesn't matter) -define('IMAP_FOLDER_TRASH', 'Trash'); +define('IMAP_FOLDER_TRASH', 'TRASH'); // Spam folder name (case doesn't matter). Only showed as special by iOS devices -define('IMAP_FOLDER_SPAM', 'Junk'); +define('IMAP_FOLDER_SPAM', 'SPAM'); // Archive folder name (case doesn't matter). Only showed as special by iOS devices -define('IMAP_FOLDER_ARCHIVE', 'Archive'); +define('IMAP_FOLDER_ARCHIVE', 'ARCHIVE'); @@ -141,7 +123,7 @@ define('IMAP_EXCLUDED_FOLDERS', ''); // 'sql' - the username will be the result of a sql query. REMEMBER TO INSTALL PHP-PDO AND PHP-DATABASE // 'ldap' - the username will be the result of a ldap query. REMEMBER TO INSTALL PHP-LDAP!! // '@mydomain.com' - the username is used and the given string will be appended -define('IMAP_DEFAULTFROM', '@DOMAINTOCHANGE'); +define('IMAP_DEFAULTFROM', ''); // DSN: formatted PDO connection string // mysql:host=xxx;port=xxx;dbname=xxx @@ -169,16 +151,10 @@ define('IMAP_FROM_SQL_FULLNAME', '#first_name #last_name'); // FROM: string that will be the from, replacing the field names with the values define('IMAP_FROM_LDAP_SERVER', 'localhost'); define('IMAP_FROM_LDAP_SERVER_PORT', '389'); -//define('IMAP_FROM_LDAP_USER', 'cn=zpush,ou=servers,dc=zpush,dc=org'); -//define('IMAP_FROM_LDAP_PASSWORD', 'password'); -//define('IMAP_FROM_LDAP_BASE', 'dc=zpush,dc=org'); -//define('IMAP_FROM_LDAP_QUERY', '(mail=#username@#domain)'); - -define('IMAP_FROM_LDAP_USER', ''); -define('IMAP_FROM_LDAP_PASSWORD', ''); -define('IMAP_FROM_LDAP_BASE', 'dc=yunohost,dc=org'); -define('IMAP_FROM_LDAP_QUERY', '(mail=#username)'); - +define('IMAP_FROM_LDAP_USER', 'cn=zpush,ou=servers,dc=zpush,dc=org'); +define('IMAP_FROM_LDAP_PASSWORD', 'password'); +define('IMAP_FROM_LDAP_BASE', 'dc=zpush,dc=org'); +define('IMAP_FROM_LDAP_QUERY', '(mail=#username@#domain)'); define('IMAP_FROM_LDAP_FIELDS', serialize(array('givenname', 'sn', 'mail'))); define('IMAP_FROM_LDAP_FROM', '#givenname #sn <#mail>'); define('IMAP_FROM_LDAP_FULLNAME', '#givenname #sn'); @@ -231,4 +207,4 @@ define('SYSTEM_MIME_TYPES_MAPPING', '/etc/mime.types'); // Use BackendCalDAV for Meetings. You cannot hope to get that functionality working without a caldav backend. -define('IMAP_MEETING_USE_CALDAV', FLAGTOCHANGE); +define('IMAP_MEETING_USE_CALDAV', false); \ No newline at end of file diff --git a/conf/config.php b/conf/config.php index 9862172..4b5ac5a 100644 --- a/conf/config.php +++ b/conf/config.php @@ -6,29 +6,11 @@ * * Created : 01.10.2007 * -* Copyright 2007 - 2013 Zarafa Deutschland GmbH +* Copyright 2007 - 2016 Zarafa Deutschland GmbH * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, -* as published by the Free Software Foundation with the following additional -* term according to sec. 7: -* -* According to sec. 7 of the GNU Affero General Public License, version 3, -* the terms of the AGPL are supplemented with the following terms: -* -* "Zarafa" is a registered trademark of Zarafa B.V. -* "Z-Push" is a registered trademark of Zarafa Deutschland GmbH -* The licensing of the Program under the AGPL does not imply a trademark license. -* Therefore any rights, title and interest in our trademarks remain entirely with us. -* -* However, if you propagate an unmodified version of the Program you are -* allowed to use the term "Z-Push" to indicate that you distribute the Program. -* Furthermore you may use our trademarks where it is necessary to indicate -* the intended purpose of a product or service provided you use it in accordance -* with honest practices in industrial or commercial matters. -* If you want to propagate modified versions of the Program under the name "Z-Push", -* you may only do so if you have a written permission by Zarafa Deutschland GmbH -* (to acquire a permission please contact Zarafa at trademark@zarafa.com). +* as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -53,10 +35,6 @@ // Try to set unlimited timeout define('SCRIPT_TIMEOUT', 0); - // Your PHP could have a bug when base64 encoding: https://bugs.php.net/bug.php?id=68532 - // NOTE: Run "php testing/testing-bug68532fixed.php" to know what value put here - define('BUG68532FIXED', false); - // When accessing through a proxy, the "X-Forwarded-For" header contains the original remote IP define('USE_X_FORWARDED_FOR_HEADER', false); @@ -64,74 +42,45 @@ // This setting specifies the owner parameter in the certificate to look at. define("CERTIFICATE_OWNER_PARAMETER", "SSL_CLIENT_S_DN_CN"); - // Location of the trusted CA, e.g. '/etc/ssl/certs/EmailCA.pem' - // Uncomment and modify the following line if the validation of the certificates fails. - // define('CAINFO', '/etc/ssl/certs/EmailCA.pem'); - /* * Whether to use the complete email address as a login name * (e.g. user@company.com) or the username only (user). * This is required for Z-Push to work properly after autodiscover. * Possible values: - * false - use the username only (default). - * true - use the complete email address. + * false - use the username only. + * true - string the mobile sends as username, e.g. full email address (default). */ define('USE_FULLEMAIL_FOR_LOGIN', true); /********************************************************************************** - * Device pre-authorization. Useful when using Z-Push as a standalone product. + * StateMachine setting * - * It will use the STATE_MACHINE specified below, to store the users/devices - * FILE => STATE_DIR/PreAuthUserDevices - * SQL => auth_users - * - * FALSE => default - * TRUE - */ - define('PRE_AUTHORIZE_USERS', false); - - // New users are pre-authorized automatically - define('PRE_AUTHORIZE_NEW_USERS', false); - - // New devices are pre-authorized automatically for pre-authorized users - define('PRE_AUTHORIZE_NEW_DEVICES', false); - - // Max number of devices pre-authorized for user, you can pre-authorize more manually - define('PRE_AUTHORIZE_MAX_DEVICES', 5); - - -/********************************************************************************** - * Select StateMachine mechanism - * - * FILE => FileStateMachine, default - * SQL => SqlStateMachine + * These StateMachines can be used: + * FILE - FileStateMachine (default). Needs STATE_DIR set as well. + * SQL - SqlStateMachine has own configuration file. STATE_DIR is ignored. + * State migration script is available, more informations: https://wiki.z-hub.io/x/xIAa */ define('STATE_MACHINE', 'FILE'); + define('STATE_DIR', '/var/lib/z-push/'); /********************************************************************************** - * Default FileStateMachine settings - */ - define('STATE_DIR', 'ALIASTOCHANGE/'); - - -/********************************************************************************** - * Optional SqlStateMachine settings + * IPC - InterProcessCommunication * - * DSN: formatted PDO connection string - * mysql:host=xxx;port=xxx;dbname=xxx - * DON'T FORGET TO INSTALL THE PHP-DRIVER PACKAGE!!! - * USER: username to DB - * PASSWORD: password to DB - * OPTIONS: array with options needed + * Is either provided by using shared memory on a single host or + * using the memcache provider for multi-host environments. + * When another implementation should be used, the class can be set here explicitly. + * If empty Z-Push will try to use available providers. */ - define('STATE_SQL_DSN', ''); - define('STATE_SQL_USER', ''); - define('STATE_SQL_PASSWORD', ''); - define('STATE_SQL_OPTIONS', serialize(array(PDO::ATTR_PERSISTENT => true))); - + define('IPC_PROVIDER', ''); /********************************************************************************** * Logging settings + * + * The LOGBACKEND specifies where the logs are sent to. + * Either to file ("filelog") or to a "syslog" server or a custom log class in core/log/logclass. + * filelog and syslog have several options that can be set below. + * For more information about the syslog configuration, see https://wiki.z-hub.io/x/HIAT + * Possible LOGLEVEL and LOGUSERLEVEL values are: * LOGLEVEL_OFF - no logging * LOGLEVEL_FATAL - log only critical errors @@ -146,14 +95,13 @@ * The verbosity increases from top to bottom. More verbose levels include less verbose * ones, e.g. setting to LOGLEVEL_DEBUG will also output LOGLEVEL_FATAL, LOGLEVEL_ERROR, * LOGLEVEL_WARN and LOGLEVEL_INFO level entries. + * + * LOGAUTHFAIL is logged to the LOGBACKEND. */ - define('LOGFILEDIR', 'LOGTOCHANGE/'); - define('LOGFILE', LOGFILEDIR . 'z-push.log'); - define('LOGERRORFILE', LOGFILEDIR . 'z-push-error.log'); + define('LOGBACKEND', 'filelog'); define('LOGLEVEL', LOGLEVEL_INFO); define('LOGAUTHFAIL', false); - // To save e.g. WBXML data only for selected users, add the usernames to the array // The data will be saved into a dedicated file per user in the LOGFILEDIR // Users have to be encapusulated in quotes, several users are comma separated, like: @@ -161,18 +109,24 @@ define('LOGUSERLEVEL', LOGLEVEL_DEVICEID); $specialLogUsers = array(); - // If you want to disable log to file, and log to syslog instead - define('LOG_SYSLOG_ENABLED', false); + // Filelog settings + define('LOGFILEDIR', '/var/log/z-push/'); + define('LOGFILE', LOGFILEDIR . 'z-push.log'); + define('LOGERRORFILE', LOGFILEDIR . 'z-push-error.log'); + + // Syslog settings // false will log to local syslog, otherwise put the remote syslog IP here define('LOG_SYSLOG_HOST', false); // Syslog port define('LOG_SYSLOG_PORT', 514); // Program showed in the syslog. Useful if you have more than one instance login to the same syslog - define('LOG_SYSLOG_PROGRAM', '[z-push]'); + define('LOG_SYSLOG_PROGRAM', 'z-push'); + // Syslog facility - use LOG_USER when running on Windows + define('LOG_SYSLOG_FACILITY', LOG_LOCAL0); - - define('LOG_MEMORY_PROFILER', false); - define('LOG_MEMORY_PROFILER_FILE', 'LOGTOCHANGE/memory_profile'); + // Location of the trusted CA, e.g. '/etc/ssl/certs/EmailCA.pem' + // Uncomment and modify the following line if the validation of the certificates fails. + // define('CAINFO', '/etc/ssl/certs/EmailCA.pem'); /********************************************************************************** * Mobile settings @@ -186,6 +140,10 @@ // true - allow older devices, but enforce policies on devices which support it define('LOOSE_PROVISIONING', false); + // The file containing the policies' settings. + // Set a full path or relative to the z-push main directory + define('PROVISIONING_POLICYFILE', 'policies.ini'); + // Default conflict preference // Some devices allow to set if the server or PIM (mobile) // should win in case of a synchronization conflict @@ -208,11 +166,6 @@ // a higher value if you have a high load on the server. define('PING_INTERVAL', 30); - // Interval in seconds to force a re-check of potentially missed notifications when - // using a changes sink. Default are 300 seconds (every 5 min). - // This can also be disabled by setting it to false - define('SINK_FORCERECHECK', 300); - // Set the fileas (save as) order for contacts in the webaccess/webapp/outlook. // It will only affect new/modified contacts on the mobile which then are synced to the server. // Possible values are: @@ -231,12 +184,14 @@ // SYNC_FILEAS_LASTFIRST will be used define('FILEAS_ORDER', SYNC_FILEAS_LASTFIRST); - // Amount of items to be synchronized per request + // Maximum amount of items to be synchronized per request. // Normally this value is requested by the mobile. Common values are 5, 25, 50 or 100. // Exporting too much items can cause mobile timeout on busy systems. - // Z-Push will use the lowest value, either set here or by the mobile. - // default: 100 - value used if mobile does not limit amount of items - define('SYNC_MAX_ITEMS', 100); + // Z-Push will use the lowest provided value, either set here or by the mobile. + // MS Outlook 2013+ request up to 512 items to accelerate the sync process. + // If you detect high load (also on subsystems) you could try a lower setting. + // max: 512 - value used if mobile does not limit amount of items + define('SYNC_MAX_ITEMS', 512); // The devices usually send a list of supported properties for calendar and contact // items. If a device does not includes such a supported property in Sync request, @@ -245,7 +200,7 @@ // to tell if a property was deleted or it was not set at all if it does not appear in Sync. // This parameter defines Z-Push behaviour during Sync if a device does not issue a list with // supported properties. - // See also https://jira.zarafa.com/browse/ZP-302. + // See also https://jira.z-hub.io/browse/ZP-302. // Possible values: // false - do not unset properties which are not sent during Sync (default) // true - unset properties which are not sent during Sync @@ -272,33 +227,46 @@ // NOTE: THIS IS AN EXPERIMENTAL FEATURE WHICH COULD PREVENT YOUR MOBILES FROM SYNCHRONIZING. define('USE_PARTIAL_FOLDERSYNC', false); + // The minimum accepted time in second that a ping command should last. + // It is strongly advised to keep this config to false. Some device + // might not be able to send a higher value than the one specificied here and thus + // unable to start a push connection. + // If set to false, there will be no lower bound to the ping lifetime. + // The minimum accepted value is 1 second. The maximum accepted value is 3540 seconds (59 minutes). + define('PING_LOWER_BOUND_LIFETIME', false); + + // The maximum accepted time in second that a ping command should last. + // If set to false, there will be no higher bound to the ping lifetime. + // The minimum accepted value is 1 second. The maximum accepted value is 3540 seconds (59 minutes). + define('PING_HIGHER_BOUND_LIFETIME', false); + + // Maximum response time + // Mobiles implement different timeouts to their TCP/IP connections. Android devices for example + // have a hard timeout of 30 seconds. If the server is not able to answer a request within this timeframe, + // the answer will not be recieved and the device will send a new one overloading the server. + // There are three categories + // - Short timeout - server has up within 30 seconds - is automatically applied for not categorized types + // - Medium timeout - server has up to 90 seconds to respond + // - Long timeout - server has up to 4 minutes to respond + // If a timeout is almost reached the server will break and sent the results it has until this + // point. You can add DeviceType strings to the categories. + // In general longer timeouts are better, because more data can be streamed at once. + define('SYNC_TIMEOUT_MEDIUM_DEVICETYPES', "SAMSUNGGTI"); + define('SYNC_TIMEOUT_LONG_DEVICETYPES', "iPod, iPad, iPhone, WP, WindowsOutlook"); + + // Time in seconds the device should wait whenever the service is unavailable, + // e.g. when a backend service is unavailable. + // Z-Push sends a "Retry-After" header in the response with the here defined value. + // It is up to the device to respect or not this directive so even if this option is set, + // the device might not wait requested time frame. + // Number of seconds before retry, to disable set to: false + define('RETRY_AFTER_DELAY', 300); + /********************************************************************************** * Backend settings */ // the backend data provider - define('BACKEND_PROVIDER', 'BACKENDTOCHANGE'); - - // top collector backend class name - // Default is: TopCollector - // Options: ["TopCollector", "TopCollectorRedis"] - define('TOP_COLLECTOR_BACKEND', 'TopCollector'); - - // ping tracking backend class name - // Default is: PingTracking - // Options: ["PingTracking", "PingTrackingRedis"] - define('PING_TRACKING_BACKEND', 'PingTracking'); - - // loop detection backend class name - // Default is: LoopDetection - // Options: ["LoopDetection", "LoopDetectionRedis"] - define('LOOP_DETECTION_BACKEND', 'LoopDetection'); - - // If using the Redis backends (for top, ping and lookp) make sure to set this values as necessary - define('IPC_REDIS_IP', '127.0.0.1'); - define('IPC_REDIS_PORT', 6379); - // Database name/index in Redis: 0 by default - // NOTE: this database must be exclusive for z-push, since its content will be ERASED. You are warned. - define('IPC_REDIS_DATABASE', 0); + define('BACKEND_PROVIDER', ''); /********************************************************************************** * Search provider settings @@ -316,6 +284,37 @@ // might result in timeout. Default is 10. define('SEARCH_MAXRESULTS', 10); +/********************************************************************************** + * Kopano Outlook Extension - Settings + * + * The Kopano Outlook Extension (KOE) provides MS Outlook 2013 and newer with + * functionality not provided by ActiveSync or not implemented by Outlook. + * For more information, see: https://wiki.z-hub.io/x/z4Aa + */ + // Global Address Book functionality + define('KOE_CAPABILITY_GAB', true); + // Synchronize mail flags from the server to Outlook/KOE + define('KOE_CAPABILITY_RECEIVEFLAGS', true); + // Encode flags when sending from Outlook/KOE + define('KOE_CAPABILITY_SENDFLAGS', true); + // Out-of-office support + define('KOE_CAPABILITY_OOF', true); + // Out-of-office support with start & end times (superseeds KOE_CAPABILITY_OOF) + define('KOE_CAPABILITY_OOFTIMES', true); + // Notes support + define('KOE_CAPABILITY_NOTES', true); + // Shared folder support + define('KOE_CAPABILITY_SHAREDFOLDER', true); + // Send-As support for Outlook/KOE and mobiles + define('KOE_CAPABILITY_SENDAS', true); + + // To synchronize the GAB KOE, the GAB store and folderid need to be specified. + // Use the gab-sync script to generate this data. The name needs to + // match the config of the gab-sync script. + // More information here: https://wiki.z-hub.io/x/z4Aa (GAB Sync Script) + define('KOE_GAB_STORE', 'SYSTEM'); + define('KOE_GAB_FOLDERID', ''); + define('KOE_GAB_NAME', 'Z-Push-KOE-GAB'); /********************************************************************************** * Synchronize additional folders to all mobiles @@ -325,11 +324,11 @@ * * This feature is supported only by certain devices, like iPhones. * Check the compatibility list for supported devices: - * http://z-push.sf.net/compatibility + * http://z-push.org/compatibility * * To synchronize a folder, add a section setting all parameters as below: * store: the ressource where the folder is located. - * Zarafa users use 'SYSTEM' for the 'Public Folder' + * Kopano users use 'SYSTEM' for the 'Public Folder' * folderid: folder id of the folder to be synchronized * name: name to be displayed on the mobile device * type: supported types are: @@ -337,13 +336,14 @@ * SYNC_FOLDER_TYPE_USER_APPOINTMENT * SYNC_FOLDER_TYPE_USER_TASK * SYNC_FOLDER_TYPE_USER_MAIL + * SYNC_FOLDER_TYPE_USER_NOTE * * Additional notes: - * - on Zarafa systems use backend/zarafa/listfolders.php script to get a list + * - on Kopano systems use backend/kopano/listfolders.php script to get a list * of available folders * - * - all Z-Push users must have full writing permissions (secretary rights) so - * the configured folders can be synchronized to the mobile + * - all Z-Push users must have at least reading permissions so the configured + * folders can be synchronized to the mobile. Else they are ignored. * * - this feature is only partly suitable for multi-tenancy environments, * as ALL users from ALL tenents need access to the configured store & folder.