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@963 | 144 | * [[/Configuration|Configuration]] and [[/Preferences|Preferences]] |
paul@963 | 145 | * [[/CalendarManager|Calendar Management Interface]] |
paul@963 | 146 | * [[/FreeBusyPublishing|Free/Busy Publishing]] |
paul@955 | 147 | |
paul@999 | 148 | <<Anchor(Usage)>> |
paul@999 | 149 | == Using the Software == |
paul@999 | 150 | |
paul@999 | 151 | * [[/Usage|Using imip-agent]] |
paul@999 | 152 | |
paul@1007 | 153 | <<Anchor(Development)>> |
paul@1007 | 154 | == Development == |
paul@1007 | 155 | |
paul@1007 | 156 | Some topics related to development: |
paul@1007 | 157 | |
paul@1007 | 158 | * [[/Developing|Developing imip-agent]] |
paul@1007 | 159 | * [[/FuturePlans|Future Plans]] |
paul@933 | 160 | |
paul@934 | 161 | Details of the mechanisms employed by imip-agent are described in the |
paul@934 | 162 | following documents: |
paul@933 | 163 | |
paul@994 | 164 | * [[/AgentPrograms|Agent Programs]] |
paul@989 | 165 | * [[/CalendaringSupport|Calendaring Support]] |
paul@933 | 166 | * [[/CounterProposals|Counter-Proposals and Offers]] |
paul@955 | 167 | * [[/CronIntegration|Cron Task Scheduler Integration]] |
paul@1093 | 168 | * [[/DataStore|Data Store]] |
paul@933 | 169 | * [[/EventRecurrences|Event Recurrences]] |
paul@988 | 170 | * [[/FilesystemUsage|Filesystem Usage]] |
paul@933 | 171 | * [[/IncomingMessages|Incoming Messages]] |
paul@933 | 172 | * [[/OutgoingMessages|Outgoing Messages]] |
paul@984 | 173 | * [[/MailIntegration|Mail Integration]] |
paul@984 | 174 | * [[/MailboxIntegration|Mailbox Integration]] |
paul@1056 | 175 | * [[/Resources|Resources]] |
paul@955 | 176 | * [[/Testing|Testing]] |
paul@933 | 177 | * [[/UseCases|Use Cases]] |
paul@933 | 178 | * [[/WebServerIntegration|Web Server Integration]] |