imip-agent

Annotated docs/wiki/FrontPage

1362:d96b4761e6f0
2017-10-24 Paul Boddie Remove superfluous result collection slicing and count method parameter.
paul@933 1
= imip-agent =
paul@933 2
paul@989 3
{{{#!table
paul@989 4
[[/Downloads|Downloads]] || [[/GettingStarted|Getting started]] ||
paul@999 5
[[#Deployment|Deployment]] || [[#Usage|Usage]] ||
paul@1007 6
[[#Development|Development]] ||
paul@994 7
[[/CalendaringSupport|Support for Standards]]
paul@989 8
}}}
paul@989 9
paul@963 10
imip-agent is an extension for existing mail systems (such as
paul@963 11
[[http://exim.org/|Exim]] and [[http://www.postfix.org/|Postfix]])
paul@963 12
providing extra support for calendaring and scheduling.
paul@933 13
paul@934 14
 * It uses the [[https://tools.ietf.org/html/rfc5545|iCalendar]],
paul@947 15
 [[https://tools.ietf.org/html/rfc5546|iTIP]] and
paul@947 16
 [[https://tools.ietf.org/html/rfc6047|iMIP]] Internet standards.
paul@933 17
paul@934 18
 * It can inspect messages containing calendar objects and extract
paul@947 19
 availability information for sharing and publication. You and your users
paul@963 20
 decide exactly which kind of messages it will inspect, whose messages it
paul@963 21
 will inspect, and for whom no inspection or sharing will occur at all.
paul@933 22
paul@963 23
 * It can provide a [[/CalendarManager|Web-based interface]] to calendar
paul@973 24
 information for users who cannot or choose not to use
paul@973 25
 [[/MailClients|mail software]] with calendaring support. This is optional
paul@973 26
 and your users can choose to adjust, ignore or disable this functionality.
paul@933 27
paul@1032 28
 * It supports autonomous entities such as meeting rooms and [[/Resources|resources]],
paul@1032 29
 automatically accepting or declining invitations according to their schedules.
paul@1032 30
 You can adjust this behaviour to implement your own policies.
paul@933 31
paul@963 32
 * It is [[https://www.fsf.org/about/what-is-free-software|Free Software]],
paul@963 33
 giving you the freedom to see what the software does, as well as the freedom
paul@963 34
 to modify and share the software with others.
paul@933 35
paul@971 36
{{{#!graphviz
paul@971 37
//format=svg
paul@971 38
//transform=notugly
paul@971 39
digraph architecture {
paul@1006 40
  node [shape=box,fontsize="13.0",fontname="Helvetica",tooltip="The imip-agent architecture"];
paul@971 41
  edge [tooltip="The imip-agent architecture"];
paul@971 42
  rankdir=LR;
paul@971 43
paul@971 44
  mail [label="Incoming mail",shape=folder,style=filled,fillcolor=cyan];
paul@971 45
  MTA [label="MTA\n(Exim, Postfix, ...)",tooltip="MTA"];
paul@971 46
paul@971 47
  subgraph {
paul@971 48
    rank=same;
paul@971 49
    agent [label="imip-agent",style=filled,fillcolor=gold];
paul@971 50
    scheduling [label="Scheduling",shape=ellipse,style=filled,fillcolor=gold];
paul@971 51
    freebusy [label="Free/busy",shape=folder,style=filled,fillcolor=gold];
paul@971 52
    manager [label="imip-manager",style=filled,fillcolor=gold];
paul@971 53
  }
paul@971 54
paul@971 55
  mailbox [label="Mailboxes\n(Cyrus, Dovecot, ...)",tooltip="Mailboxes"];
paul@971 56
  webserver [label="Web server\n(Apache, ...)",tooltip="Web server"];
paul@971 57
  client [label="Mail clients"];
paul@971 58
  browser [label="Web browsers"];
paul@971 59
paul@971 60
  mail -> MTA -> agent -> mailbox -> client;
paul@971 61
  agent -> scheduling -> freebusy -> webserver -> client;
paul@971 62
  freebusy -> manager;
paul@971 63
  manager -> webserver [penwidth="3.0"];
paul@971 64
  webserver -> browser [penwidth="3.0"];
paul@971 65
  scheduling -> MTA -> mail [style=dashed];
paul@971 66
}
paul@971 67
}}}
paul@971 68
paul@933 69
Unlike some monolithic groupware solutions...
paul@933 70
paul@963 71
 * It does not require you to change your [[/MailIntegration|mail delivery]]
paul@963 72
 software or your [[/MailboxIntegration|mail storage]] software (subject to
paul@963 73
 existing support provided by imip-agent; support for other software can
paul@963 74
 always be added).
paul@933 75
paul@973 76
 * It does not require your users to change their [[/MailClients|mail client]]
paul@973 77
 software.
paul@933 78
paul@934 79
 * It does not insist that everybody must store their schedules on a single
paul@947 80
 server in order to collaboratively schedule events.
paul@933 81
paul@934 82
 * Instead, imip-agent takes advantage of the decentralized nature of the
paul@948 83
 iCalendar and iMIP Internet standards.
paul@933 84
paul@934 85
 * It allows people in your organisation to collaborate with people outside
paul@947 86
 your organisation without insisting that they join your infrastructure or
paul@947 87
 that everybody join some cloud service that keeps everyone's information
paul@947 88
 within a single, typically proprietary, remote service (that may also be
paul@947 89
 potentially vulnerable to intrusion and surveillance).
paul@933 90
paul@934 91
The role of imip-agent is to bridge the gap between plain e-mail and
paul@934 92
"full-stack" groupware solutions, thus allowing organisations and individuals
paul@934 93
to augment their existing infrastructure instead of being compelled to perform
paul@934 94
costly and unnecessary migrations and infrastructure transformations.
paul@933 95
paul@933 96
== Adding Calendaring to E-Mail ==
paul@933 97
paul@934 98
With just an e-mail system, users can already create and schedule calendar
paul@934 99
events using any mail or groupware client software that supports calendars and
paul@934 100
that already supports [[http://tools.ietf.org/html/rfc5545|iCalendar]] and
paul@934 101
[[http://tools.ietf.org/html/rfc6047|iMIP]].
paul@933 102
paul@934 103
Starting with an e-mail system, imip-agent can be used to add further support
paul@934 104
for calendaring:
paul@933 105
paul@933 106
{{{#!table
paul@933 107
'''Requirement''' || '''Solution'''
paul@933 108
==
paul@934 109
Your users probably want to know when other people are available and when they
paul@934 110
are busy.
paul@934 111
||
paul@934 112
Although [[https://tools.ietf.org/html/rfc6047|iMIP]] supports this, most mail
paul@934 113
programs do not, so imip-agent will gather information about events and
paul@961 114
[[/FreeBusyPublishing|publish it for retrieval via HTTP]]. It will also respond
paul@961 115
to any iMIP requests for free/busy information via mail.
paul@933 116
==
paul@933 117
Organisations may want to coordinate access to resources using calendaring.
paul@934 118
||
paul@961 119
Here, imip-agent can provide [[/AgentPrograms|autonomous agents]] that can
paul@961 120
respond to event invitations, allowing users to book resources and to see
paul@961 121
published availability information for those resources.
paul@933 122
==
paul@934 123
Some users may not be using mail programs that understand calendars and
paul@934 124
events.
paul@934 125
||
paul@961 126
Here, imip-agent can provide a [[/CalendarManager|Web interface]] to let
paul@961 127
them respond to invitations and to create and schedule their own events.
paul@933 128
}}}
paul@933 129
paul@934 130
According to your requirements, any or all of the above solutions can be
paul@934 131
implemented, providing as much of a groupware solution as you need.
paul@933 132
paul@989 133
<<Anchor(Deployment)>>
paul@989 134
== Deploying the Software ==
paul@955 135
paul@994 136
Initial activities:
paul@994 137
paul@989 138
 * [[/Downloads|Downloads]]
paul@955 139
 * [[/GettingStarted|Getting Started]]
paul@994 140
paul@994 141
References:
paul@994 142
paul@994 143
 * [[/Administration|Administering imip-agent]]
paul@1156 144
 * [[/Changelog|Changelog]]
paul@963 145
 * [[/Configuration|Configuration]] and [[/Preferences|Preferences]]
paul@963 146
 * [[/CalendarManager|Calendar Management Interface]]
paul@963 147
 * [[/FreeBusyPublishing|Free/Busy Publishing]]
paul@955 148
paul@999 149
<<Anchor(Usage)>>
paul@999 150
== Using the Software ==
paul@999 151
paul@999 152
 * [[/Usage|Using imip-agent]]
paul@999 153
paul@1007 154
<<Anchor(Development)>>
paul@1007 155
== Development ==
paul@1007 156
paul@1007 157
Some topics related to development:
paul@1007 158
paul@1007 159
 * [[/Developing|Developing imip-agent]]
paul@1007 160
 * [[/FuturePlans|Future Plans]]
paul@933 161
paul@934 162
Details of the mechanisms employed by imip-agent are described in the
paul@934 163
following documents:
paul@933 164
paul@994 165
 * [[/AgentPrograms|Agent Programs]]
paul@989 166
 * [[/CalendaringSupport|Calendaring Support]]
paul@933 167
 * [[/CounterProposals|Counter-Proposals and Offers]]
paul@955 168
 * [[/CronIntegration|Cron Task Scheduler Integration]]
paul@1093 169
 * [[/DataStore|Data Store]]
paul@933 170
 * [[/EventRecurrences|Event Recurrences]]
paul@988 171
 * [[/FilesystemUsage|Filesystem Usage]]
paul@933 172
 * [[/IncomingMessages|Incoming Messages]]
paul@933 173
 * [[/OutgoingMessages|Outgoing Messages]]
paul@984 174
 * [[/MailIntegration|Mail Integration]]
paul@984 175
 * [[/MailboxIntegration|Mailbox Integration]]
paul@1056 176
 * [[/Resources|Resources]]
paul@955 177
 * [[/Testing|Testing]]
paul@933 178
 * [[/UseCases|Use Cases]]
paul@933 179
 * [[/WebServerIntegration|Web Server Integration]]