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