Network Working Group S. Donovan Internet-Draft dynamicsoft Expires: March 6, 2002 September 5, 2001 Requirements for Publication of SIP related service data draft-donovan-publish-requirements-00.txt Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. 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 March 6, 2002. Copyright Notice Copyright (C) The Internet Society (2001). All Rights Reserved. Abstract This document defines the requirements for a proposed extension to the Session Initiation Protocol [1]. This extension would provide a general-purpose mechanism for uploading service related data. For instance, there is currently the need to upload or publish CPL to SIP Proxies and presence documents to SIP Presence Servers. This document does NOT outline an extension to SIP to handle these requirements. The author is attempting to follow the guidelines that requirements should be defined and agreed to before work on the an extension begins. Donovan Expires March 6, 2002 [Page 1] Internet-Draft SIP Publication Requirements September 2001 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Why SIP? . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4. Why not SIP? . . . . . . . . . . . . . . . . . . . . . . . . . 4 5. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 5 5.1 Publication Data Requirements . . . . . . . . . . . . . . . . 5 5.2 Authentication and Authorization Requirements . . . . . . . . 5 5.3 Data Handling Requirements . . . . . . . . . . . . . . . . . . 5 5.4 Privacy Requirements . . . . . . . . . . . . . . . . . . . . . 6 5.5 Error Cases . . . . . . . . . . . . . . . . . . . . . . . . . 6 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 References . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Author's Address . . . . . . . . . . . . . . . . . . . . . . . 7 Full Copyright Statement . . . . . . . . . . . . . . . . . . . 8 Donovan Expires March 6, 2002 [Page 2] Internet-Draft SIP Publication Requirements September 2001 1. Introduction This document defines the requirements for a proposed extension to the Session Initiation Protocol [1]. This extension would provide for a general-purpose mechanism for uploading service related data. For instance, there is currently the need to upload or publish CPL to SIP Proxies and presence documents to SIP Presence Servers. Note that CPL is currently uploaded using the SIP REGISTER request. It is thought that the REGISTER request, which was designed specifically for publishing Contacts which are in turn used to control routing of SIP requests, is not sufficiently general purpose to handle the uploading of generic service related data. For instance, there is currently no clean mechanism for reporting on the failure to upload CPL while the registration of Contacts is successful. While this draft proposes that the solution to the requirements outlined in this document should be based on SIP, it is recognized that there is currently no consensus that SIP is the correct protocol to be used for the generic publishing of service related data. If there is consensus that something other than SIP should be used, then the requirements in this document still apply to whatever solution is selected. 2. Motivation There are various situations where SIP clients need the ability to supply service related information to SIP servers in order for the services supplied by the SIP servers to operate properly. The following are two well understood examples: o Call Processing Language - Clients load Call Processing Language (CPL) scripts to SIP Proxies. The SIP Proxies then use the CPL scripts to control the routing of subsequent SIP requests. o Presence Documents - Clients load Presence Documents to Presence Servers. The Presence Servers then use the presence documents when notifying watchers of the clients presence state. It is felt that there is the need for a general-purpose mechanism for uploading of SIP service information. Furthermore, it is felt that the SIP REGISTER request is NOT the appropriate mechanism for handing this loading of SIP service information. The semantics of the REGISTER request are tightly coupled with the handling of the contacts contained in the REGISTER request. There is not a clean way to define handling of other service data without also effecting the Donovan Expires March 6, 2002 [Page 3] Internet-Draft SIP Publication Requirements September 2001 handling of REGISTERed contacts. 3. Why SIP? It is valid to ask why the loading of service data should be defined using the SIP protocol. The primary reason for basing it on SIP is that both of the user's of the information, the SIP client that creates it and the SIP server that consumes it, already have SIP implementations running on them. In addition, it might not be easy to put another protocol engine on these devices, especially SIP phones. The other possible reason to base it on SIP is that there is not necessarily a clear mapping between the address of a SIP server that would handle the publication of a CPL script and the address of another protocol's server. As such, there will be additional configuration complexity in the client associated with the ability to send the message to a different server. It can also be argued that SIP already supports a publication mechanism in the REGISTER request. The only problem is that the REGISTER request is not a general-purpose publication mechanism. So all that is being proposed is a generalization of something that is already in SIP (although this draft does NOT propose deprecating the use of REGISTER for the original purpose of associating contacts with a SIP url). 4. Why not SIP? It is fairly easy to model the publication of SIP service information as an HTTP PUT operation. In fact, the draft "Guidelines for Authors of SIP Extensions" [2] explicitly says: "SIP is not a transfer protocol. It is not meant to send large amounts of data unrelated to SIPs operation. It is not meant as a replacement for HTTP..." However, the same draft also says that REGISTER is an exception to this rule, and this draft proposes a generalization of the REGISTER function. In addition, the data being published is clearly related to SIPs operation. This draft does NOT propose that this mechanism apply to any and all uploads of data. Donovan Expires March 6, 2002 [Page 4] Internet-Draft SIP Publication Requirements September 2001 5. Requirements This section contains the requirements for the proposed SIP extension. 5.1 Publication Data Requirements The extension MUST support the ability to carry arbitrary message bodies, here-after called publication data. The extension MUST support the ability to associate publication data contained in a message body with a service. For instance, presence and cpl are services. The extension MUST support the ability to identify the format/encoding of the publication data. 5.2 Authentication and Authorization Requirements The extension MUST support the ability to identify the user to which the publication data applies. The extension MUST support the ability to authenticate the source of the publication requests. The extension MUST support the ability to determine the authorization of the source of the publication request to publish data for the user effected by the publication data. The extension MUST support the ability for the user determined to be the source of the publication request to be different than the user determined to be the target of the publication request. Another way of saying this it that the third party registration concept currently supported for registrations must also be supported for publications. 5.3 Data Handling Requirements The extension MUST support the ability to treat the published data as hard state. CPL is an example of data that would be treated as hard state. As such, it should not have an expiration period applied to it and it is kept in place until it is replaced or explicitly removed. The extension MUST support the ability to treat the published data Donovan Expires March 6, 2002 [Page 5] Internet-Draft SIP Publication Requirements September 2001 as soft state. As such, the extension MUST support the ability to associate an expiration time with a message body. There are times that a presence document could be considered to be soft state, with the explicit requirement that there is an explicit period of time that the presence document is valid. If this is the case then the presentity publishing the data would be required to refresh the publication in order to keep it in effect. The extension MUST support the ability to query or retrieve publication data associated with a service. The extension MUST support the ability to define a desired action to be taken on the published data. Example actions are replace, remove, append and merge. Each service that uses the publication capability must define the actions that apply to that service. The extension MUST allow for the list of actions to be extensible. Note: It is not clear that the action to be taken should be part of the extension or should be a part of the message body containing the publication data. Making it a part of the message body makes it a service/application specific definition, which might make for a cleaner separation from the publication extension and the service to which the publication is targeted. 5.4 Privacy Requirements The extension MUST support the ability to encrypt the publication data. The extension MUST support the ability for the response to unauthorized requests to hide the fact that the source user is not authorized to publish for the target user. It is anticipated that there will be cases where returning a response indicating that the source user is not authorized will supply information about either the server or the target user of the server that could enable attacks on one or the other. As such, it is envisioned that a generic "accepted" response, that can be differentiated from "successful" and "unauthorized", would be useful in this case 5.5 Error Cases The extension MUST support the ability to reject the publication request when the contents of the publication data are malformed or erroneous. Donovan Expires March 6, 2002 [Page 6] Internet-Draft SIP Publication Requirements September 2001 The extension MUST support the ability to reject the publication request because the source user is not authorized to access the particular service. This rejection should indicate the services that the server supports. The extension MUST support the ability to reject the publication request because the source is not allowed to publish data for the target user. The extension MUST support the ability to reject the publication request because the target user is not known to the server. The extension MUST support the ability to reject the publication because the type of the indicated service is not supported. This rejection should indicate the services that the server supports. The extension MUST support the ability to reject the publication because the type of the data is not supported. This rejection should indicate the services for which publication is allowed. The extension MUST support the ability to reject the publication because the operation (replace, remove, append and merge) is not permitted for the particular service. 6. Security Considerations The security considerations are addressed in the Authentication, Authorization and Privacy requirements. References [1] Handley, M., Schulzrinne, H., Schooler, E. and J. Rosenberg, "The Session Initiation Protocol", RFC 2543, March 1999. [2] Rosenberg, J. and H. Schulzrinne, "Guidelines for Authors of SIP Extensions", RFC Guidelines, March 2001. Author's Address Steven R. Donovan dynamicsoft 5100 Tennyson Parkway Suite 1200 Plano, TX 75025 US EMail: sdonovan@dynamicsoft.com Donovan Expires March 6, 2002 [Page 7] Internet-Draft SIP Publication Requirements September 2001 Full Copyright Statement Copyright (C) The Internet Society (2001). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS 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. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Donovan Expires March 6, 2002 [Page 8]