imip-agent

Annotated docs/wiki/IncomingMessages

1021:a04c967b2d8e
2015-11-06 Paul Boddie Removed the complicated "old" lock directory mechanism since the active lock directory should be protected by the "outside-in" attempts to create it while the dismantling operation occurs "inside-out".
paul@933 1
= Incoming Messages =
paul@933 2
paul@934 3
When messages are received by the MTA for a recipient, imip-agent employs
paul@934 4
message rules in the MTA to provide handlers to inspect any calendar-related
paul@934 5
content and to update its records. Different handlers are provided to process
paul@934 6
incoming messages depending on the nature of the eventual recipient:
paul@933 7
paul@933 8
 People:: Handled by the person handler
paul@933 9
 Resources:: Handled by the resource handler
paul@933 10
paul@933 11
The different processing is described below.
paul@933 12
paul@933 13
== Events ==
paul@933 14
paul@933 15
For people, the operation of the person handler is as follows:
paul@933 16
paul@933 17
{{{#!table
paul@934 18
<rowspan="2"> '''Method'''
paul@934 19
||<rowspan="2"> '''Effect on Objects'''
paul@934 20
||<colspan="2"> '''Effect on Free/Busy'''
paul@934 21
||<rowspan="2"> '''Effect on Request Queue'''
paul@933 22
==
paul@933 23
''for recipient's own record'' || ''for recipient's record of others''
paul@933 24
==
paul@934 25
`CANCEL`
paul@934 26
|| Set the state of the cancelled event, retaining it for future reference 
paul@934 27
|| Remove record if the event is cancelled for the attendee (even if the event
paul@934 28
.. is not completely cancelled)
paul@934 29
||<rowspan="3"> Update the recipient's free/busy record for the organiser
paul@934 30
|| Remove any queue entry
paul@933 31
==
paul@934 32
`PUBLISH`
paul@934 33
||<rowspan="2"> Add or update object, removing specific recurrences of
paul@934 34
             .. recurring events
paul@934 35
||<rowspan="3">
paul@934 36
|| No modification to the queue
paul@933 37
==
paul@934 38
`REQUEST`
paul@934 39
|| Add a queue entry for the event
paul@933 40
==
paul@934 41
`REPLY`
paul@934 42
|| Merge attendee participation information
paul@934 43
|| Update the recipient's free/busy record for each of the attendees
paul@934 44
|| No modification to the queue
paul@933 45
}}}
paul@933 46
paul@934 47
The effect of the person handler is to ensure that the user's record of the
paul@934 48
free/busy status for ''other participants'' reflects the consequences of those
paul@934 49
participants' stated attendance of events, and for the object records to
paul@934 50
reflect the most recent state of each event.
paul@933 51
paul@934 52
Note that the free/busy information for a recipient of an event is not
paul@934 53
generally changed when receiving a message. Such information is only
paul@934 54
definitively changed by recipients themselves when responding to incoming
paul@934 55
messages, and the [[../OutgoingMessages|outgoing messages]] processing is
paul@934 56
concerned with updating that information as such responses are sent.
paul@933 57
paul@933 58
For resources, the operation of the resource handler is as follows:
paul@933 59
paul@933 60
{{{#!table
paul@934 61
<rowspan="2"> '''Method'''
paul@934 62
||<rowspan="2"> '''Effect on Objects'''
paul@934 63
||<colspan="2"> '''Effect on Free/Busy'''
paul@934 64
||<rowspan="2"> '''Effect on Request Queue'''
paul@933 65
==
paul@933 66
''for recipient's own record'' || ''for recipient's record of others''
paul@933 67
==
paul@934 68
`CANCEL`
paul@934 69
|| Set the state of the cancelled event, retaining it for future reference
paul@934 70
|| Remove record if the event is cancelled for the attendee (even if the event
paul@934 71
.. is not completely cancelled)
paul@934 72
||<rowspan="4"> No records of other participants are employed by the resource
paul@934 73
             .. handler
paul@934 74
||<rowspan="4"> No queue is employed by the resource handler
paul@933 75
==
paul@934 76
`PUBLISH`
paul@934 77
||<colspan="2"> Ignored by the resource handler
paul@933 78
==
paul@934 79
`REQUEST`
paul@934 80
|| Add or update object, removing specific recurrences of recurring events
paul@934 81
|| Attempt to schedule the event, creating or updating records for the
paul@934 82
.. recipient
paul@933 83
==
paul@934 84
`REPLY`
paul@934 85
||<colspan="2"> Ignored by the resource handler
paul@933 86
}}}
paul@933 87
paul@933 88
== Other Object Types ==
paul@933 89
paul@933 90
Other object types are not handled.