|
Packit |
700f92 |
========================
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
1. BUILD
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
$ cd .../sources/evolution-ews
|
|
Packit |
700f92 |
$ mkdir build
|
|
Packit |
700f92 |
$ cd build
|
|
Packit |
700f92 |
$ cmake -G "Unix Makefiles" \
|
|
Packit |
700f92 |
-DCMAKE_INSTALL_PREFIX=/opt/evolution \
|
|
Packit |
700f92 |
-DCMAKE_BUILD_TYPE=Release \
|
|
Packit |
700f92 |
..
|
|
Packit |
700f92 |
$ make -j
|
|
Packit |
700f92 |
$ make -j install
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Run `cmake --help` to get list of available generators (the -G argument)
|
|
Packit |
700f92 |
on your platform.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
========================
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
2. Test Suite
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Pre-requisites to launch the test suite.
|
|
Packit |
700f92 |
Export the following environmental variables for your test suite to run.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
EWS_TEST_USERNAME
|
|
Packit |
700f92 |
EWS_TEST_PASSWORD
|
|
Packit |
700f92 |
EWS_TEST_EMAIL
|
|
Packit |
700f92 |
EWS_TEST_URI
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
$ make check
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
=========================
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
3. Autodiscover reference
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
The Autodiscover service provides the configuration information necessary to
|
|
Packit |
700f92 |
create a connection to an Exchange server. The Autodiscover service provides
|
|
Packit |
700f92 |
a mechanism that allows you to use “plain old XML” (POX) messages — that is,
|
|
Packit |
700f92 |
messages that consist solely of XML payloads without any enclosing SOAP
|
|
Packit |
700f92 |
envelopes — to locate the settings that a client application must have in
|
|
Packit |
700f92 |
order to connect to Exchange.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Currently the test suite uses autodiscovery to fetch the url to connect to,
|
|
Packit |
700f92 |
using your username and email provided.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Reference:
|
|
Packit |
700f92 |
http://msdn.microsoft.com/en-us/library/aa581522.aspx
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
The ASUrl (POX) element contains the url. Use this for all subsequent requests
|
|
Packit |
700f92 |
to your Exchange server.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
A typical ASUrl looks like this,
|
|
Packit |
700f92 |
https://server_ip/EWS/Exchange.asmx
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
==========================
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
4. URLs
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
-> Development overview - http://msdn.microsoft.com/en-us/library/cc535017%28v=EXCHG.80%29.aspx
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
-> Autodiscover reference - http://msdn.microsoft.com/en-us/library/aa581522.aspx
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
-> EWS XML Elements - http://msdn.microsoft.com/en-us/library/aa580675%28v=EXCHG.80%29.aspx
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
===========================
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
5. Address book
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Fetching Global address list
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Use OAB (Offline Address Book) for caching the GAL locally into Evolution.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
While caching happens in the background, until the cache is setup, use
|
|
Packit |
700f92 |
Resolve Names.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Resolve names operation
|
|
Packit |
700f92 |
http://msdn.microsoft.com/en-us/library/aa563518(v=EXCHG.80).aspx
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Unresolved Entry
|
|
Packit |
700f92 |
http://msdn.microsoft.com/en-us/library/aa581054(v=EXCHG.80).aspx
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
============================
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
6. Fetching Public folders
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Needs an additional header not mentioned in the documentation
|
|
Packit |
700f92 |
Include the following header for Exchange 2007,
|
|
Packit |
700f92 |
<soap:Header>
|
|
Packit |
700f92 |
<t:RequestServerVersion Version="Exchange2007_SP1"/>
|
|
Packit |
700f92 |
</soap:Header>
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
What's the equivalent for Exchange 2010? No server to test as yet.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
=============================
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
7. Ideas yet to research on
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
== Mailer ==
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Following the IMAPX backend, we could make EWS asynchronous in the same manner
|
|
Packit |
700f92 |
prioritizing the client requests.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Separate out the prioritizing client requests and make it common to all
|
|
Packit |
700f92 |
providers.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Is pipe-ling requests possible?
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
== Calendar ==
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Make the operations similar to mailer. Handle all the operations Offline and
|
|
Packit |
700f92 |
later sync it with server.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Handle all the offline operations in a single class, say CalBackendOffline.
|
|
Packit |
700f92 |
Cache needs to be extended to be able to give the list of un-syncronized
|
|
Packit |
700f92 |
(local->server) items. We could handle the error messages for the
|
|
Packit |
700f92 |
un-synchronized calendar items (eg: meeting created) by optionally displaying
|
|
Packit |
700f92 |
an error dialog and also providing a visual cue in the form of an icon.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
The error can also be logged per event. Eg: Opening the meeting can show the
|
|
Packit |
700f92 |
actual error in the meeting editor in a non-intrusive manner. This very similar
|
|
Packit |
700f92 |
to how mailer handles the un-sent mails in OutBox showing the error messages.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Improve FreeBusy performance by fetching free/busy information for all users at
|
|
Packit |
700f92 |
a single stretch if the server supports it. FreeBusy requests should be
|
|
Packit |
700f92 |
cancellable. Provide EDS ECal apis for the same.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
== Address book ==
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Ensure the auto-completion performance doesn't fade while caching the contacts
|
|
Packit |
700f92 |
or fetching deltas.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
other improvement areas?
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
== Single Connection (to be analyzed) ==
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
Are multiple connections allowed on exchange servers or is there any limit ?
|
|
Packit |
700f92 |
Since address-book, calendar, mailer are run as separate processes we would
|
|
Packit |
700f92 |
require three connections if connections are not shared.
|
|
Packit |
700f92 |
|
|
Packit |
700f92 |
If we want to use a single connection, we might need to write ews connection
|
|
Packit |
700f92 |
layer as a separate process and let mailer,e-address-book-factory,
|
|
Packit |
700f92 |
e-calendar-factory send the requests to it.
|