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 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 43 == Program Responsibilities == 44 45 The person agent programs or "handlers", `imip_person.py` and 46 `imip_person_outgoing.py` are responsible for keeping the schedule of each 47 participating calendar user up to date with the requests that are sent and 48 received by that user. Their roles are limited to recording data along with 49 a small amount of automation: they can be [[../Preferences|configured]] to 50 reply to free/busy requests without requesting any intervention on the part 51 of the user receiving such requests. 52 53 Such handlers may be enhanced to perform more tasks autonomously, so that 54 certain requests might be dealt with automatically, according to policies 55 defined by each user. See the [[../UseCases|use-cases guide]] for some 56 potentially-implementable ideas. 57 58 Meanwhile, the resource handler, `imip_resource.py`, is responsible not only 59 for maintaining a schedule for a resource, but it must also make scheduling 60 decisions itself without human involvement. How it may behave is determined 61 by a number of policies set in the [[../Preferences|preferences]] so that, 62 for example, it may suggest alternative event periods when those requested 63 in an invitation are unavailable.