imip-agent

Changeset

996:1bb2fa5e2dd4
2015-11-03 Paul Boddie raw files shortlog changelog graph Merged temporary branches.
docs/wiki/Usage
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/docs/images/imip-agent-logo.svg	Tue Nov 03 18:32:20 2015 +0100
     1.3 @@ -0,0 +1,208 @@
     1.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
     1.5 +<!-- Created with Inkscape (http://www.inkscape.org/) -->
     1.6 +
     1.7 +<svg
     1.8 +   xmlns:dc="http://purl.org/dc/elements/1.1/"
     1.9 +   xmlns:cc="http://creativecommons.org/ns#"
    1.10 +   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    1.11 +   xmlns:svg="http://www.w3.org/2000/svg"
    1.12 +   xmlns="http://www.w3.org/2000/svg"
    1.13 +   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    1.14 +   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    1.15 +   width="354.33069"
    1.16 +   height="354.33069"
    1.17 +   id="svg2"
    1.18 +   version="1.1"
    1.19 +   inkscape:version="0.48.3.1 r9886"
    1.20 +   sodipodi:docname="imip-agent-logo.svg"
    1.21 +   inkscape:export-filename="/home/paulb/Software/Python/imip-agent/docs/images/imip-agent-logo.png"
    1.22 +   inkscape:export-xdpi="25.4"
    1.23 +   inkscape:export-ydpi="25.4">
    1.24 +  <defs
    1.25 +     id="defs4" />
    1.26 +  <sodipodi:namedview
    1.27 +     id="base"
    1.28 +     pagecolor="#ffffff"
    1.29 +     bordercolor="#666666"
    1.30 +     borderopacity="1.0"
    1.31 +     inkscape:pageopacity="0.0"
    1.32 +     inkscape:pageshadow="2"
    1.33 +     inkscape:zoom="2.0489335"
    1.34 +     inkscape:cx="177.16534"
    1.35 +     inkscape:cy="177.16534"
    1.36 +     inkscape:document-units="mm"
    1.37 +     inkscape:current-layer="layer1"
    1.38 +     showgrid="true"
    1.39 +     units="mm"
    1.40 +     fit-margin-top="0"
    1.41 +     fit-margin-left="0"
    1.42 +     fit-margin-right="0"
    1.43 +     fit-margin-bottom="0"
    1.44 +     inkscape:window-width="1272"
    1.45 +     inkscape:window-height="935"
    1.46 +     inkscape:window-x="0"
    1.47 +     inkscape:window-y="0"
    1.48 +     inkscape:window-maximized="1">
    1.49 +    <inkscape:grid
    1.50 +       type="xygrid"
    1.51 +       id="grid2985"
    1.52 +       empspacing="5"
    1.53 +       visible="true"
    1.54 +       enabled="true"
    1.55 +       snapvisiblegridlinesonly="true"
    1.56 +       units="mm"
    1.57 +       spacingx="1mm"
    1.58 +       spacingy="1mm" />
    1.59 +  </sodipodi:namedview>
    1.60 +  <metadata
    1.61 +     id="metadata7">
    1.62 +    <rdf:RDF>
    1.63 +      <cc:Work
    1.64 +         rdf:about="">
    1.65 +        <dc:format>image/svg+xml</dc:format>
    1.66 +        <dc:type
    1.67 +           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
    1.68 +        <dc:title></dc:title>
    1.69 +      </cc:Work>
    1.70 +    </rdf:RDF>
    1.71 +  </metadata>
    1.72 +  <g
    1.73 +     inkscape:label="Layer 1"
    1.74 +     inkscape:groupmode="layer"
    1.75 +     id="layer1"
    1.76 +     transform="translate(0,-698.03149)">
    1.77 +    <rect
    1.78 +       style="opacity:0.50000000000000000;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:35.43307087000000166;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
    1.79 +       id="rect3914"
    1.80 +       width="311.811"
    1.81 +       height="311.811"
    1.82 +       x="21.259842"
    1.83 +       y="719.29132" />
    1.84 +    <path
    1.85 +       style="fill:#d6bb6a;fill-opacity:1;fill-rule:evenodd;stroke:#c8a338;stroke-width:7.08661413;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
    1.86 +       d="m 318.89764,846.85037 0,-7.08662 L 177.17889,733.4825 35.433071,839.76375 l 0,7.08662"
    1.87 +       id="rect2987-1"
    1.88 +       inkscape:connector-curvature="0"
    1.89 +       sodipodi:nodetypes="ccccc" />
    1.90 +    <path
    1.91 +       style="fill:#c8a439;fill-opacity:1;fill-rule:evenodd;stroke:none"
    1.92 +       d="m 35.4375,141.71875 -0.0044,3.55682 14.173228,0 106.299182,81.49606 21.25984,-17.71653 21.25985,17.71653 106.29924,-81.49606 14.17323,0 0.009,-3.55682 z"
    1.93 +       transform="translate(0,698.03149)"
    1.94 +       id="rect2987"
    1.95 +       inkscape:connector-curvature="0"
    1.96 +       sodipodi:nodetypes="cccccccccc" />
    1.97 +    <path
    1.98 +       style="opacity:0.75;fill:#d7d7d7;fill-opacity:1;fill-rule:evenodd;stroke:#f18181;stroke-width:7.08661413;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
    1.99 +       d="m 276.37795,839.76375 7.08662,-127.55905 -212.598428,0 7.074311,127.55905"
   1.100 +       id="rect2989"
   1.101 +       inkscape:connector-curvature="0"
   1.102 +       sodipodi:nodetypes="cccc" />
   1.103 +    <path
   1.104 +       style="fill:#f2f2f2;fill-opacity:1;fill-rule:evenodd;stroke:#fca4a4;stroke-width:7.08661413000000007;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
   1.105 +       d="m 77.952756,839.76375 -7.105315,106.28396 212.624999,0 -7.09449,-106.28396"
   1.106 +       id="rect2989-5"
   1.107 +       inkscape:connector-curvature="0"
   1.108 +       sodipodi:nodetypes="cccc" />
   1.109 +    <path
   1.110 +       style="fill:#ee3434;fill-opacity:1;fill-rule:evenodd;stroke:#cd1111;stroke-width:7.08699989;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
   1.111 +       d="m 230.31619,839.75563 3.54208,-70.85802 -113.38583,0 3.5625,70.85802"
   1.112 +       id="rect2989-3"
   1.113 +       inkscape:connector-curvature="0"
   1.114 +       sodipodi:nodetypes="cccc" />
   1.115 +    <path
   1.116 +       style="fill:#fa5a5a;fill-opacity:1;fill-rule:evenodd;stroke:#f20707;stroke-width:7.08661413;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
   1.117 +       d="m 124.01575,839.73541 -3.54331,42.54803 113.38583,0 -3.54331,-42.54803"
   1.118 +       id="rect2989-3-7"
   1.119 +       inkscape:connector-curvature="0"
   1.120 +       sodipodi:nodetypes="cccc" />
   1.121 +    <path
   1.122 +       style="opacity:0.85;fill:#dfca8a;fill-opacity:1;fill-rule:evenodd;stroke:#d6bc6a;stroke-width:7.08661413;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
   1.123 +       d="m 35.433084,846.85037 14.17322,0 127.559046,99.2126 127.55906,-99.2126 14.17323,0 3.5433,170.07873 -290.551166,0 z"
   1.124 +       id="rect2987-6-3"
   1.125 +       inkscape:connector-curvature="0"
   1.126 +       sodipodi:nodetypes="cccccccc" />
   1.127 +    <path
   1.128 +       style="fill:#e9dbaf;fill-opacity:1;fill-rule:evenodd;stroke:#d6bb6a;stroke-width:7.08661413000000007;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;opacity:0.85"
   1.129 +       d="m 177.16535,910.6299 145.27559,106.2992 -290.551176,0 z"
   1.130 +       id="rect2987-6-4"
   1.131 +       inkscape:connector-curvature="0"
   1.132 +       sodipodi:nodetypes="cccc"
   1.133 +       inkscape:export-xdpi="25.4"
   1.134 +       inkscape:export-ydpi="25.4" />
   1.135 +    <path
   1.136 +       style="fill:#ee3434;fill-opacity:1;fill-rule:evenodd;stroke:#cd1111;stroke-width:7.08699989;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
   1.137 +       d="m 237.40157,733.46454 -1.77165,21.25984 -116.92913,0 -1.77166,-21.25984 z"
   1.138 +       id="rect2989-3-9"
   1.139 +       inkscape:connector-curvature="0"
   1.140 +       sodipodi:nodetypes="ccccc" />
   1.141 +    <text
   1.142 +       xml:space="preserve"
   1.143 +       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L;stroke-opacity:1"
   1.144 +       x="139.28862"
   1.145 +       y="53.271782"
   1.146 +       id="text3801"
   1.147 +       sodipodi:linespacing="125%"
   1.148 +       transform="translate(0,698.03149)"><tspan
   1.149 +         sodipodi:role="line"
   1.150 +         id="tspan3803"
   1.151 +         x="139.28862"
   1.152 +         y="53.271782" /></text>
   1.153 +    <g
   1.154 +       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ebebeb;fill-opacity:1;stroke:#ebebeb;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L;stroke-opacity:1;stroke-width:1.41732283000000003;stroke-miterlimit:4;stroke-dasharray:none;stroke-linejoin:round;stroke-linecap:round"
   1.155 +       id="text3805"
   1.156 +       transform="translate(1.4807943,0.88580935)">
   1.157 +      <path
   1.158 +         d="m 145.18819,739.95344 2.096,9.088 2.4,0 2.064,-9.088 0,9.088 2.4,0 0,-11.664 -3.616,0 -2.048,9.28 -2.112,-9.28 -3.584,0 0,11.664 2.4,0 0,-9.088"
   1.159 +         style="font-weight:bold;fill:#ebebeb;fill-opacity:1;stroke:#ebebeb;stroke-width:1.41732283000000003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;-inkscape-font-specification:Nimbus Sans L Bold"
   1.160 +         id="path3814"
   1.161 +         inkscape:connector-curvature="0" />
   1.162 +      <path
   1.163 +         d="m 161.30032,737.18544 c -1.632,0 -2.976,0.544 -3.968,1.616 -1.04,1.12 -1.632,2.752 -1.632,4.496 0,1.744 0.592,3.392 1.632,4.496 1.008,1.088 2.32,1.616 3.984,1.616 1.664,0 2.976,-0.528 3.984,-1.616 1.008,-1.072 1.632,-2.768 1.632,-4.416 0,-1.824 -0.592,-3.456 -1.632,-4.576 -1.024,-1.104 -2.32,-1.616 -4,-1.616 m 0.016,2.048 c 1.968,0 3.216,1.60001 3.216,4.128 0,2.384 -1.296,4 -3.216,4 -1.936,0 -3.216,-1.616 -3.216,-4.064 0,-2.44799 1.28,-4.064 3.216,-4.064"
   1.164 +         style="font-weight:bold;fill:#ebebeb;fill-opacity:1;stroke:#ebebeb;stroke-width:1.41732283000000003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;-inkscape-font-specification:Nimbus Sans L Bold"
   1.165 +         id="path3816"
   1.166 +         inkscape:connector-curvature="0" />
   1.167 +      <path
   1.168 +         d="m 175.68456,749.04144 2.4,0 0,-11.664 -2.4,0 0,7.936 -4.624,-7.936 -2.464,0 0,11.664 2.4,0 0,-8.064 4.688,8.064"
   1.169 +         style="font-weight:bold;fill:#ebebeb;fill-opacity:1;stroke:#ebebeb;stroke-width:1.41732283000000003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;-inkscape-font-specification:Nimbus Sans L Bold"
   1.170 +         id="path3818"
   1.171 +         inkscape:connector-curvature="0" />
   1.172 +      <path
   1.173 +         d="m 180.29232,749.04144 4.56,0 c 1.776,0 2.896,-0.416 3.68,-1.36 0.928,-1.088 1.424,-2.672 1.424,-4.48 0,-1.792 -0.496,-3.376 -1.424,-4.48 -0.784,-0.944 -1.888,-1.344 -3.68,-1.344 l -4.56,0 0,11.664 m 2.4,-2 0,-7.664 2.16,0 c 1.808,0 2.704,1.26401 2.704,3.84 0,2.56 -0.896,3.824 -2.704,3.824 l -2.16,0"
   1.174 +         style="font-weight:bold;fill:#ebebeb;fill-opacity:1;stroke:#ebebeb;stroke-width:1.41732283000000003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;-inkscape-font-specification:Nimbus Sans L Bold"
   1.175 +         id="path3820"
   1.176 +         inkscape:connector-curvature="0" />
   1.177 +      <path
   1.178 +         d="m 198.62808,746.68944 0.768,2.352 2.464,0 -4.032,-11.664 -2.656,0 -4.144,11.664 2.448,0 0.784,-2.352 4.368,0 m -0.656,-2 -3.04,0 1.52,-4.56 1.52,4.56"
   1.179 +         style="font-weight:bold;fill:#ebebeb;fill-opacity:1;stroke:#ebebeb;stroke-width:1.41732283000000003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;-inkscape-font-specification:Nimbus Sans L Bold"
   1.180 +         id="path3822"
   1.181 +         inkscape:connector-curvature="0" />
   1.182 +      <path
   1.183 +         d="m 206.38735,744.72094 3.696,-7.344 -2.688,0 -2.224,5.152 -2.384,-5.152 -2.672,0 3.872,7.344 0,4.32 2.4,0 0,-4.32"
   1.184 +         style="font-weight:bold;fill:#ebebeb;fill-opacity:1;stroke:#ebebeb;stroke-width:1.41732283000000003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;-inkscape-font-specification:Nimbus Sans L Bold"
   1.185 +         id="path3824"
   1.186 +         inkscape:connector-curvature="0" />
   1.187 +    </g>
   1.188 +    <g
   1.189 +       style="font-size:80px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:#ffffff;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L;stroke-opacity:1;stroke-width:1.41732283000000003;stroke-miterlimit:4;stroke-dasharray:none;stroke-linejoin:round;stroke-linecap:round"
   1.190 +       id="text3826"
   1.191 +       transform="translate(182.38904,1.8538424)">
   1.192 +      <path
   1.193 +         d="m -5.2236892,837.90991 -1.77165,35.43307 17.7165302,0 -1.7716502,-35.43307 z"
   1.194 +         style="font-size:144px;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.41732283000000003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
   1.195 +         id="path3831"
   1.196 +         inkscape:connector-curvature="0"
   1.197 +         sodipodi:nodetypes="ccccc" />
   1.198 +    </g>
   1.199 +    <g
   1.200 +       style="font-size:80px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ebebeb;fill-opacity:1;stroke:#ebebeb;font-family:Nimbus Sans L;-inkscape-font-specification:Nimbus Sans L;stroke-opacity:1;stroke-width:1.41732283000000003;stroke-miterlimit:4;stroke-dasharray:none;stroke-linejoin:round;stroke-linecap:round"
   1.201 +       id="text3826-2"
   1.202 +       transform="translate(253.25518,1.8538399)">
   1.203 +      <path
   1.204 +         style="font-size:144px;fill:#ebebeb;fill-opacity:1;stroke:#ebebeb;stroke-width:1.41732283000000003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
   1.205 +         d="m -79.613202,774.12104 c -3.5433,14.17323 -3.54552,14.17544 -17.71875,17.71875 l 0,7.09375 19.46875,0 1.773376,38.97637 14.173229,0 3.553395,-63.78887 z"
   1.206 +         id="path3831-8"
   1.207 +         inkscape:connector-curvature="0"
   1.208 +         sodipodi:nodetypes="cccccccc" />
   1.209 +    </g>
   1.210 +  </g>
   1.211 +</svg>
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/docs/wiki/Administration	Tue Nov 03 18:32:20 2015 +0100
     2.3 @@ -0,0 +1,93 @@
     2.4 += Administering imip-agent =
     2.5 +
     2.6 +With imip-agent deployed, usage of the software should occur automatically.
     2.7 +However, evidence of its operation will only emerge when calendar-related
     2.8 +messages are exchanged between e-mail users. This will cause a few different
     2.9 +things to happen:
    2.10 +
    2.11 + * Summary messages may be sent by the calendar system to mail recipients
    2.12 +
    2.13 + * Replies to calendar-related messages may be received by the senders of
    2.14 + those messages
    2.15 +
    2.16 + * Free/busy information will become available, either in responses to
    2.17 + requests sent over e-mail, or [[../FreeBusyPublishing|over the Web]]
    2.18 +
    2.19 +In the background, imip-agent uses and updates information as described in the
    2.20 +[[../FilesystemUsage|filesystem usage guide]].
    2.21 +
    2.22 +== Creating User Data Stores ==
    2.23 +
    2.24 +The [[../MailIntegration|mail system]] mechanisms are responsible for
    2.25 +determining whether a valid recipient has been specified in any given message,
    2.26 +and imip-agent does not attempt to validate such information again. Therefore,
    2.27 +when a message is received for a calendar user for whom no data store has been
    2.28 +initialised in the [[../FilesystemUsage|filesystem]], the software will
    2.29 +automatically create one.
    2.30 +
    2.31 +Consequently, users for whom such data stores have been created will experience
    2.32 +the software using the default configuration, described in the
    2.33 +[[../Preferences|preferences guide]]. It is for this reason that the default
    2.34 +values in the [[../Configuration|configuration]] should be adjusted according
    2.35 +to the policies decided for the deployment of this software.
    2.36 +
    2.37 +However, it is possible to create data stores for users in advance using the
    2.38 +`tools/init_user.sh` script as in the following example:
    2.39 +
    2.40 +{{{
    2.41 +tools/init_user.sh mailto:vincent.vole@example.com
    2.42 +}}}
    2.43 +
    2.44 +Here, the user identity is given as a URI since this is how iCalendar references
    2.45 +participants in scheduling operations. The result of the above command should be
    2.46 +some new directories in the [[../FilesystemUsage|filesystem area]] dedicated to
    2.47 +calendar information storage.
    2.48 +
    2.49 +=== Initialising Resources ===
    2.50 +
    2.51 +Resources belong to a class of user whose preferences should be configured in
    2.52 +advance because their policies may differ on a case-by-case basis. For example,
    2.53 +some resources may benefit from employing the `permitted_times` setting so that
    2.54 +a granularity on event times may be imposed, meaning that such resources would
    2.55 +be "handed over" at regular intervals.
    2.56 +
    2.57 +The `freebusy_offers` setting, together with the `scheduling_function` setting,
    2.58 +would allow different kinds of resources to "keep open" tentatively-suggested
    2.59 +periods for different lengths of time, allowing frequently-requested resources
    2.60 +to respond to scheduling requests in a timely fashion, whilst also allowing
    2.61 +other resources to give more time to event organisers to respond to their
    2.62 +counter-proposals.
    2.63 +
    2.64 +=== Adjusting Preferences ===
    2.65 +
    2.66 +Once initialised, the user preferences can be adjusted by adding files to the
    2.67 +`preferences` directory created by the above command. For example, if a user has
    2.68 +elected to not participate in the calendar system, a file called `participating`
    2.69 +can be added as follows:
    2.70 +
    2.71 +{{{
    2.72 +echo 'no' > '/var/lib/imip-agent/preferences/mailto:vincent.vole@example.com/participating'
    2.73 +}}}
    2.74 +
    2.75 +Here, the default storage location has been given in the filename.
    2.76 +
    2.77 +Normally, users should visit the [[../CalendarManager|management interface]] to
    2.78 +change their preferences, but modifications done by administrators are more
    2.79 +efficiently performed by directly interacting with the filesystem. For example,
    2.80 +an administrator might initialise the common names of users by scripting changes
    2.81 +to the `CN` file for each user, obtaining such names from some kind of database.
    2.82 +
    2.83 +== Excluding Users Entirely ==
    2.84 +
    2.85 +Since the [[../AgentPrograms|agent programs]] are installed as part of the mail
    2.86 +handling workflow, even the configuration of non-participation in the calendar
    2.87 +system for users will still result in those users' messages being passed along
    2.88 +the workflow by imip-agent, which may result in a decrease in general mail
    2.89 +delivery performance.
    2.90 +
    2.91 +To exclude users entirely, the routing configuration of the
    2.92 +[[../MailIntegration|MTA]] needs to be changed so that such users identities are
    2.93 +not recognised as calendar system participants, thus preventing their messages
    2.94 +from being routed via imip-agent. This is as simple as either not listing the
    2.95 +identity in [[../MailIntegration/Simple|lists of addresses]] or by adjusting
    2.96 +[[../MailIntegration/LDAP|queries yielding calendar users]].
     3.1 --- a/docs/wiki/AgentPrograms	Tue Nov 03 18:30:31 2015 +0100
     3.2 +++ b/docs/wiki/AgentPrograms	Tue Nov 03 18:32:20 2015 +0100
     3.3 @@ -39,3 +39,25 @@
     3.4  One exception is the `imip_person.py` program that needs to be told whether
     3.5  it will deliver messages using [[../MailIntegration/LMTP|LMTP]] with the `-l`
     3.6  option or using [[../MailIntegration/LocalSMTP|SMTP]] with the `-L` option.
     3.7 +
     3.8 +== Program Responsibilities ==
     3.9 +
    3.10 +The person agent programs or "handlers", `imip_person.py` and
    3.11 +`imip_person_outgoing.py` are responsible for keeping the schedule of each
    3.12 +participating calendar user up to date with the requests that are sent and
    3.13 +received by that user. Their roles are limited to recording data along with
    3.14 +a small amount of automation: they can be [[../Preferences|configured]] to
    3.15 +reply to free/busy requests without requesting any intervention on the part
    3.16 +of the user receiving such requests.
    3.17 +
    3.18 +Such handlers may be enhanced to perform more tasks autonomously, so that
    3.19 +certain requests might be dealt with automatically, according to policies
    3.20 +defined by each user. See the [[../UseCases|use-cases guide]] for some
    3.21 +potentially-implementable ideas.
    3.22 +
    3.23 +Meanwhile, the resource handler, `imip_resource.py`, is responsible not only
    3.24 +for maintaining a schedule for a resource, but it must also make scheduling
    3.25 +decisions itself without human involvement. How it may behave is determined
    3.26 +by a number of policies set in the [[../Preferences|preferences]] so that,
    3.27 +for example, it may suggest alternative event periods when those requested
    3.28 +in an invitation are unavailable.
     4.1 --- a/docs/wiki/FrontPage	Tue Nov 03 18:30:31 2015 +0100
     4.2 +++ b/docs/wiki/FrontPage	Tue Nov 03 18:32:20 2015 +0100
     4.3 @@ -2,7 +2,8 @@
     4.4  
     4.5  {{{#!table
     4.6  [[/Downloads|Downloads]] || [[/GettingStarted|Getting started]] ||
     4.7 -[[#Deployment|Deployment]] || [[#Notes|Design/Implementation Notes]]
     4.8 +[[#Deployment|Deployment]] || [[#Notes|Design/Implementation Notes]] ||
     4.9 +[[/CalendaringSupport|Support for Standards]]
    4.10  }}}
    4.11  
    4.12  imip-agent is an extension for existing mail systems (such as
    4.13 @@ -131,12 +132,17 @@
    4.14  <<Anchor(Deployment)>>
    4.15  == Deploying the Software ==
    4.16  
    4.17 +Initial activities:
    4.18 +
    4.19   * [[/Downloads|Downloads]]
    4.20   * [[/GettingStarted|Getting Started]]
    4.21 +
    4.22 +References:
    4.23 +
    4.24 + * [[/Administration|Administering imip-agent]]
    4.25   * [[/Configuration|Configuration]] and [[/Preferences|Preferences]]
    4.26   * [[/CalendarManager|Calendar Management Interface]]
    4.27   * [[/FreeBusyPublishing|Free/Busy Publishing]]
    4.28 - * [[/Usage|Usage]]
    4.29  
    4.30  <<Anchor(Notes)>>
    4.31  == Design and Implementation Notes ==
    4.32 @@ -144,6 +150,7 @@
    4.33  Details of the mechanisms employed by imip-agent are described in the
    4.34  following documents:
    4.35  
    4.36 + * [[/AgentPrograms|Agent Programs]]
    4.37   * [[/CalendaringSupport|Calendaring Support]]
    4.38   * [[/CounterProposals|Counter-Proposals and Offers]]
    4.39   * [[/CronIntegration|Cron Task Scheduler Integration]]
     5.1 --- a/docs/wiki/Usage	Tue Nov 03 18:30:31 2015 +0100
     5.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.3 @@ -1,78 +0,0 @@
     5.4 -= Using imip-agent =
     5.5 -
     5.6 -With imip-agent deployed, usage of the software should occur automatically.
     5.7 -However, evidence of its operation will only emerge when calendar-related
     5.8 -messages are exchanged between e-mail users. This will cause a few different
     5.9 -things to happen:
    5.10 -
    5.11 - * Summary messages may be sent by the calendar system to mail recipients
    5.12 -
    5.13 - * Replies to calendar-related messages may be received by the senders of
    5.14 - those messages
    5.15 -
    5.16 - * Free/busy information will become available, either in responses to
    5.17 - requests sent over e-mail, or [[../FreeBusyPublishing|over the Web]]
    5.18 -
    5.19 -In the background, imip-agent uses and updates information as described in the
    5.20 -[[../FilesystemUsage|filesystem usage guide]].
    5.21 -
    5.22 -== Creating User Data Stores ==
    5.23 -
    5.24 -The [[../MailIntegration|mail system]] mechanisms are responsible for
    5.25 -determining whether a valid recipient has been specified in any given message,
    5.26 -and imip-agent does not attempt to validate such information again. Therefore,
    5.27 -when a message is received for a calendar user for whom no data store has been
    5.28 -initialised in the [[../FilesystemUsage|filesystem]], the software will
    5.29 -automatically create one.
    5.30 -
    5.31 -Consequently, users for whom such data stores have been created will experience
    5.32 -the software using the default configuration, described in the
    5.33 -[[../Preferences|preferences guide]]. It is for this reason that the default
    5.34 -values in the [[../Configuration|configuration]] should be adjusted according
    5.35 -to the policies decided for the deployment of this software.
    5.36 -
    5.37 -However, it is possible to create data stores for users in advance using the
    5.38 -`tools/init_user.sh` script as in the following example:
    5.39 -
    5.40 -{{{
    5.41 -tools/init_user.sh mailto:vincent.vole@example.com
    5.42 -}}}
    5.43 -
    5.44 -Here, the user identity is given as a URI since this is how iCalendar references
    5.45 -participants in scheduling operations. The result of the above command should be
    5.46 -some new directories in the [[../FilesystemUsage|filesystem area]] dedicated to
    5.47 -calendar information storage.
    5.48 -
    5.49 -=== Adjusting Preferences ===
    5.50 -
    5.51 -Once initialised, the user preferences can be adjusted by adding files to the
    5.52 -`preferences` directory created by the above command. For example, if a user has
    5.53 -elected to not participate in the calendar system, a file called `participating`
    5.54 -can be added as follows:
    5.55 -
    5.56 -{{{
    5.57 -echo 'no' > '/var/lib/imip-agent/preferences/mailto:vincent.vole@example.com/participating'
    5.58 -}}}
    5.59 -
    5.60 -Here, the default storage location has been given in the filename.
    5.61 -
    5.62 -Normally, users should visit the [[../CalendarManager|management interface]] to
    5.63 -change their preferences, but modifications done by administrators are more
    5.64 -efficiently performed by directly interacting with the filesystem. For example,
    5.65 -an administrator might initialise the common names of users by scripting changes
    5.66 -to the `CN` file for each user, obtaining such names from some kind of database.
    5.67 -
    5.68 -== Excluding Users Entirely ==
    5.69 -
    5.70 -Since the [[../AgentPrograms|agent programs]] are installed as part of the mail
    5.71 -handling workflow, even the configuration of non-participation in the calendar
    5.72 -system for users will still result in those users' messages being passed along
    5.73 -the workflow by imip-agent, which may result in a decrease in general mail
    5.74 -delivery performance.
    5.75 -
    5.76 -To exclude users entirely, the routing configuration of the
    5.77 -[[../MailIntegration|MTA]] needs to be changed so that such users identities are
    5.78 -not recognised as calendar system participants, thus preventing their messages
    5.79 -from being routed via imip-agent. This is as simple as either not listing the
    5.80 -identity in [[../MailIntegration/Simple|lists of addresses]] or by adjusting
    5.81 -[[../MailIntegration/LDAP|queries yielding calendar users]].