rfc2446.txt
来自「著名的RFC文档,其中有一些文档是已经翻译成中文的的.」· 文本 代码 · 共 1,535 行 · 第 1/5 页
TXT
1,535 行
Network Working Group S. SilverbergRequest for Comments: 2446 MicrosoftCategory: Standards Track S. Mansour Netscape F. Dawson Lotus R. Hopson ON Technologies November 1998 iCalendar Transport-Independent Interoperability Protocol (iTIP) Scheduling Events, BusyTime, To-dos and Journal EntriesStatus of this Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.Copyright Notice Copyright (C) The Internet Society (1998). All Rights Reserved.Abstract This document specifies how calendaring systems use iCalendar objects to interoperate with other calendar systems. It does so in a general way so as to allow multiple methods of communication between systems. Subsequent documents specify interoperable methods of communications between systems that use this protocol. The document outlines a model for calendar exchange that defines both static and dynamic event, to-do, journal and free/busy objects. Static objects are used to transmit information from one entity to another without the expectation of continuity or referential integrity with the original item. Dynamic objects are a superset of static objects and will gracefully degrade to their static counterparts for clients that only support static objects. This document specifies an Internet protocol based on the iCalendar object specification that provides scheduling interoperability between different calendar systems. The Internet protocol is called the "iCalendar Transport-Independent Interoperability Protocol (iTIP)".Silverberg, et. al. Standards Track [Page 1]RFC 2446 iTIP November 1998 iTIP complements the iCalendar object specification by adding semantics for group scheduling methods commonly available in current calendar systems. These scheduling methods permit two or more calendar systems to perform transactions such as publish, schedule, reschedule, respond to scheduling requests, negotiation of changes or cancel iCalendar-based calendar components. iTIP is defined independent of the particular transport used to transmit the scheduling information. Companion memos to iTIP provide bindings of the interoperability protocol to a number of Internet protocols.Table of Contents 1 INTRODUCTION...................................................5 1.1 FORMATTING CONVENTIONS .....................................5 1.2 RELATED DOCUMENTS ..........................................6 1.3 ITIP ROLES AND TRANSACTIONS ................................6 2 INTEROPERABILITY MODELS........................................8 2.1 APPLICATION PROTOCOL .......................................9 2.1.1 Calendar Entry State ...................................9 2.1.2 Delegation .............................................9 2.1.3 Acting on Behalf of other Calendar Users ..............10 2.1.4 Component Revisions ...................................10 2.1.5 Message Sequencing ....................................11 3 APPLICATION PROTOCOL ELEMENTS.................................12 3.1 COMMON COMPONENT RESTRICTION TABLES .......................13 3.2 METHODS FOR VEVENT CALENDAR COMPONENTS ....................14 3.2.1 PUBLISH ...............................................15 3.2.2 REQUEST ...............................................17 3.2.2.1 Rescheduling an Event..............................19 3.2.2.2 Updating or Reconfirmation of an Event.............19 3.2.2.3 Delegating an Event to another CU..................19 3.2.2.4 Changing the Organizer.............................20 3.2.2.5 Sending on Behalf of the Organizer.................20 3.2.2.6 Forwarding to An Uninvited CU......................20 3.2.2.7 Updating Attendee Status...........................21 3.2.3 REPLY .................................................21 3.2.4 ADD ...................................................23 3.2.5 CANCEL ................................................25 3.2.6 REFRESH ...............................................26 3.2.7 COUNTER ...............................................28 3.2.8 DECLINECOUNTER ........................................29 3.3 METHODS FOR VFREEBUSY COMPONENTS ..........................31 3.3.1 PUBLISH ...............................................32 3.3.2 REQUEST ...............................................33 3.3.3 REPLY .................................................34 3.4 METHODS FOR VTODO COMPONENTS ..............................35Silverberg, et. al. Standards Track [Page 2]RFC 2446 iTIP November 1998 3.4.1 PUBLISH ...............................................35 3.4.2 REQUEST ...............................................37 3.4.2.1 REQUEST for Rescheduling a VTODO...................39 3.4.2.2 REQUEST for Update or Reconfirmation of a VTODO....39 3.4.2.3 REQUEST for Delegating a VTODO.....................40 3.4.2.4 REQUEST Forwarded To An Uninvited Calendar User....40 3.4.2.5 REQUEST Updated Attendee Status....................41 3.4.3 REPLY .................................................41 3.4.4 ADD ...................................................43 3.4.5 CANCEL ................................................44 3.4.6 REFRESH ...............................................46 3.4.7 COUNTER ...............................................48 3.4.8 DECLINECOUNTER ........................................49 3.5 METHODS FOR VJOURNAL COMPONENTS ...........................50 3.5.1 PUBLISH ...............................................51 3.5.2 ADD ...................................................52 3.5.3 CANCEL ................................................53 3.6 STATUS REPLIES ............................................55 3.7 IMPLEMENTATION CONSIDERATIONS .............................57 3.7.1 Working With Recurrence Instances .....................57 3.7.2 Attendee Property Considerations ......................58 3.7.3 X-Tokens ..............................................59 4 EXAMPLES......................................................59 4.1 PUBLISHED EVENT EXAMPLES ..................................59 4.1.1 A Minimal Published Event .............................60 4.1.2 Changing A Published Event ............................60 4.1.3 Canceling A Published Event ...........................61 4.1.4 A Rich Published Event ................................62 4.1.5 Anniversaries or Events attached to entire days .......63 4.2 GROUP EVENT EXAMPLES ......................................63 4.2.1 A Group Event Request .................................64 4.2.2 Reply To A Group Event Request ........................65 4.2.3 Update An Event .......................................65 4.2.4 Countering an Event Proposal ..........................66 4.2.5 Delegating an Event ...................................68 4.2.6 Delegate Accepts the Meeting ..........................70 4.2.7 Delegate Declines the Meeting .........................71 4.2.8 Forwarding an Event Request ...........................72 4.2.9 Cancel A Group Event ..................................72 4.2.10 Removing Attendees ...................................74 4.2.11 Replacing the Organizer ..............................75 4.3 BUSY TIME EXAMPLES ........................................76 4.3.1 Request Busy Time .....................................77 4.3.2 Reply To A Busy Time Request ..........................77 4.4 RECURRING EVENT AND TIME ZONE EXAMPLES ....................78 4.4.1 A Recurring Event Spanning Time Zones .................78 4.4.2 Modify A Recurring Instance ...........................79 4.4.3 Cancel an Instance ....................................81Silverberg, et. al. Standards Track [Page 3]RFC 2446 iTIP November 1998 4.4.4 Cancel Recurring Event ................................81 4.4.5 Change All Future Instances ...........................82 4.4.6 Add A New Instance To A Recurring Event ...............82 4.4.7 Add A New Series of Instances To A Recurring Event ....83 4.4.8 Counter An Instance Of A Recurring Event ..............87 4.4.9 Error Reply To A Request ..............................88 4.5 GROUP TO-DO EXAMPLES ......................................89 4.5.1 A VTODO Request .......................................90 4.5.2 A VTODO Reply .........................................90 4.5.3 A VTODO Request for Updated Status ....................91 4.5.4 A Reply: Percent-Complete .............................91 4.5.5 A Reply: Completed ....................................92 4.5.6 An Updated VTODO Request ..............................92 4.5.7 Recurring VTODOs ......................................92 4.5.7.1 Request for a Recurring VTODO......................93 4.5.7.2 Calculating due dates in recurring VTODOs..........93 4.5.7.3 Replying to an instance of a recurring VTODO.......93 4.6 JOURNAL EXAMPLES ..........................................94 4.7 OTHER EXAMPLES ............................................94 4.7.1 Event Refresh .........................................94 4.7.2 Bad RECURRENCE-ID .....................................95 5 APPLICATION PROTOCOL FALLBACKS................................97 5.1 PARTIAL IMPLEMENTATION ....................................97 5.1.1 Event-Related Fallbacks ...............................97 5.1.2 Free/Busy-Related Fallbacks ...........................99 5.1.3 To-Do-Related Fallbacks ...............................99 5.1.4 Journal-Related Fallbacks ............................101 5.2 LATENCY ISSUES ...........................................102 5.2.1 Cancellation of an Unknown Calendar Component. .......102 5.2.2 Unexpected Reply from an Unknown Delegate ............103 5.3 SEQUENCE NUMBER ..........................................103 6 SECURITY CONSIDERATIONS......................................103 6.1 SECURITY THREATS .........................................103 6.1.1 Spoofing the "Organizer" .............................103 6.1.2 Spoofing the "Attendee" ..............................103 6.1.3 Unauthorized Replacement of the Organizer ............104 6.1.4 Eavesdropping ........................................104 6.1.5 Flooding a Calendar ..................................104 6.1.6 Procedural Alarms ....................................104 6.1.7 Unauthorized REFRESH Requests ........................104 6.2 RECOMMENDATIONS ..........................................104 6.2.1 Use of [RFC-1847] to secure iTIP transactions ........105 6.2.2 Implementation Controls ..............................105 7 ACKNOWLEDGMENTS..............................................106 8 BIBLIOGRAPHY.................................................106 9 AUTHORS' ADDRESSES...........................................107 10 FULL COPYRIGHT STATEMENT....................................109Silverberg, et. al. Standards Track [Page 4]RFC 2446 iTIP November 19981 Introduction This document specifies how calendaring systems use iCalendar objects to interoperate with other calendar systems. In particular, it specifies how to schedule events, to-dos, or daily journal entries. It further specifies how to search for available busy time information. It does so in a general way so as to allow multiple methods of communication between systems. Subsequent documents specify transport bindings between systems that use this protocol. This protocol is based on messages sent from an originator to one or more recipients. For certain types of messages, a recipient may reply, in order to update their status and may also return transaction/request status information. The protocol supports the ability for the message originator to modify or cancel the original message. The protocol also supports the ability for recipients to suggest changes to the originator of a message. The elements of the protocol also define the user roles for its transactions.1.1 Formatting Conventions In order to refer to elements of the calendaring and scheduling model, core object or interoperability protocol defined in [iCAL] and [iTIP] several formatting conventions have been utilized. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" and "OPTIONAL" in this document are to be interpreted as described in [RFC-2119]. Calendaring and scheduling roles are referred to in quoted-strings of text with the first character of each word in upper case. For example, "Organizer" refers to a role of a "Calendar User" (CU) within the scheduling protocol defined by [iTIP]. Calendar components defined by [iCAL] are referred to with capitalized, quoted-strings of text. All calendar components start with the letter "V". For example, "VEVENT" refers to the event calendar component, "VTODO" refers to the to-do calendar component and "VJOURNAL" refers to the daily journal calendar component. Scheduling methods defined by [iTIP] are referred to with capitalized, quoted-strings of text. For example, "REQUEST" refers to the method for requesting a scheduling calendar component be created or modified, "REPLY" refers to the method a recipient of a request uses to update their status with the "Organizer" of the calendar component. Properties defined by [iCAL] are referred to with capitalized, quoted-strings of text, followed by the word "property". For example, "ATTENDEE" property refers to the iCalendar property used to convey the calendar address of a "Calendar User". Property parametersSilverberg, et. al. Standards Track [Page 5]RFC 2446 iTIP November 1998 defined by this memo are referred to with lower case, quoted-strings of text, followed by the word "parameter". For example, "value" parameter refers to the iCalendar property parameter used to override the default data type for a property value. Enumerated values defined by this memo are referred to with capitalized text, either alone or followed by the word "value". In tables, the quoted-string text is specified without quotes in order to minimize the table length.1.2 Related Documents Implementers will need to be familiar with several other memos that, along with this one, describe the Internet calendaring and scheduling standards. This document, [iTIP], specifies an interoperability protocol for scheduling between different implementations. The related documents are: [iCAL] - specifies the objects, data types, properties and property parameters used in the protocols, along with the methods for representing and encoding them;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?