NameDateSize

..16-Mar-201612 KiB

.gitignore18-May-20151.1 KiB

.travis.yml27-Apr-2015592

asyncemsmdb.idl27-Apr-2015396

autogen.sh03-Mar-20141.8 KiB

bin/03-Mar-20144 KiB

CHANGES.md15-Sep-20152.4 KiB

config.guess03-Mar-201445.2 KiB

config.mk.in07-Aug-20153.6 KiB

config.sub03-Mar-201433.2 KiB

configure.ac07-Aug-201529.6 KiB

COPYING03-Mar-201434.3 KiB

doc/10-Feb-20154 KiB

Doxyfile.in03-Mar-201451.4 KiB

exchange.idl11-Aug-2015142 KiB

exchange_debug.idl07-Aug-2015336

IDL_LICENSE.txt03-Mar-2014415

idl_types.h03-Mar-20142.6 KiB

install-sh03-Mar-20145.5 KiB

libexchange2ical/18-Mar-20154 KiB

libmapi/31-Aug-20154 KiB

libmapi++/16-Dec-20144 KiB

libmapi++.pc.in03-Mar-2014312

libmapi.pc.in03-Mar-2014352

libmapiadmin/18-Mar-20154 KiB

libmapiadmin.pc.in03-Mar-2014346

libocpf/19-Mar-20154 KiB

libocpf.pc.in03-Mar-2014291

Mainpage.doxy03-Mar-20141.8 KiB

Makefile07-Aug-201564.9 KiB

mapiproxy/27-Apr-20154 KiB

missing03-Mar-201410.8 KiB

ndr_fasttransfer.c15-Sep-201521.3 KiB

ndr_mapi.c07-Aug-2015104.8 KiB

packaging/03-Mar-20144 KiB

php/12-Aug-20144 KiB

properties_enum.h07-Apr-2015107.7 KiB

property.idl18-May-201513.4 KiB

pyopenchange/03-Mar-20144 KiB

python/03-Mar-20144 KiB

qt/03-Mar-20144 KiB

README.md20-Jun-20146.1 KiB

README.smbconf.md27-Apr-20153.6 KiB

script/07-Aug-20154 KiB

setup/07-Aug-20154 KiB

testprogs/18-Mar-20154 KiB

testsuite/07-Aug-20154 KiB

utils/07-Aug-20154 KiB

VERSION12-Aug-20141.9 KiB

README.md

