imip-agent

docs/wiki/AgentPrograms

1465:0c623c86704f
2020-08-03 Paul Boddie Changed diagram font to sans-serif.
     1 = Agent Programs =     2      3 A collection of programs are provided to handle messages for different kinds of     4 mail participants. Currently, the following programs are provided:     5      6 || '''Program'''    || '''Purpose''' ||     7 || `imip_person.py` ||<|2> Maintain scheduling information on behalf of people ||     8 || `imip_person_outgoing.py` ||     9 || `imip_resource.py` || Act as an autonomous [[../Resources|resource]] that can be reserved ||    10     11 For people, the role of the agent programs concerned is to construct a schedule    12 that can be accessed via the [[../CalendarManager|management interface]] and to    13 maintain a free/busy record for event scheduling purposes.    14     15 For resources, the role of the agent program concerned is also to maintain    16 schedule and free/busy records, but also to act autonomously - that is, without    17 manual intervention - and to respond to event invitations or booking requests    18 according to policies defined in the [[../Configuration|configuration]] of the    19 system.    20     21 == Program Invocation ==    22     23 Since imip-agent is concerned with the integration of calendaring with e-mail,    24 these programs are typically invoked by the [[../MailIntegration|mail system]],    25 although they may be invoked directly for [[../Testing|testing]] and other    26 purposes. Various options may be presented to the programs in order to modify    27 their behaviour, and these are summarised when the `--help` option is given.    28 For example:    29     30 {{{    31 imip_person.py --help    32 }}}    33     34 The [[../MailIntegration|mail configuration guide]] references configuration    35 files that include example invocations of these programs. Generally, few    36 options need to be specified, and as a result the programs will acquire their    37 configuration from the installed [[../Configuration|configuration files]].    38     39 One exception is the `imip_person.py` program that needs to be told whether    40 it will deliver messages using [[../MailIntegration/LMTP|LMTP]] with the `-l`    41 option or using [[../MailIntegration/LocalSMTP|SMTP]] with the `-L` option.    42 See the [[../MailIntegration/Transports|transports documentation]] for more    43 information.    44     45 == Program Responsibilities ==    46     47 The person agent programs or "handlers", `imip_person.py` and    48 `imip_person_outgoing.py` are responsible for keeping the schedule of each    49 participating calendar user up to date with the requests that are sent and    50 received by that user. Their roles are limited to recording data along with    51 a small amount of automation: they can be [[../Preferences|configured]] to    52 reply to free/busy requests without requesting any intervention on the part    53 of the user receiving such requests.    54     55 Such handlers may be enhanced to perform more tasks autonomously, so that    56 certain requests might be dealt with automatically, according to policies    57 defined by each user. See the [[../UseCases|use-cases guide]] for some    58 potentially-implementable ideas.    59     60 Meanwhile, the resource handler, `imip_resource.py`, is responsible not only    61 for maintaining a schedule for a [[../Resources|resource]], but it must also    62 make scheduling decisions itself without human involvement. How it may behave    63 is determined by a number of policies set in the [[../Preferences|preferences]]    64 so that, for example, it may suggest alternative event periods when those    65 requested in an invitation are unavailable.