https://oxpedia.org/wiki/api.php?action=feedcontributions&user=Karsten.will&feedformat=atomOpen-Xchange - User contributions [en]2024-03-28T10:02:20ZUser contributionsMediaWiki 1.31.0https://oxpedia.org/wiki/index.php?title=AppSuite:Architecture_Overview&diff=19030AppSuite:Architecture Overview2015-01-20T10:20:11Z<p>Karsten.will: </p>
<hr />
<div>__NOTOC__<br />
This page gives an overview of the most important internal components, plugin capabilities, public interfaces (APIs) and data communication streams of the Open-Xchange server. <br />
<br />
[[File:appsuite_architecture_diagram_3.png|1200px]]<br />
<br />
<br />
=<span style="background:#dcdcdc">Frontend and client based communication flow </span>=<br />
*'''1''' All communication from and to the users client is purely based on HTTP. It is strongly recommended to use only encrypted HTTPS. For security reasons, some modules require HTTPS connections in the default configuration. The HTTP(S) communication is terminated at Apache.<br />
<br />
*'''2''' Within Apache, the mod_proxy_http module is used to forward the request to the OX server. Apache can also be used to configure session stickiness and load balancing in clustered environments.<br />
<br />
*'''3''' OX Web UI<br />
** The [[HTTP API]] is the core API for all user functionality. Every function of the Web UI is using this API. In addition to that, all possible user functionality is available via this API and can be used from external applications as well. It is based on JSON via HTTP(S).<br />
** [http://oxpedia.org/wiki/index.php?title=Portal:AppSuite_UI Web UI Documentation]<br />
** [[HTTP_API_Examples|Programming Example]], how to use this API to build an Email widget, accessing the HTTP API<br />
<br />
*'''4''' The OXtender for Business Mobility is a server based Active Sync Implementation. The "Microsoft Exchange Active Sync" protocol supports Push via HTTPS, therefore the email backend needs to send push events to the OX server. Details, see: [[OXtender for Business Mobility Installation Guide]] and [[OX_EMail_Push_Introduction|Email Push Introduction]]. Serverside, the synchronization makes use of the "Universal Sync Module (USM)", which is a server bundle containing the synchronization logic for several clients. It also communicates via HTTP(S) transporting JSON objects.<br />
<br />
*'''5''' The [[OXtender 2 for Microsoft Outlook]] is a MAPI plugin, installed in the Outlook client to synchronize data between Outlook and the OX server. It makes use of the same HTTP(S) and JSON based communication to the Universal Sync Module (USM), like Active Sync.<br />
<br />
*'''6''' [[Caldav carddav Bundles|CalDAV and CardDAV]] interfaces are available to synchronize calendars and address books with Apple OS X and iOS applications as well as Thunderbird: [[CalDAVClients|CalDAV Clients]] and [[CardDAVClients|CardDAV Clients]].<br />
<br />
*'''7''' A WebDAV implementation provides the possibility to access the documents in the Files-module directly via any WebDAV client, like the Windows Explorer.<br />
<br />
=<span style="background:#dcdcdc">Administration, provisioning and operations related components and communication flow</span>=<br />
*'''11''' Data Migration and Im-/Export of user data can be done via automated tools, using these interfaces: <br />
** [[Using the import servlet]], [[Building an importer]]<br />
** [[Using the export servlet]], [[Building an exporter]], [[Export_ical/vcard| iCal/vCard]]<br />
** A tool is available to upload data from Outlook profiles or PST files to OX: [http://oxpedia.org/wiki/index.php?title=OX_Outlook_Uploader Outlook Uploader]<br />
<br />
*'''12''' All provisioning tasks, like creating and editing users can be done with [http://software.open-xchange.com/OX6/doc/OX6-Provisioning/ Commandline tools]. The command line tools make use of the Java RMI API internally.<br />
<br />
*'''13''' The native, central provisioning API is available via Java RMI and split into the [http://software.open-xchange.com/OX6/doc/RMI/admin-core/ Core API] and the [http://software.open-xchange.com/OX6/doc/RMI/admin-hosting/ HostingAPI].<br />
<br />
*'''14''' Central control panels and billing systems, which are not implemented in Java, can use the RMI API via the [http://software.open-xchange.com/products/appsuite/doc/SOAP/admin/OX-Admin-SOAP.html SOAP API], examples of its usage can be found [[Open-Xchange-SOAP | here]].<br />
** Standard integration via SOAP is available for OPWV Directory<br />
** for Parallels Operations Automation see [[PAIntegrationGuide| PA integration guide]]<br />
** for Parallels Plesk Panel see [[Plesk_Integration|Plesk integration guide]]<br />
** for cPanel see [[Open-Xchange_cPanel_Installation| cPanel installation]]<br />
<br />
*'''15''' Authentication is implementable via highly customizable plugins, different standard and custom implementations are available<br />
**[[Authentication IMAP Plugin description| IMAP]]<br />
** LDAP<br />
** Database<br />
** custom<br />
<br />
*'''16''' Monitoring the OX application is done via JMX, for a description see [[OX monitoring interface]], or a commandline tool<br />
** An example how to use the monitoring interface is available as pre-built Scripts for the monitoring tool Munin: [[OX munin scripts]]<br />
<br />
=<span style="background:#E5E5E5">Backend related components and communication flow</span>=<br />
*'''21''' All OX-internal data - users, contacts, calendars, tasks and document metadata is stored in a MySQL Database, accessed via JDBC<br />
**'''22''' Native MySQL contacts storage<br />
<br />
*'''23''' Other sources for contacts than the MySQL storage can also be used. For this an OSGi bundle needs to be implemented, overriding the standard contact storage.<br />
** An implementation using LDAP is publicly available<br />
** Several custom implementations are available on request or can be implemented by partners<br />
<br />
*'''24''' Email storage is accessed through the pluggable [http://software.open-xchange.com/OX6/doc/mal/ Mail Abstraction Layer API] <br />
** The default implementation uses IMAP<br />
** Sending Emails is done via SMTP<br />
** For Openwave Email MX, Stateless Edition see [http://owmessaging.com/ OPWV MX]<br />
** For Active Sync or Outlook the email backend needs to send push requests to the OX server, for details see [[OX_EMail_Push_Introduction|Email Push Introduction]]<br />
** Several custom implementations are available on request or can be implemented by partners<br />
<br />
*'''25''' Documents in the Files module are accessed via an API, which allows customized implementations.<br />
** The default in large environments is to use NFS<br />
** In small environments the local filesystem is used<br />
** [http://www.scality.com/ Scality] is also available<br />
** Several custom implementations are available on request or can be implemented by partners<br />
<br />
=<span style="background:#E5E5E5">Social/Public Data related components, plugins and communication flow</span>=<br />
<br />
A <em>subscription based plugin system</em> allows to access data from external systems like webmail systems or social networks. The underlying concept is called [[SocialOX]] and a list of some plugins can be found here: [[SupportedCrawler]]. The integrations of messaging, contacts and calendars are done via the official API of the respective 3rd-party-service if there is one. For authentication, OAuth is used for security and privacy control if available. All plugins use HTTP(S) connections to the external services only. Access to the external email systems is done via IMAP(S) or POP3(S), depending on the service.<br />
<br />
*'''31''' For subscription to an external calendar a plugin to subscribe to Google Calendar is available.<br />
<br />
*'''32''' Supported external messaging services are Facebook, Twitter and SMS/MMS.<br />
<br />
*'''33''' Contacts can be imported from Xing, LinkedIn, MSN/Windows Live/Outlook.com, Yahoo, Facebook and Google.<br />
<br />
*'''34''' External email accounts can be integrated via POP3(S) or IMAP(S)<br />
** There are pre-configured settings for many popular services so that users only need to enter their e-mail address and password.<br />
** Look here how to [[install and configure the mail-account plugin]].<br />
<br />
* '''35''' RSS feeds are loaded remotely, filtered for exploits and can be read in the UI<br />
<br />
* '''36''' Image services like Flickr and Tumblr are integrated directly into the UI, bypassing the backend completely. Authentication is handled via OAuth.<br />
<br />
=<span style="background:#dcdcdc">Publicly Available Plugins</span>=<br />
* An overview of the existing public plugins can be found here: [[Open-Xchange Plugin Overview]]. Many others are available on request or through partners.<br />
<br />
<br />
<br />
<br />
This page was last updated on 2015/01/20.<br />
Person responsible: [mailto:karsten.will@open-xchange.com?Subject=AppSuite%20Architecture%20Overview%20(oxpedia.org)&body=Hi%20Karsten%2C%0A%0AThere%20is%20something%20you%20should%20take%20care%20of%20at%20this%20wiki-page%3A%0Ahttp%3A%2F%2Foxpedia.org%2Fwiki%2Findex.php%3Ftitle%3DAppSuite%3AArchitecture_Overview%0A%0AIt%20is%3A Karsten Will] (creates new pre-filled email)</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=18833AppSuite:Xing2014-10-30T11:39:40Z<p>Karsten.will: /* Preparation */</p>
<hr />
<div>= Using Xing with OX App Suite =<br />
<br />
This page describes how to get an API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
== Preparation ==<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter a text for "Description (English)":<br />
<br />
<code><br />
Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br><br />
The XING activity stream will be shown in a widget of the OX App Suite portal. With this widget you can also manually update your XING status.<br><br />
You will be able to post updates from the OX App Suite portal that contain links.<br><br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want.<br><br />
</code><br />
* (This text is provided as an example for you to adapt or translate as required.)<br />
<br><br />
* select access rights so they match those in this screenshot<br />
[[Image:xing-screenshot1.png|400px|Screenshot 1, showing the rights to request]]<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address". Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.)<br />
* enter the second PIN (sent via _regular_ mail to the postal address given under "Company Profile". Please note that this may take up to a week.)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". <br />
* enter those keys in /opt/open-xchange/etc/xingoauth.properties<br />
* If your OX server is reachable only via one host name, you won't have to do anything else. <br />
* If your OX server is reachable by more than one host name, create or open the file "/opt/openexchange/etc/deferrer.properties" and set the properties therein as such:<br />
com.openexchange.http.deferrer.url=https://mymaindomain.invalid<br />
<br />
<br />
<br />
<br />
This page was last checked on 2014/09/22.<br />
Person responsible: [mailto:karsten.will@open-xchange.com?Subject=Xing%20(oxpedia.org)&body=Hi%20Karsten%2C%0A%0AThere%20is%20something%20you%20should%20take%20care%20of%20at%20this%20wiki-page%3A%0Ahttp%3a%2f%2foxpedia.org%2fwiki%2findex.php%3ftitle%3dAppSuite%3aXing Karsten Will] (creates new pre-filled email)</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=18556AppSuite:Xing2014-09-23T08:20:01Z<p>Karsten.will: /* Preparation */</p>
<hr />
<div>= Using Xing with OX App Suite =<br />
<br />
This page describes how to get an API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
== Preparation ==<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter a text for "Description (English)":<br />
<br />
<code><br />
Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br><br />
The XING activity stream will be shown in a widget of the OX App Suite portal. With this widget you can also manually update your XING status.<br><br />
You will be able to post updates from the OX App Suite portal that contain links.<br><br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want.<br><br />
</code><br />
* (This text is provided as an example for you to adapt or translate as required.)<br />
<br><br />
* select access rights so they match those in this screenshot<br />
[[Image:xing-screenshot1.png|400px|Screenshot 1, showing the rights to request]]<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address". Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.)<br />
* enter the second PIN (sent via _regular_ mail to the postal address given under "Company Profile". Please note that this may take up to a week.)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". <br />
* enter those keys in /opt/open-xchange/etc/xingoauth.properties<br />
* If your OX server is reachable only via one host name, you won't have to do anything else. <br />
* If your OX server is reachable by more than one host name, create or open the file "/opt/openexchange/etc/groupware/deferrer.properties" and set the properties therein as such:<br />
com.openexchange.http.deferrer.url=https://mymaindomain.invalid<br />
<br />
<br />
<br />
<br />
This page was last checked on 2014/09/22.<br />
Person responsible: [mailto:karsten.will@open-xchange.com?Subject=Xing%20(oxpedia.org)&body=Hi%20Karsten%2C%0A%0AThere%20is%20something%20you%20should%20take%20care%20of%20at%20this%20wiki-page%3A%0Ahttp%3a%2f%2foxpedia.org%2fwiki%2findex.php%3ftitle%3dAppSuite%3aXing Karsten Will] (creates new pre-filled email)</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=18555AppSuite:Xing2014-09-23T08:19:40Z<p>Karsten.will: /* Preparation */</p>
<hr />
<div>= Using Xing with OX App Suite =<br />
<br />
This page describes how to get an API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
== Preparation ==<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter a text for "Description (English)":<br />
<br />
<code><br />
Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br><br />
The XING activity stream will be shown in a widget of the OX App Suite portal. With this widget you can also manually update your XING status.<br><br />
You will be able to post updates from the OX App Suite portal that contain links.<br><br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want.<br><br />
</code><br />
This text is provided as an example for you to adapt or translate as required.<br />
<br />
* select access rights so they match those in this screenshot<br />
[[Image:xing-screenshot1.png|400px|Screenshot 1, showing the rights to request]]<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address". Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.)<br />
* enter the second PIN (sent via _regular_ mail to the postal address given under "Company Profile". Please note that this may take up to a week.)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". <br />
* enter those keys in /opt/open-xchange/etc/xingoauth.properties<br />
* If your OX server is reachable only via one host name, you won't have to do anything else. <br />
* If your OX server is reachable by more than one host name, create or open the file "/opt/openexchange/etc/groupware/deferrer.properties" and set the properties therein as such:<br />
com.openexchange.http.deferrer.url=https://mymaindomain.invalid<br />
<br />
<br />
<br />
<br />
This page was last checked on 2014/09/22.<br />
Person responsible: [mailto:karsten.will@open-xchange.com?Subject=Xing%20(oxpedia.org)&body=Hi%20Karsten%2C%0A%0AThere%20is%20something%20you%20should%20take%20care%20of%20at%20this%20wiki-page%3A%0Ahttp%3a%2f%2foxpedia.org%2fwiki%2findex.php%3ftitle%3dAppSuite%3aXing Karsten Will] (creates new pre-filled email)</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=18524AppSuite:Xing2014-09-22T07:53:56Z<p>Karsten.will: /* Preparation */</p>
<hr />
<div>= Using Xing with OX App Suite =<br />
<br />
This page describes how to get an API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
== Preparation ==<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter this text for "Description (English)":<br />
<br />
<code><br />
Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br><br />
The XING activity stream will be shown in a widget of the OX App Suite portal. With this widget you can also manually update your XING status.<br><br />
You will be able to post updates from the OX App Suite portal that contain links.<br><br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want.<br><br />
</code><br />
<br />
* select access rights so they match those in this screenshot<br />
[[Image:xing-screenshot1.png|400px|Screenshot 1, showing the rights to request]]<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address". Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.)<br />
* enter the second PIN (sent via _regular_ mail to the postal address given under "Company Profile". Please note that this may take up to a week.)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". <br />
* enter those keys in /opt/open-xchange/etc/xingoauth.properties<br />
* If your OX server is reachable only via one host name, you won't have to do anything else. <br />
* If your OX server is reachable by more than one host name, create or open the file "/opt/openexchange/etc/groupware/deferrer.properties" and set the properties therein as such:<br />
com.openexchange.http.deferrer.url=https://mymaindomain.invalid<br />
<br />
<br />
<br />
<br />
This page was last checked on 2014/09/22.<br />
Person responsible: [mailto:karsten.will@open-xchange.com?Subject=Xing%20(oxpedia.org)&body=Hi%20Karsten%2C%0A%0AThere%20is%20something%20you%20should%20take%20care%20of%20at%20this%20wiki-page%3A%0Ahttp%3a%2f%2foxpedia.org%2fwiki%2findex.php%3ftitle%3dAppSuite%3aXing Karsten Will] (creates new pre-filled email)</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=18522AppSuite:Xing2014-09-22T07:37:17Z<p>Karsten.will: /* Preparation */</p>
<hr />
<div>= Using Xing with OX App Suite =<br />
<br />
This page describes how to get an API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
== Preparation ==<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter this text for "Description (English)":<br />
<br />
<code><br />
Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br><br />
The XING activity stream will be shown in a widget of the OX App Suite portal. With this widget you can also manually update your XING status.<br><br />
You will be able to post updates from the OX App Suite portal that contain links.<br><br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want.<br><br />
</code><br />
<br />
* select access rights so they match those in this screenshot<br />
[[Image:xing-screenshot1.png|400px|Screenshot 1, showing the rights to request]]<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address". Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.)<br />
* enter the second PIN (sent via _regular_ mail to the postal address given under "Company Profile". Please note that this may take up to a week.)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". <br />
* enter those keys in /opt/open-xchange/etc/xingoauth.properties<br />
<br />
<br />
<br />
<br />
This page was last checked on 2014/09/22.<br />
Person responsible: [mailto:karsten.will@open-xchange.com?Subject=Xing%20(oxpedia.org)&body=Hi%20Karsten%2C%0A%0AThere%20is%20something%20you%20should%20take%20care%20of%20at%20this%20wiki-page%3A%0Ahttp%3a%2f%2foxpedia.org%2fwiki%2findex.php%3ftitle%3dAppSuite%3aXing Karsten Will] (creates new pre-filled email)</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:CalcengineInstall&diff=18173AppSuite:CalcengineInstall2014-07-28T07:32:23Z<p>Karsten.will: </p>
<hr />
<div>= Description =<br />
<br />
The calcengine is necessary to use spreadsheet functionality. The calcengine is licensed under Apache License 2.0, so all our other code is able to use it.<br />
<br />
{{InstallPlugin|pluginname=calcengine|toplevel=products|sopath=appsuite/stable/calcengine|version=App Suite|reponame=calcengine|ldbaccount=LDBUSER:LDBPASSWORD}}<br />
<br />
[[Category:AppSuite]]<br />
[[Category:Administrator]]</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=17883AppSuite:Xing2014-06-26T08:24:50Z<p>Karsten.will: </p>
<hr />
<div>= Using Xing with OX App Suite =<br />
<br />
This page describes how to get an API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
== Preparation ==<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter this text for "Description (English)":<br />
<br />
<code><br />
Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br><br />
The XING activity stream will be shown in a widget of the OX App Suite portal.<br><br />
You will be able to post updates from the OX App Suite portal that contain links.<br><br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want.<br><br />
</code><br />
<br />
* select access rights so they match those in this screenshot<br />
[[Image:xing-screenshot1.png|400px|Screenshot 1, showing the rights to request]]<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address". Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.)<br />
* enter the second PIN (sent via _regular_ mail to the postal address given under "Company Profile". Please note that this may take up to a week.)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". <br />
* enter those keys in /opt/open-xchange/etc/xingoauth.properties<br />
<br />
<br />
<br />
<br />
This page was last checked on 2014/06/26.<br />
Person responsible: [mailto:karsten.will@open-xchange.com?Subject=Xing%20(oxpedia.org)&body=Hi%20Karsten%2C%0A%0AThere%20is%20something%20you%20should%20take%20care%20of%20at%20this%20wiki-page%3A%0Ahttp%3a%2f%2foxpedia.org%2fwiki%2findex.php%3ftitle%3dAppSuite%3aXing Karsten Will] (creates new pre-filled email)</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=17882AppSuite:Xing2014-06-26T08:24:18Z<p>Karsten.will: </p>
<hr />
<div>= Using Xing with OX App Suite =<br />
<br />
This page describes how to get an API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
== Preparation ==<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter this text for "Description (English)":<br />
<br />
<code><br />
Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br><br />
The XING activity stream will be shown in a widget of the OX App Suite portal.<br><br />
You will be able to post updates from the OX App Suite portal that contain links.<br><br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want.<br><br />
</code><br />
<br />
* select access rights so they match those in this screenshot<br />
[[Image:xing-screenshot1.png|400px|Screenshot 1, showing the rights to request]]<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address"). Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.<br />
* enter the second PIN (sent via _regular_ mail to the postal address given under "Company Profile". Please note that this may take up to a week.)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". <br />
* enter those keys in /opt/open-xchange/etc/xingoauth.properties<br />
<br />
<br />
<br />
<br />
This page was last checked on 2014/06/26.<br />
Person responsible: [mailto:karsten.will@open-xchange.com?Subject=Xing%20(oxpedia.org)&body=Hi%20Karsten%2C%0A%0AThere%20is%20something%20you%20should%20take%20care%20of%20at%20this%20wiki-page%3A%0Ahttp%3a%2f%2foxpedia.org%2fwiki%2findex.php%3ftitle%3dAppSuite%3aXing Karsten Will] (creates new pre-filled email)</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=17881AppSuite:Xing2014-06-26T08:19:15Z<p>Karsten.will: </p>
<hr />
<div>= Using Xing with OX App Suite =<br />
<br />
This page describes how to get an API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
== Preparation ==<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter this text for "Description (English)":<br />
<br />
<code><br />
Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br><br />
The XING activity stream will be shown in a widget of the OX App Suite portal.<br><br />
You will be able to post updates from the OX App Suite portal that contain links.<br><br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want.<br><br />
</code><br />
<br />
* select access rights so they match those in this screenshot<br />
[[Image:xing-screenshot1.png|400px|Screenshot 1, showing the rights to request]]<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address"). Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.<br />
* enter the second PIN (sent via _regular_ mail to the postal address given under "Company Profile". Please note that this may take up to a week.)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". <br />
<br />
<br />
<br />
<br />
This page was last checked on 2014/06/26.<br />
Person responsible: [mailto:karsten.will@open-xchange.com?Subject=Xing%20(oxpedia.org)&body=Hi%20Karsten%2C%0A%0AThere%20is%20something%20you%20should%20take%20care%20of%20at%20this%20wiki-page%3A%0Ahttp%3a%2f%2foxpedia.org%2fwiki%2findex.php%3ftitle%3dAppSuite%3aXing Karsten Will] (creates new pre-filled email)</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=17880AppSuite:Xing2014-06-26T07:55:43Z<p>Karsten.will: </p>
<hr />
<div>= Using Xing with OX App Suite =<br />
<br />
This page describes how to get a API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
== Preparation ==<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter this text for "Description (English)":<br />
<br />
<code><br />
Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br><br />
The XING activity stream will be shown in a widget of the OX App Suite portal.<br><br />
You will be able to post updates from the OX App Suite portal that contain links.<br><br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want.<br><br />
</code><br />
<br />
* select access rights so they match those in this screenshot<br />
[[Image:xing-screenshot1.png|400px|Screenshot 1, showing the rights to request]]<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address"). Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.<br />
* enter the second PIN (sent via _regular_ mail to the postal address given under "Company Profile". Please note that this may take up to a week.)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". <br />
<br />
=== Configure Server Files ===<br />
* Enter the API-keys in /opt/open-xchange/etc/xingoauth.properties (properties "com.openexchange.oauth.xing.consumerKey" and "com.openexchange.oauth.xing.consumerSecret")<br />
<br />
{{InstallPlugin|pluginname=open-xchange-oauth open-xchange-messaging|toplevel=products |sopath=appsuite/stable/backend |version=App Suite}}<br />
<br />
<br />
<br />
<br />
This page was last checked on 2014/06/26.<br />
Person responsible: [mailto:karsten.will@open-xchange.com?Subject=Xing%20(oxpedia.org)&body=Hi%20Karsten%2C%0A%0AThere%20is%20something%20you%20should%20take%20care%20of%20at%20this%20wiki-page%3A%0Ahttp%3a%2f%2foxpedia.org%2fwiki%2findex.php%3ftitle%3dAppSuite%3aXing Karsten Will] (creates new pre-filled email)</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=17879AppSuite:Xing2014-06-26T07:51:05Z<p>Karsten.will: </p>
<hr />
<div>= Using Xing with OX App Suite =<br />
<br />
This page describes how to get a API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
== Preparation ==<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter this text for "Description (English)":<br />
<br />
<code><br />
Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br><br />
The XING activity stream will be shown in a widget of the OX App Suite portal.<br><br />
You will be able to post updates from the OX App Suite portal that contain links.<br><br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want.<br><br />
</code><br />
<br />
* select access rights so they match those in this screenshot<br />
[[Image:xing-screenshot1.png|400px|Screenshot 1, showing the rights to request]]<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address"). Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.<br />
* enter the second PIN (sent via _regular_ mail to the postal address given under "Company Profile". Please note that this may take up to a week.)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". <br />
<br />
=== Configure Server Files ===<br />
* Enter the API-keys in /opt/open-xchange/etc/xingoauth.properties (properties "com.openexchange.oauth.xing.consumerKey" and "com.openexchange.oauth.xing.consumerSecret")<br />
<br />
{{InstallPlugin|pluginname=open-xchange-oauth open-xchange-messaging|toplevel=products |sopath=appsuite/stable/backend |version=App Suite}}<br />
<br />
{{InstallPlugin|pluginname=open-xchange-oauth-linkedin open-xchange-subscribe-linkedin|sopath=stable}}<br />
<br />
<br />
<br />
<br />
<br />
<br />
This page was last checked on 2014/06/26.<br />
Person responsible: [mailto:karsten.will@open-xchange.com?Subject=Xing%20(oxpedia.org)&body=Hi%20Karsten%2C%0A%0AThere%20is%20something%20you%20should%20take%20care%20of%20at%20this%20wiki-page%3A%0Ahttp%3a%2f%2foxpedia.org%2fwiki%2findex.php%3ftitle%3dAppSuite%3aXing Karsten Will] (creates new pre-filled email)</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=17878AppSuite:Xing2014-06-26T07:40:53Z<p>Karsten.will: </p>
<hr />
<div>= Using Xing with OX App Suite =<br />
<br />
This page describes how to get a API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter this text for "Description (English)":<br />
<br />
<code><br />
Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br><br />
The XING activity stream will be shown in a widget of the OX App Suite portal.<br><br />
You will be able to post updates from the OX App Suite portal that contain links.<br><br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want.<br><br />
</code><br />
<br />
* select access rights so they match those in this screenshot<br />
[[Image:xing-screenshot1.png|400px|Screenshot 1, showing the rights to request]]<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address"). Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.<br />
* enter the second PIN (sent via _regular_ mail to the postal address given under "Company Profile". Please note that this may take up to a week.)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". Enter them in /opt/open-xchange/etc/xing.properties (properties "com.openexchange.oauth.xing.consumerKey" and "com.openexchange.oauth.xing.consumerSecret")</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=File:Xing-screenshot1.png&diff=17877File:Xing-screenshot1.png2014-06-26T07:33:54Z<p>Karsten.will: </p>
<hr />
<div></div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=17876AppSuite:Xing2014-06-26T07:33:40Z<p>Karsten.will: </p>
<hr />
<div>This page describes how to get a API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter this text for "Description (English)":<br />
<br />
<code><br />
Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br><br />
The XING activity stream will be shown in a widget of the OX App Suite portal.<br><br />
You will be able to post updates from the OX App Suite portal that contain links.<br><br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want.<br><br />
</code><br />
<br />
* select access rights so they match those in this screenshot<br />
[[Image:xing-screenshot1.png|400px|Screenshot 1, showing the rights to request]]<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address"). Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.<br />
* enter the second PIN (sent via _regular_ mail to the postal address given under "Company Profile". Please note that this may take up to a week.)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". Enter them in /opt/open-xchange/etc/xing.properties (properties "com.openexchange.oauth.xing.consumerKey" and "com.openexchange.oauth.xing.consumerSecret")</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=17875AppSuite:Xing2014-06-26T07:32:16Z<p>Karsten.will: </p>
<hr />
<div>This page describes how to get a API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter this text for "Description (English)":<br />
<br />
<code><br />
Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br><br />
The XING activity stream will be shown in a widget of the OX App Suite portal.<br><br />
You will be able to post updates from the OX App Suite portal that contain links.<br><br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want.<br><br />
</code><br />
<br />
* select access rights so they match those in this screenshot<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address"). Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.<br />
* enter the second PIN (sent via _regular_ mail to the postal address given under "Company Profile". Please note that this may take up to a week.)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". Enter them in /opt/open-xchange/etc/xing.properties (properties "com.openexchange.oauth.xing.consumerKey" and "com.openexchange.oauth.xing.consumerSecret")</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=17874AppSuite:Xing2014-06-26T07:31:55Z<p>Karsten.will: </p>
<hr />
<div>This page describes how to get a API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter this text for "Description (English)":<br />
<br />
<code><br />
Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br />
The XING activity stream will be shown in a widget of the OX App Suite portal.<br />
You will be able to post updates from the OX App Suite portal that contain links.<br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want.<br />
</code><br />
<br />
* select access rights so they match those in this screenshot<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address"). Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.<br />
* enter the second PIN (sent via _regular_ mail to the postal address given under "Company Profile". Please note that this may take up to a week.)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". Enter them in /opt/open-xchange/etc/xing.properties (properties "com.openexchange.oauth.xing.consumerKey" and "com.openexchange.oauth.xing.consumerSecret")</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=17873AppSuite:Xing2014-06-26T07:30:47Z<p>Karsten.will: </p>
<hr />
<div>This page describes how to get a API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter this text for "Description (English)":<br />
<br />
<code><br />
Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br />
<br />
The XING activity stream will be shown in a widget of the OX App Suite portal.<br />
<br />
You will be able to post updates from the OX App Suite portal that contain links.<br />
<br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want.<br />
</code><br />
<br />
* select access rights so they match those in this screenshot<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address"). Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.<br />
* enter the second PIN (sent via _regular_ mail to the postal address given under "Company Profile". Please note that this may take up to a week.)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". Enter them in /opt/open-xchange/etc/xing.properties (properties "com.openexchange.oauth.xing.consumerKey" and "com.openexchange.oauth.xing.consumerSecret")</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Xing&diff=17872AppSuite:Xing2014-06-26T07:27:12Z<p>Karsten.will: Created page with "This page describes how to get a API-key needed for the XING integration features available starting with App Suite version 7.6. * go to https://dev.xing.com/login * log in w..."</p>
<hr />
<div>This page describes how to get a API-key needed for the XING integration features available starting with App Suite version 7.6.<br />
<br />
* go to https://dev.xing.com/login<br />
* log in with a valid xing account. (Please note that upon entering production status the app and the personal account used to create it will be decoupled. So there is no need to use a company account here.)<br />
* click "+ Create App" in the upper right<br />
* enter reasonable app and developer details (especially the postal address is important because the 2nd half of the API-key will be sent there)<br />
* select "web" as "Type of app"<br />
* the app information (including logo) is what will be shown to the enduser when he decides whether to allow the app access to his xing-data<br />
* set the domain of your App Suite server as "Callback domain" (e.g. "https://beta.ox.io/")<br />
* enter this text for "Description (English)":<br />
<br />
"Use this connector to synchronize your XING contacts with Open-Xchange App Suite, see the public XING-profile of people sending you email, synchronize your personal information with your XING-profile, see and write XING messages and connect via XING to your contacts from within Open-Xchange App Suite. For this we humbly require the access rights to your profile and connection information you see above.<br />
<br />
The XING activity stream will be shown in a widget of the OX App Suite portal.<br />
<br />
You will be able to post updates from the OX App Suite portal that contain links.<br />
<br />
The personal data of your XING-profile can be updated with your data in the OX App Suite addressbook with the press of one button whenever you want."<br />
<br />
* select access rights so they match those in this screenshot<br />
* enter the first PIN (sent via email to the address given under "Company Profile" -> "Email address"). Check your spam folder if you do not get this immediately, more often than not it is recognized as spam.<br />
* enter the second PIN (sent via _regular_ mail)<br />
* you will see 2 API-keys: "Consumer key" and "Consumer secret". Enter them in /opt/open-xchange/etc/xing.properties (properties "com.openexchange.oauth.xing.consumerKey" and "com.openexchange.oauth.xing.consumerSecret")</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=Caldav_carddav_Bundles&diff=17268Caldav carddav Bundles2014-03-13T13:06:09Z<p>Karsten.will: /* Installation on OX App Suite */</p>
<hr />
<div>= Installation and Configuration of the CalDAV- and CardDAV-bundles =<br />
<br />
The Open-Xchange server can be accessed via it's CalDAV- and CardDAV-interfaces to allow the synchronization of Calendar- and Contact-data with external applications like the Mac OS X iCal and Address Book clients. The synchronization protocols are available starting with Version 6.20.1 Rev5.<br />
<br />
CalDAV and CardDAV are standard protocols for the exchange of calendar data and address data respectively. The CalDAV interface publishes all the user's calendar folders via CalDAV so the user can subscribe to them in a client application. Similarly, the CardDAV interface publishes the user's contact folders. Depending on the used client, the user can either subscribe one or more folders, or access all available data in an aggregated way. <br />
<br />
== User Guide and Client Configuration ==<br />
Please find further information regarding the client configuration at [[CalDAVClients]] and [[CardDAVClients]].<br />
<br />
== Webserver Configuration ==<br />
In order to redirect DAV requests to the appropiate servlets, the webserver's configuration may need to be adjusted using one of the following alternatives. Please be aware that for a working Mavericks auto configuration setup you need to have SSL enabled on the server. The non-SSL variant described below only works if you use the advanced CalDav configuration in Mavericks and enter the path by hand. If you just want to enter the hostname SSL is required. The same applies to iOS7 where SSL is always required.<br />
<br />
=== Alternative 1: Apache vhost (recommended) ===<br />
Please edit your site configuration file for OX so that ''' the existing OX configuration as well as the CalDAV/CardDav configuration are placed inside their own virtual hosts sections.'''.<br />
<br />
Please add the following entries before you existing VirtualHost entry. This is an <b>example</b> where MYSERVER.TLD is the domain-name of the ox-server:<br />
<br />
NameVirtualHost *:80<br />
<VirtualHost *:80><br />
ServerName dav.<MYSERVER.TLD><br />
ErrorLog /tmp/dav.err.log<br />
TransferLog /tmp/dav.access.log<br />
<br />
<Proxy balancer://oxserver-sync><br />
Order deny,allow<br />
Allow from all<br />
<br />
# for ajp http service<br />
BalancerMember ajp://localhost:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 route=OX1<br />
# for grizzly http service<br />
#BalancerMember http://localhost:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 route=OX1<br />
# uncomment this entry if you have a clustered setup and want to use the other nodes too<br />
#BalancerMember http://<ip-of-other-host>:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 route=OX2<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
<Proxy /><br />
Order allow,deny<br />
Allow from all<br />
ProxyPass balancer://oxserver-sync/servlet/dav/<br />
</Proxy><br />
</VirtualHost><br />
<br />
If you use this method, you have to make sure that dav.<MYSERVER.TLD> is reachable, your dns configuration need an entry for this name. Take care of the the dav.* logfiles, the example writes them without logrotation to /tmp.<br />
<br />
Please note the <code>NameVirtualHost</code> directive is needed to be able to specify multiple virtual hosts for the same IP. The differentiation is only done by the given <code>ServerName</code>. This implies that you need two server names, so the virtual host entry for the existing ox site configuration needs to be also enriched by a <code>ServerName</code> if not already present. If you access the system without one of the given <code>ServerName</code>s so e.g. via the IP the system will pick the corresponding one by order (in this case the DAV part first. If you want it to work differently please change the order accordingly.<br />
<br />
=== Alternative 2: Apache useragent detection ===<br />
For environments where it is inconvenient to setup a vhost there is the possibility to redirect to relevant servlets another way: Via useragent detection. This is not recommended for the following reason: Per definition this is a whitelist-approach and any client sending a useragent-string not explicitly listed in the configuration will not be able to connect . Useragent-strings may also change between different versions of an application or may even be actively changed into something non-standard.<br />
<br />
$ vi <your-ox-site-configuration-file><br />
<br />
RewriteEngine On<br />
RewriteCond %{HTTP_USER_AGENT} Calendar [OR]<br />
RewriteCond %{HTTP_USER_AGENT} DataAccess [OR]<br />
RewriteCond %{HTTP_USER_AGENT} DAVKit [OR]<br />
RewriteCond %{HTTP_USER_AGENT} Lightning [OR]<br />
RewriteCond %{HTTP_USER_AGENT} Adresboek [OR]<br />
RewriteCond %{HTTP_USER_AGENT} dataaccessd [OR]<br />
RewriteCond %{HTTP_USER_AGENT} Preferences [OR]<br />
RewriteCond %{HTTP_USER_AGENT} Adressbuch [OR]<br />
RewriteCond %{HTTP_USER_AGENT} AddressBook [OR]<br />
RewriteCond %{HTTP_USER_AGENT} Address%20Book [OR]<br />
RewriteCond %{HTTP_USER_AGENT} CalendarStore [OR]<br />
RewriteCond %{HTTP_USER_AGENT} CoreDAV<br />
# select if you run ajp (proxy_ajp.conf) or grizzly (proxy_http.conf), here ajp is used:<br />
RewriteRule (.*) ajp://localhost:8009/servlet/dav$1 [P] # for ajp http service<br />
#RewriteRule (.*) http://localhost:8009/servlet/dav$1 [P] # for grizzly http service<br />
<br />
'''Note:''' The address book app on OSX 10.6 uses a localized user-agent string. If you're expecting clients with non-english language settings, you need to add the translated user-agent string to these rewrite rules. For example: "Adressbuch" for german OSX clients.<br />
<br />
== Autodiscovery ==<br />
<br />
By providing some DNS service name registrations for your domain and adding an additional rewrite-rule to the webserver's configuration, it's possible for some clients to automatically discover the account settings by just providing the user's e-mail address and password. The procedure is specified in [http://tools.ietf.org/html/rfc6764 RFC 6764]. <br />
<br />
The following example illustrates the DNS entries where MYSERVER.TLD would be the domain name of the ox-server, both for CalDAV and CardDAV via HTTP and HTTPS on the virtual host dav.MYSERVER.TLD:<br />
<br />
_caldavs._tcp.MYSERVER.TLD. 10800 IN SRV 10 1 443 dav.MYSERVER.TLD.<br />
_caldav._tcp.MYSERVER.TLD. 10800 IN SRV 10 1 80 dav.MYSERVER.TLD.<br />
_carddavs._tcp.MYSERVER.TLD. 10800 IN SRV 10 1 443 dav.MYSERVER.TLD.<br />
_carddav._tcp.MYSERVER.TLD. 10800 IN SRV 10 1 80 dav.MYSERVER.TLD.<br />
<br />
Additionally, a rewrite-rule similar to the following example should be added to the webserver configuration of the virtual host to enable the bootstrapping process:<br />
<br />
RewriteEngine On<br />
RewriteCond %{REQUEST_URI} ^/\.well-known/caldav [OR]<br />
RewriteCond %{REQUEST_URI} ^/\.well-known/carddav<br />
RewriteRule (.*) / [L,R]<br />
<br />
== Which packages do I need? ==<br />
To get CalDAV and CardDAV up and running you need the following packages:<br />
<br />
In v6.20 and earlier:<br />
* open-xchange-webdav-directory - Assembles the *DAV interfaces into a common tree. This is needed for publishing certain properties so clients accept the OX is a WebDAV Server.<br />
* open-xchange-webdav-acl - The WebDAV equivalent of the /ajax/user interface. Allows clients to discover the current and other users and their addressbooks and calendars.<br />
* open-xchange-carddav - The CardDAV interface exposing the users addressbook via carddav<br />
* open-xchange-caldav - The CalDAV inteface exposing the users calendars via caldav<br />
<br />
<br />
With v6.22 we have significantly reduced the number of packages necessary to install Open-Xchange Server.<br />
In v6.22 and later only one package is needed:<br />
* open-xchange-dav <br />
<br />
== Installation on OX App Suite ==<br />
If there are any differences from for the Open-Xchange App Suite product family from version 6.22 they will be listed here<br />
<br />
<br />
{{InstallPlugin|pluginname=open-xchange-caldav open-xchange-carddav open-xchange-webdav-acl open-xchange-webdav-directory |sopath=updates}}<br />
<br />
{{InstallPlugin|pluginname=open-xchange-dav|sopath=6.22/updates/backend|version=v6.22.x}}<br />
<br />
== CalDAV Configuration ==<br />
<br />
The following configuration options are available in the configuration files caldav.properties and caldav.yml:<br />
<br />
===com.openexchange.caldav.enabled===<br />
The property '''com.openexchange.caldav.enabled''' governs whether a user has access to the CalDAV interface. This can be configured along the config cascade, in the default setting, everyone that has access to the infostore also has access to caldav. This is achieved in the following way:<br />
<br />
In v6.20 and earlier:<br />
<br />
/opt/open-xchange/etc/groupware/caldav.properties:<br />
com.openexchange.caldav.enabled=false<br />
<br />
/opt/open-xchange/etc/groupware/contextSets/caldav.yml<br />
premium:<br />
com.openexchange.caldav.enabled: true<br />
withTags: ucInfostore<br />
<br />
With v6.22 and up:<br />
<br />
/opt/open-xchange/etc/caldav.properties:<br />
com.openexchange.caldav.enabled=false<br />
<br />
/opt/open-xchange/etc/contextSets/caldav.yml<br />
premium:<br />
com.openexchange.caldav.enabled: true<br />
withTags: ucInfostore<br />
<br />
<br />
This means: In general CalDAV is turned off, but using the contextSets feature of the config cascade it is turned on for everyone that has infostore access.<br />
<br />
===com.openexchange.caldav.tree===<br />
Configures the ID of the folder tree used by the CalDAV interface. Currently, this should be set to the default value of '0'.<br />
<br />
===com.openexchange.caldav.interval.start===<br />
Defines the minimum end time of appointments to be synchronized via the CalDAV interface, relative to the current date. Possible values are "one_month" (default), "one_year" and "six_months". <br />
<br />
===com.openexchange.caldav.interval.end===<br />
Defines the maximum start time of appointments to be synchronized via the CalDAV interface, relative to the current date. Possible values are "one_year" (default) and "two_years". <br />
<br />
===com.openexchange.caldav.url===<br />
Tells users where to find a caldav folder. This can be displayed in frontends. You can use the variables [hostname] and [folderId]. If you chose to deploy caldav as a virtual host (say 'dav.open-xchange.com') use https://dav.open-xchange.com/caldav/[folderId] as the value. If you are using user-agent sniffing use https://[hostname]/caldav/[folderId].<br />
<br />
<br />
== CardDAV Configuration ==<br />
<br />
The following configuration options are available in the configuration files carddav.properties and carddav.yml:<br />
<br />
===com.openexchange.carddav.enabled===<br />
Similarly to CalDAV, the property '''com.openexchange.carddav.enabled''' governs whether CardDAV is available for a certain user. This is configured exactly like CalDAV with the config cascade only enabling this for users that have access to the infostore:<br />
<br />
/opt/open-xchange/etc/groupware/carddav.properties:<br />
com.openexchange.carddav.enabled=false<br />
<br />
/opt/open-xchange/etc/groupware/contextSets/carddav.yml<br />
premium:<br />
com.openexchange.carddav.enabled: true<br />
withTags: ucInfostore<br />
<br />
===com.openexchange.carddav.ignoreFolders===<br />
A comma-separated list of folder IDs to exclude from the synchronization. Use this to disable syncing of very large folders (e.g. the global address list in large contexts, which always has ID 6). By default, no folders are excluded.<br />
<br />
===com.openexchange.carddav.tree===<br />
Configures the ID of the folder tree used by the CardDAV interface. Currently, this should be set to the default value of '0'.<br />
<br />
===com.openexchange.carddav.exposedCollections===<br />
Controls which collections are exposed via the CardDAV interface. Possible values are '0', '1' and '2'. A value of '1' makes each visible folder available as a resource collection, while '2' only exposes an aggregated collection containing all contact resources from all visible folders. The default value '0' exposes either an aggregated collection or individual collections for each folder, depending on the client's user-agent that is matched against the pattern in 'userAgentForAggregatedCollection'. <br />
<br />
===com.openexchange.carddav.userAgentForAggregatedCollection===<br />
Regular expression to match against the client's user-agent to decide whether the aggregated collection is exposed or not. The default pattern matches all known varieties of the Mac OS Addressbook client, that doesn't support multiple collections. Only used if 'exposedCollections' is set to '0'. The pattern is used case insensitive. <br />
<br />
===com.openexchange.carddav.reducedAggregatedCollection===<br />
Specifies if all visible folders are used to create the aggregated collection, or if a reduced set of folders only containing the global addressbook and the personal contacts folders should be used. This setting only influences the aggregated collection that is used for clients that don't support multiple collections. Possible values are 'true' and 'false.<br />
<br />
[[Category: Clients]]<br />
[[Category: Administrator]]<br />
[[Category: AppSuite]]</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=Caldav_carddav_Bundles&diff=17267Caldav carddav Bundles2014-03-13T13:05:56Z<p>Karsten.will: /* Installation on OX App Suite */</p>
<hr />
<div>= Installation and Configuration of the CalDAV- and CardDAV-bundles =<br />
<br />
The Open-Xchange server can be accessed via it's CalDAV- and CardDAV-interfaces to allow the synchronization of Calendar- and Contact-data with external applications like the Mac OS X iCal and Address Book clients. The synchronization protocols are available starting with Version 6.20.1 Rev5.<br />
<br />
CalDAV and CardDAV are standard protocols for the exchange of calendar data and address data respectively. The CalDAV interface publishes all the user's calendar folders via CalDAV so the user can subscribe to them in a client application. Similarly, the CardDAV interface publishes the user's contact folders. Depending on the used client, the user can either subscribe one or more folders, or access all available data in an aggregated way. <br />
<br />
== User Guide and Client Configuration ==<br />
Please find further information regarding the client configuration at [[CalDAVClients]] and [[CardDAVClients]].<br />
<br />
== Webserver Configuration ==<br />
In order to redirect DAV requests to the appropiate servlets, the webserver's configuration may need to be adjusted using one of the following alternatives. Please be aware that for a working Mavericks auto configuration setup you need to have SSL enabled on the server. The non-SSL variant described below only works if you use the advanced CalDav configuration in Mavericks and enter the path by hand. If you just want to enter the hostname SSL is required. The same applies to iOS7 where SSL is always required.<br />
<br />
=== Alternative 1: Apache vhost (recommended) ===<br />
Please edit your site configuration file for OX so that ''' the existing OX configuration as well as the CalDAV/CardDav configuration are placed inside their own virtual hosts sections.'''.<br />
<br />
Please add the following entries before you existing VirtualHost entry. This is an <b>example</b> where MYSERVER.TLD is the domain-name of the ox-server:<br />
<br />
NameVirtualHost *:80<br />
<VirtualHost *:80><br />
ServerName dav.<MYSERVER.TLD><br />
ErrorLog /tmp/dav.err.log<br />
TransferLog /tmp/dav.access.log<br />
<br />
<Proxy balancer://oxserver-sync><br />
Order deny,allow<br />
Allow from all<br />
<br />
# for ajp http service<br />
BalancerMember ajp://localhost:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 route=OX1<br />
# for grizzly http service<br />
#BalancerMember http://localhost:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 route=OX1<br />
# uncomment this entry if you have a clustered setup and want to use the other nodes too<br />
#BalancerMember http://<ip-of-other-host>:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 route=OX2<br />
SetEnv proxy-initial-not-pooled<br />
SetEnv proxy-sendchunked<br />
</Proxy><br />
<br />
<Proxy /><br />
Order allow,deny<br />
Allow from all<br />
ProxyPass balancer://oxserver-sync/servlet/dav/<br />
</Proxy><br />
</VirtualHost><br />
<br />
If you use this method, you have to make sure that dav.<MYSERVER.TLD> is reachable, your dns configuration need an entry for this name. Take care of the the dav.* logfiles, the example writes them without logrotation to /tmp.<br />
<br />
Please note the <code>NameVirtualHost</code> directive is needed to be able to specify multiple virtual hosts for the same IP. The differentiation is only done by the given <code>ServerName</code>. This implies that you need two server names, so the virtual host entry for the existing ox site configuration needs to be also enriched by a <code>ServerName</code> if not already present. If you access the system without one of the given <code>ServerName</code>s so e.g. via the IP the system will pick the corresponding one by order (in this case the DAV part first. If you want it to work differently please change the order accordingly.<br />
<br />
=== Alternative 2: Apache useragent detection ===<br />
For environments where it is inconvenient to setup a vhost there is the possibility to redirect to relevant servlets another way: Via useragent detection. This is not recommended for the following reason: Per definition this is a whitelist-approach and any client sending a useragent-string not explicitly listed in the configuration will not be able to connect . Useragent-strings may also change between different versions of an application or may even be actively changed into something non-standard.<br />
<br />
$ vi <your-ox-site-configuration-file><br />
<br />
RewriteEngine On<br />
RewriteCond %{HTTP_USER_AGENT} Calendar [OR]<br />
RewriteCond %{HTTP_USER_AGENT} DataAccess [OR]<br />
RewriteCond %{HTTP_USER_AGENT} DAVKit [OR]<br />
RewriteCond %{HTTP_USER_AGENT} Lightning [OR]<br />
RewriteCond %{HTTP_USER_AGENT} Adresboek [OR]<br />
RewriteCond %{HTTP_USER_AGENT} dataaccessd [OR]<br />
RewriteCond %{HTTP_USER_AGENT} Preferences [OR]<br />
RewriteCond %{HTTP_USER_AGENT} Adressbuch [OR]<br />
RewriteCond %{HTTP_USER_AGENT} AddressBook [OR]<br />
RewriteCond %{HTTP_USER_AGENT} Address%20Book [OR]<br />
RewriteCond %{HTTP_USER_AGENT} CalendarStore [OR]<br />
RewriteCond %{HTTP_USER_AGENT} CoreDAV<br />
# select if you run ajp (proxy_ajp.conf) or grizzly (proxy_http.conf), here ajp is used:<br />
RewriteRule (.*) ajp://localhost:8009/servlet/dav$1 [P] # for ajp http service<br />
#RewriteRule (.*) http://localhost:8009/servlet/dav$1 [P] # for grizzly http service<br />
<br />
'''Note:''' The address book app on OSX 10.6 uses a localized user-agent string. If you're expecting clients with non-english language settings, you need to add the translated user-agent string to these rewrite rules. For example: "Adressbuch" for german OSX clients.<br />
<br />
== Autodiscovery ==<br />
<br />
By providing some DNS service name registrations for your domain and adding an additional rewrite-rule to the webserver's configuration, it's possible for some clients to automatically discover the account settings by just providing the user's e-mail address and password. The procedure is specified in [http://tools.ietf.org/html/rfc6764 RFC 6764]. <br />
<br />
The following example illustrates the DNS entries where MYSERVER.TLD would be the domain name of the ox-server, both for CalDAV and CardDAV via HTTP and HTTPS on the virtual host dav.MYSERVER.TLD:<br />
<br />
_caldavs._tcp.MYSERVER.TLD. 10800 IN SRV 10 1 443 dav.MYSERVER.TLD.<br />
_caldav._tcp.MYSERVER.TLD. 10800 IN SRV 10 1 80 dav.MYSERVER.TLD.<br />
_carddavs._tcp.MYSERVER.TLD. 10800 IN SRV 10 1 443 dav.MYSERVER.TLD.<br />
_carddav._tcp.MYSERVER.TLD. 10800 IN SRV 10 1 80 dav.MYSERVER.TLD.<br />
<br />
Additionally, a rewrite-rule similar to the following example should be added to the webserver configuration of the virtual host to enable the bootstrapping process:<br />
<br />
RewriteEngine On<br />
RewriteCond %{REQUEST_URI} ^/\.well-known/caldav [OR]<br />
RewriteCond %{REQUEST_URI} ^/\.well-known/carddav<br />
RewriteRule (.*) / [L,R]<br />
<br />
== Which packages do I need? ==<br />
To get CalDAV and CardDAV up and running you need the following packages:<br />
<br />
In v6.20 and earlier:<br />
* open-xchange-webdav-directory - Assembles the *DAV interfaces into a common tree. This is needed for publishing certain properties so clients accept the OX is a WebDAV Server.<br />
* open-xchange-webdav-acl - The WebDAV equivalent of the /ajax/user interface. Allows clients to discover the current and other users and their addressbooks and calendars.<br />
* open-xchange-carddav - The CardDAV interface exposing the users addressbook via carddav<br />
* open-xchange-caldav - The CalDAV inteface exposing the users calendars via caldav<br />
<br />
<br />
With v6.22 we have significantly reduced the number of packages necessary to install Open-Xchange Server.<br />
In v6.22 and later only one package is needed:<br />
* open-xchange-dav <br />
<br />
== Installation on OX App Suite ==<br />
If there are any differences from for the Open-Xchange App Suite product family from version 6.22 they will be listed here:<br />
<br />
<br />
{{InstallPlugin|pluginname=open-xchange-caldav open-xchange-carddav open-xchange-webdav-acl open-xchange-webdav-directory |sopath=updates}}<br />
<br />
{{InstallPlugin|pluginname=open-xchange-dav|sopath=6.22/updates/backend|version=v6.22.x}}<br />
<br />
== CalDAV Configuration ==<br />
<br />
The following configuration options are available in the configuration files caldav.properties and caldav.yml:<br />
<br />
===com.openexchange.caldav.enabled===<br />
The property '''com.openexchange.caldav.enabled''' governs whether a user has access to the CalDAV interface. This can be configured along the config cascade, in the default setting, everyone that has access to the infostore also has access to caldav. This is achieved in the following way:<br />
<br />
In v6.20 and earlier:<br />
<br />
/opt/open-xchange/etc/groupware/caldav.properties:<br />
com.openexchange.caldav.enabled=false<br />
<br />
/opt/open-xchange/etc/groupware/contextSets/caldav.yml<br />
premium:<br />
com.openexchange.caldav.enabled: true<br />
withTags: ucInfostore<br />
<br />
With v6.22 and up:<br />
<br />
/opt/open-xchange/etc/caldav.properties:<br />
com.openexchange.caldav.enabled=false<br />
<br />
/opt/open-xchange/etc/contextSets/caldav.yml<br />
premium:<br />
com.openexchange.caldav.enabled: true<br />
withTags: ucInfostore<br />
<br />
<br />
This means: In general CalDAV is turned off, but using the contextSets feature of the config cascade it is turned on for everyone that has infostore access.<br />
<br />
===com.openexchange.caldav.tree===<br />
Configures the ID of the folder tree used by the CalDAV interface. Currently, this should be set to the default value of '0'.<br />
<br />
===com.openexchange.caldav.interval.start===<br />
Defines the minimum end time of appointments to be synchronized via the CalDAV interface, relative to the current date. Possible values are "one_month" (default), "one_year" and "six_months". <br />
<br />
===com.openexchange.caldav.interval.end===<br />
Defines the maximum start time of appointments to be synchronized via the CalDAV interface, relative to the current date. Possible values are "one_year" (default) and "two_years". <br />
<br />
===com.openexchange.caldav.url===<br />
Tells users where to find a caldav folder. This can be displayed in frontends. You can use the variables [hostname] and [folderId]. If you chose to deploy caldav as a virtual host (say 'dav.open-xchange.com') use https://dav.open-xchange.com/caldav/[folderId] as the value. If you are using user-agent sniffing use https://[hostname]/caldav/[folderId].<br />
<br />
<br />
== CardDAV Configuration ==<br />
<br />
The following configuration options are available in the configuration files carddav.properties and carddav.yml:<br />
<br />
===com.openexchange.carddav.enabled===<br />
Similarly to CalDAV, the property '''com.openexchange.carddav.enabled''' governs whether CardDAV is available for a certain user. This is configured exactly like CalDAV with the config cascade only enabling this for users that have access to the infostore:<br />
<br />
/opt/open-xchange/etc/groupware/carddav.properties:<br />
com.openexchange.carddav.enabled=false<br />
<br />
/opt/open-xchange/etc/groupware/contextSets/carddav.yml<br />
premium:<br />
com.openexchange.carddav.enabled: true<br />
withTags: ucInfostore<br />
<br />
===com.openexchange.carddav.ignoreFolders===<br />
A comma-separated list of folder IDs to exclude from the synchronization. Use this to disable syncing of very large folders (e.g. the global address list in large contexts, which always has ID 6). By default, no folders are excluded.<br />
<br />
===com.openexchange.carddav.tree===<br />
Configures the ID of the folder tree used by the CardDAV interface. Currently, this should be set to the default value of '0'.<br />
<br />
===com.openexchange.carddav.exposedCollections===<br />
Controls which collections are exposed via the CardDAV interface. Possible values are '0', '1' and '2'. A value of '1' makes each visible folder available as a resource collection, while '2' only exposes an aggregated collection containing all contact resources from all visible folders. The default value '0' exposes either an aggregated collection or individual collections for each folder, depending on the client's user-agent that is matched against the pattern in 'userAgentForAggregatedCollection'. <br />
<br />
===com.openexchange.carddav.userAgentForAggregatedCollection===<br />
Regular expression to match against the client's user-agent to decide whether the aggregated collection is exposed or not. The default pattern matches all known varieties of the Mac OS Addressbook client, that doesn't support multiple collections. Only used if 'exposedCollections' is set to '0'. The pattern is used case insensitive. <br />
<br />
===com.openexchange.carddav.reducedAggregatedCollection===<br />
Specifies if all visible folders are used to create the aggregated collection, or if a reduced set of folders only containing the global addressbook and the personal contacts folders should be used. This setting only influences the aggregated collection that is used for clients that don't support multiple collections. Possible values are 'true' and 'false.<br />
<br />
[[Category: Clients]]<br />
[[Category: Administrator]]<br />
[[Category: AppSuite]]</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=Template:OXLoadBalancingClustering_Database&diff=17126Template:OXLoadBalancingClustering Database2014-02-20T07:31:39Z<p>Karsten.will: /* RHEL 6 systems */</p>
<hr />
<div>== Overview ==<br />
<br />
You can choose between Galera or two-sided Master/Slave ("Master/Master") replication.<br />
<br />
== Galera database setup ==<br />
<br />
OX only supports the "Percona XtraDB Cluster 5.5" flavor of the Galera database.<br />
<br />
=== Installation ===<br />
<br />
==== Debian systems ====<br />
<br />
The following has been tested with Squeeze, but the Wheezy procedure should not be different, besides the repo paths need adjustments.<br />
<br />
To install the software, we first need to configure the repository and its build key, update our sources lists and install the packages:<br />
<br />
gpg --keyserver hkp://keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A<br />
gpg -a --export CD2EFD2A | apt-key add -<br />
<br />
cat >/etc/apt/sources.list.d/percona.list <<EOF<br />
deb http://repo.percona.com/apt squeeze main<br />
deb-src http://repo.percona.com/apt squeeze main<br />
EOF<br />
<br />
apt-get update<br />
apt-get install percona-xtradb-cluster-client-5.5 percona-xtradb-cluster-server-5.5 percona-xtrabackup<br />
<br />
==== RHEL 6 systems ====<br />
<br />
Should also apply to CentOS 6.<br />
<br />
First, disable ''selinux'', ''iptables'', ''ip6tables''. (Galera does not run with selinux. Using iptables and ip6tables should work if you configure it correctly, but documentation thereof is out of scope of this document.) Reboot.<br />
<br />
Percona XtraDB Cluster relies on ''socat'' which is not shipped by RHEL. We need to install from a different source. It is convenient to use the rpmforge repo. (''epel'' works not since its socat expects readline libraries version 5, while RHEL 6 (at leat 6.4) provides version 6.)<br />
<br />
The installation command itself needs to be a composite ''remove'', ''install'' command since yum is not clever enough to resolve the conflicts itself, so we need to tell it how.<br />
<br />
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm<br />
yum localinstall rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm<br />
<br />
wget http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm<br />
yum localinstall percona-release-0.0-1.x86_64.rpm<br />
<br />
yum shell<br />
remove mysql-libs<br />
install Percona-XtraDB-Cluster-server Percona-XtraDB-Cluster-client<br />
run<br />
quit<br />
<br />
=== Configuration ===<br />
<br />
==== ''my.cnf'' configuration file ====<br />
<br />
Galera needs also a ''my.cnf'' configuration file. Usually MySQL expects this file to be located at ''/etc/mysql/my.cnf''. But the Percona packages don't ship any; on purpose: https://bugs.launchpad.net/percona-server/+bug/673844<br />
<br />
Thus, you need to obtain / install / create one on your own. Make sure it has no settings which are forbidden for Galera. This includes the ''query_cache'' (it must not be enabled with Galera) and probably other settings which would contradict the settings explained in the next section.<br />
<br />
Make sure you apply standard tunings for your memory size, number of allowed connections, and stuff.<br />
<br />
We assume in the following that the ''my.cnf'' file has a directive like ''!includedir /etc/mysql/conf.d'', such that you can put additional config files ending with ''.cnf'' there.<br />
<br />
A sample ''my.cnf'' file serving as a starting point is provided here: [[My.cnf]]. Make sure you read the whole article and adjust that file to suit your needs before actually using it.<br />
<br />
Caveat: we found out that Galera performs suboptimal when using ''innodb_flush_log_at_trx_commit=1''. We leave up to you to assess whether this is a no-go for your environment or not. For Galera reasonable values for this parameter are ''innodb_flush_log_at_trx_commit=2'' or ''...=0''. Make sure to read the documentataion of this parameter and that you understand its implication before using it.<br />
<br />
==== ''wsrep.cnf'' configuration file ====<br />
<br />
The Galera configuration then happens in a section called "wsrep", "write set replication", which is the internal name for the replication mechanism Galera is based on. A sample ''/etc/mysql/conf.d/wsrep.cnf'' file looks like:<br />
<br />
[mysqld]<br />
# the following lines are required for galera:<br />
binlog_format=ROW<br />
default-storage-engine=innodb<br />
innodb_autoinc_lock_mode=2<br />
innodb_locks_unsafe_for_binlog=1<br />
query_cache_size=0<br />
query_cache_type=0<br />
bind-address=0.0.0.0<br />
wsrep_provider=/usr/lib64/libgalera_smm.so<br />
# the following lines need to be adjusted to your environment ... CHANGE THE PASSWORD! :-)<br />
wsrep_cluster_name="my_wsrep_cluster"<br />
wsrep_cluster_address="gcomm://<GALERA_NODE1_IP>,<GALERA_NODE2_IP>,<GALERA_NODE3_IP>"<br />
wsrep_sst_method=xtrabackup<br />
wsrep_sst_auth=wsrep:5ojijmedUg8<br />
# It is recommended to run Galera in synchronous mode, which makes it possible<br />
# to disable the OX builtin database replication monitor.<br />
# Default is semi-synchronous mode. To enable synchronous mode, use<br />
wsrep_causal_reads=1<br />
<br />
When you adjusted those files, make sure they are identical on all nodes.<br />
<br />
The replication user will be created later when the DB is running on the first node.<br />
<br />
=== Cluster startup ===<br />
<br />
Whenever all nodes of a Galera cluster are not running (like before starting the cluster for the very first time), the first Galera node needs to get started with the ''wsrep_cluster_address'' parameter overridden to the value "gcomm://" in order to denote that the node shall not try to join an existing cluster (which would inevitably fail now, because no other cluster nodes are running yet), but to bootstrap the cluster instead. This override can most conveniently done on the command line, instead of editing to wsrep.cnf file to and fro.<br />
<br />
So, for the first node, the startup command is<br />
<br />
mysqld_safe --wsrep_cluster_address=gcomm:// &<br />
<br />
You should then verify the Galera module is loaded properly using<br />
<br />
mysql -e "show status like 'wsrep%';"<br />
<br />
You should verify some settings like<br />
<br />
| wsrep_local_state_comment | Synced |<br />
| wsrep_cluster_size | 1 |<br />
| wsrep_cluster_status | Primary |<br />
| wsrep_connected | ON |<br />
| wsrep_provider_name | Galera |<br />
| wsrep_provider_vendor | Codership Oy <info@codership.com> |<br />
| wsrep_provider_version | 2.8(r162) |<br />
| wsrep_ready | ON |<br />
<br />
Now you need to create the database user for the replication on this first node:<br />
<br />
# create wsrep user: in mysql shell:<br />
CREATE USER 'wsrep'@'localhost' IDENTIFIED BY '5ojijmedUg8';<br />
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'wsrep'@'localhost';<br />
FLUSH PRIVILEGES;<br />
<br />
The Galera peers can then be started on the nodes 2 and 3 using<br />
<br />
mysqld_safe &<br />
<br />
Since the standard service startup scripts cannot account for this special treatment, we recomment not to use them.<br />
<br />
You can check the status of the Galera cluster using<br />
<br />
mysql -e "show status like 'wsrep%';"<br />
<br />
The output is lengthy. The most relevant fields are given as follows:<br />
<br />
+----------------------------+----------------------------------------------------------------------+<br />
| Variable_name | Value |<br />
+----------------------------+----------------------------------------------------------------------+<br />
| wsrep_local_state_comment | Synced |<br />
| wsrep_incoming_addresses | <GALERA_NODE1_IP>:3306,<GALERA_NODE2_IP>:3306,<GALERA_NODE3_IP>:3306 |<br />
| wsrep_cluster_size | 3 |<br />
| wsrep_cluster_status | Primary |<br />
| wsrep_connected | ON |<br />
| wsrep_ready | ON |<br />
+----------------------------+----------------------------------------------------------------------+<br />
<br />
==== Troubleshooting ====<br />
<br />
The logs are helpful. Always.<br />
<br />
Common mistakes are listed below.<br />
<br />
If the Galera module does not get loaded at all:<br />
* Configuration settings in ''my.cnf'' which are incompatible to Galera<br />
* Wrong path of the shared object providing the Galera plugin in wsrep.cnf (wsrep_provider)<br />
<br />
If the first node starts, but the second / third nodes can not be added to the cluster:<br />
* User for the replication not created correctly on the first Galera node<br />
<br />
=== Notes about configuring OX for use with Galera ===<br />
<br />
==== Write requests ====<br />
<br />
Open-Xchange supports Galera as database backend only in the configuration where all writes are directed to one Galera node. For availability, it makes sense to configure a floating IP as write IP for OX, which can be transferred from one Galera to another Galera node if needed. We recommend putting the control of such a floating IP under the control of some HA cluster software like pacemaker/corosync.<br />
<br />
==== Read requests ====<br />
<br />
You can chose between using a load balancer, using a floating IP for the read requests, or use the write requests floating IP.<br />
<br />
* Load balancer based setup: Read requests get distributed aribtrarily between the Galera nodes. You require a load balancer for this. See next section. Then, in this configuration, you have two alternatives: <br />
** The Galera option wsrep_causal_reads=1 option enables you to configure OX with its replication monitor disabled (com.openexchange.database.replicationMonitor=false in configdb.properties).<br />
** Alternatively, you can run Galera with wsrep_causal_reads=0 when switching on OX builtin replication monitor. This setup however seems to be inferior from the performance point of view.<br />
* Use a designated floating IP for the read requests: This eliminates the need of a load balancer. Since read requests do not seem to be performance-limiting, we expect to perform this option on par with the loadbalancer option.<br />
* Use the floating IP for the writes also for the reads: In this scenario, you direct all database queries only to one Galera node, and the other two nodes are only getting queries in case of a failure of that node. In this case, you can even use wsrep_causal_reads=0 wile still having OX builtin replication monitor switched off.<br />
<br />
=== Loadbalancer options ===<br />
<br />
While the JDBC driver has some round-robin load balancing capabilities built-in, we don't recommend it for production use since it lacks possibilities to check the Galera nodes health states.<br />
<br />
For most productions setup customers use enterprise-grade loadbalancing appliances. Those should get configured to check node availability not only on the TCP level, but to query the Galera sync status periodically. For an example of such an health check, see the our documentation for setting up a software loadbalancer using keepalived (next paragraph).<br />
<br />
For testing purposes it is possible to use Keepalived to create a software loadbalancer on a therefore dedicated linux node. Documentation is available [[Keepalived|here]].<br />
<br />
== Master/Master database setup ==<br />
This section describes the setup process "Master/Master replication" for new Open-Xchange database cluster. During configuration and initialization, other database operations must be prohibited.<br />
<br />
The Master/Master replication is a vice versa setup of Master/Slave configurations. This means each server is afterwards the slave of the other. <br />
<br />
Server IPs in the example are 1.1.1.1 and 9.9.9.9<br />
<br />
Startup both database machines and install the mysql server packages<br />
$ apt-get install mysql-server<br />
<br />
During the installation, a dialog will show up to set a password for the MySQL 'root' user.<br />
<br />
Open the MySQL configuration file on both servers:<br />
$ vim /etc/mysql/my.cnf<br />
<br />
Modify or enable the following configuration options in the mysqld-section, use 1 as ${unique Number} on the server 1.1.1.1 and 2 for 9.9.9.9: <br />
bind-address = 0.0.0.0<br />
server-id = ${unique Number}<br />
log_bin = /var/log/mysql/mysql-bin.log<br />
binlog_format = statement<br />
max_allowed_packet = 16M<br />
<br />
* ''bindaddress'' specifies the network address where MySQL is listening for network connections. Since the MySQL slave and both Open-Xchange Servers are dedicated machines it is required to have the master accessible through the network.<br />
* ''server-id'' is just a unique number within a environment with multiple MySQL servers. It needs to be unique for each server in a replication cluster.<br />
* ''log-bin'' enables the MySQL binary log which is required for Master/Master replication. In general every statement triggered at the database is stored there to get distributed through the database cluster.<br />
<br />
To apply the configuration changes, restart the MySQL servers.<br />
$ /etc/init.d/mysql restart<br />
<br />
Then login to MySQL with the credentials given at the MySQL installation process<br />
$ mysql -u root -p<br />
Enter password:<br />
<br />
=== First Master configuration ===<br />
Choose one server to start with as the first Master (here we use 1.1.1.1).<br />
<br />
Create a MySQL user with rights "REPLICATION". This account is used by the MySQL slave to fetch database updates. In this example, the username is "replication":<br />
<br />
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'9.9.9.9' IDENTIFIED BY 'secret';<br />
<br />
Verify that the MySQL daemon writes a binary log and note the log Position and File name:<br />
mysql> SHOW MASTER STATUS;<br />
+------------------+----------+--------------+------------------+<br />
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |<br />
+------------------+----------+--------------+------------------+<br />
| mysql-bin.000001 | 1111 | | |<br />
+------------------+----------+--------------+------------------+<br />
<br />
=== First Slave configuration ===<br />
<br />
On 9.9.9.9, set the MySQL system user as owner of the binary log that has just been copied to the slave.<br />
$ chown mysql:adm /var/log/mysql/*<br />
<br />
Configure MySQL on 9.9.9.9 to use 1.1.1.1 as Master Server. (Use the actual log File name and Position which you just obtained with the command SHOW MASTER STATUS on 1.1.1.1. as explained above.)<br />
mysql> CHANGE MASTER TO MASTER_HOST='1.1.1.1', MASTER_USER='replication', MASTER_PASSWORD='secret', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1111;<br />
<br />
Start the MySQL slave replication<br />
mysql> START SLAVE;<br />
<br />
And check the status<br />
mysql> SHOW SLAVE STATUS\G;<br />
<br />
"Slave_IO_Running" and "Slave_SQL_Running" should be set to "yes". Furthermore "Read_Master_Log_Pos" should be counting and "Seconds_Behind_Master" should be approaching the 0 mark.<br />
<br />
=== Second Master configuration ===<br />
<br />
This means, the first Master/Slave Replication is working and the "reverse" replication needs to be prepared. Please now create the replication user on 9.9.9.9:<br />
<br />
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication'@'1.1.1.1' IDENTIFIED BY 'secret';<br />
<br />
Verify that the MySQL daemon writes a binary log and remember the log Position:<br />
mysql> SHOW MASTER STATUS;<br />
+------------------+----------+--------------+------------------+<br />
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |<br />
+------------------+----------+--------------+------------------+<br />
| mysql-bin.000009 | 9999| | |<br />
+------------------+----------+--------------+------------------+<br />
<br />
=== Second Slave configuration ===<br />
<br />
1.1.1.1 is now the slave in this context and 9.9.9.9 is the master. Log in to 1.1.1.1<br />
<br />
Configure MySQL on 1.1.1.1 to use 9.9.9.9 as Master Server. Use the remembered log and file position from 1.1.1.1.<br />
mysql> CHANGE MASTER TO MASTER_HOST='9.9.9.9', MASTER_USER='replication', MASTER_PASSWORD='secret', MASTER_LOG_FILE='mysql-bin.000009', MASTER_LOG_POS=9999;<br />
<br />
start the MySQL slave replication<br />
mysql> START SLAVE;<br />
<br />
and check the status<br />
mysql> SHOW SLAVE STATUS\G;<br />
<br />
"Slave_IO_Running" and "Slave_SQL_Running" should be set to "yes". Furthermore "Read_Master_Log_Pos" should be counting and "Seconds_Behind_Master" should be approaching the 0 mark.<br />
<br />
Also check the syslog if the replication has been sucessfully started<br />
$ tail -fn20 /var/log/syslog<br />
Jul 26 19:03:45 dbslave mysqld[4718]: 090726 19:03:45 [Note] Slave I/O thread: connected to master 'replication@1.1.1.17:3306', replication started in log 'mysql-bin.000001' at position 10000<br />
<br />
=== Testing Master/Master ===<br />
<br />
On 1.1.1.1, create a new database in MySQL:<br />
mysql> CREATE DATABASE foo;<br />
<br />
Verify the database to als be available on 9.9.9.9 afterwards:<br />
mysql> SHOW DATABASES;<br />
+--------------------+<br />
| Database |<br />
+--------------------+<br />
| information_schema |<br />
| foo |<br />
| mysql |<br />
+--------------------+<br />
<br />
Delete the new database on 9.9.9.9:<br />
mysql> DROP DATABASE foo;<br />
<br />
Check if the database has also been removed on 1.1.1.1<br />
mysql> SHOW DATABASES;<br />
+--------------------+<br />
| Database |<br />
+--------------------+<br />
| information_schema |<br />
| mysql |<br />
+--------------------+<br />
<br />
== Creating Open-Xchange user ==<br />
<br />
Now setup access for the Open-Xchange Server database user 'openexchange' to configdb and the oxdb for both groupware server addresses. These databases do not exist yet, but will be created during the Open-Xchange Server installation.<br />
<br />
Note: The IPs in this example belong to the two different Open-Xchange Servers, please adjust them accordingly.<br />
mysql> GRANT ALL PRIVILEGES ON *.* TO 'openexchange'@'10.20.30.213' IDENTIFIED BY 'secret';<br />
mysql> GRANT ALL PRIVILEGES ON *.* TO 'openexchange'@'10.20.30.215' IDENTIFIED BY 'secret';</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=SupportedCrawler&diff=16678SupportedCrawler2013-12-10T14:53:50Z<p>Karsten.will: /* Social OX PlugIn Matrix */</p>
<hr />
<div>= Open-Xchange Supported Social OX PlugIn Matrix =<br />
Open-Xchange introduces a new groupware concept called “Social OX,” which aggregates e-mail and contact information in one place -- whether personal or business -- avoiding time-consuming searching and giving users access to information anywhere, anytime and with any device. The new concept provides <br />
* The integration of any kind of existing webmail accounts (from Google, Yahoo, etc.) into a folder in Open-Xchange, including merging of data<br />
* Contact details from social networks such as Facebook, LinkedIn or Xing will be added automatically to the Open-Xchange address book – giving users easy access to the latest contact information within their personal network.<br />
* In addition, Open-Xchange users can share their data with other users in a controlled way -- without sending the information via e-mail. For example, with Social OX published data can be shared so there is no need to send large documents as an attachment via e-mail.<br />
<br />
The following Matrix will show the official supported Social OX PlugIn to subscribe social networks.<br />
<br />
= Supported Social OX PlugIn Matrix (Status OX6 v.6.18.2)=<br />
<br />
==Caption of the Matrix==<br />
<br />
{|<br />
|-<br />
! Icon !! Definition<br />
|-<br />
| [[File:Cross_gray.gif]] || Not provided by the external service<br />
|-<br />
| [[File:cross.gif]] || Not provided<br />
|-<br />
| [[File:check.gif]] || Available<br />
|-<br />
|}<br />
<br />
==Social OX PlugIn Matrix==<br />
<br />
{|<br />
|-<br />
! Social Service !! Type !! Subscribed fields !! .de !! .com !! .uk !! .fr !! .es !! .nl<br />
|-<br />
| rowspan="4" | Facebook <br />
| IMAP || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
| POP || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
| Contacts || display_name, given_name, last_name, birthday, image, city_home, country_home, postal_code_home || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] <br />
|-<br />
| Calendar || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
<br />
<br />
| rowspan="4" | Google<br />
| IMAP || &nbsp; || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] <br />
|-<br />
| POP || &nbsp; || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] <br />
|-<br />
| Contacts || display_name, first_name, middle_name, last_name, suffix, company, email1, email2, email3, telephone_business1, telephone_home1, telephone_other1, work_fax, home_fax, cellular_telephone1, birthday, street_home, postal_code_home, city_home, country_home, street_business, postal_code_business, city_business, country_business, street_other, postal_code_other, city_other, country_other, instant_messenger1, image || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] <br />
|-<br />
| Calendar || title, start_date, end_date, note, Serial information || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] <br />
|-<br />
<br />
<br />
<br />
| rowspan="4" | LinkedIn<br />
| IMAP || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
| POP || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
| Contacts || first-name, last-name, telephone_business1, telephone_private1, instant_messenger1, date-of-birth, main-address, picture, positions || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]]<br />
|-<br />
| Calendar || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
<br />
<br />
| rowspan="4" | Xing<br />
| IMAP || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
| POP || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
| Contacts || first_name, last_name, display_name, email1, street_business, postal_code_business, city_business, state_business, country_business, telephone_business1, fax_work, company, title, image || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]]<br />
|-<br />
| Calendar || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
<br />
<br />
| rowspan="4" | Yahoo<br />
| IMAP || &nbsp; || [[File:check.gif]] || [[File:check.gif]] (US Pro-Account only) || [[File:cross.gif]] || [[File:cross.gif]] || [[File:cross.gif]] || [[File:cross.gif]]<br />
|-<br />
| POP || &nbsp; || [[File:check.gif]] || [[File:check.gif]] (US Pro-Account only) || [[File:cross.gif]] || [[File:cross.gif]] || [[File:cross.gif]] || [[File:cross.gif]]<br />
|-<br />
| Contacts || display_name, email, telephone_home1, telephone_business1, cellular_telephone1, company, title, street_business, postal_code_business, city_business, instant_messenger1, street_home, postal_code_home, city_home, birthday || [[File:check.gif]] || [[File:check.gif]] || [[File:cross.gif]] || [[File:cross.gif]] || [[File:cross.gif]] || [[File:cross.gif]]<br />
|-<br />
| Calendar || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
<br />
<br />
<br />
| rowspan="4" | MSN<br />
| IMAP || &nbsp; || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]]|| [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]]<br />
|-<br />
| POP || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] ||[[File:Cross_gray.gif]]<br />
|-<br />
| Contacts || first_name, last_name, city_home, country_home, image || [[File:check.gif]] || [[File:cross.gif]] || [[File:cross.gif]] || [[File:cross.gif]] || [[File:cross.gif]] || [[File:cross.gif]]<br />
|-<br />
| Calendar || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
<br />
<br />
<br />
| rowspan="4" | T-Online<br />
| IMAP || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]|| [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
| POP || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] ||[[File:Cross_gray.gif]]<br />
|-<br />
| Contacts || birthday, email2, email1, cellular_telephone2, cellular_telephone1, telephone_home1, telephone_business1, street_home, postal_code_home, city_home, country_home, street_business, postal_code_business, city_business, country_business || [[File:check.gif]] || [[File:cross.gif]] || [[File:cross.gif]] || [[File:cross.gif]] || [[File:cross.gif]] || [[File:cross.gif]]<br />
|-<br />
| Calendar || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
<br />
<br />
| rowspan="4" | [https://www.ox.io/de/quickstart Open-Xchange]<br />
| IMAP || &nbsp; || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]]|| [[File:check.gif]]<br />
|-<br />
| POP || &nbsp; || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]]|| [[File:check.gif]]<br />
|-<br />
| Contacts || All available contact fields of Open-Xchange || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]]<br />
|-<br />
| Calendar || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
<br />
<br />
| rowspan="4" | GMX<br />
| IMAP || &nbsp; || [[File:check.gif]] || [[File:cross.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]]|| [[File:check.gif]]<br />
|-<br />
| POP || &nbsp; || [[File:check.gif]] || [[File:cross.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]]|| [[File:check.gif]]<br />
|-<br />
| Contacts || All available contact fields of Open-Xchange || [[File:check.gif]] ||[[File:cross.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]]<br />
|-<br />
| Calendar || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
<br />
| rowspan="4" | Web.de<br />
| IMAP || &nbsp; || [[File:check.gif]] || [[File:cross.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]]|| [[File:check.gif]]<br />
|-<br />
| POP || &nbsp; || [[File:check.gif]] || [[File:cross.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]]|| [[File:check.gif]]<br />
|-<br />
| Contacts || All available contact fields of Open-Xchange || [[File:check.gif]] || [[File:cross.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]] || [[File:check.gif]]<br />
|-<br />
| Calendar || &nbsp; || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]] || [[File:Cross_gray.gif]]<br />
|-<br />
|}<br />
<br />
= Custom Social OX PlugIn Request =<br />
<br />
== Custom Social OX PlugIn Development ==<br />
To ensure that mission critical Social OX PlugIn for single customers can be implemented into Open-Xchange products even if they do not match the requirements to be prioritized within the standard process, there is the possibility to order custom Social OX PlugIn development.<br />
<br />
== Social OX as Plugin ==<br />
Open-Xchange products have the ability to implement additional Social OX as plugins. These Social OX PlugIn are mainly available for the interfaces between Open-Xchange and the existing infrastructure: authentication, email access, SPAM filtering, and 3rd party applications. In most cases, these plugins are developed in close cooperation with the customer from the project team. <br />
<br />
== Offering ==<br />
Offerings for the implementation of Social OX PlugIn requests, which can be technically implemented as a plugin can be obtained from the Open-Xchange project or sales teams.</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=Help:Howto&diff=16493Help:Howto2013-11-21T09:28:02Z<p>Karsten.will: /* Author information */</p>
<hr />
<div><div class="title">Writing for OXpedia</div><br />
<br />
'''Summary:''' This article explains how to write a great OXpedia article.<br />
<br />
__TOC__<br />
<br />
First and foremost: A wiki thrives on articles. If you only follow one rule, then it should be this:<br />
"Write the article you are thinking about the way you want to." <br />
Then let [[#Who we are|us]] know. If it needs fixing in anyway then we will fix it for you. On the other hand, if you prefer to write the best article possible, then this style guide is meant to help you.<br />
<br />
<br />
== Style Guide ==<br />
<br />
=== Writing ===<br />
<br />
There are tons of articles on writing technical documentation (see below for links). Here is a condensed version:<br />
<br />
* If you have got the choice between funny, eloquent and concise, go for the latter. (Actually, don't "go for the latter", but "go for concise", as the next guideline will explain).<br />
<br />
* Make sentences that stand on their own. This is especially important in a wiki where paragraphs or even lines might be moved around.<br />
<br />
=== Namespace ===<br />
<br />
AppSuite-specific articles go into the AppSuite:* namespace. That means you simply prefix the page title with AppSuite:, that's all. The tricky part is knowing whether the article is AppSuite-specific. This is obvious for UI articles. But for server articles, it is not that clear-cut, as the backend is usually backwards-compatible with OX6. When in doubt, put it in the main namespace (that is the one without any prefix).<br />
<br />
=== Layout ===<br />
<br />
Due to some php magic, our skin does not show the article title. The benefit is that you are not bound by the restrictions of article titles on MediaWiki. To put up a <nowiki><div class="title">Title of the article</div></nowiki> element on top.<br />
<br />
Decide whether to use the ''table of contents'', which links all article headings and subheadings. If you do so, use <nowiki>__TOC__</nowiki>. Use it after the intro sentence and before the first heading that you wrote.<br />
<br />
Write an intro sentence that gives the user a rough overview of what the article covers.<br />
<br />
<br />
<br />
=== Categories ===<br />
<br />
You are free to invent new categories. The following ones are just a fraction of all categories this wiki contains, but they are those we would like to see used more widely. We propagate these by linking them from the main page so they get a lot of visibility. If you want your hard work to be found, use them:<br />
<br />
* This wiki contains articles for OX5, OX6 and AppSuite. Please indicate which version you're referring to by adding either <nowiki>[[Category: OX5]]</nowiki>, <nowiki>[[Category: OX6]]</nowiki> or <nowiki>[[Category: AppSuite]]</nowiki>.<br />
<br />
** Server-related articles usually concern both OX6 and AppSuite, so simply use both categories.<br />
<br />
* Articles here aim at a certain target group. Ask yourself whether you are writing for :<br />
<br />
** Potential customers, <nowiki>[[Category: Customer]]</nowiki>, people interested in buying the product<br />
<br />
** Users, <nowiki>[[Category: User]]</nowiki>, people working with the product<br />
<br />
*** If you are writing for users, more power to you, but consider letting the people responsible for the user manual know. Users get translated manuals, so these articles leave the wiki after an incubation period.<br />
<br />
** Admins, <nowiki>[[Category: Admin]]</nowiki>, people running the product on their servers<br />
<br />
** Developers <nowiki>[[Category: Developer]]</nowiki>, people extending the product using our SPIs or APIs<br />
<br />
*** Go into detail, explaining whether you are writing about a server component <nowiki>[[Category: Server]]</nowiki> or a user interface component <nowiki>[[Category: UI]]</nowiki><br />
<br />
<br />
<br />
=== Numbering and versioning ===<br />
<br />
As opposed to normal wikis, it is not just the current version of an article that interests a user: Documentation for an older version of the product might be needed, too. The way we handle this might seem familiar to linux users:<br />
<br />
* When starting an article, use a good title. No numbers needed. For example "My useful article"<br />
<br />
* Once you realize that you are creating text that needs to be versioned, create a page for that version by adding a space and then the version number. For example: "My useful article 7.4.0". Ignore the fact that we used both "v7.4.0" and "7_4_0" in the past. That's outdated.<br />
<br />
** This article is probably a verbatim copy of the one you worked on last. That should not be much trouble. If you're admin, you can even move the article. That takes care of the next step, too, which you have to do by hand otherwise.<br />
<br />
* Replace the content of the old article with a redirect to the most current version. For example: "My useful article" contains only <nowiki>#REDIRECT [[My useful article 7.4.0]]</nowiki><br />
<br />
* When you have articles for more than one version, please use the Template <nowiki>{{Version|7.x.x}}</nowiki> and point to the next and previous version in line.<br />
<br />
=== Templates ===<br />
<br />
Templates make recurring tasks easier. The following templates are used regularly within the OXpedia:<br />
<br />
* The [[API status|level of stability]] a described feature has: <nowiki>{{Stability-unstable}}, {{Stability-stable}}, {{Stability-frozen}} and {{Stability-deprecated}}</nowiki><br />
* The version, used for pages with information for a specific version: <nowiki>{{Version|7.4.0}}</nowiki><br />
<br />
=== Author information ===<br />
<br />
* Every user should feel free to improve any wiki article<br />
* The person primarily responsible for the article is its author<br />
* The author of an article should be identifiable by editing a page and looking at the top<br />
* Mark yourself as the author of a page by putting in a commented section (invisible when not editing) at the top of a page like this:<br />
<pre><!-- Author: Karsten Will <karsten.will@open-xchange.com> --></pre><br />
<br />
== Hints for Mediawiki ==<br />
This is a media wiki... even if our great design is trying to fool you into thinking otherwise. So all Mediawiki[http://meta.wikimedia.org] tricks apply here, too.<br />
<br />
* [http://en.wikipedia.org/wiki/Help:Editing Editing basic for Wikipedia]<br />
* Markup: [http://meta.wikimedia.org/wiki/Image:Wiki-refcard.pdf PDF cheat sheet] or [http://www.mediawiki.org/wiki/Help:Formatting Website]<br />
* [http://meta.wikimedia.org/wiki/Help:Reference_card#Links_to_other_help_pages Mediawiki help pages]<br />
* [http://en.wikipedia.org/wiki/Wikipedia:Guide_to_layout Wikipedia's guide to layout]<br />
* [http://w-i-k-i.appspot.com/ Converter for HTML to MediaWiki]<br />
<br />
== Who we are ==<br />
We are the OXpedia team. You can reach us via oxpedia@open-xchange.com<br />
<br />
[[Category: Meta]]</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=Help:Howto&diff=16492Help:Howto2013-11-21T09:27:53Z<p>Karsten.will: /* Author information */</p>
<hr />
<div><div class="title">Writing for OXpedia</div><br />
<br />
'''Summary:''' This article explains how to write a great OXpedia article.<br />
<br />
__TOC__<br />
<br />
First and foremost: A wiki thrives on articles. If you only follow one rule, then it should be this:<br />
"Write the article you are thinking about the way you want to." <br />
Then let [[#Who we are|us]] know. If it needs fixing in anyway then we will fix it for you. On the other hand, if you prefer to write the best article possible, then this style guide is meant to help you.<br />
<br />
<br />
== Style Guide ==<br />
<br />
=== Writing ===<br />
<br />
There are tons of articles on writing technical documentation (see below for links). Here is a condensed version:<br />
<br />
* If you have got the choice between funny, eloquent and concise, go for the latter. (Actually, don't "go for the latter", but "go for concise", as the next guideline will explain).<br />
<br />
* Make sentences that stand on their own. This is especially important in a wiki where paragraphs or even lines might be moved around.<br />
<br />
=== Namespace ===<br />
<br />
AppSuite-specific articles go into the AppSuite:* namespace. That means you simply prefix the page title with AppSuite:, that's all. The tricky part is knowing whether the article is AppSuite-specific. This is obvious for UI articles. But for server articles, it is not that clear-cut, as the backend is usually backwards-compatible with OX6. When in doubt, put it in the main namespace (that is the one without any prefix).<br />
<br />
=== Layout ===<br />
<br />
Due to some php magic, our skin does not show the article title. The benefit is that you are not bound by the restrictions of article titles on MediaWiki. To put up a <nowiki><div class="title">Title of the article</div></nowiki> element on top.<br />
<br />
Decide whether to use the ''table of contents'', which links all article headings and subheadings. If you do so, use <nowiki>__TOC__</nowiki>. Use it after the intro sentence and before the first heading that you wrote.<br />
<br />
Write an intro sentence that gives the user a rough overview of what the article covers.<br />
<br />
<br />
<br />
=== Categories ===<br />
<br />
You are free to invent new categories. The following ones are just a fraction of all categories this wiki contains, but they are those we would like to see used more widely. We propagate these by linking them from the main page so they get a lot of visibility. If you want your hard work to be found, use them:<br />
<br />
* This wiki contains articles for OX5, OX6 and AppSuite. Please indicate which version you're referring to by adding either <nowiki>[[Category: OX5]]</nowiki>, <nowiki>[[Category: OX6]]</nowiki> or <nowiki>[[Category: AppSuite]]</nowiki>.<br />
<br />
** Server-related articles usually concern both OX6 and AppSuite, so simply use both categories.<br />
<br />
* Articles here aim at a certain target group. Ask yourself whether you are writing for :<br />
<br />
** Potential customers, <nowiki>[[Category: Customer]]</nowiki>, people interested in buying the product<br />
<br />
** Users, <nowiki>[[Category: User]]</nowiki>, people working with the product<br />
<br />
*** If you are writing for users, more power to you, but consider letting the people responsible for the user manual know. Users get translated manuals, so these articles leave the wiki after an incubation period.<br />
<br />
** Admins, <nowiki>[[Category: Admin]]</nowiki>, people running the product on their servers<br />
<br />
** Developers <nowiki>[[Category: Developer]]</nowiki>, people extending the product using our SPIs or APIs<br />
<br />
*** Go into detail, explaining whether you are writing about a server component <nowiki>[[Category: Server]]</nowiki> or a user interface component <nowiki>[[Category: UI]]</nowiki><br />
<br />
<br />
<br />
=== Numbering and versioning ===<br />
<br />
As opposed to normal wikis, it is not just the current version of an article that interests a user: Documentation for an older version of the product might be needed, too. The way we handle this might seem familiar to linux users:<br />
<br />
* When starting an article, use a good title. No numbers needed. For example "My useful article"<br />
<br />
* Once you realize that you are creating text that needs to be versioned, create a page for that version by adding a space and then the version number. For example: "My useful article 7.4.0". Ignore the fact that we used both "v7.4.0" and "7_4_0" in the past. That's outdated.<br />
<br />
** This article is probably a verbatim copy of the one you worked on last. That should not be much trouble. If you're admin, you can even move the article. That takes care of the next step, too, which you have to do by hand otherwise.<br />
<br />
* Replace the content of the old article with a redirect to the most current version. For example: "My useful article" contains only <nowiki>#REDIRECT [[My useful article 7.4.0]]</nowiki><br />
<br />
* When you have articles for more than one version, please use the Template <nowiki>{{Version|7.x.x}}</nowiki> and point to the next and previous version in line.<br />
<br />
=== Templates ===<br />
<br />
Templates make recurring tasks easier. The following templates are used regularly within the OXpedia:<br />
<br />
* The [[API status|level of stability]] a described feature has: <nowiki>{{Stability-unstable}}, {{Stability-stable}}, {{Stability-frozen}} and {{Stability-deprecated}}</nowiki><br />
* The version, used for pages with information for a specific version: <nowiki>{{Version|7.4.0}}</nowiki><br />
<br />
=== Author information ===<br />
<br />
* Every user should feel free to improve any wiki article<br />
* The person primarily responsible for the article is its author<br />
* The author of an articke should be identifiable by editing a page and looking at the top<br />
* Mark yourself as the author of a page by putting in a commented section (invisible when not editing) at the top of a page like this:<br />
<pre><!-- Author: Karsten Will <karsten.will@open-xchange.com> --></pre><br />
<br />
== Hints for Mediawiki ==<br />
This is a media wiki... even if our great design is trying to fool you into thinking otherwise. So all Mediawiki[http://meta.wikimedia.org] tricks apply here, too.<br />
<br />
* [http://en.wikipedia.org/wiki/Help:Editing Editing basic for Wikipedia]<br />
* Markup: [http://meta.wikimedia.org/wiki/Image:Wiki-refcard.pdf PDF cheat sheet] or [http://www.mediawiki.org/wiki/Help:Formatting Website]<br />
* [http://meta.wikimedia.org/wiki/Help:Reference_card#Links_to_other_help_pages Mediawiki help pages]<br />
* [http://en.wikipedia.org/wiki/Wikipedia:Guide_to_layout Wikipedia's guide to layout]<br />
* [http://w-i-k-i.appspot.com/ Converter for HTML to MediaWiki]<br />
<br />
== Who we are ==<br />
We are the OXpedia team. You can reach us via oxpedia@open-xchange.com<br />
<br />
[[Category: Meta]]</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=Help:Howto&diff=16491Help:Howto2013-11-21T09:27:13Z<p>Karsten.will: /* Author information */</p>
<hr />
<div><div class="title">Writing for OXpedia</div><br />
<br />
'''Summary:''' This article explains how to write a great OXpedia article.<br />
<br />
__TOC__<br />
<br />
First and foremost: A wiki thrives on articles. If you only follow one rule, then it should be this:<br />
"Write the article you are thinking about the way you want to." <br />
Then let [[#Who we are|us]] know. If it needs fixing in anyway then we will fix it for you. On the other hand, if you prefer to write the best article possible, then this style guide is meant to help you.<br />
<br />
<br />
== Style Guide ==<br />
<br />
=== Writing ===<br />
<br />
There are tons of articles on writing technical documentation (see below for links). Here is a condensed version:<br />
<br />
* If you have got the choice between funny, eloquent and concise, go for the latter. (Actually, don't "go for the latter", but "go for concise", as the next guideline will explain).<br />
<br />
* Make sentences that stand on their own. This is especially important in a wiki where paragraphs or even lines might be moved around.<br />
<br />
=== Namespace ===<br />
<br />
AppSuite-specific articles go into the AppSuite:* namespace. That means you simply prefix the page title with AppSuite:, that's all. The tricky part is knowing whether the article is AppSuite-specific. This is obvious for UI articles. But for server articles, it is not that clear-cut, as the backend is usually backwards-compatible with OX6. When in doubt, put it in the main namespace (that is the one without any prefix).<br />
<br />
=== Layout ===<br />
<br />
Due to some php magic, our skin does not show the article title. The benefit is that you are not bound by the restrictions of article titles on MediaWiki. To put up a <nowiki><div class="title">Title of the article</div></nowiki> element on top.<br />
<br />
Decide whether to use the ''table of contents'', which links all article headings and subheadings. If you do so, use <nowiki>__TOC__</nowiki>. Use it after the intro sentence and before the first heading that you wrote.<br />
<br />
Write an intro sentence that gives the user a rough overview of what the article covers.<br />
<br />
<br />
<br />
=== Categories ===<br />
<br />
You are free to invent new categories. The following ones are just a fraction of all categories this wiki contains, but they are those we would like to see used more widely. We propagate these by linking them from the main page so they get a lot of visibility. If you want your hard work to be found, use them:<br />
<br />
* This wiki contains articles for OX5, OX6 and AppSuite. Please indicate which version you're referring to by adding either <nowiki>[[Category: OX5]]</nowiki>, <nowiki>[[Category: OX6]]</nowiki> or <nowiki>[[Category: AppSuite]]</nowiki>.<br />
<br />
** Server-related articles usually concern both OX6 and AppSuite, so simply use both categories.<br />
<br />
* Articles here aim at a certain target group. Ask yourself whether you are writing for :<br />
<br />
** Potential customers, <nowiki>[[Category: Customer]]</nowiki>, people interested in buying the product<br />
<br />
** Users, <nowiki>[[Category: User]]</nowiki>, people working with the product<br />
<br />
*** If you are writing for users, more power to you, but consider letting the people responsible for the user manual know. Users get translated manuals, so these articles leave the wiki after an incubation period.<br />
<br />
** Admins, <nowiki>[[Category: Admin]]</nowiki>, people running the product on their servers<br />
<br />
** Developers <nowiki>[[Category: Developer]]</nowiki>, people extending the product using our SPIs or APIs<br />
<br />
*** Go into detail, explaining whether you are writing about a server component <nowiki>[[Category: Server]]</nowiki> or a user interface component <nowiki>[[Category: UI]]</nowiki><br />
<br />
<br />
<br />
=== Numbering and versioning ===<br />
<br />
As opposed to normal wikis, it is not just the current version of an article that interests a user: Documentation for an older version of the product might be needed, too. The way we handle this might seem familiar to linux users:<br />
<br />
* When starting an article, use a good title. No numbers needed. For example "My useful article"<br />
<br />
* Once you realize that you are creating text that needs to be versioned, create a page for that version by adding a space and then the version number. For example: "My useful article 7.4.0". Ignore the fact that we used both "v7.4.0" and "7_4_0" in the past. That's outdated.<br />
<br />
** This article is probably a verbatim copy of the one you worked on last. That should not be much trouble. If you're admin, you can even move the article. That takes care of the next step, too, which you have to do by hand otherwise.<br />
<br />
* Replace the content of the old article with a redirect to the most current version. For example: "My useful article" contains only <nowiki>#REDIRECT [[My useful article 7.4.0]]</nowiki><br />
<br />
* When you have articles for more than one version, please use the Template <nowiki>{{Version|7.x.x}}</nowiki> and point to the next and previous version in line.<br />
<br />
=== Templates ===<br />
<br />
Templates make recurring tasks easier. The following templates are used regularly within the OXpedia:<br />
<br />
* The [[API status|level of stability]] a described feature has: <nowiki>{{Stability-unstable}}, {{Stability-stable}}, {{Stability-frozen}} and {{Stability-deprecated}}</nowiki><br />
* The version, used for pages with information for a specific version: <nowiki>{{Version|7.4.0}}</nowiki><br />
<br />
=== Author information ===<br />
<br />
* Every user should feel free to improve any wiki article<br />
* The person primarily responsible for the article is its author<br />
* The author should be identifiable by editing a page and looking at the top<br />
* Mark yourself as the author of a page by putting in a commented section (invisible when not editing) at the top of a page like this:<br />
<pre><!-- Author: Karsten Will <karsten.will@open-xchange.com> --></pre><br />
<br />
== Hints for Mediawiki ==<br />
This is a media wiki... even if our great design is trying to fool you into thinking otherwise. So all Mediawiki[http://meta.wikimedia.org] tricks apply here, too.<br />
<br />
* [http://en.wikipedia.org/wiki/Help:Editing Editing basic for Wikipedia]<br />
* Markup: [http://meta.wikimedia.org/wiki/Image:Wiki-refcard.pdf PDF cheat sheet] or [http://www.mediawiki.org/wiki/Help:Formatting Website]<br />
* [http://meta.wikimedia.org/wiki/Help:Reference_card#Links_to_other_help_pages Mediawiki help pages]<br />
* [http://en.wikipedia.org/wiki/Wikipedia:Guide_to_layout Wikipedia's guide to layout]<br />
* [http://w-i-k-i.appspot.com/ Converter for HTML to MediaWiki]<br />
<br />
== Who we are ==<br />
We are the OXpedia team. You can reach us via oxpedia@open-xchange.com<br />
<br />
[[Category: Meta]]</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=Help:Howto&diff=16490Help:Howto2013-11-21T09:26:59Z<p>Karsten.will: /* Author information */</p>
<hr />
<div><div class="title">Writing for OXpedia</div><br />
<br />
'''Summary:''' This article explains how to write a great OXpedia article.<br />
<br />
__TOC__<br />
<br />
First and foremost: A wiki thrives on articles. If you only follow one rule, then it should be this:<br />
"Write the article you are thinking about the way you want to." <br />
Then let [[#Who we are|us]] know. If it needs fixing in anyway then we will fix it for you. On the other hand, if you prefer to write the best article possible, then this style guide is meant to help you.<br />
<br />
<br />
== Style Guide ==<br />
<br />
=== Writing ===<br />
<br />
There are tons of articles on writing technical documentation (see below for links). Here is a condensed version:<br />
<br />
* If you have got the choice between funny, eloquent and concise, go for the latter. (Actually, don't "go for the latter", but "go for concise", as the next guideline will explain).<br />
<br />
* Make sentences that stand on their own. This is especially important in a wiki where paragraphs or even lines might be moved around.<br />
<br />
=== Namespace ===<br />
<br />
AppSuite-specific articles go into the AppSuite:* namespace. That means you simply prefix the page title with AppSuite:, that's all. The tricky part is knowing whether the article is AppSuite-specific. This is obvious for UI articles. But for server articles, it is not that clear-cut, as the backend is usually backwards-compatible with OX6. When in doubt, put it in the main namespace (that is the one without any prefix).<br />
<br />
=== Layout ===<br />
<br />
Due to some php magic, our skin does not show the article title. The benefit is that you are not bound by the restrictions of article titles on MediaWiki. To put up a <nowiki><div class="title">Title of the article</div></nowiki> element on top.<br />
<br />
Decide whether to use the ''table of contents'', which links all article headings and subheadings. If you do so, use <nowiki>__TOC__</nowiki>. Use it after the intro sentence and before the first heading that you wrote.<br />
<br />
Write an intro sentence that gives the user a rough overview of what the article covers.<br />
<br />
<br />
<br />
=== Categories ===<br />
<br />
You are free to invent new categories. The following ones are just a fraction of all categories this wiki contains, but they are those we would like to see used more widely. We propagate these by linking them from the main page so they get a lot of visibility. If you want your hard work to be found, use them:<br />
<br />
* This wiki contains articles for OX5, OX6 and AppSuite. Please indicate which version you're referring to by adding either <nowiki>[[Category: OX5]]</nowiki>, <nowiki>[[Category: OX6]]</nowiki> or <nowiki>[[Category: AppSuite]]</nowiki>.<br />
<br />
** Server-related articles usually concern both OX6 and AppSuite, so simply use both categories.<br />
<br />
* Articles here aim at a certain target group. Ask yourself whether you are writing for :<br />
<br />
** Potential customers, <nowiki>[[Category: Customer]]</nowiki>, people interested in buying the product<br />
<br />
** Users, <nowiki>[[Category: User]]</nowiki>, people working with the product<br />
<br />
*** If you are writing for users, more power to you, but consider letting the people responsible for the user manual know. Users get translated manuals, so these articles leave the wiki after an incubation period.<br />
<br />
** Admins, <nowiki>[[Category: Admin]]</nowiki>, people running the product on their servers<br />
<br />
** Developers <nowiki>[[Category: Developer]]</nowiki>, people extending the product using our SPIs or APIs<br />
<br />
*** Go into detail, explaining whether you are writing about a server component <nowiki>[[Category: Server]]</nowiki> or a user interface component <nowiki>[[Category: UI]]</nowiki><br />
<br />
<br />
<br />
=== Numbering and versioning ===<br />
<br />
As opposed to normal wikis, it is not just the current version of an article that interests a user: Documentation for an older version of the product might be needed, too. The way we handle this might seem familiar to linux users:<br />
<br />
* When starting an article, use a good title. No numbers needed. For example "My useful article"<br />
<br />
* Once you realize that you are creating text that needs to be versioned, create a page for that version by adding a space and then the version number. For example: "My useful article 7.4.0". Ignore the fact that we used both "v7.4.0" and "7_4_0" in the past. That's outdated.<br />
<br />
** This article is probably a verbatim copy of the one you worked on last. That should not be much trouble. If you're admin, you can even move the article. That takes care of the next step, too, which you have to do by hand otherwise.<br />
<br />
* Replace the content of the old article with a redirect to the most current version. For example: "My useful article" contains only <nowiki>#REDIRECT [[My useful article 7.4.0]]</nowiki><br />
<br />
* When you have articles for more than one version, please use the Template <nowiki>{{Version|7.x.x}}</nowiki> and point to the next and previous version in line.<br />
<br />
=== Templates ===<br />
<br />
Templates make recurring tasks easier. The following templates are used regularly within the OXpedia:<br />
<br />
* The [[API status|level of stability]] a described feature has: <nowiki>{{Stability-unstable}}, {{Stability-stable}}, {{Stability-frozen}} and {{Stability-deprecated}}</nowiki><br />
* The version, used for pages with information for a specific version: <nowiki>{{Version|7.4.0}}</nowiki><br />
<br />
=== Author information ===<br />
<br />
* Every user should feel free to improve any wiki article<br />
* The person primarily responsible for the article is its author<br />
* The author should be identifiable by editing a page and looking at the top<br />
* Mark yourself as the author of a page by putting in a commented section (invisible when not editing) at the top of a page like this:<br />
<pre><!-- Author: Karsten Will <karsten.will@open-xchange.com> --></pre><br />
{{Version|7.x.x}}<br />
<br />
== Hints for Mediawiki ==<br />
This is a media wiki... even if our great design is trying to fool you into thinking otherwise. So all Mediawiki[http://meta.wikimedia.org] tricks apply here, too.<br />
<br />
* [http://en.wikipedia.org/wiki/Help:Editing Editing basic for Wikipedia]<br />
* Markup: [http://meta.wikimedia.org/wiki/Image:Wiki-refcard.pdf PDF cheat sheet] or [http://www.mediawiki.org/wiki/Help:Formatting Website]<br />
* [http://meta.wikimedia.org/wiki/Help:Reference_card#Links_to_other_help_pages Mediawiki help pages]<br />
* [http://en.wikipedia.org/wiki/Wikipedia:Guide_to_layout Wikipedia's guide to layout]<br />
* [http://w-i-k-i.appspot.com/ Converter for HTML to MediaWiki]<br />
<br />
== Who we are ==<br />
We are the OXpedia team. You can reach us via oxpedia@open-xchange.com<br />
<br />
[[Category: Meta]]</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=Help:Howto&diff=16489Help:Howto2013-11-21T09:24:47Z<p>Karsten.will: /* Author information */</p>
<hr />
<div><div class="title">Writing for OXpedia</div><br />
<br />
'''Summary:''' This article explains how to write a great OXpedia article.<br />
<br />
__TOC__<br />
<br />
First and foremost: A wiki thrives on articles. If you only follow one rule, then it should be this:<br />
"Write the article you are thinking about the way you want to." <br />
Then let [[#Who we are|us]] know. If it needs fixing in anyway then we will fix it for you. On the other hand, if you prefer to write the best article possible, then this style guide is meant to help you.<br />
<br />
<br />
== Style Guide ==<br />
<br />
=== Writing ===<br />
<br />
There are tons of articles on writing technical documentation (see below for links). Here is a condensed version:<br />
<br />
* If you have got the choice between funny, eloquent and concise, go for the latter. (Actually, don't "go for the latter", but "go for concise", as the next guideline will explain).<br />
<br />
* Make sentences that stand on their own. This is especially important in a wiki where paragraphs or even lines might be moved around.<br />
<br />
=== Namespace ===<br />
<br />
AppSuite-specific articles go into the AppSuite:* namespace. That means you simply prefix the page title with AppSuite:, that's all. The tricky part is knowing whether the article is AppSuite-specific. This is obvious for UI articles. But for server articles, it is not that clear-cut, as the backend is usually backwards-compatible with OX6. When in doubt, put it in the main namespace (that is the one without any prefix).<br />
<br />
=== Layout ===<br />
<br />
Due to some php magic, our skin does not show the article title. The benefit is that you are not bound by the restrictions of article titles on MediaWiki. To put up a <nowiki><div class="title">Title of the article</div></nowiki> element on top.<br />
<br />
Decide whether to use the ''table of contents'', which links all article headings and subheadings. If you do so, use <nowiki>__TOC__</nowiki>. Use it after the intro sentence and before the first heading that you wrote.<br />
<br />
Write an intro sentence that gives the user a rough overview of what the article covers.<br />
<br />
<br />
<br />
=== Categories ===<br />
<br />
You are free to invent new categories. The following ones are just a fraction of all categories this wiki contains, but they are those we would like to see used more widely. We propagate these by linking them from the main page so they get a lot of visibility. If you want your hard work to be found, use them:<br />
<br />
* This wiki contains articles for OX5, OX6 and AppSuite. Please indicate which version you're referring to by adding either <nowiki>[[Category: OX5]]</nowiki>, <nowiki>[[Category: OX6]]</nowiki> or <nowiki>[[Category: AppSuite]]</nowiki>.<br />
<br />
** Server-related articles usually concern both OX6 and AppSuite, so simply use both categories.<br />
<br />
* Articles here aim at a certain target group. Ask yourself whether you are writing for :<br />
<br />
** Potential customers, <nowiki>[[Category: Customer]]</nowiki>, people interested in buying the product<br />
<br />
** Users, <nowiki>[[Category: User]]</nowiki>, people working with the product<br />
<br />
*** If you are writing for users, more power to you, but consider letting the people responsible for the user manual know. Users get translated manuals, so these articles leave the wiki after an incubation period.<br />
<br />
** Admins, <nowiki>[[Category: Admin]]</nowiki>, people running the product on their servers<br />
<br />
** Developers <nowiki>[[Category: Developer]]</nowiki>, people extending the product using our SPIs or APIs<br />
<br />
*** Go into detail, explaining whether you are writing about a server component <nowiki>[[Category: Server]]</nowiki> or a user interface component <nowiki>[[Category: UI]]</nowiki><br />
<br />
<br />
<br />
=== Numbering and versioning ===<br />
<br />
As opposed to normal wikis, it is not just the current version of an article that interests a user: Documentation for an older version of the product might be needed, too. The way we handle this might seem familiar to linux users:<br />
<br />
* When starting an article, use a good title. No numbers needed. For example "My useful article"<br />
<br />
* Once you realize that you are creating text that needs to be versioned, create a page for that version by adding a space and then the version number. For example: "My useful article 7.4.0". Ignore the fact that we used both "v7.4.0" and "7_4_0" in the past. That's outdated.<br />
<br />
** This article is probably a verbatim copy of the one you worked on last. That should not be much trouble. If you're admin, you can even move the article. That takes care of the next step, too, which you have to do by hand otherwise.<br />
<br />
* Replace the content of the old article with a redirect to the most current version. For example: "My useful article" contains only <nowiki>#REDIRECT [[My useful article 7.4.0]]</nowiki><br />
<br />
* When you have articles for more than one version, please use the Template <nowiki>{{Version|7.x.x}}</nowiki> and point to the next and previous version in line.<br />
<br />
=== Templates ===<br />
<br />
Templates make recurring tasks easier. The following templates are used regularly within the OXpedia:<br />
<br />
* The [[API status|level of stability]] a described feature has: <nowiki>{{Stability-unstable}}, {{Stability-stable}}, {{Stability-frozen}} and {{Stability-deprecated}}</nowiki><br />
* The version, used for pages with information for a specific version: <nowiki>{{Version|7.4.0}}</nowiki><br />
<br />
=== Author information ===<br />
<br />
* Every user should feel free to improve any wiki article<br />
* The person primarily responsible for the article is its author<br />
* The author should be identifiable by editing a page and looking at the top<br />
* Mark yourself as the author of a page by putting in a commented section (invisible when not editing) at the top of a page like this:<br />
<pre><!-- Author: Karsten Will <karsten.will@open-xchange.com> --></pre><br />
<br />
== Hints for Mediawiki ==<br />
This is a media wiki... even if our great design is trying to fool you into thinking otherwise. So all Mediawiki[http://meta.wikimedia.org] tricks apply here, too.<br />
<br />
* [http://en.wikipedia.org/wiki/Help:Editing Editing basic for Wikipedia]<br />
* Markup: [http://meta.wikimedia.org/wiki/Image:Wiki-refcard.pdf PDF cheat sheet] or [http://www.mediawiki.org/wiki/Help:Formatting Website]<br />
* [http://meta.wikimedia.org/wiki/Help:Reference_card#Links_to_other_help_pages Mediawiki help pages]<br />
* [http://en.wikipedia.org/wiki/Wikipedia:Guide_to_layout Wikipedia's guide to layout]<br />
* [http://w-i-k-i.appspot.com/ Converter for HTML to MediaWiki]<br />
<br />
== Who we are ==<br />
We are the OXpedia team. You can reach us via oxpedia@open-xchange.com<br />
<br />
[[Category: Meta]]</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=Help:Howto&diff=16488Help:Howto2013-11-21T09:23:35Z<p>Karsten.will: </p>
<hr />
<div><div class="title">Writing for OXpedia</div><br />
<br />
'''Summary:''' This article explains how to write a great OXpedia article.<br />
<br />
__TOC__<br />
<br />
First and foremost: A wiki thrives on articles. If you only follow one rule, then it should be this:<br />
"Write the article you are thinking about the way you want to." <br />
Then let [[#Who we are|us]] know. If it needs fixing in anyway then we will fix it for you. On the other hand, if you prefer to write the best article possible, then this style guide is meant to help you.<br />
<br />
<br />
== Style Guide ==<br />
<br />
=== Writing ===<br />
<br />
There are tons of articles on writing technical documentation (see below for links). Here is a condensed version:<br />
<br />
* If you have got the choice between funny, eloquent and concise, go for the latter. (Actually, don't "go for the latter", but "go for concise", as the next guideline will explain).<br />
<br />
* Make sentences that stand on their own. This is especially important in a wiki where paragraphs or even lines might be moved around.<br />
<br />
=== Namespace ===<br />
<br />
AppSuite-specific articles go into the AppSuite:* namespace. That means you simply prefix the page title with AppSuite:, that's all. The tricky part is knowing whether the article is AppSuite-specific. This is obvious for UI articles. But for server articles, it is not that clear-cut, as the backend is usually backwards-compatible with OX6. When in doubt, put it in the main namespace (that is the one without any prefix).<br />
<br />
=== Layout ===<br />
<br />
Due to some php magic, our skin does not show the article title. The benefit is that you are not bound by the restrictions of article titles on MediaWiki. To put up a <nowiki><div class="title">Title of the article</div></nowiki> element on top.<br />
<br />
Decide whether to use the ''table of contents'', which links all article headings and subheadings. If you do so, use <nowiki>__TOC__</nowiki>. Use it after the intro sentence and before the first heading that you wrote.<br />
<br />
Write an intro sentence that gives the user a rough overview of what the article covers.<br />
<br />
<br />
<br />
=== Categories ===<br />
<br />
You are free to invent new categories. The following ones are just a fraction of all categories this wiki contains, but they are those we would like to see used more widely. We propagate these by linking them from the main page so they get a lot of visibility. If you want your hard work to be found, use them:<br />
<br />
* This wiki contains articles for OX5, OX6 and AppSuite. Please indicate which version you're referring to by adding either <nowiki>[[Category: OX5]]</nowiki>, <nowiki>[[Category: OX6]]</nowiki> or <nowiki>[[Category: AppSuite]]</nowiki>.<br />
<br />
** Server-related articles usually concern both OX6 and AppSuite, so simply use both categories.<br />
<br />
* Articles here aim at a certain target group. Ask yourself whether you are writing for :<br />
<br />
** Potential customers, <nowiki>[[Category: Customer]]</nowiki>, people interested in buying the product<br />
<br />
** Users, <nowiki>[[Category: User]]</nowiki>, people working with the product<br />
<br />
*** If you are writing for users, more power to you, but consider letting the people responsible for the user manual know. Users get translated manuals, so these articles leave the wiki after an incubation period.<br />
<br />
** Admins, <nowiki>[[Category: Admin]]</nowiki>, people running the product on their servers<br />
<br />
** Developers <nowiki>[[Category: Developer]]</nowiki>, people extending the product using our SPIs or APIs<br />
<br />
*** Go into detail, explaining whether you are writing about a server component <nowiki>[[Category: Server]]</nowiki> or a user interface component <nowiki>[[Category: UI]]</nowiki><br />
<br />
<br />
<br />
=== Numbering and versioning ===<br />
<br />
As opposed to normal wikis, it is not just the current version of an article that interests a user: Documentation for an older version of the product might be needed, too. The way we handle this might seem familiar to linux users:<br />
<br />
* When starting an article, use a good title. No numbers needed. For example "My useful article"<br />
<br />
* Once you realize that you are creating text that needs to be versioned, create a page for that version by adding a space and then the version number. For example: "My useful article 7.4.0". Ignore the fact that we used both "v7.4.0" and "7_4_0" in the past. That's outdated.<br />
<br />
** This article is probably a verbatim copy of the one you worked on last. That should not be much trouble. If you're admin, you can even move the article. That takes care of the next step, too, which you have to do by hand otherwise.<br />
<br />
* Replace the content of the old article with a redirect to the most current version. For example: "My useful article" contains only <nowiki>#REDIRECT [[My useful article 7.4.0]]</nowiki><br />
<br />
* When you have articles for more than one version, please use the Template <nowiki>{{Version|7.x.x}}</nowiki> and point to the next and previous version in line.<br />
<br />
=== Templates ===<br />
<br />
Templates make recurring tasks easier. The following templates are used regularly within the OXpedia:<br />
<br />
* The [[API status|level of stability]] a described feature has: <nowiki>{{Stability-unstable}}, {{Stability-stable}}, {{Stability-frozen}} and {{Stability-deprecated}}</nowiki><br />
* The version, used for pages with information for a specific version: <nowiki>{{Version|7.4.0}}</nowiki><br />
<br />
=== Author information ===<br />
<br />
* Every user should feel free to improve any wiki article<br />
* The person primarily responsible for the article is its author<br />
* The author should be identifiable by editing a page and looking at the top<br />
* Mark yourself as the author of a page by putting in a commented Section at the top of a page like this:<br />
<!-- Author: Karsten Will <karsten.will@open-xchange.com> --><br />
<br />
== Hints for Mediawiki ==<br />
This is a media wiki... even if our great design is trying to fool you into thinking otherwise. So all Mediawiki[http://meta.wikimedia.org] tricks apply here, too.<br />
<br />
* [http://en.wikipedia.org/wiki/Help:Editing Editing basic for Wikipedia]<br />
* Markup: [http://meta.wikimedia.org/wiki/Image:Wiki-refcard.pdf PDF cheat sheet] or [http://www.mediawiki.org/wiki/Help:Formatting Website]<br />
* [http://meta.wikimedia.org/wiki/Help:Reference_card#Links_to_other_help_pages Mediawiki help pages]<br />
* [http://en.wikipedia.org/wiki/Wikipedia:Guide_to_layout Wikipedia's guide to layout]<br />
* [http://w-i-k-i.appspot.com/ Converter for HTML to MediaWiki]<br />
<br />
== Who we are ==<br />
We are the OXpedia team. You can reach us via oxpedia@open-xchange.com<br />
<br />
[[Category: Meta]]</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=Help:Howto&diff=16487Help:Howto2013-11-21T09:21:33Z<p>Karsten.will: /* Style Guide */</p>
<hr />
<div><div class="title">Writing for OXpedia</div><br />
<br />
'''Summary:''' This article explains how to write a great OXpedia article.<br />
<br />
__TOC__<br />
<br />
First and foremost: A wiki thrives on articles. If you only follow one rule, then it should be this:<br />
"Write the article you are thinking about the way you want to." <br />
Then let [[#Who we are|us]] know. If it needs fixing in anyway then we will fix it for you. On the other hand, if you prefer to write the best article possible, then this style guide is meant to help you.<br />
<br />
<br />
== Style Guide ==<br />
<br />
=== Writing ===<br />
<br />
There are tons of articles on writing technical documentation (see below for links). Here is a condensed version:<br />
<br />
* If you have got the choice between funny, eloquent and concise, go for the latter. (Actually, don't "go for the latter", but "go for concise", as the next guideline will explain).<br />
<br />
* Make sentences that stand on their own. This is especially important in a wiki where paragraphs or even lines might be moved around.<br />
<br />
=== Namespace ===<br />
<br />
AppSuite-specific articles go into the AppSuite:* namespace. That means you simply prefix the page title with AppSuite:, that's all. The tricky part is knowing whether the article is AppSuite-specific. This is obvious for UI articles. But for server articles, it is not that clear-cut, as the backend is usually backwards-compatible with OX6. When in doubt, put it in the main namespace (that is the one without any prefix).<br />
<br />
=== Layout ===<br />
<br />
Due to some php magic, our skin does not show the article title. The benefit is that you are not bound by the restrictions of article titles on MediaWiki. To put up a <nowiki><div class="title">Title of the article</div></nowiki> element on top.<br />
<br />
Decide whether to use the ''table of contents'', which links all article headings and subheadings. If you do so, use <nowiki>__TOC__</nowiki>. Use it after the intro sentence and before the first heading that you wrote.<br />
<br />
Write an intro sentence that gives the user a rough overview of what the article covers.<br />
<br />
<br />
<br />
=== Categories ===<br />
<br />
You are free to invent new categories. The following ones are just a fraction of all categories this wiki contains, but they are those we would like to see used more widely. We propagate these by linking them from the main page so they get a lot of visibility. If you want your hard work to be found, use them:<br />
<br />
* This wiki contains articles for OX5, OX6 and AppSuite. Please indicate which version you're referring to by adding either <nowiki>[[Category: OX5]]</nowiki>, <nowiki>[[Category: OX6]]</nowiki> or <nowiki>[[Category: AppSuite]]</nowiki>.<br />
<br />
** Server-related articles usually concern both OX6 and AppSuite, so simply use both categories.<br />
<br />
* Articles here aim at a certain target group. Ask yourself whether you are writing for :<br />
<br />
** Potential customers, <nowiki>[[Category: Customer]]</nowiki>, people interested in buying the product<br />
<br />
** Users, <nowiki>[[Category: User]]</nowiki>, people working with the product<br />
<br />
*** If you are writing for users, more power to you, but consider letting the people responsible for the user manual know. Users get translated manuals, so these articles leave the wiki after an incubation period.<br />
<br />
** Admins, <nowiki>[[Category: Admin]]</nowiki>, people running the product on their servers<br />
<br />
** Developers <nowiki>[[Category: Developer]]</nowiki>, people extending the product using our SPIs or APIs<br />
<br />
*** Go into detail, explaining whether you are writing about a server component <nowiki>[[Category: Server]]</nowiki> or a user interface component <nowiki>[[Category: UI]]</nowiki><br />
<br />
<br />
<br />
=== Numbering and versioning ===<br />
<br />
As opposed to normal wikis, it is not just the current version of an article that interests a user: Documentation for an older version of the product might be needed, too. The way we handle this might seem familiar to linux users:<br />
<br />
* When starting an article, use a good title. No numbers needed. For example "My useful article"<br />
<br />
* Once you realize that you are creating text that needs to be versioned, create a page for that version by adding a space and then the version number. For example: "My useful article 7.4.0". Ignore the fact that we used both "v7.4.0" and "7_4_0" in the past. That's outdated.<br />
<br />
** This article is probably a verbatim copy of the one you worked on last. That should not be much trouble. If you're admin, you can even move the article. That takes care of the next step, too, which you have to do by hand otherwise.<br />
<br />
* Replace the content of the old article with a redirect to the most current version. For example: "My useful article" contains only <nowiki>#REDIRECT [[My useful article 7.4.0]]</nowiki><br />
<br />
* When you have articles for more than one version, please use the Template <nowiki>{{Version|7.x.x}}</nowiki> and point to the next and previous version in line.<br />
<br />
=== Templates ===<br />
<br />
Templates make recurring tasks easier. The following templates are used regularly within the OXpedia:<br />
<br />
* The [[API status|level of stability]] a described feature has: <nowiki>{{Stability-unstable}}, {{Stability-stable}}, {{Stability-frozen}} and {{Stability-deprecated}}</nowiki><br />
* The version, used for pages with information for a specific version: <nowiki>{{Version|7.4.0}}</nowiki><br />
<br />
=== Author information ===<br />
<br />
* Every user should feel free to improve any wiki article<br />
* The person primarily responsible for the article is its author<br />
* The author should be identifiable by editing a page and looking at the top<br />
* Mark yourself as the author of a page by putting in a commented Section at the top of a page like this:<br />
<br />
== Hints for Mediawiki ==<br />
This is a media wiki... even if our great design is trying to fool you into thinking otherwise. So all Mediawiki[http://meta.wikimedia.org] tricks apply here, too.<br />
<br />
* [http://en.wikipedia.org/wiki/Help:Editing Editing basic for Wikipedia]<br />
* Markup: [http://meta.wikimedia.org/wiki/Image:Wiki-refcard.pdf PDF cheat sheet] or [http://www.mediawiki.org/wiki/Help:Formatting Website]<br />
* [http://meta.wikimedia.org/wiki/Help:Reference_card#Links_to_other_help_pages Mediawiki help pages]<br />
* [http://en.wikipedia.org/wiki/Wikipedia:Guide_to_layout Wikipedia's guide to layout]<br />
* [http://w-i-k-i.appspot.com/ Converter for HTML to MediaWiki]<br />
<br />
== Who we are ==<br />
We are the OXpedia team. You can reach us via oxpedia@open-xchange.com<br />
<br />
[[Category: Meta]]</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=File:Yahoo_15.png&diff=15618File:Yahoo 15.png2013-09-03T14:38:47Z<p>Karsten.will: </p>
<hr />
<div></div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=File:Yahoo_14.png&diff=15616File:Yahoo 14.png2013-09-03T14:37:31Z<p>Karsten.will: </p>
<hr />
<div></div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=File:Yahoo_13_2.png&diff=15612File:Yahoo 13 2.png2013-09-03T14:31:14Z<p>Karsten.will: </p>
<hr />
<div></div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=File:Yahoo_13.png&diff=15610File:Yahoo 13.png2013-09-03T14:30:13Z<p>Karsten.will: </p>
<hr />
<div></div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=File:Yahoo_12.png&diff=15609File:Yahoo 12.png2013-09-03T14:29:54Z<p>Karsten.will: </p>
<hr />
<div></div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=File:Yahoo_11.png&diff=15606File:Yahoo 11.png2013-09-03T14:22:15Z<p>Karsten.will: </p>
<hr />
<div></div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Connector_for_Business_Mobility_Installation_Guide&diff=15258AppSuite:Connector for Business Mobility Installation Guide2013-08-09T11:23:01Z<p>Karsten.will: </p>
<hr />
<div>= Open-Xchange Connector for Business Mobility =<br />
<br />
== Components ==<br />
<br />
With the Connector for Business Mobility, Open-Xchange also introduces the Universal Synchronization Module (USM). This module provides a framework for synchronization protocols such as Microsoft Exchange ActiveSync (EAS) or other services building on this foundation. USM acts as a layer between the Open-Xchange HTTP API and the synchronization protocol. It handles synchronization specific tasks like conflict management.<br />
The synchronization stack (USM) and protocol implementation (EAS) are shipped as OSGi bundles and run as a plug-in of an Open-Xchange instance.<br />
<br />
=== Component Overview ===<br />
USM, EAS and OX work together as components. This is a general outline about how these components interact.<br />
<br />
When the device initiates a synchronization through ActiveSync, it contacts the webserver using the URL /Microsoft-Server-ActiveSync via HTTP/s. This URL is forwarded to the Open-Xchange application server where the corresponding servlet is offered by the EAS component. The EAS component then uses USM to initiate a connection to the OX HTTP API and exchanges groupware data. In all cases, USM works as an client to the Open-Xchange HTTP API. It also uses some database tables which are accessed through the Open-Xchange SQL interface to store metadata like synchronization status. The same component stack is used to transport groupware data back to the device.<br />
<br />
=== Requirements ===<br />
<br />
Since the Connector for Business Mobility is a server plug-in based on the OSGi Framework it can be added to an existing Open-Xchange installation very easily. '''OX App Suite v7.0 or later is required to operate this extension.''' The Connector for Business Mobility uses the resources and services offered by the Open-Xchange server, no additional software or configuration is required.<br />
<br />
* [[AppSuite:Open-Xchange_Installation_Guide_for_Debian_6.0 | Debian 6.0 (Squeeze)]]<br />
* [[AppSuite:Open-Xchange_Installation_Guide_for_SLES11 | SLES11]]<br />
* [[AppSuite:Open-Xchange_Installation_Guide_for_RHEL6 | RHEL6]]<br />
<br />
'''Please Note:''' To get in favor of the latest minor features and bugfixes, you need to have a valid license. The article [[AppSuite:UpdatingOXPackages | Updating OX-Packages]] explains how that can be done.<br />
<br />
== Installation on OX 6.x ==<br />
The download and installation information for Open-Xchange 6 product family (Open-Xchange Server Edition and Hosting Edition) is available at: http://oxpedia.org/wiki/index.php?title=OXtender_for_Business_Mobility_Installation_Guide<br />
<br />
{{InstallPlugin|pluginname=open-xchange-usm|toplevel=products|sopath=appsuite/stable/usm|ldbaccount=LDBACCOUNT:LDBPASSWD|reponame=usm|version=App Suite}}<br />
{{InstallPlugin|pluginname=open-xchange-meta-mobility|toplevel=products|sopath=appsuite/stable/mobilityconnector|ldbaccount=LDBACCOUNT:LDBPASSWD|reponame=oxmobility|version=App Suite}}<br />
<br />
<br />
Now the Open-Xchange service needs to be restarted:<br />
<br />
/etc/init.d/open-xchange restart<br />
<br />
On the first login after the restart, all required database tables will be created.<br />
<br />
== Configuration ==<br />
<br />
=== Mail Push ===<br />
<br />
In order to get mail push, either install and configure the package open-xchange-push-malpoll, which is not recommended on large deployments or if you're using cyrus-imap, read the [[MailNotify Bundle]] instructions on how to set up real mail push with cyrus.<br />
<br />
=== Open-Xchange configuration ===<br />
The configuration for USM and the EAS protocol can be found in these two configuration files:<br />
/opt/open-xchange/etc/usm.properties<br />
/opt/open-xchange/etc/eas.properties<br />
<br />
Make sure that the Open-Xchange Server URL is set properly in usm.properties. This needs to be the machine which provides the web interface. Usually, this is localhost, as the webserver and Open-Xchange run on the same machine.<br />
com.openexchange.usm.ox.url=http://localhost/ajax/<br />
<br />
in case webserver and Open-Xchange aren't running on the same machine:<br />
com.openexchange.usm.ox.url=http://$FQDN/ajax/<br />
(Where $FQDN is the fully qualified domain name of your frontend system)<br />
<br />
On clustered setups, adjust the file<br />
/opt/open-xchange/etc/groupware/noipcheck.cnf<br />
to include the range of IP addresses of the servers on which USM is running.<br />
<br />
<br />
Documentation about the configuration parameters can be found inside the configuration files. If you change any attribute at the configuration files, the Open-Xchange groupware service needs to be restarted.<br />
<br />
=== Apache Configuration ===<br />
Mobile devices supporting ActiveSync use a special URL to communicate with an ActiveSync enabled Open-Xchange Server. This URL needs to be forwarded to the Open-Xchange ActiveSync servlet. When using Apache 2 and mod_proxy_ajp, this servlet can simply be added to the webservers proxy_ajp configuration:<br />
ProxyPass /Microsoft-Server-ActiveSync ajp://127.0.0.1:8009/Microsoft-Server-ActiveSync smax=0 ttl=60 retry=5<br />
<br />
The example assumes that Open-Xchange Server is running on the same machine like the webserver. Please refer the Open-Xchange administration documentation for more information about Apache configuration. Please restart apache after performing the configuration change.<br />
/etc/init.d/apache2 restart<br />
<br />
=== Enabling ActiveSync for user accounts ===<br />
In order to use synchronization through ActiveSync, this feature needs to be activated for user accounts. You can either activate it for specific users or a whole context.<br />
<br />
Activating ActiveSync for specific users:<br />
/opt/open-xchange/sbin/changeuser -c 1 -A oxadmin -P admin_password -u testuser --access-usm on --access-active-sync on<br />
<br />
Activating ActiveSync for a whole context:<br />
/opt/open-xchange/sbin/changecontext -c 1 -A oxadminmaster -P admin_master_password --access-usm on --access-active-sync on<br />
<br />
== Log files and issue tracking ==<br />
When facing problems with synchronization, there are several ways to get more information than provided via device or platform specific error codes.<br />
<br />
=== Open-Xchange Server logfile ===<br />
By default, the log output is non verbose. Only severe errors will be logged. To enable a more detailed log output, the logging mechanism needs to be configured. This depends on the used mechanism.<br />
<br />
=== Commons Logging ===<br />
This is the default logging mechanism. If the Open-Xchange Server log output is written to ''var/log/open-xchange/open-xchange.log'' it's an indicator that this mechanism is in use. To make the log output more verbose, add the following parameter:<br />
<br />
vim /opt/open-xchange/etc/groupware/file-logging.properties<br />
[...]<br />
com.openexchange.usm.level=FINE<br />
<br />
This will enable a software debug log for all components using USM, including EAS after restarting Open-Xchange Server.<br />
<br />
=== Log4j ===<br />
If the package ''open-xchange-log4j'' is installed, Open-Xchange Server will log via a UDP network socket. In most cases a syslog daemon is listening to this socket and will write the log data to a platform specif file like ''/var/log/syslog''. To make the log output more verbose, add the following parameter:<br />
<br />
vim /opt/open-xchange/etc/groupware/log4j.xml<br />
[...]<br />
<category name="com.openexchange.usm"><br />
<level value="DEBUG"/><br />
<appender-ref ref="SERVER_LOG"/><br />
</category><br />
<br />
Please note that the XML syntax must be correct. This will enable a software debug log for all components using USM, including EAS after restarting Open-Xchange Server.<br />
<br />
=== EAS debug logfile ===<br />
While the generic Open-Xchange Server log file will keep track on errors reported by the software components, the EAS debug log file will print all data transfered to the device as XML. Please note: this log file may contain confidential data about the users personal groupware objects. Make sure that no unauthorized access to those log files is possible in order to maintain privacy. Change the configuration file accordingly and set a output path which can only accessed by authorized persons.<br />
<br />
vim /opt/open-xchange/etc/groupware/eas.properties<br />
[...]<br />
com.openexchange.usm.eas.debug_log=/tmp/EAS-debug.log<br />
<br />
This will enable a XML based debug log for all EAS connections, after restarting Open-Xchange Server.<br />
<br />
=== Network traffic ===<br />
When using unencrypted connections between the device and USM and USM and Open-Xchange Server (not recommended), it's possible to analyze the network traffic with tools like ngrep or wireshark. When using encrypted data connections using SSL, the transfered data can be decrypted using the corresponding private key. Please note that there are two network streams, one from the device to USM (external) and one from USM to OX (internal).<br />
<br />
== Bug-Reporting == <br />
Please report bugs via the Open-Xchange Bugzilla:<br />
<br />
[https://bugs.open-xchange.com/ Direct link to Open-Xchange Bugzilla]<br />
<br />
* Product: Connector for Business Mobility<br />
<br />
<br />
= Client configuration =<br />
<br />
Information about the client configuration for the different devices is available at the [http://software.open-xchange.com/products/appsuite/doc/mobilityconnector/ User Guides].<br />
<br />
[[Category: OX7]]<br />
[[Category: AppSuite]]</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=Open-Xchange_cPanel_Installation&diff=15148Open-Xchange cPanel Installation2013-07-30T07:03:28Z<p>Karsten.will: /* Debugging */</p>
<hr />
<div>= Install Open-Xchange on WHM/cPanel =<br />
<br />
== Requirements ==<br />
<br />
Connector for cPanel requires to have WHM versions from '''11.32 to 11.38''' installed running on RHEL 5,6 or CentOS 5,6.<br />
It supports Open-Xchange versions 6.20 and newer. This guide, however, describes how to setup Open-Xchange<br />
Server 6.22 and above.<br />
<br />
'''Important: To not update to newer versions of cPanel then mentioned here.''' You might want to turn autoupdates of in<br />
setting <br />
<br />
UPDATES=manual<br />
<br />
in <tt>/etc/cpupdate.conf</tt><br />
<br />
== Changelog ==<br />
<br />
=== 1.1.0-rev3 ===<br />
<br />
* Support for CentOS6/RHEL6<br />
* Support for OX App Suite<br />
<br />
== Mode of operation ==<br />
<br />
It is recommended to run Open-Xchange on one or more separate machines. See the "''Hosting Edition deployment tutorials''" at <br />
<br />
; Open-Xchange Server 6 : [[Main_Page_HESE#quickinstall]].<br />
; OX App Suite : [[AppSuite:Main_Page_AppSuite#quickinstall]]<br />
<br />
The connection between cPanel and Open-Xchange is done via some cPanel/WHM hooks and UI plugins using SOAP as communication channel. That means that SOAP must be enabled on Open-Xchange.<br />
<br />
[[Image:CPOX.png]]<br />
<br />
Once the package open-xchange-cpanel is installed on the cPanel/WHM system, every cPanel user created within WHM will be created as an admin account and context in Open-Xchange.<br />
In addition, there's a single program to create all existing cPanel Accounts in Open-Xchange.<br />
<br />
== Availability ==<br />
<br />
Connector for cPanel is available with a valid Open-Xchange Hosting Edition license. To get pricing information that meets your individual requirements, [http://www.open-xchange.com/home.html?lburl=www.open-xchange.com/index.php?id=397&iframe=1&iframe=1 please contact Open-Xchange]<br />
<br />
== Known issues ==<br />
<br />
* If you have existing cpanel plugins that use <tt>/script</tt> hooks (or <tt>/usr/local/cpanel/script</tt>), as well as /usr/local/cpanel/hooks, take care to make a backup of these files because they will be replaced by the <tt>open-xchange-cpanel</tt> rpm<br />
* Users with the same email localpart from different domains in a single cPanel account and a single context do not work because user names as well as display names must be unique<br />
* cPanel account names cannot be renamed when using the ox integration<br />
* Error handling needs to be improved.<br />
* Add-on domain handling needs to be improved<br />
* Unable to indicate errors in open-xchange account creation when adding users in WHM/cPanel because the WHM/cPanel hooks have no possibility<br />
* transferring cpanel users from one cpanel server to another is not supported<br />
<br />
==Release Notes==<br />
<br />
To download the Release Notes, follow this:<br />
[http://software.open-xchange.com/components/cPanel/stable/ Download] <br />
<br />
== Install and prepare Open-Xchange ==<br />
<br />
Follow one of the [http://oxpedia.org/index.php?title=Main_Page_HESE Open-Xchange installation guides] to install Open-Xchange and either just install the packages<br />
<br />
'''On OX6 with backend versions < 7.2.2''':<br />
open-xchange-meta-cpanel<br />
<br />
'''On OX6 with backend versions >= 7.2.2''':<br />
open-xchange-meta-cpanel open-xchange-meta-backend-ox6 open-xchange-meta-ui-ox6<br />
<br />
'''On OX App Suite version >= 7.2.2 (older versions not supported):'''<br />
open-xchange-meta-cpanel open-xchange-meta-backend-appsuite open-xchange-meta-ui-appsuite<br />
<br />
or take care of '''the following exceptions''':<br />
<br />
* Do not install the package <tt>open-xchange-mailfilter</tt>. cPanel does not support SIEVE at the moment.<br />
* Install the package <tt>open-xchange-admin-soap-reseller</tt><br />
* Instead of <tt>open-xchange-authentication-database</tt>, install the package <tt>open-xchange-authentication-imap</tt><br />
<br />
'''Important:'''<br />
<br />
* Do '''NOT''' create a context, just follow the installation guide up to the database registration<br />
* Add the following argument to initconfigdb: <tt>--addon-sql "reseller.sql autocid.sql"</tt><br />
<br />
== Preparation ==<br />
<br />
* run the command<br />
$ /opt/open-xchange/sbin/initrestrictions -A oxadminmaster -P secret<br />
once you've finished the open-xchange installation<br />
* On OX6 take care to install the packages <tt>open-xchange-gui-wizard-plugin</tt> <tt>open-xchange-gui-wizard-plugin-gui</tt>. The wizard must be used to enforce the user to provide a real valid displayname.<br />
* On OX6 edit file <tt>/opt/open-xchange/etc/settings/open-xchange-gui-wizard-plugin.properties</tt> and set<br />
ui/wizard/firstrunmode=true<br />
* edit file <tt>/opt/open-xchange/etc/imapauth.properties</tt> and set<br />
USE_MULTIPLE=true<br />
* edit file <tt>/opt/open-xchange/etc/mail.properties</tt> and set<br />
com.openexchange.mail.adminMailLoginEnabled=true<br />
* edit file <tt>/opt/open-xchange/etc/sessiond.properties</tt> and set<br />
com.openexchange.sessiond.autologin=true<br />
* edit file <tt>/opt/open-xchange/etc/AdminUser.properties</tt> and set<br />
PRIMARY_MAIL_UNCHANGEABLE=false<br />
* allow access from the cPanel server, edit <tt>/etc/httpd/conf.d/proxy_ajp.conf</tt><br />
<br />
<Location /servlet/axis2/services><br />
# restrict access to the soap provisioning API<br />
Order Deny,Allow<br />
Deny from all<br />
Allow from 127.0.0.1<br />
Allow from <your cpanel server ip><br />
# you might add more ip addresses / networks here<br />
# Allow from 192.168 10 172.16<br />
</Location><br />
[...]<br />
<br />
== Install and prepare WHM/cPanel on CentOS5 ==<br />
<br />
'''Note:''' Choose either CentOS5,6 or RHEL5,6. Nothing else is supported to integrate Open-Xchange with cPanel.<br />
<br />
'''Important: If you have existing cpanel plugins that use <tt>/script</tt> hooks (or <tt>/usr/local/cpanel/script</tt>), as well as /usr/local/cpanel/hooks, take care to make a backup of these files because they will be replaced by the <tt>open-xchange-cpanel</tt> rpm'''<br />
<br />
* Follow the installation guide http://docs.cpanel.net/twiki/bin/view/AllDocumentation/InstallationGuide/Quick-StartInstallationGuide<br />
* run <tt>/scripts/upcp</tt><br />
* run <tt>/scripts/perlinstaller SOAP::Lite</tt><br />
'''NOTE: This can take very long and it might look like it is hanging at'''<br />
We are about to install SOAP::Lite and for your convenience will provide<br />
you with list of modules and prerequisites, so you'll be able to choose<br />
only modules you need for your configuration.<br />
<br />
XMLRPC::Lite, UDDI::Lite, and XML::Parser::Lite are included by default.<br />
Installed transports can be used for both SOAP::Lite and XMLRPC::Lite.<br />
<br />
Press <enter> to see the detailed list. <br />
<br />
Just be patient and wait for it to finish.<br />
* add the repository http://software.open-xchange.com/OX6/OXtender-stable/cPanel/RHEL5 to your yum configuration<br />
<br />
'''VERY IMPORTANT:'''<br />
Due to the inability of yum to correctly handle the x86_64 architecture, it is important to add the line<br />
<br />
exclude=*.i386<br />
<br />
to your yum repo configuration (see below).<br />
Check http://wiki.centos.org/FAQ/General#head-357346ff0bf7c14b0849c3bcce39677aaca528e9 for details.<br />
<br />
=== yum repo config on i386 ===<br />
<br />
$ vi /etc/yum.repos.d/oxintegration.repo<br />
[oxcpintegration]<br />
name=Open-Xchange cPanel<br />
baseurl=http://LDBACCOUNT:LDBPASSWORD@software.open-xchange.com/components/cPanel/stable/RHEL6<br />
gpgkey=http://software.open-xchange.com/oxbuildkey.pub<br />
enabled=1<br />
gpgcheck=1<br />
metadata_expire=0m<br />
<br />
=== yum repo config on x86_64 ===<br />
<br />
$ vi /etc/yum.repos.d/oxintegration.repo<br />
[oxcpintegration]<br />
name=Open-Xchange cPanel<br />
baseurl=http://LDBACCOUNT:LDBPASSWORD@software.open-xchange.com/components/cPanel/stable/RHEL6<br />
gpgkey=http://software.open-xchange.com/oxbuildkey.pub<br />
enabled=1<br />
gpgcheck=1<br />
metadata_expire=0m<br />
#IMPORTANT!!!!!<br />
exclude=*.i386<br />
<br />
<br />
* install the package <tt>open-xchange-cpanel</tt><br />
$ yum install open-xchange-cpanel<br />
* run the installer (-h for help):<br />
$ /usr/local/cpanel/bin/oxcpanelinstall --oxurl http://ox.example.com --oxadmin-password oxadminmasterpassword<br />
<br />
Now your Open-Xchange server is integrated with your cPanel installation.<br />
<br />
To check the connection, run<br />
<br />
$ /usr/local/cpanel/bin/oxcpanelenable -c<br />
<br />
This program can also be used to enable all existing cPanel users in OX.<br />
Run<br />
$ /usr/local/cpanel/bin/oxcpanelenable -h<br />
for more information.<br />
<br />
== Create all cPanel Accounts in Open-Xchange ==<br />
<br />
Like mentioned before, you must now create accounts in Open-Xchange for all your<br />
existing cPanel accounts. This will not happen automatically. New accounts created in WHM, however, will automatically created in Open-Xchange.<br />
<br />
To create an ox account per cPanel account you can either run<br />
<br />
$ /usr/local/cpanel/bin/oxcpanelenable -e<br />
<br />
or in the Open-Xchange WHM plugin click on every single cPanel Account and enable it.<br />
<br />
== Debugging ==<br />
<br />
* run the command <br />
$ sudo /usr/local/cpanel/bin/oxcpanelenable -c<br />
to check Open-Xchange connection before doing anything else. It must output<br />
'''connection check successfull'''<br />
* All errors happening during cPanel account creation and mail account creation are logged into the files <tt>/usr/local/cpanel/logs/open-xchange_log</tt> and <tt>/usr/local/cpanel/logs/error_log</tt>. If something does not work, check these logs first!<br />
* <tt>/usr/local/cpanel/bin/oxcpanelinstall</tt> creates a debug output file with every execution, check its output, e.g.:<br />
$ /usr/local/cpanel/bin/oxcpanelinstall --oxurl http://myox.example.com --oxadmin-password secret<br />
running installer, please wait. Debugoutput is placed into file /tmp/cpoxinst3542.out<br />
* do NOT disable authentication in /opt/open-xchange/etc/AdminDaemon.properties because this will mess up authentication for the CPanel-Connector!<br />
<br />
= WHM OX Plugin Usage =<br />
<br />
To create Open-Xchange accounts, nothing else is required than to create cPanel accounts<br />
as usual. Due to the design of the WHM plugin mechanism, however, it is not possible to<br />
indicate any errors that might happen when creating the account in Open-Xchange fails.<br />
<br />
You can easily check, however, if the Open-Xchange account creation failed when you open<br />
the Open-Xchange plugin which can be found in the left menu in WHM almost on the bottom.<br />
<br />
[[File:whm-ox-failed.png]]<br />
<br />
Failed attempts to create an ox accounts can be seen there because in that case, the account<br />
is not enabled.<br />
In such a case you need to Terminate that account and create it again after you fixed the reason for the failed attempt. Check the logs for errors.<br />
<br />
[[File:whm-ox-enable.png]]<br />
<br />
In addition you will find all relevant error messages in <tt>/usr/local/cpanel/logs/open-xchange_log</tt> and <tt>/usr/local/cpanel/logs/error_log</tt>.<br />
<br />
= cPanel OX Plugin Usage =<br />
<br />
To create email accounts in Open-Xchange, nothing else is required than to create email accounts<br />
in cPanel. Due to the design of the cPanel plugin mechanism, however, it is not possible to<br />
indicate any errors that might happen when creating the account in Open-Xchange fails.<br />
<br />
To check whether the email account creation fails, just open the Open-Xchange plugin and check<br />
if the recently created email account(s) appear in the list. If not, contact your hosting provider or, if you are the owner of the machine, you will find all relevant error messages in <tt>/usr/local/cpanel/logs/open-xchange_log</tt> and <tt>/usr/local/cpanel/logs/error_log</tt>.<br />
<br />
[[File:cpanel-account-list.png]]<br />
<br />
= Running multiple WHM/cPanel instances with a single Open-Xchange instance (cluster) =<br />
<br />
'''Starting with version 1.0.0 Rev2''' it is possible to run multiple WHM/cPanel instances with a single Open-Xchange (cluster) installation. This, however, requires some extra management which is not part of the <tt>open-xchange-cpanel</tt> package nor is there any other ready to use ui for that.<br />
<br />
The setup of the cPanel server and Connector is the same as described in the [[Open-Xchange_cPanel_Installation#Install_and_prepare_WHM.2FcPanel_on_CentOS5|installation section]].<br />
The same applies to the installation of the Open-Xchange server. Once the Open-Xchange server is installed, however, you need to create a subadmin account per WHM/cPanel server. These subadmins must be able to create further subadmin accounts (one per cPanel account).<br />
<br />
$ /opt/open-xchange/sbin/createadmin -A oxadminmaster -P secret -u cpanelmaster1 -d "cPanel Superadmin 1" -p secret -a Subadmin.CanCreateSubadmin=true<br />
<br />
$ /opt/open-xchange/sbin/createadmin -A oxadminmaster -P secret -u cpanelmaster2 -d "cPanel Superadmin 2" -p secret -a Subadmin.CanCreateSubadmin=true<br />
<br />
and so on.<br />
You can also restrict the maximum number of subadmins a subadmin can create, see [[Reseller_Bundle#Open-Xchange_Reseller_package|Reseller Bundle]] description for further details.<br />
<br />
$ /opt/open-xchange/sbin/listadmin -A oxadminmaster -P secret<br />
Id Name Displayname Parent Restrictions<br />
96 cpanelmaster1 cPanel Superadmin 1 0 Subadmin.CanCreateSubadmin=true<br />
97 cpanelmaster2 cPanel Superadmin 2 0 Subadmin.CanCreateSubadmin=true<br />
<br />
Now on each WHM/cPanel installation, instead of using the oxadminmaster account when running the <tt>oxcpanelinstaller</tt>, specify the corresponding cpanel supadmin, e.g.<br />
<br />
$ /usr/local/cpanel/bin/oxcpanelinstall --oxurl http://ox.example.com --oxadmin-name cpanelmaster1 --oxadmin-password secret<br />
<br />
and so on.</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=File:LinkedIn_2013.06_05.png&diff=14784File:LinkedIn 2013.06 05.png2013-06-05T08:34:42Z<p>Karsten.will: </p>
<hr />
<div></div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=File:LinkedIn_2013.06_04.png&diff=14779File:LinkedIn 2013.06 04.png2013-06-05T07:11:49Z<p>Karsten.will: </p>
<hr />
<div></div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=File:LinkedIn_2013.06_03.png&diff=14776File:LinkedIn 2013.06 03.png2013-06-05T07:07:32Z<p>Karsten.will: </p>
<hr />
<div></div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=File:LinkedIn_2013.06_02.png&diff=14775File:LinkedIn 2013.06 02.png2013-06-05T07:07:09Z<p>Karsten.will: </p>
<hr />
<div></div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=File:LinkedIn_2013.06_01.png&diff=14771File:LinkedIn 2013.06 01.png2013-06-05T06:49:50Z<p>Karsten.will: </p>
<hr />
<div></div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Architecture_Overview&diff=14751AppSuite:Architecture Overview2013-05-31T11:09:34Z<p>Karsten.will: /* Publicly Available Plugins */</p>
<hr />
<div>__NOTOC__<br />
This page gives an overview of the most important internal components, plugin capabilities, public interfaces (APIs) and data communication streams of the Open-Xchange server. <br />
<br />
[[File:appsuite_architecture_diagram_3.png|1200px]]<br />
<br />
<br />
=<span style="background:#dcdcdc">Frontend and client based communication flow </span>=<br />
*'''1''' All communication from and to the users client is purely based on HTTP. It is strongly recommended to use only encrypted HTTPS. For security reasons, some modules require HTTPS connections in the default configuration. The HTTP(S) communication is terminated at Apache.<br />
<br />
*'''2''' Within Apache, the mod_proxy_http module is used to forward the request to the OX server. Apache can also be used to configure session stickiness and load balancing in clustered environments.<br />
<br />
*'''3''' OX Web UI<br />
** The [[HTTP API]] is the core API for all user functionality. Every function of the Web UI is using this API. In addition to that, all possible user functionality is available via this API and can be used from external applications as well. It is based on JSON via HTTP(S).<br />
** [http://oxpedia.org/wiki/index.php?title=Portal:AppSuite_UI Web UI Documentation]<br />
** [[HTTP_API_Examples|Programming Example]], how to use this API to build an Email widget, accessing the HTTP API<br />
<br />
*'''4''' The OXtender for Business Mobility is a server based Active Sync Implementation. The "Microsoft Exchange Active Sync" protocol supports Push via HTTPS, therefore the email backend needs to send push events to the OX server. Details, see: [[OXtender for Business Mobility Installation Guide]] and [[OX_EMail_Push_Introduction|Email Push Introduction]]. Serverside, the synchronization makes use of the "Universal Sync Module (USM)", which is a server bundle containing the synchronization logic for several clients. It also communicates via HTTP(S) transporting JSON objects.<br />
<br />
*'''5''' The [[OXtender 2 for Microsoft Outlook]] is a MAPI plugin, installed in the Outlook client to synchronize data between Outlook and the OX server. It makes use of the same HTTP(S) and JSON based communication to the Universal Sync Module (USM), like Active Sync.<br />
<br />
*'''6''' [[Caldav carddav Bundles|CalDAV and CardDAV]] interfaces are available to synchronize calendars and address books with Apple OS X and iOS applications as well as Thunderbird: [[CalDAVClients|CalDAV Clients]] and [[CardDAVClients|CardDAV Clients]].<br />
<br />
*'''7''' A WebDAV implementation provides the possibility to access the documents in the Files-module directly via any WebDAV client, like the Windows Explorer.<br />
<br />
=<span style="background:#dcdcdc">Administration, provisioning and operations related components and communication flow</span>=<br />
*'''11''' Data Migration and Im-/Export of user data can be done via automated tools, using these interfaces: <br />
** [[Using the import servlet]], [[Building an importer]]<br />
** [[Using the export servlet]], [[Building an exporter]], [[Export_ical/vcard| iCal/vCard]]<br />
** A tool is available to upload data from Outlook profiles or PST files to OX: [http://oxpedia.org/wiki/index.php?title=OX_Outlook_Uploader Outlook Uploader]<br />
<br />
*'''12''' All provisioning tasks, like creating and editing users can be done with [http://software.open-xchange.com/OX6/doc/OX6-Provisioning/ Commandline tools]. The command line tools make use of the Java RMI API internally.<br />
<br />
*'''13''' The native, central provisioning API is available via Java RMI and split into the [http://software.open-xchange.com/OX6/doc/RMI/admin-core/ Core API] and the [http://software.open-xchange.com/OX6/doc/RMI/admin-hosting/ HostingAPI].<br />
<br />
*'''14''' Central control panels and billing systems, which are not implemented in Java, can use the RMI API via the [http://software.open-xchange.com/OX6/doc/SOAP/admin/OX-Admin-SOAP.html SOAP API], examples of its usage can be found [[Open-Xchange-SOAP | here]].<br />
** Standard integration via SOAP is available for OPWV Directory<br />
** for Parallels Operations Automation see [[POAIntegrationGuide| POA integration guide]]<br />
** for Parallels Plesk Panel see [[Plesk_Oxtender|Plesk OXtender installation]]<br />
** for cPanel see [[Open-Xchange_cPanel_Installation| cPanel installation]]<br />
<br />
*'''15''' Authentication is implementable via highly customizable plugins, different standard and custom implementations are available<br />
**[[Authentication IMAP Plugin description| IMAP]]<br />
** LDAP<br />
** Database<br />
** custom<br />
<br />
*'''16''' Monitoring the OX application is done via JMX, for a description see [[OX monitoring interface]], or a commandline tool<br />
** An example how to use the monitoring interface is available as pre-built Scripts for the monitoring tool Munin: [[OX munin scripts]]<br />
<br />
=<span style="background:#E5E5E5">Backend related components and communication flow</span>=<br />
*'''21''' All OX-internal data - users, contacts, calendars, tasks and document metadata is stored in a MySQL Database, accessed via JDBC<br />
**'''22''' Native MySQL contacts storage<br />
<br />
*'''23''' Other sources for contacts than the MySQL storage can also be used. For this an OSGi bundle needs to be implemented, overriding the standard contact storage.<br />
** An implementation using LDAP is publicly available<br />
** Several custom implementations are available on request or can be implemented by partners<br />
<br />
*'''24''' Email storage is accessed through the pluggable [http://software.open-xchange.com/OX6/doc/mal/ Mail Abstraction Layer API] <br />
** The default implementation uses IMAP<br />
** Sending Emails is done via SMTP<br />
** For Openwave Email MX, Stateless Edition see [http://owmessaging.com/ OPWV MX]<br />
** For Active Sync or Outlook the email backend needs to send push requests to the OX server, for details see [[OX_EMail_Push_Introduction|Email Push Introduction]]<br />
** Several custom implementations are available on request or can be implemented by partners<br />
<br />
*'''25''' Documents in the Files module are accessed via an API, which allows customized implementations.<br />
** The default in large environments is to use NFS<br />
** In small environments the local filesystem is used<br />
** [http://www.scality.com/ Scality] is also available<br />
** Several custom implementations are available on request or can be implemented by partners<br />
<br />
=<span style="background:#E5E5E5">Social/Public Data related components, plugins and communication flow</span>=<br />
<br />
A <em>subscription based plugin system</em> allows to access data from external systems like webmail systems or social networks. The underlying concept is called [[SocialOX]] and a list of some plugins can be found here: [[SupportedCrawler]]. The integrations of messaging, contacts and calendars are done via the official API of the respective 3rd-party-service if there is one. For authentication, OAuth is used for security and privacy control if available. All plugins use HTTP(S) connections to the external services only. Access to the external email systems is done via IMAP(S) or POP3(S), depending on the service.<br />
<br />
*'''31''' For subscription to an external calendar a plugin to subscribe to Google Calendar is available.<br />
<br />
*'''32''' Supported external messaging services are Facebook, Twitter and SMS/MMS.<br />
<br />
*'''33''' Contacts can be imported from Xing, LinkedIn, MSN/Windows Live/Outlook.com, Yahoo, Facebook and Google.<br />
<br />
*'''34''' External email accounts can be integrated via POP3(S) or IMAP(S)<br />
** There are pre-configured settings for many popular services so that users only need to enter their e-mail address and password.<br />
** Look here how to [[install and configure the mail-account plugin]].<br />
<br />
* '''35''' RSS feeds are loaded remotely, filtered for exploits and can be read in the UI<br />
<br />
* '''36''' Image services like Flickr and Tumblr are integrated directly into the UI, bypassing the backend completely. Authentication is handled via OAuth.<br />
<br />
=<span style="background:#dcdcdc">Publicly Available Plugins</span>=<br />
* An overview of the existing public plugins can be found here: [[Open-Xchange Plugin Overview]]. Many others are available on request or through partners.<br />
<br />
<br />
<br />
<br />
This page was last updated on 2013/05/31.<br />
Person responsible: [mailto:karsten.will@open-xchange.com?Subject=AppSuite%20Architecture%20Overview%20(oxpedia.org)&body=Hi%20Karsten%2C%0A%0AThere%20is%20something%20you%20should%20take%20care%20of%20at%20this%20wiki-page%3A%0Ahttp%3A%2F%2Foxpedia.org%2Fwiki%2Findex.php%3Ftitle%3DAppSuite%3AArchitecture_Overview%0A%0AIt%20is%3A Karsten Will] (creates new pre-filled email)</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Architecture_Overview&diff=14750AppSuite:Architecture Overview2013-05-31T11:06:24Z<p>Karsten.will: /* Frontend and client based communication flow */</p>
<hr />
<div>__NOTOC__<br />
This page gives an overview of the most important internal components, plugin capabilities, public interfaces (APIs) and data communication streams of the Open-Xchange server. <br />
<br />
[[File:appsuite_architecture_diagram_3.png|1200px]]<br />
<br />
<br />
=<span style="background:#dcdcdc">Frontend and client based communication flow </span>=<br />
*'''1''' All communication from and to the users client is purely based on HTTP. It is strongly recommended to use only encrypted HTTPS. For security reasons, some modules require HTTPS connections in the default configuration. The HTTP(S) communication is terminated at Apache.<br />
<br />
*'''2''' Within Apache, the mod_proxy_http module is used to forward the request to the OX server. Apache can also be used to configure session stickiness and load balancing in clustered environments.<br />
<br />
*'''3''' OX Web UI<br />
** The [[HTTP API]] is the core API for all user functionality. Every function of the Web UI is using this API. In addition to that, all possible user functionality is available via this API and can be used from external applications as well. It is based on JSON via HTTP(S).<br />
** [http://oxpedia.org/wiki/index.php?title=Portal:AppSuite_UI Web UI Documentation]<br />
** [[HTTP_API_Examples|Programming Example]], how to use this API to build an Email widget, accessing the HTTP API<br />
<br />
*'''4''' The OXtender for Business Mobility is a server based Active Sync Implementation. The "Microsoft Exchange Active Sync" protocol supports Push via HTTPS, therefore the email backend needs to send push events to the OX server. Details, see: [[OXtender for Business Mobility Installation Guide]] and [[OX_EMail_Push_Introduction|Email Push Introduction]]. Serverside, the synchronization makes use of the "Universal Sync Module (USM)", which is a server bundle containing the synchronization logic for several clients. It also communicates via HTTP(S) transporting JSON objects.<br />
<br />
*'''5''' The [[OXtender 2 for Microsoft Outlook]] is a MAPI plugin, installed in the Outlook client to synchronize data between Outlook and the OX server. It makes use of the same HTTP(S) and JSON based communication to the Universal Sync Module (USM), like Active Sync.<br />
<br />
*'''6''' [[Caldav carddav Bundles|CalDAV and CardDAV]] interfaces are available to synchronize calendars and address books with Apple OS X and iOS applications as well as Thunderbird: [[CalDAVClients|CalDAV Clients]] and [[CardDAVClients|CardDAV Clients]].<br />
<br />
*'''7''' A WebDAV implementation provides the possibility to access the documents in the Files-module directly via any WebDAV client, like the Windows Explorer.<br />
<br />
=<span style="background:#dcdcdc">Administration, provisioning and operations related components and communication flow</span>=<br />
*'''11''' Data Migration and Im-/Export of user data can be done via automated tools, using these interfaces: <br />
** [[Using the import servlet]], [[Building an importer]]<br />
** [[Using the export servlet]], [[Building an exporter]], [[Export_ical/vcard| iCal/vCard]]<br />
** A tool is available to upload data from Outlook profiles or PST files to OX: [http://oxpedia.org/wiki/index.php?title=OX_Outlook_Uploader Outlook Uploader]<br />
<br />
*'''12''' All provisioning tasks, like creating and editing users can be done with [http://software.open-xchange.com/OX6/doc/OX6-Provisioning/ Commandline tools]. The command line tools make use of the Java RMI API internally.<br />
<br />
*'''13''' The native, central provisioning API is available via Java RMI and split into the [http://software.open-xchange.com/OX6/doc/RMI/admin-core/ Core API] and the [http://software.open-xchange.com/OX6/doc/RMI/admin-hosting/ HostingAPI].<br />
<br />
*'''14''' Central control panels and billing systems, which are not implemented in Java, can use the RMI API via the [http://software.open-xchange.com/OX6/doc/SOAP/admin/OX-Admin-SOAP.html SOAP API], examples of its usage can be found [[Open-Xchange-SOAP | here]].<br />
** Standard integration via SOAP is available for OPWV Directory<br />
** for Parallels Operations Automation see [[POAIntegrationGuide| POA integration guide]]<br />
** for Parallels Plesk Panel see [[Plesk_Oxtender|Plesk OXtender installation]]<br />
** for cPanel see [[Open-Xchange_cPanel_Installation| cPanel installation]]<br />
<br />
*'''15''' Authentication is implementable via highly customizable plugins, different standard and custom implementations are available<br />
**[[Authentication IMAP Plugin description| IMAP]]<br />
** LDAP<br />
** Database<br />
** custom<br />
<br />
*'''16''' Monitoring the OX application is done via JMX, for a description see [[OX monitoring interface]], or a commandline tool<br />
** An example how to use the monitoring interface is available as pre-built Scripts for the monitoring tool Munin: [[OX munin scripts]]<br />
<br />
=<span style="background:#E5E5E5">Backend related components and communication flow</span>=<br />
*'''21''' All OX-internal data - users, contacts, calendars, tasks and document metadata is stored in a MySQL Database, accessed via JDBC<br />
**'''22''' Native MySQL contacts storage<br />
<br />
*'''23''' Other sources for contacts than the MySQL storage can also be used. For this an OSGi bundle needs to be implemented, overriding the standard contact storage.<br />
** An implementation using LDAP is publicly available<br />
** Several custom implementations are available on request or can be implemented by partners<br />
<br />
*'''24''' Email storage is accessed through the pluggable [http://software.open-xchange.com/OX6/doc/mal/ Mail Abstraction Layer API] <br />
** The default implementation uses IMAP<br />
** Sending Emails is done via SMTP<br />
** For Openwave Email MX, Stateless Edition see [http://owmessaging.com/ OPWV MX]<br />
** For Active Sync or Outlook the email backend needs to send push requests to the OX server, for details see [[OX_EMail_Push_Introduction|Email Push Introduction]]<br />
** Several custom implementations are available on request or can be implemented by partners<br />
<br />
*'''25''' Documents in the Files module are accessed via an API, which allows customized implementations.<br />
** The default in large environments is to use NFS<br />
** In small environments the local filesystem is used<br />
** [http://www.scality.com/ Scality] is also available<br />
** Several custom implementations are available on request or can be implemented by partners<br />
<br />
=<span style="background:#E5E5E5">Social/Public Data related components, plugins and communication flow</span>=<br />
<br />
A <em>subscription based plugin system</em> allows to access data from external systems like webmail systems or social networks. The underlying concept is called [[SocialOX]] and a list of some plugins can be found here: [[SupportedCrawler]]. The integrations of messaging, contacts and calendars are done via the official API of the respective 3rd-party-service if there is one. For authentication, OAuth is used for security and privacy control if available. All plugins use HTTP(S) connections to the external services only. Access to the external email systems is done via IMAP(S) or POP3(S), depending on the service.<br />
<br />
*'''31''' For subscription to an external calendar a plugin to subscribe to Google Calendar is available.<br />
<br />
*'''32''' Supported external messaging services are Facebook, Twitter and SMS/MMS.<br />
<br />
*'''33''' Contacts can be imported from Xing, LinkedIn, MSN/Windows Live/Outlook.com, Yahoo, Facebook and Google.<br />
<br />
*'''34''' External email accounts can be integrated via POP3(S) or IMAP(S)<br />
** There are pre-configured settings for many popular services so that users only need to enter their e-mail address and password.<br />
** Look here how to [[install and configure the mail-account plugin]].<br />
<br />
* '''35''' RSS feeds are loaded remotely, filtered for exploits and can be read in the UI<br />
<br />
* '''36''' Image services like Flickr and Tumblr are integrated directly into the UI, bypassing the backend completely. Authentication is handled via OAuth.<br />
<br />
=<span style="background:#dcdcdc">Publicly Available Plugins</span>=<br />
* An overview of the existing public plugins can be found here: [[Open-Xchange Plugin Overview]]. Many others are available on request or through partners.<br />
<br />
<br />
<br />
<br />
This page was last updated on 2013/05/27.<br />
Person responsible: [mailto:karsten.will@open-xchange.com?Subject=AppSuite%20Architecture%20Overview%20(oxpedia.org)&body=Hi%20Karsten%2C%0A%0AThere%20is%20something%20you%20should%20take%20care%20of%20at%20this%20wiki-page%3A%0Ahttp%3A%2F%2Foxpedia.org%2Fwiki%2Findex.php%3Ftitle%3DAppSuite%3AArchitecture_Overview%0A%0AIt%20is%3A Karsten Will]</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Architecture_Overview&diff=14749AppSuite:Architecture Overview2013-05-31T11:05:02Z<p>Karsten.will: /* Frontend and client based communication flow */</p>
<hr />
<div>__NOTOC__<br />
This page gives an overview of the most important internal components, plugin capabilities, public interfaces (APIs) and data communication streams of the Open-Xchange server. <br />
<br />
[[File:appsuite_architecture_diagram_3.png|1200px]]<br />
<br />
<br />
=<span style="background:#dcdcdc">Frontend and client based communication flow </span>=<br />
*'''1''' All communication from and to the users client is purely based on HTTP. It is strongly recommended to use only encrypted HTTPS. For security reasons, some modules require HTTPS connections in the default configuration. The HTTP(S) communication is terminated at Apache.<br />
<br />
*'''2''' Within Apache, the mod_proxy_http module is used to forward the request to the OX server. Apache can also be used to configure session stickiness and load balancing in clustered environments.<br />
<br />
*'''3''' OX Web UI<br />
** The [[HTTP API]] is the core API for all user functionality. Every function of the Web UI is using this API. In addition to that, all possible user functionality is available via this API and can be used from external applications as well. It is based on JSON via HTTP(S).<br />
** [http://oxpedia.org/wiki/index.php?title=Portal:AppSuite_UIl Web UI Documentation]<br />
** [[HTTP_API_Examples|Programming Example]], how to use this API to build an Email widget, accessing the HTTP API<br />
<br />
*'''4''' The OXtender for Business Mobility is a server based Active Sync Implementation. The "Microsoft Exchange Active Sync" protocol supports Push via HTTPS, therefore the email backend needs to send push events to the OX server. Details, see: [[OXtender for Business Mobility Installation Guide]] and [[OX_EMail_Push_Introduction|Email Push Introduction]]. Serverside, the synchronization makes use of the "Universal Sync Module (USM)", which is a server bundle containing the synchronization logic for several clients. It also communicates via HTTP(S) transporting JSON objects.<br />
<br />
*'''5''' The [[OXtender 2 for Microsoft Outlook]] is a MAPI plugin, installed in the Outlook client to synchronize data between Outlook and the OX server. It makes use of the same HTTP(S) and JSON based communication to the Universal Sync Module (USM), like Active Sync.<br />
<br />
*'''6''' [[Caldav carddav Bundles|CalDAV and CardDAV]] interfaces are available to synchronize calendars and address books with Apple OS X and iOS applications as well as Thunderbird: [[CalDAVClients|CalDAV Clients]] and [[CardDAVClients|CardDAV Clients]].<br />
<br />
*'''7''' A WebDAV implementation provides the possibility to access the documents in the Files-module directly via any WebDAV client, like the Windows Explorer.<br />
<br />
=<span style="background:#dcdcdc">Administration, provisioning and operations related components and communication flow</span>=<br />
*'''11''' Data Migration and Im-/Export of user data can be done via automated tools, using these interfaces: <br />
** [[Using the import servlet]], [[Building an importer]]<br />
** [[Using the export servlet]], [[Building an exporter]], [[Export_ical/vcard| iCal/vCard]]<br />
** A tool is available to upload data from Outlook profiles or PST files to OX: [http://oxpedia.org/wiki/index.php?title=OX_Outlook_Uploader Outlook Uploader]<br />
<br />
*'''12''' All provisioning tasks, like creating and editing users can be done with [http://software.open-xchange.com/OX6/doc/OX6-Provisioning/ Commandline tools]. The command line tools make use of the Java RMI API internally.<br />
<br />
*'''13''' The native, central provisioning API is available via Java RMI and split into the [http://software.open-xchange.com/OX6/doc/RMI/admin-core/ Core API] and the [http://software.open-xchange.com/OX6/doc/RMI/admin-hosting/ HostingAPI].<br />
<br />
*'''14''' Central control panels and billing systems, which are not implemented in Java, can use the RMI API via the [http://software.open-xchange.com/OX6/doc/SOAP/admin/OX-Admin-SOAP.html SOAP API], examples of its usage can be found [[Open-Xchange-SOAP | here]].<br />
** Standard integration via SOAP is available for OPWV Directory<br />
** for Parallels Operations Automation see [[POAIntegrationGuide| POA integration guide]]<br />
** for Parallels Plesk Panel see [[Plesk_Oxtender|Plesk OXtender installation]]<br />
** for cPanel see [[Open-Xchange_cPanel_Installation| cPanel installation]]<br />
<br />
*'''15''' Authentication is implementable via highly customizable plugins, different standard and custom implementations are available<br />
**[[Authentication IMAP Plugin description| IMAP]]<br />
** LDAP<br />
** Database<br />
** custom<br />
<br />
*'''16''' Monitoring the OX application is done via JMX, for a description see [[OX monitoring interface]], or a commandline tool<br />
** An example how to use the monitoring interface is available as pre-built Scripts for the monitoring tool Munin: [[OX munin scripts]]<br />
<br />
=<span style="background:#E5E5E5">Backend related components and communication flow</span>=<br />
*'''21''' All OX-internal data - users, contacts, calendars, tasks and document metadata is stored in a MySQL Database, accessed via JDBC<br />
**'''22''' Native MySQL contacts storage<br />
<br />
*'''23''' Other sources for contacts than the MySQL storage can also be used. For this an OSGi bundle needs to be implemented, overriding the standard contact storage.<br />
** An implementation using LDAP is publicly available<br />
** Several custom implementations are available on request or can be implemented by partners<br />
<br />
*'''24''' Email storage is accessed through the pluggable [http://software.open-xchange.com/OX6/doc/mal/ Mail Abstraction Layer API] <br />
** The default implementation uses IMAP<br />
** Sending Emails is done via SMTP<br />
** For Openwave Email MX, Stateless Edition see [http://owmessaging.com/ OPWV MX]<br />
** For Active Sync or Outlook the email backend needs to send push requests to the OX server, for details see [[OX_EMail_Push_Introduction|Email Push Introduction]]<br />
** Several custom implementations are available on request or can be implemented by partners<br />
<br />
*'''25''' Documents in the Files module are accessed via an API, which allows customized implementations.<br />
** The default in large environments is to use NFS<br />
** In small environments the local filesystem is used<br />
** [http://www.scality.com/ Scality] is also available<br />
** Several custom implementations are available on request or can be implemented by partners<br />
<br />
=<span style="background:#E5E5E5">Social/Public Data related components, plugins and communication flow</span>=<br />
<br />
A <em>subscription based plugin system</em> allows to access data from external systems like webmail systems or social networks. The underlying concept is called [[SocialOX]] and a list of some plugins can be found here: [[SupportedCrawler]]. The integrations of messaging, contacts and calendars are done via the official API of the respective 3rd-party-service if there is one. For authentication, OAuth is used for security and privacy control if available. All plugins use HTTP(S) connections to the external services only. Access to the external email systems is done via IMAP(S) or POP3(S), depending on the service.<br />
<br />
*'''31''' For subscription to an external calendar a plugin to subscribe to Google Calendar is available.<br />
<br />
*'''32''' Supported external messaging services are Facebook, Twitter and SMS/MMS.<br />
<br />
*'''33''' Contacts can be imported from Xing, LinkedIn, MSN/Windows Live/Outlook.com, Yahoo, Facebook and Google.<br />
<br />
*'''34''' External email accounts can be integrated via POP3(S) or IMAP(S)<br />
** There are pre-configured settings for many popular services so that users only need to enter their e-mail address and password.<br />
** Look here how to [[install and configure the mail-account plugin]].<br />
<br />
* '''35''' RSS feeds are loaded remotely, filtered for exploits and can be read in the UI<br />
<br />
* '''36''' Image services like Flickr and Tumblr are integrated directly into the UI, bypassing the backend completely. Authentication is handled via OAuth.<br />
<br />
=<span style="background:#dcdcdc">Publicly Available Plugins</span>=<br />
* An overview of the existing public plugins can be found here: [[Open-Xchange Plugin Overview]]. Many others are available on request or through partners.<br />
<br />
<br />
<br />
<br />
This page was last updated on 2013/05/27.<br />
Person responsible: [mailto:karsten.will@open-xchange.com?Subject=AppSuite%20Architecture%20Overview%20(oxpedia.org)&body=Hi%20Karsten%2C%0A%0AThere%20is%20something%20you%20should%20take%20care%20of%20at%20this%20wiki-page%3A%0Ahttp%3A%2F%2Foxpedia.org%2Fwiki%2Findex.php%3Ftitle%3DAppSuite%3AArchitecture_Overview%0A%0AIt%20is%3A Karsten Will]</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=SourceCodeAccess&diff=14744SourceCodeAccess2013-05-27T12:21:59Z<p>Karsten.will: /* How to download the Open-Xchange Server source code (6.22.0 and later) */</p>
<hr />
<div>= How to download the Open-Xchange Server source code (6.22.0 and later) =<br />
<br />
Starting with 6.22 the source code of Open-Xchange server is available from our Git repository.<br />
<br />
The following repositories exist:<br />
<br />
{| border="1" cellspacing="0" cellpadding="5" align="center"<br />
! Repository<br />
! content<br />
|- <br />
| wd/backend<br />
| The main repository containing most of the parts of Open-Xchange server<br />
|-<br />
| frontend6<br />
| The AJAX user interface (version 6)<br />
|-<br />
| wd/frontend/web<br />
| The AJAX user interface of OX AppSuite<br />
|-<br />
| main/office<br />
| The server-code for OX Text<br />
|-<br />
| main/office-web<br />
| The frontend-code for OX Text<br />
|-<br />
|}<br />
<br />
== Git operations to access the code ==<br />
<br />
To clone a repository, run<br />
<br />
$ git clone http://code.open-xchange.com/git/<repository><br />
$ cd <repository><br />
$ git checkout -t origin/<branch><br />
<br />
== The currently used Git branches ==<br />
<br />
For a list of available branches, run<br />
<br />
$ git branch -r<br />
<br />
The main development process uses the following branches:<br />
<br />
{| border="1" cellspacing="0" cellpadding="5" align="center"<br />
! Git branch<br />
! content<br />
|- <br />
| develop<br />
| head development<br />
|-<br />
| release-<version><br />
| stabilizing for <version> release<br />
|-<br />
| master<br />
| maintenance of previous releases<br />
|-<br />
|}<br />
<br />
= How to download the Open-Xchange Server source code (6.20.7 and earlier) =<br />
<br />
The source code of Open-Xchange Server up to and including version 6.20.7 is available using cvs access and source packages. Please make sure to use an up-to-date CVS client (cvs > 1.12) to check out the repositories. Integrated CVS clients e.g. for current Eclipse version work well, too. <br />
<br />
== The currently maintained cvs repositories ==<br />
<br />
{| border="1" cellspacing="0" cellpadding="5" align="center"<br />
! Repository<br />
! content<br />
|- <br />
| open-xchange<br />
| the main repository containing most of the parts of Open-Xchange server<br />
|-<br />
| open-xchange-gui<br />
| The AJAX user interface<br />
|-<br />
| open-xchange-admin<br />
| the Open-Xchange admin daemon used for provisioning (user creation, etc.)<br />
|-<br />
| open-xchange-admin-plugin-hosting<br />
| contains the commandline tools and the oxinstaller<br />
|-<br />
| open-xchange-admin-soap<br />
| SOAP interface<br />
|-<br />
|}<br />
<br />
== CVS operations to access the code ==<br />
<br />
To see a complete list of Open-Xchange cvs repositories, run the following command:<br />
<br />
$ cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot rls<br />
<br />
Note, however, that only the repositories as listed above are actively maintained.<br />
<br />
To check out a repository, run<br />
<br />
$ cvs -d :pserver:anonymous@www.open-xchange.com:/cvsroot co open-xchange/com.openexchange.authentication.ldap<br />
<br />
to check out the ldap authentication plugin.<br />
<br />
== Organization of the open-xchange repository ==<br />
<br />
The open-xchange repository contains several [http://en.wikipedia.org/wiki/OSGi OSGi] bundles which are the building block of the Open-Xchange server package.<br />
Each of them has an [http://ant.apache.org/ ant] <tt>build.xml</tt> file containing a target to create a source tarball and a subdirectory called <tt>packaging</tt> which contains the package metadata to build [http://en.wikipedia.org/wiki/Deb_(file_format) DEB] and [http://en.wikipedia.org/wiki/RPM_Package_Manager RPM] packages.<br />
<br />
[[Category: OX6]]</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=Portal:AppSuite_UI&diff=14743Portal:AppSuite UI2013-05-27T11:51:39Z<p>Karsten.will: </p>
<hr />
<div><!-- This portal was created using subst:box portal skeleton --><br />
{{browsebar}}__NOTOC__<br />
<br />
<div style="clear:both; width:100%"><br />
<br />
{{{{FULLPAGENAME}}/box-header|<big>{{PAGENAME}}</big>|{{FULLPAGENAME}}/Intro|}}<br />
{{{{FULLPAGENAME}}/Intro}}<br />
{{{{FULLPAGENAME}}/box-footer|}}<br />
<br />
<div style="clear:both; width:100%"><br />
<br />
{{{{FULLPAGENAME}}/box-header|Topics|{{FULLPAGENAME}}/Topics|}}<br />
{{{{FULLPAGENAME}}/Topics}}<br />
{{{{FULLPAGENAME}}/box-footer|}}<br />
<br />
{{portals}}<br />
{{purgepage}}<br />
<br />
__NOTOC__ __NOEDITSECTION__<br />
<br />
== How-to articles ==</div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=File:Appsuite_architecture_diagram_3.png&diff=14731File:Appsuite architecture diagram 3.png2013-05-27T09:19:21Z<p>Karsten.will: </p>
<hr />
<div></div>Karsten.willhttps://oxpedia.org/wiki/index.php?title=AppSuite:Architecture_Overview&diff=14730AppSuite:Architecture Overview2013-05-27T09:19:09Z<p>Karsten.will: </p>
<hr />
<div>__NOTOC__<br />
This page gives an overview of the most important internal components, plugin capabilities, public interfaces (APIs) and data communication streams of the Open-Xchange server. <br />
<br />
[[File:appsuite_architecture_diagram_3.png|1200px]]<br />
<br />
<br />
=<span style="background:#dcdcdc">Frontend and client based communication flow </span>=<br />
*'''1''' All communication from and to the users client is purely based on HTTP. It is strongly recommended to use only encrypted HTTPS. For security reasons, some modules require HTTPS connections in the default configuration. The HTTP(S) communication is terminated at Apache.<br />
<br />
*'''2''' Within Apache, the mod_proxy_http module is used to forward the request to the OX server. Apache can also be used to configure session stickiness and load balancing in clustered environments.<br />
<br />
*'''3''' OX Web UI<br />
** The [[HTTP API]] is the core API for all user functionality. Every function of the Web UI is using this API. In addition to that, all possible user functionality is available via this API and can be used from external applications as well. It is based on JSON via HTTP(S).<br />
** [http://www.open-xchange.com/en/products/ox-hosting-edition/requirements.html Requirements Web UI]<br />
** [[HTTP_API_Examples|Programming Example]], how to use this API to build an Email widget, accessing the HTTP API<br />
<br />
*'''4''' The OXtender for Business Mobility is a server based Active Sync Implementation. The "Microsoft Exchange Active Sync" protocol supports Push via HTTPS, therefore the email backend needs to send push events to the OX server. Details, see: [[OXtender for Business Mobility Installation Guide]] and [[OX_EMail_Push_Introduction|Email Push Introduction]]. Serverside, the synchronization makes use of the "Universal Sync Module (USM)", which is a server bundle containing the synchronization logic for several clients. It also communicates via HTTP(S) transporting JSON objects.<br />
<br />
*'''5''' The [[OXtender 2 for Microsoft Outlook]] is a MAPI plugin, installed in the Outlook client to synchronize data between Outlook and the OX server. It makes use of the same HTTP(S) and JSON based communication to the Universal Sync Module (USM), like Active Sync.<br />
<br />
*'''6''' [[Caldav carddav Bundles|CalDAV and CardDAV]] interfaces are available to synchronize calendars and address books with Apple OS X and iOS applications as well as Thunderbird: [[CalDAVClients|CalDAV Clients]] and [[CardDAVClients|CardDAV Clients]].<br />
<br />
*'''7''' A WebDAV implementation provides the possibility to access the documents in the Files-module directly via any WebDAV client, like the Windows Explorer.<br />
<br />
=<span style="background:#dcdcdc">Administration, provisioning and operations related components and communication flow</span>=<br />
*'''11''' Data Migration and Im-/Export of user data can be done via automated tools, using these interfaces: <br />
** [[Using the import servlet]], [[Building an importer]]<br />
** [[Using the export servlet]], [[Building an exporter]], [[Export_ical/vcard| iCal/vCard]]<br />
** A tool is available to upload data from Outlook profiles or PST files to OX: [http://oxpedia.org/wiki/index.php?title=OX_Outlook_Uploader Outlook Uploader]<br />
<br />
*'''12''' All provisioning tasks, like creating and editing users can be done with [http://software.open-xchange.com/OX6/doc/OX6-Provisioning/ Commandline tools]. The command line tools make use of the Java RMI API internally.<br />
<br />
*'''13''' The native, central provisioning API is available via Java RMI and split into the [http://software.open-xchange.com/OX6/doc/RMI/admin-core/ Core API] and the [http://software.open-xchange.com/OX6/doc/RMI/admin-hosting/ HostingAPI].<br />
<br />
*'''14''' Central control panels and billing systems, which are not implemented in Java, can use the RMI API via the [http://software.open-xchange.com/OX6/doc/SOAP/admin/OX-Admin-SOAP.html SOAP API], examples of its usage can be found [[Open-Xchange-SOAP | here]].<br />
** Standard integration via SOAP is available for OPWV Directory<br />
** for Parallels Operations Automation see [[POAIntegrationGuide| POA integration guide]]<br />
** for Parallels Plesk Panel see [[Plesk_Oxtender|Plesk OXtender installation]]<br />
** for cPanel see [[Open-Xchange_cPanel_Installation| cPanel installation]]<br />
<br />
*'''15''' Authentication is implementable via highly customizable plugins, different standard and custom implementations are available<br />
**[[Authentication IMAP Plugin description| IMAP]]<br />
** LDAP<br />
** Database<br />
** custom<br />
<br />
*'''16''' Monitoring the OX application is done via JMX, for a description see [[OX monitoring interface]], or a commandline tool<br />
** An example how to use the monitoring interface is available as pre-built Scripts for the monitoring tool Munin: [[OX munin scripts]]<br />
<br />
=<span style="background:#E5E5E5">Backend related components and communication flow</span>=<br />
*'''21''' All OX-internal data - users, contacts, calendars, tasks and document metadata is stored in a MySQL Database, accessed via JDBC<br />
**'''22''' Native MySQL contacts storage<br />
<br />
*'''23''' Other sources for contacts than the MySQL storage can also be used. For this an OSGi bundle needs to be implemented, overriding the standard contact storage.<br />
** An implementation using LDAP is publicly available<br />
** Several custom implementations are available on request or can be implemented by partners<br />
<br />
*'''24''' Email storage is accessed through the pluggable [http://software.open-xchange.com/OX6/doc/mal/ Mail Abstraction Layer API] <br />
** The default implementation uses IMAP<br />
** Sending Emails is done via SMTP<br />
** For Openwave Email MX, Stateless Edition see [http://owmessaging.com/ OPWV MX]<br />
** For Active Sync or Outlook the email backend needs to send push requests to the OX server, for details see [[OX_EMail_Push_Introduction|Email Push Introduction]]<br />
** Several custom implementations are available on request or can be implemented by partners<br />
<br />
*'''25''' Documents in the Files module are accessed via an API, which allows customized implementations.<br />
** The default in large environments is to use NFS<br />
** In small environments the local filesystem is used<br />
** [http://www.scality.com/ Scality] is also available<br />
** Several custom implementations are available on request or can be implemented by partners<br />
<br />
=<span style="background:#E5E5E5">Social/Public Data related components, plugins and communication flow</span>=<br />
<br />
A <em>subscription based plugin system</em> allows to access data from external systems like webmail systems or social networks. The underlying concept is called [[SocialOX]] and a list of some plugins can be found here: [[SupportedCrawler]]. The integrations of messaging, contacts and calendars are done via the official API of the respective 3rd-party-service if there is one. For authentication, OAuth is used for security and privacy control if available. All plugins use HTTP(S) connections to the external services only. Access to the external email systems is done via IMAP(S) or POP3(S), depending on the service.<br />
<br />
*'''31''' For subscription to an external calendar a plugin to subscribe to Google Calendar is available.<br />
<br />
*'''32''' Supported external messaging services are Facebook, Twitter and SMS/MMS.<br />
<br />
*'''33''' Contacts can be imported from Xing, LinkedIn, MSN/Windows Live/Outlook.com, Yahoo, Facebook and Google.<br />
<br />
*'''34''' External email accounts can be integrated via POP3(S) or IMAP(S)<br />
** There are pre-configured settings for many popular services so that users only need to enter their e-mail address and password.<br />
** Look here how to [[install and configure the mail-account plugin]].<br />
<br />
* '''35''' RSS feeds are loaded remotely, filtered for exploits and can be read in the UI<br />
<br />
* '''36''' Image services like Flickr and Tumblr are integrated directly into the UI, bypassing the backend completely. Authentication is handled via OAuth.<br />
<br />
=<span style="background:#dcdcdc">Publicly Available Plugins</span>=<br />
* An overview of the existing public plugins can be found here: [[Open-Xchange Plugin Overview]]. Many others are available on request or through partners.<br />
<br />
<br />
<br />
<br />
This page was last updated on 2013/05/27.<br />
Person responsible: [mailto:karsten.will@open-xchange.com?Subject=AppSuite%20Architecture%20Overview%20(oxpedia.org)&body=Hi%20Karsten%2C%0A%0AThere%20is%20something%20you%20should%20take%20care%20of%20at%20this%20wiki-page%3A%0Ahttp%3A%2F%2Foxpedia.org%2Fwiki%2Findex.php%3Ftitle%3DAppSuite%3AArchitecture_Overview%0A%0AIt%20is%3A Karsten Will]</div>Karsten.will