From: http://www.ietf.org/internet-drafts/draft-mahy-http-change-notification-via-sip-00.txt Title: Change Notifications about HyperText Transfer Protocol (HTTP) Resources via the Session Initiation Protocol (SIP) Event Notification Framework Reference: IETF WEBDAV Working Group, Internet Draft 'draft-mahy-http-change-notification-via-sip-00.txt' Date: June 25, 2007 I-D Tracker: http://ietfreport.isoc.org/idref/draft-mahy-http-change-notification-via-sip/ IETF WEBDAV Working Group http://www.ics.uci.edu/~ejw/authoring/ ============================================================================== WEBDAV WG R. Mahy Internet-Draft Plantronics Intended status: Standards Track June 25, 2007 Expires: December 27, 2007 Change Notifications about HyperText Transfer Protocol (HTTP) resources via the Session Initiation Protocol (SIP) Event Notification Framework draft-mahy-http-change-notification-via-sip-00.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on December 27, 2007. Copyright Notice Copyright (C) The IETF Trust (2007). Abstract This document describes a SIP event package for notification of content changes of HTTP-based resources, including WebDAV (HTTP extensions for Distributed Authoring and Versioning) collections and XCAP (XML Configuration Access Protocol) resources. It also defines a new WebDAV property that can be used to identify the URI (Uniform Resource Idenitifier) of a SIP notification service that can service the WebDAV resource for which the property is set. Mahy Expires December 27, 2007 [Page 1] Internet-Draft HTTP Change Notifications via SIP June 2007 Table of Contents 1. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4. Discovering a change notifier . . . . . . . . . . . . . . . . 5 5. Subscription Filters: setting hierarchies of interest . . . . 6 6. Notification format . . . . . . . . . . . . . . . . . . . . . 7 7. HTTP Resource Change Notification Event Package . . . . . . . 10 7.1. Event Package Name . . . . . . . . . . . . . . . . . . . . 10 7.2. Event Package Parameters . . . . . . . . . . . . . . . . . 10 7.3. SUBSCRIBE Bodies . . . . . . . . . . . . . . . . . . . . . 10 7.4. Subscription Duration . . . . . . . . . . . . . . . . . . 10 7.5. NOTIFY Bodies . . . . . . . . . . . . . . . . . . . . . . 10 7.6. Subscriber generation of SUBSCRIBE requests . . . . . . . 11 7.7. Notifier Processing of SUBSCRIBE Requests . . . . . . . . 11 7.8. Notifier Generation of NOTIFY Requests . . . . . . . . . . 12 7.9. Subscriber Processing of NOTIFY Requests . . . . . . . . . 12 7.10. Handling of Forked Requests . . . . . . . . . . . . . . . 12 7.11. Rate of notifications . . . . . . . . . . . . . . . . . . 12 7.12. State Agents . . . . . . . . . . . . . . . . . . . . . . . 13 7.13. Behavior of a Proxy Server . . . . . . . . . . . . . . . . 13 8. Formal Schemas . . . . . . . . . . . . . . . . . . . . . . . . 13 8.1. Filter Body . . . . . . . . . . . . . . . . . . . . . . . 13 8.2. Notification Body . . . . . . . . . . . . . . . . . . . . 14 9. Security Considerations . . . . . . . . . . . . . . . . . . . 17 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18 11.1. Normative References . . . . . . . . . . . . . . . . . . . 18 11.2. Informational References . . . . . . . . . . . . . . . . . 19 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 20 Intellectual Property and Copyright Statements . . . . . . . . . . 21 Mahy Expires December 27, 2007 [Page 2] Internet-Draft HTTP Change Notifications via SIP June 2007 1. Conventions 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 [1]. 2. Introduction This document describes a mechanism to subscribe to changes to HTTP [2]-based resources, and includes specific considerations for WebDAV and XCAP extensions to HTTP. WebDAV [3] is a set of standard HTTP extensions to perform remote web content authoring operations, including hierarchical manipulation of "collections" which are analogous to directories in a file system, and per-resource metadata called "properties". DeltaV [4] adds to WebDAV additional support for explicit version control including merging and forking. XCAP [5] (XML [6] Configuration Access Protocol) is a generic configuration protocol layered on top of HTTP. It uses XPath [7] expressions and XML document fragments to hierarchically access subtrees of an XML document. Currently XCAP usages are defined for types of resource lists [19] and authorization lists [20] used in SIP-based presence systems. SIP [8] is a rendezvous protocol for manipulating multimedia sessions, and for conveying presence [21] and other related events using the SIP Events Framework [9]. Many SIP implementations use HTTP for features such as configuration [22], buddy-list manipulation, and providing pointers to web content [10]. Currently, very specific approaches for changes to XCAP documents have been proposed in [23] and [24]. Both of these use an XML patch description format described in [11]. The approach in these documents allows for change notifications about specific subtrees of an XML document, but provide no facility for change notifications about more than one document at a time. Finally, several approaches for pure HTTP-based event notifications have been proposed [TODO: add refs]. Many of these proposals are motivated by a desire to provide HTTP change notification. All these proposals are concerned with directories or collections of files changing, but cannot provide detail about changes within a structure document (such as an XML document). 3. Overview This event package allows a SIP subscriber to ask a responsible Mahy Expires December 27, 2007 [Page 3] Internet-Draft HTTP Change Notifications via SIP June 2007 notifier for notifications about changes to HTTP-based resources for specific resource hierarchies that the subscriber is interested in. The subscriber generally includes a filter document in the subscription request to indicate which hierarchies it is interested in. For resources that are expressed as an XML document, the subscription filter can further limit notifications to changes in specific elements or attributes of the document as described in an XPath expression. Once the subscription is established, when a new change is made to a resource of interest, the notifier sends a notification to the subscriber with a summary of the change. The notifier can also send the content of the change, and the value of any properties inline if requested. Since the SIP events framework is designed to work with subscribers that can be disconnected from the network from time to time, the model allows the subscriber to ask for notification about changes which have occured in the recent past so that the subscriber can resynchronize its state easily when temporarily disconnected. Inherent in this approach is the concept of a unique version string for each atomic change on the HTTP server side. This version string is expressed either as the version-name if DeltaV version control is enabled, or the HTTP ETag (preferrably a strong ETag) if it is not. Immediately after a successful subscription request, the notifier sends a summary of changes since the version last seen by the subscriber, to allow the subscriber to "catch up". Even without DeltaV versioning, the underlying data store or representation for a set of resources may organize changes that all occur as an atomic transaction. A simple example for WebDAV is that when the contents of a file are updated, the modification time property also changes. Notifications for this event package similarly group specific changes into atoms, which need to be applied by the notifier all at once or not at all. In addition, if the subscriber requests summarization, the notifier can combine several operations and provide them to the subscriber as a single atom. The subscriber needs to apply this summarized atom as a single unit. For example, creating a file then deleting it results in no change when summarized. This event package specifically deals with the end-result of changes made as visible from HTTP. To that end, there is no notification verb to indicate that a resource was checked-out or checked-in. Instead there is a notification verb to indicate that a WebDAV property has been set. The notification format has specific verbs for created, modified, moved, copied, and deleted resource content and set and removed properties. While these verbs map very closely to some HTTP methods (MKCOL, PUT, MOVE, COPY, DELETE, and PROPPATCH), the content does not need to be modified via HTTP to trigger a Mahy Expires December 27, 2007 [Page 4] Internet-Draft HTTP Change Notifications via SIP June 2007 notification. For WebDAV HTTP servers, this document also defines a new WebDAV property that can be used to determine the SIP URL for a SIP notifier to this event package for a specific WebDAV resource. Other discovery approaches, including manual configuration, are possible but are out of scope for this document. 4. Discovering a change notifier When using a WebDAV-enabled HTTP server, the HTTP client can query a resource of interest for the 'DAV:notifier' property. The value of the property is a complete URI [2] (including the scheme) where the HTTP client can subscribe for change notifications. --> Request <-- PROPFIND /~bob/photos/ HTTP/1.1 Host: http://foo.example.com Content-type: application/xml; charset="utf-8" Content-Length: xxxx --> Response <-- HTTP/1.1 207 Multi-Status Content-Type: application/xml; charset="utf-8" Content-Length: xxxx http://foo.example.com/~bob/photos/ sip:blog-notify-service@sip.example.com HTTP/1.1 200 OK Mahy Expires December 27, 2007 [Page 5] Internet-Draft HTTP Change Notifications via SIP June 2007 5. Subscription Filters: setting hierarchies of interest This section defines the 'application/davnotify-filter+xml' body type. This subscription filter format lists HTTP resource hierarchies of interest to the subscriber. The format starts with a top-level 'filter' element. The filter element can include an optional boolean 'summarize' attribute. The 'summarize' attribute is a hint that the subscriber is willing to accept multiple changes summarized into larger atoms. When present, the notifier can combine any set of consecutive atomic changes into a larger change which also needs to be committed atomically by the subscriber. This is only a hint, the server does not need to summarize multiple changes into a smaller number of atoms. If this attribute is not present, or set to false, the notifier MUST NOT summarize changes. Each hierarchy of interest is described in a 'path' sub-element. There are several optional attributes of the 'path' element. http://foo.example.com/~bob/photos/ http://news.example.com/rss-feed.xml http://xcap.example.com/resource-lists/users/bob/~~ The 'since-version' attribute is provided by the subscriber to request changes from a particular version of the resource of interest. If the resource of interest is under DeltaV version control, the version number is the value of the DAV:version-name attribute. If the resource is not under version control, the Etag of the resource is used. [TODO: add more about unknown versions/Etags or very old ETags]. When a path element contains this attribute, the notifier MUST either provide changes about this version of the resource hierarchy, or return an error for the subscription. The 'inline' attribute is a hint about whether the subscriber would like the actual contents of a newly changed or added resource included "inline" in notifications about that resource. This attribute is a hint, in that the notifier can still omit the content (for example, if it is larger than the notifier is willing to send under the circumstances). The default is to omit inline content. The subscriber can request no inline content, content inline in the XML pacth operations format [11], content in an adjacent or external MIME body [25] described using a Content-ID MIME header, or full content inline. Mahy Expires December 27, 2007 [Page 6] Internet-Draft HTTP Change Notifications via SIP June 2007 The 'propval' attribute is a boolean attribute which indicates if the server should include the values of any changes WebDAV properties. The default is to omit property values. If the path to the resource of interest resolves to a single XML document, the 'xpath' attribute can be included. The 'xcap' attribute contains an XPath expression that is expected to resolve to a single contiguous region (the entire contents of a single element including any sub-elements, or a single attribute value) of the document of interest. This attribute is motivated by notifications for XCAP, but can be used for any XML document, even if the target HTTP server does not support XCAP. 6. Notification format This section defines the 'application/davdiff+xml' body type. This notification body type lists the status of each path in the subscription fitler as well as the changes which are relevant to the active subscription filter. This body begins with a 'notification' top-level element, which has one optional 'status' element followed by one mandatory 'changes' element. The 'status' element contains as many 'path' elements as were present in the subscription filter document. The 'path' element has a mandatory 'code' attribute that includes a 3-digit response code that corresponds to a SIP or HTTP success or error response relevant to the subscribed path. For example, a 403 code indicates that access to the target resource was forbidden, a 404 indicates that the target resource did not exist, a 406 code indicates that the notifier cannot apply an XPath expression to a non-XML file, and a 412 code indicates that the notifier does not have information about the target resource for the version requested in 'since-version'. Omission of the 'status' element implies that the subscription filter for all requested paths was acceptable. The 'changes' element can contain zero or more 'atom' elements. Each 'atom' element contains a set of changes which need to be applied at once or not at all by the subscriber. The 'atom' element has mandatory 'since' and 'until' attributes. The 'atom' element will contain all the resulting changes between the 'since' version string and the 'until' version string (inclusive). Each 'atom' element contains zero or more change notification events, which closely map to a handful of important HTTP operations. Each of these elements contains a mandatory target 'url' attribute. New resources which can contain other resources are called Mahy Expires December 27, 2007 [Page 7] Internet-Draft HTTP Change Notifications via SIP June 2007 "collections" in WebDAV. We reuse this terminology for WebDAV collections, ordinary HTTP resources such as directories, and XCAP paths before the XCAP "document root" ('~~'). When a new collection resource is created, the 'mkcol' element is included in the notification. When a non-collection resource is created or modified, the 'put' element is included in the notification. If the subscriber requested inline content, the notifier MAY include the entire new content in a 'content' element. If the subscriber requested inline XML patches, the notifier MAY include patches in the format described in [11] in an 'xml-patch' element. If the subscriber requested content in separate MIME bodies, the notifier MAY include a 'mimepart' element with a 'content-id' attribute which matches the Content-ID MIME header in another MIME body in the same notification. Even if the subscriber requested inline content or patches, the notifier can decide not to send inline content due to policy considerations. The notifier MUST NOT send any form of inline data unless it was specifically requested by the subscriber. If a resource was deleted, the 'delete' element is included in the notification. The semantics of this element for collections is an infinite-depth delete. If a set of resources was moved, the 'move' element is included in the notifcation for the root of the move operation. If a set of resources was copied, the 'copy' element is included in the notification for the root of the copy operation. For either operation, the 'url' attribute indicates the original root of the moved or copied files, and the mandatory 'dest' attribute indicated the new root of the moved or copied files. Moves are infinite-depth operations. For copies, the mandatory 'infiniteDepth' boolean attribute indicates if the copy was infinite-depth or for a single resource (Depth: 1). Finally, each new or updated property is indicated with a 'propset' element. [TODO: talk about namespace handling here]. Each deleted property is indicated with a 'propremove' element. In both cases, the mandatory 'propname' attribute contains the name of the relevant property. Mahy Expires December 27, 2007 [Page 8] Internet-Draft HTTP Change Notifications via SIP June 2007 http://foo.example.com/~bob/photos/ http://news.example.com/rss-feed.xml http://xcap.example.com/resource-lists/users/bob/~~ This is a test This is a test Mahy Expires December 27, 2007 [Page 9] Internet-Draft HTTP Change Notifications via SIP June 2007 7. HTTP Resource Change Notification Event Package This section provides the details for defining a SIP Event package, as required by [9]. 7.1. Event Package Name The name of this event-package is "davnotify". 7.2. Event Package Parameters This package does not define any event package parameters. 7.3. SUBSCRIBE Bodies This package defines the 'application/davnotify-filter+xml' SUBSCRIBE body format in Section 5, which is used to filter notifications to include only paths to resources of interest. A new SUBSCRIBE for the 'davnotify' event package typically contain a filter body. If a filter body is present in a subsequent SUBSCRIBE, it replaces the previous filter. A SUBSCRIBE for this package can also be sent without a body. This implies the default subscription filtering policy for the subscribed resource, which is to send 'davnotify' notifications for every HTTP path covered by the subscribed resource that the subscriber has permissions to read. Notifiers which support this specification, MUST support at least the 'application/davnotify-filter+xml' filter body, but can negotiate the use of other filter bodies. 7.4. Subscription Duration Subscriptions to this event package MAY range from minutes to weeks. Subscriptions in hours or days are more typical and are RECOMMENDED. The default subscription duration for this event package is one hour. 7.5. NOTIFY Bodies Changes to the state of HTTP-based resources of interest are sent periodically in NOTIFY requests in any format acceptable to the subscriber (based on the subscriber inclusion of these formats in an Accept header). In Section 6, this package defines the 'application/ davdiff+xml' body format to carry these changes. Both subscribers and notifiers MUST implement the 'application/davdiff+xml' body format. Mahy Expires December 27, 2007 [Page 10] Internet-Draft HTTP Change Notifications via SIP June 2007 Since this package describes changes to the state of HTTP-based resources, it is possible that the notifier needs to send a NOTIFY request due solely to normal RFC 3265 [9] overhead when no changes have been made to the HTTP resources of interest. In this case, a NOTIFY request is sent with no body. 7.6. Subscriber generation of SUBSCRIBE requests The subscriber subscribes to a resource and includes a filter. It can include the summarize parameter. It can include the since- version parameter. [TODO: finish this] The subscriber can further use the 'throttle' Event header parameter defined in [12] to ask the notifier to throttle the notification rate to a specific rate. New subscribe requests establish a notification filter. Subsequent subscriptions keep the same filter unless a new filter is provided. If a new filter is provided in a subscription, it completely replaces the previous filter. Subscriber User Agents will typically SUBSCRIBE to HTTP change notification information for a period of hours or days, and automatically attempt to re-SUBSCRIBE well before the subscription is completely expired. If re-subscription fails, the Subscriber SHOULD periodically retry again until a subscription is successful, taking care to backoff to avoid network congestion. If a subscription has expired, new re-subscriptions MUST use a new Call-ID. The Subscriber MAY also explicitly fetch the current status at any time. The subscriber SHOULD renew its subscription immediately after a reboot, or when the subscriber's network connectivity has just been re-established. The Subscriber MUST be prepared to receive and process a NOTIFY with new state immediately after sending a new SUBSCRIBE, a SUBSCRIBE renewal, an unsubscribe, or a fetch; or at any time during the subscription. 7.7. Notifier Processing of SUBSCRIBE Requests When the notifier receives a SUBSCRIBE request for this event package, it first MUST authenticate and authorize the subscription request if the target HTTP resources are themselves subject to authentication. The notifier MAY authenticate subscribers even for public HTTP resources. The notifier also examines any filter body that is present and verifies that the HTTP paths requested are within its notification scope. Any paths requested which are not covered by Mahy Expires December 27, 2007 [Page 11] Internet-Draft HTTP Change Notifications via SIP June 2007 this notifier or do not yet exist are silently ignored by the notifier. If the filter contains a path to which the subscriber does not have permission to read, the notifier MAY reject the subscription with a 403 Forbidden response, as long as sending the error does not result in leaking information which would otherwise be private. If the 'since-version' Event header parameter was included in the SUBSCRIBE request, the notifier should verify that the corresponding ETag or DAV version string exists, and that the notifier can provide changes since this version. If not, the notifier rejects the request with a 412 "Conditional Request Failed" response (defined in [13]. If no specific version is requested, the notifier starts from the current version. [Editor's Note: Move this feature to the filter body so different resources can have have difference since-versions.] If present, the notifier can use the 'throttle' parameter as a hint from the client to limit notifications. If a throttle is established, the actual period is returned in the 'throttle' parameter of each Subscription-State header. 7.8. Notifier Generation of NOTIFY Requests Immediately after a subscription is accepted or refreshed, the notifier sends a NOTIFY with the changes since the specified version (if a version was specified). If there are no changes, the NOTIFY is sent with an empty body. If several atomic changes were made since the requested version, the notifier can send several of these changes at a time. If the 'summarize' parameter was requested, the notifier can consolidate atomic changes without preserving version history. The notifier is expected to throttle the rate of notifications to or below the value of any 'throttle' parameter it provided in the Subscription-State header. 7.9. Subscriber Processing of NOTIFY Requests No special requirements are introduced here. 7.10. Handling of Forked Requests This event package MUST NOT install multiple subscriptions. 7.11. Rate of notifications Notifiers SHOULD NOT generate NOTIFY requests more frequently than ten per second, nor more frequently than thirty in a thirty-second period of time. In addition, notifiers and subscribers MAY implement the notification throttling mechanism described in [12]. Mahy Expires December 27, 2007 [Page 12] Internet-Draft HTTP Change Notifications via SIP June 2007 7.12. State Agents This document does not preclude implementations from building state agents which support this event package. 7.13. Behavior of a Proxy Server There are no additional requirements on a SIP Proxy, other than to transparently forward the SUBSCRIBE and NOTIFY methods as required in SIP. 8. Formal Schemas 8.1. Filter Body Below is a Relax NG [14] schema for the change notification filter format. Mahy Expires December 27, 2007 [Page 13] Internet-Draft HTTP Change Notifications via SIP June 2007 none full patch mime 8.2. Notification Body Below is a Relax NG [14] schema for the change notification format. Mahy Expires December 27, 2007 [Page 14] Internet-Draft HTTP Change Notifications via SIP June 2007 Mahy Expires December 27, 2007 [Page 15] Internet-Draft HTTP Change Notifications via SIP June 2007 Mahy Expires December 27, 2007 [Page 16] Internet-Draft HTTP Change Notifications via SIP June 2007 9. Security Considerations The authentication and authorization policies used for this event package are implementation specific and in many implementations will be configurable. However, we can make several general comments about the security needs for this event package. Any scheme which generates notification data about about changes to HTTP resources needs to insure that it does not leak any private data that couldn't be discovered through permitted HTTP operations (for example, by periodically sending HTTP GET requests). In addition, event notifications typically require more server state and memory to manage than an individual GET request. Many HTTP resources are available for anonymous GET. Change notification for these resources may be used anonymously, or changes may only be provided for authenticated resources to prevent exhaustion of server state. For authenticated HTTP resources, the degree of care used to protect an HTTP resource likely has a direct relationship to the authentication and authorization requirements for the related SIP subscription. The following principals provide a good guideline for implementors: If authentication was required to read, implies a confidentiality requirement If authentication was required only for writes, implies only an integrity requirement Mahy Expires December 27, 2007 [Page 17] Internet-Draft HTTP Change Notifications via SIP June 2007 If an HTTP resource is only available for an operation over a Transport Layer Security (TLS) [15] protected channel, this implies server authentication of the notifier and message integrity for that operation. Below are the mandatory to implement security mechanism for nodes that implement this specification. HTTP clients MUST implement HTTP Basic and Digest authentication [16]. HTTP servers MUST implement HTTP Digest, and SHOULD implement HTTP over TLS [17] using the default HTTP ciphersuite. SIP subscribers are already required to implement SIP Digest authentication. SIP notifiers are already required to implement SIP Digest authentication, and SHOULD also implement SIP over TLS using the default SIP ciphersuite. Note that when using WebDAV, clients may take advantage of WebDAV Access Control [18] to set access control for relevant WebDAV resources. 10. IANA Considerations [TODO] 11. References 11.1. Normative References [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [2] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005. [3] Dusseault, L., "HTTP Extensions for Distributed Authoring - WebDAV", draft-ietf-webdav-rfc2518bis-18 (work in progress), February 2007. [4] Clemm, G., Amsden, J., Ellison, T., Kaler, C., and J. Whitehead, "Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning)", RFC 3253, March 2002. [5] Rosenberg, J., "The Extensible Markup Language (XML) Configuration Access Protocol (XCAP)", RFC 4825, May 2007. [6] Bray, T., Paoli, J., Sperberg-McQueen, C., and E. Maler, "Extensible Markup Language (XML) 1.0 (2nd ed)", W3C REC-xml, October 2000, . Mahy Expires December 27, 2007 [Page 18] Internet-Draft HTTP Change Notifications via SIP June 2007 [7] Clark, J. and S. DeRose, "XML Path Language (XPath) Version 1.0", W3C Recommendation xpath, November 1999, . [8] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [9] Roach, A., "Session Initiation Protocol (SIP)-Specific Event Notification", RFC 3265, June 2002. [10] Burger, E., "A Mechanism for Content Indirection in Session Initiation Protocol (SIP) Messages", RFC 4483, May 2006. [11] Urpalainen, J., "An Extensible Markup Language (XML) Patch Operations Framework Utilizing XML Path Language (XPath) Selectors", draft-ietf-simple-xml-patch-ops-02 (work in progress), March 2006. [12] Niemi, A., "Session Initiation Protocol (SIP) Event Notification Extension for Notification Throttling", draft-niemi-sipping-event-throttle-05 (work in progress), March 2007. [13] Niemi, A., "Session Initiation Protocol (SIP) Extension for Event State Publication", RFC 3903, October 2004. [14] "RELAX NG Specification", Committee Specification 3, December 2001. [15] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.1", RFC 4346, April 2006. [16] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., and L. Stewart, "HTTP Authentication: Basic and Digest Access Authentication", RFC 2617, June 1999. [17] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. [18] Clemm, G., Reschke, J., Sedlar, E., and J. Whitehead, "Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol", RFC 3744, May 2004. 11.2. Informational References [19] Rosenberg, J., "Extensible Markup Language (XML) Formats for Representing Resource Lists", RFC 4826, May 2007. Mahy Expires December 27, 2007 [Page 19] Internet-Draft HTTP Change Notifications via SIP June 2007 [20] Rosenberg, J., "Presence Authorization Rules", draft-ietf-simple-presence-rules-09 (work in progress), March 2007. [21] Rosenberg, J., "A Presence Event Package for the Session Initiation Protocol (SIP)", RFC 3856, August 2004. [22] Petrie, D. and S. Channabasappa, "A Framework for Session Initiation Protocol User Agent Profile Delivery", draft-ietf-sipping-config-framework-12 (work in progress), June 2007. [23] Petrie, D., "Extensions to the Session Initiation Protocol (SIP) User Agent Profile Delivery Change Notification Event Package for the Extensible Markup Language Language Configuration Access Protocol (XCAP)", draft-ietf-sip-xcap-config-00 (work in progress), October 2006. [24] Urpalainen, J., "An Extensible Markup Language (XML) Configuration Access Protocol (XCAP) Diff Event Package", draft-urpalainen-sip-xcap-diff-event-01 (work in progress), March 2007. [25] Whitehead, J., Clemm, G., and J. Reschke, "Web Distributed Authoring and Versioning (WebDAV) Redirect Reference Resources", RFC 4437, March 2006. Author's Address Rohan Mahy Plantronics 345 Encincal Street Santa Cruz, CA USA Email: rohan@ekabal.com Mahy Expires December 27, 2007 [Page 20] Internet-Draft HTTP Change Notifications via SIP June 2007 Full Copyright Statement Copyright (C) The IETF Trust (2007). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). Mahy Expires December 27, 2007 [Page 21]