When messages are received by the MTA for a recipient, imip-agent employs message rules in the MTA to provide handlers to inspect any calendar-related content and to update its records. Different handlers are provided to process incoming messages depending on the nature of the eventual recipient:
The different processing is described below.
For people, the operation of the person handler is as follows:
Method | Effect on Objects | Effect on Free/Busy | Effect on Request Queue | |
for recipient's own record | for recipient's record of others | |||
CANCEL | Set the state of the cancelled event, retaining it for future reference | Remove record if the event is cancelled for the attendee (even if the event is not completely cancelled) | Update the recipient's free/busy record for the organiser | Remove any queue entry |
PUBLISH | Add or update object, removing specific recurrences of recurring events | No modification to the queue | ||
REQUEST | Add a queue entry for the event | |||
REPLY | Merge attendee participation information | Update the recipient's free/busy record for each of the attendees | No modification to the queue |
The effect of the person handler is to ensure that the user's record of the free/busy status for other participants reflects the consequences of those participants' stated attendance of events, and for the object records to reflect the most recent state of each event.
Note that the free/busy information for a recipient of an event is not generally changed when receiving a message. Such information is only definitively changed by recipients themselves when responding to incoming messages, and the outgoing messages processing is concerned with updating that information as such responses are sent.
For resources, the operation of the resource handler is as follows:
Method | Effect on Objects | Effect on Free/Busy | Effect on Request Queue | |
for recipient's own record | for recipient's record of others | |||
CANCEL | Set the state of the cancelled event, retaining it for future reference | Remove record if the event is cancelled for the attendee (even if the event is not completely cancelled) | No records of other participants are employed by the resource handler | No queue is employed by the resource handler |
PUBLISH | Ignored by the resource handler | |||
REQUEST | Add or update object, removing specific recurrences of recurring events | Attempt to schedule the event, creating or updating records for the recipient | ||
REPLY | Ignored by the resource handler |
Other object types are not handled.