-
Notifications
You must be signed in to change notification settings - Fork 21
/
README
146 lines (94 loc) · 4.23 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
========================
1. BUILD
$ cd .../sources/evolution-ews
$ mkdir build
$ cd build
$ cmake -G "Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX=/opt/evolution \
-DCMAKE_BUILD_TYPE=Release \
..
$ make -j
$ make -j install
Run `cmake --help` to get list of available generators (the -G argument)
on your platform.
========================
2. Test Suite
Pre-requisites to launch the test suite.
Export the following environmental variables for your test suite to run.
EWS_TEST_USERNAME
EWS_TEST_PASSWORD
EWS_TEST_EMAIL
EWS_TEST_URI
$ make check
=========================
3. Autodiscover reference
The Autodiscover service provides the configuration information necessary to
create a connection to an Exchange server. The Autodiscover service provides
a mechanism that allows you to use “plain old XML” (POX) messages — that is,
messages that consist solely of XML payloads without any enclosing SOAP
envelopes — to locate the settings that a client application must have in
order to connect to Exchange.
Currently the test suite uses autodiscovery to fetch the url to connect to,
using your username and email provided.
Reference:
http://msdn.microsoft.com/en-us/library/aa581522.aspx
The ASUrl (POX) element contains the url. Use this for all subsequent requests
to your Exchange server.
A typical ASUrl looks like this,
https://server_ip/EWS/Exchange.asmx
==========================
4. URLs
-> Development overview - http://msdn.microsoft.com/en-us/library/cc535017%28v=EXCHG.80%29.aspx
-> Autodiscover reference - http://msdn.microsoft.com/en-us/library/aa581522.aspx
-> EWS XML Elements - http://msdn.microsoft.com/en-us/library/aa580675%28v=EXCHG.80%29.aspx
===========================
5. Address book
Fetching Global address list
Use OAB (Offline Address Book) for caching the GAL locally into Evolution.
While caching happens in the background, until the cache is setup, use
Resolve Names.
Resolve names operation
http://msdn.microsoft.com/en-us/library/aa563518(v=EXCHG.80).aspx
Unresolved Entry
http://msdn.microsoft.com/en-us/library/aa581054(v=EXCHG.80).aspx
============================
6. Fetching Public folders
Needs an additional header not mentioned in the documentation
Include the following header for Exchange 2007,
<soap:Header>
<t:RequestServerVersion Version="Exchange2007_SP1"/>
</soap:Header>
What's the equivalent for Exchange 2010? No server to test as yet.
=============================
7. Ideas yet to research on
== Mailer ==
Following the IMAPX backend, we could make EWS asynchronous in the same manner
prioritizing the client requests.
Separate out the prioritizing client requests and make it common to all
providers.
Is pipe-lining requests possible?
== Calendar ==
Make the operations similar to mailer. Handle all the operations Offline and
later sync it with server.
Handle all the offline operations in a single class, say CalBackendOffline.
Cache needs to be extended to be able to give the list of un-syncronized
(local->server) items. We could handle the error messages for the
un-synchronized calendar items (eg: meeting created) by optionally displaying
an error dialog and also providing a visual cue in the form of an icon.
The error can also be logged per event. Eg: Opening the meeting can show the
actual error in the meeting editor in a non-intrusive manner. This very similar
to how mailer handles the un-sent mails in OutBox showing the error messages.
Improve FreeBusy performance by fetching free/busy information for all users at
a single stretch if the server supports it. FreeBusy requests should be
cancellable. Provide EDS ECal apis for the same.
== Address book ==
Ensure the auto-completion performance doesn't fade while caching the contacts
or fetching deltas.
other improvement areas?
== Single Connection (to be analyzed) ==
Are multiple connections allowed on exchange servers or is there any limit ?
Since address-book, calendar, mailer are run as separate processes we would
require three connections if connections are not shared.
If we want to use a single connection, we might need to write ews connection
layer as a separate process and let mailer,e-address-book-factory,
e-calendar-factory send the requests to it.