imip-agent

docs/wiki/OutgoingMessages

1331:867279f45f02
2017-10-16 Paul Boddie Merged changes from the default branch. client-editing-simplification
     1 = Outgoing Messages =     2      3 When messages are sent by a mail client, imip-agent employs an outgoing     4 message rule in the MTA to provide a handler to inspect any calendar-related     5 content and to update its records.     6      7 {{{#!graphviz     8 //format=svg     9 //transform=notugly    10 digraph outgoing {    11   node [shape=box,fontsize="13.0",fontname="Helvetica",tooltip="Outgoing messages"];    12   edge [tooltip="Outgoing messages"];    13   rankdir=LR;    14     15   mail [label="Outgoing mail",shape=folder,style=filled,fillcolor=cyan];    16     17   subgraph {    18     rank=same;    19     outgoingrouter [label="Outgoing router"];    20   }    21     22   subgraph {    23     rank=same;    24     outgoinghandler [label="Outgoing handler",style=filled,fillcolor=gold];    25     scheduling [label="Scheduling",shape=ellipse,style=filled,fillcolor=gold];    26     freebusy [label="Free/busy",shape=folder,style=filled,fillcolor=gold];    27     manager [label="imip-manager",style=filled,fillcolor=gold];    28   }    29     30   client [label="Mail clients"];    31     32   client -> mail;    33   mail -> outgoingrouter -> outgoinghandler -> scheduling -> freebusy -> manager;    34 }    35 }}}    36     37 The management interface does not use this outgoing message rule because it    38 sends messages from the general calendar address (for example,    39 `calendar@example.com`), and there is no trivial way of deducing the identity    40 of the real sender. Instead, the manager explicitly sends suitably-modified    41 messages to the address of the user operating the interface to achieve the    42 same effect as the outgoing message rule, as well as to notify any mail    43 clients that would normally be managing calendar events on behalf of the user.    44     45 {{{#!graphviz    46 //format=svg    47 //transform=notugly    48 digraph manager_outgoing {    49   node [shape=box,fontsize="13.0",fontname="Helvetica",tooltip="Outgoing messages from the manager"];    50   edge [tooltip="Outgoing messages from the manager"];    51   rankdir=LR;    52     53   mail [label="Outgoing mail",shape=folder,style=filled,fillcolor=cyan];    54     55   subgraph {    56     rank=same;    57     personrouter [label="Person router"];    58   }    59     60   subgraph {    61     rank=same;    62     personhandler [label="Person handler",style=filled,fillcolor=gold];    63     scheduling [label="Scheduling",shape=ellipse,style=filled,fillcolor=gold];    64     freebusy [label="Free/busy",shape=folder,style=filled,fillcolor=gold];    65     manager [label="imip-manager",style=filled,fillcolor=gold];    66   }    67     68   webserver [label="Web server\n(Apache, ...)",tooltip="Web server"];    69     70   browser [label="Web browsers"];    71     72   browser -> webserver -> manager -> mail -> personrouter ->    73   personhandler -> scheduling -> freebusy -> manager;    74 }    75 }}}    76     77 == Events ==    78     79 {{{#!table    80 '''Method''' || '''Effect on Objects''' || '''Effect on Free/Busy'''    81 || '''Effect on Request Queue'''    82 ==    83 `CANCEL`    84 || Remove selected attendees or an entire event    85 || Remove record if entire event is cancelled    86 ||<rowspan="4"> Remove any queue entry    87 ==    88 `PUBLISH`    89 ||<rowspan="2"> Add or update object, removing specific recurrences of    90              .. recurring events    91 ||<rowspan="2"> Add record for the event, removing records for specific    92              .. recurrences of an event    93 ==    94 `REQUEST`    95 ==    96 `REPLY`    97 || Merge attendee participation information    98 || Update records for the event, preserving specific recurrence records when    99 .. changing a recurring event   100 }}}   101    102 The effect of the outgoing handler is to ensure that the user's free/busy   103 status reflects the consequences of their stated attendance of events, and for   104 the object records to reflect the most recent state of each event.   105    106 == Other Object Types ==   107    108 Other object types are not handled. Free/busy information, if exchanged, is   109 not obtained by the handler to replace its own records.