1About OpenChange
2----------------
3
4![travis build](https://travis-ci.org/openchange/openchange.svg)
5
6The OpenChange Project aims to provide a portable Open Source
7implementation of Microsoft Exchange Server and Exchange
8protocols. Exchange is a groupware server designed to work with
9Microsoft Outlook, and providing features such as a messaging server,
10shared calendars, contact databases, public folders, notes and tasks. 
11
12The OpenChange project has three goals:
13* To provide a library for interoperability with Exchange protocols, and
14to assist implementers to use this to create groupware that
15interoperates with both Exchange and other OpenChange-based software. 
16
17* To provide an alternative to Microsoft Exchange Server which uses
18native Exchange protocols and provides exactly equivalent
19functionality when viewed from Microsoft Outlook clients. 
20
21* To develop a body of knowledge about the most popular groupware
22protocols in use commercially today in order to promote development of
23a documented and unencumbered standard, with all the benefits that
24standards bring. 
25
26
27Documentation
28-------------
29
30There are two sources of documentation - text files in the doc/
31directory, and API documentation generated from the source files using
32doxygen. You can create the API documentation yourself (using "make
33doxygen" at the top level) or you can refer to the copy on the
34OpenChange web site at
35http://apidocs.openchange.org/overview/index.html
36
37doc/howto.txt contains instructions on how to install and set up
38client libraries, client utilities and the server / proxy parts of
39OpenChange.
40doc/man/ contains man(1) pages for several OpenChange utilities. Note
41that man pages for programming (i.e. the parts that would appear in
42man3) are generated by doxygen, and will be found in apidocs/ if you
43generate the documentation yourself.
44doc/doxygen/ provides static content used as part of the doxygen API
45documentation generation process.
46doc/examples/ provides programming examples for libmapi.
47
48
49Structure
50---------
51
52- bin/	This directory is created during the build process. It
53contains the binaries (executable programs) that are compiled during
54the "make" step. The source for most of these is in the utils/
55directory, described below.
56
57- doc/  This directory contains documentation - see description above
58(in DOCUMENTATION) for the various contents of this directory.
59
60- gen_ndr/  This directory contains routines for handling the Network
61Data Representation (NDR) for various Exchange RPC calls. The contents
62of this directory are generated (using Samba's pidl IDL compiler) at
63build time. The main input file is exchange.idl (see top level
64directory).
65
66- libexchange2ical  This directory provides functionality for 
67converting between Exchange calendar appointments and ICalendar (RFC2445 /
68RFC5545) format. Exchange -> ICalendar is fairly mature, ICalendar to 
69Exchange is in work.
70
71- libmapi/  This directory contains the main client-side library,
72called libmapi. libmapi closely reflects the underlying protocol
73operations (Exchange RPC) being performed between the client and the
74server. For more information, consult the API documentation (either
75build yourself, or online at
76http://apidocs.openchange.org/libmapi/index.html)
77
78- libmapi++/  This directory contains C++ bindings for libmapi. It is
79not a replacement for libmapi, but is intended to provide easier
80access to many libmapi functions for C++ programmers. For more
81information, consult the API documentation (either build yourself, or
82online at http://apidocs.openchange.org/libmapi++/index.html)
83
84- libmapiadmin/  This directory contains client-side library functions
85for administering OpenChange or Exchange servers. For more
86information, consult the API documentation (either build yourself, or
87online at http://apidocs.openchange.org/libmapiadmin/index.html). If
88you are looking for a program you can run, instead of library
89functions to write your own program, "openchangepfadmin" might be of
90interest.
91
92- libocpf/  This directory contains library functions for the
93OpenChange Property Files (OCPF). This allows building of mail
94messages, address book entries, appointments and similar objects from
95text files. For more information, consult the API documentation
96(either build yourself, or online at
97http://apidocs.openchange.org/libocpf/index.html) 
98
99- mapiproxy/ This directory provides an Exchange RPC proxy. You can
100use this to provide transparent proxying, or to change / monitor 
101connections between the client and server. For more information,
102consult the API documentation (either build yourself, or online at
103http://apidocs.openchange.org/mapiproxy/index.html) 
104
105- python/  This directory contains python scripts used to set up
106("provision") the server side. They are not required for the client
107side.
108
109- qt/   This directory contains Qt4 bindings (lib/ subdirectory) and
110a sample application (demo/ subdirectory). The sample application 
111is intended for research and development use, not as a complete
112end-user application.
113
114- samba4/  This directory will be created during the build process if
115you call "make samba" or execute the ./script/installsamba4.sh
116script. It is used to build samba4, if required.
117
118- script/  This directory contains a range of scripts useful for
119development or use of OpenChange. [TODO: document the scripts -
120perhaps write script/README?] 
121
122- setup/  This directory contains data for setting up ("provisioning")
123the server.
124
125- testprogs/  This directory contains developer test tools
126
127- utils/  This directory contains the source code for a range of
128applications / utilities that can be used to interact with an exchange
129server. They include:
130 - utils/backup/  	backup and restore tools
131 - utils/exchange2ical  converts Exchange calendar into an ICal file
132 - utils/exchange2mbox	two way conversion between Exchange mail and mbox
133 - utils/mapiprofile	set up client side profiles (login information)
134 - utils/mapitest/	test tools for libmapi functionality
135 - utils/mapitrace/	test tool for tracing MAPI calls
136 - utils/openchangeclient	command line client for Exchange RPC
137 - utils/openchangepfadmin	Public Folders admin tools and 
138				administration of Exchange users (add/del) 
139 - utils/schemaIDGUID
140For more information on these tools, refer to the man(1) pages in doc/man/man1
141

README.smbconf.md

1This file documents possible smb.conf configuration options for
2OpenChange server, components and modules.
3
4openchange server debugging
5---------------------------
6
7- __dcerpc_mapiproxy:ndrdump = true|false__
8
9mapistore named properties backend
10----------------------------------
11
12- __mapistore:namedproperties = STRING__ This option specifies the
13  adapter to use to store and manage named properties. Possible value
14  for this parametric option are _mysql_ to use the MySQL backend or
15  _ldb_ to use the LDB one. If the option is not provided, LDB will be
16  used by default and storage path sets to default.
17
18- __namedproperties:ldb_url = STRING__ This option specifies the LDB
19  database URL of the LDB named properties backend.
20
21- __namedproperties:ldb_data = STRING__ This option specifies
22  the path where provisioning content is located.
23
24- __namedproperties:mysql_sock = STRING__ This option is mandatory
25  unless _namedproperties:mysql_host_ is specified. The option defines
26  the UNIX socket path of the MySQL named properties backend.
27
28- __namedproperties:mysql_user = STRING__ This option defines the
29  mysql username of the account to use for the MySQL named properties
30  backend.
31
32- __namedproperties:mysql_pass = STRING__ This option defines
33  the mysql password of the account to use for the MySQL named
34  properties backend.
35
36- __namedproperties:mysql_host = STRING__ This option is mandatory
37  unless _namedproperties:mysql_sock_ is specified.  This option
38  defines the host to connect to for the MySQL named properties
39  backend.
40
41- __namedproperties:mysql_port = STRING__ This option specifies the
42  port on which server is available for the MySQL named properties
43  backend. The option is set to 3306 if not specified.
44
45- __namedproperties:mysql_db = STRING__ This option is
46  mandatory. It defines the database to use for the MySQL named
47  properties backend.
48
49- __namedproperties:mysql_data = STRING__ This option specifies
50  the path where MySQL schema file and provisioning content is
51  located.
52
53mapistore indexing backend
54--------------------------
55
56- __mapistore:indexing_backend = STRING__ This option specifies the
57  database URL to be used for indexing backend. If not present LDB
58  backend will be use. The URL must have a format like:
59  mysql://user:pass@hostname/database
60
61- __mapistore:indexing_cache = STRING__ This option specifies the
62  connection string to use to connect to the memcached server used for
63  fmid caching. The format of the string must be compliant with
64  http://docs.libmemcached.org/libmemcached_configuration.html. For
65  example, `--SERVER=127.0.0.1:11211` would use memcached server
66  located on 127.0.0.1 and running on port 11211.
67
68mapistore notification
69----------------------
70
71- __mapistore:notification_cache = STRING__ This option specifies the
72  connection string to use to connect to the memcached server used for
73  transitory notification data storage between emsmdb/asyncemsmdb
74  endpoints. The format of the string must be compliant with
75  http://docs.libmemcached.org/libmemcached_configuration.html. For
76  example, `--SERVER=127.0.0.1:11211` would use memcached server
77  located on 127.0.0.1 and running on port 11211.
78
79mapiproxy openchangedb backend
80------------------------------
81
82- __mapiproxy:openchangedb = STRING__ This option specifies the
83  database URL to be used for openchangedb backend. If not present LDB
84  backend will be used. The URL must have a format like:
85  mysql://user:pass@hostname/database
86
87asyncemsmdb endpoint options
88----------------------------
89
90- __asyncesmsmdb:listen = STRING__ This option specifies the ip
91  address on which the asyncemsmdb endpoint binds to receive external
92  notifications. If not present "127.0.0.1" will be used.
93