summaryrefslogtreecommitdiff
path: root/fbdaemon/README
blob: 096a412c63969040d1f4465e6c27e906fa5d949e (plain)
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
The fbdeamon generates and aggreagates fb (freebusy) information on the kolab server.

== Functionality ==

The agent has two primary purposes, the generation of kolab freebusy objects from calendar data, and the aggregation of said objects into an ical file (.ifb) that can be published for consumers.

Freebusy information can either be:
* generated (--generate $USER)
* aggregated (--aggregate $USER)
* batch generated and aggregated for all users (--generateall $FILTER)

$FILTER is a simply checkes wether $FILTER is part of the user (i.e. example.com, will check that example.com is part of the username).

=== Generation ===

The generating process uses all events found in the calendar folders of the user as input, and generates a single freebusy object as output.

The freebusy information is generated by iterating through all available events, inserting a busy period for each event that is not transparent.

The process is influenced by the following configuration options:
* timeframe: limits the processed events to the ones that occur within the specified timeframe. The timeframe always starts at the current date-time.

The freebusy object (see [0]) is stored in a dedicated folder for freebusy objects (kolab type "freebusy") which is created if not existing.
Note that old freebusy objects are removed by the process once a new object is generated (there is supposed to be always one per user).

=== Aggregation ===

The aggregater is supposed to aggregate various fb-information sources. Currently the only source is the previously generated freebusy object. 

The aggregator reads all freebusy objects, merges the periods of each object and then generates an .ifb file which can then be published. Note there is no deduplication of periods and it is perfectly valid to have an object with multiple equal periods.

The default output directory is /var/lib/kolab-freebusy

== Configuration ==

The configruation file is by default at /etc/kolab/kolab.conf. The location can be overridden using --configuration.

Example (with default values):

[kolab]
imap_backend=cyrus-imap
timeframe=90
[cyrus-imap]
uri=imaps://imap.example.org:993
admin_login=cyrus-admin
admin_password=ADMINPASSWORD

The following configuration options are available:
* timeframe: in days, timeframe from current date time for which to generate fb information
* admin_login/admin_password: used to get a list of users
* uri: server address in the format [imap[s]://]URL[:PORT]. Default ports are 993 for ssl and 143 otherwise.

== Additional Information ==
For additional information regarding the design and future features, see:
* http://wiki.kolab.org/Free_Busy
* http://wiki.kolab.org/FreeBusy_in_Kolab_3.0

[0] https://wiki.kolab.org/User:Mollekopf/Drafts/KEP:17#Freebusy