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.