SIP Working Group W. Marshall Internet Draft K. Ramakrishnan Document: AT&T Category: Informational E. Miller G. Russell CableLabs B. Beser M. Mannette K. Steinbrenner 3Com D. Oran Cisco J. Pickens Com21 P. Lalwaney J. Fellows General Instrument D. Evans Lucent Cable K. Kelly NetSpeak F. Andreasen Telcordia October, 1999 SIP Extensions for supporting Distributed Call State Status of this Memo This document is an Internet-Draft and is NOT offered in accordance with Section 10 of RFC2026[1], and the author does not provide the IETF with any rights other than to publish as an Internet-Draft. 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." DCS Group Internet Draft - Expiration 04/30/00 1 SIP Extensions for Distributed Call State October 1999 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. The distribution of this memo is unlimited. It is filed as , and expires April 30, 2000. Please send comments to the authors. 1. Abstract This document describes extensions to the Session Initiation Protocol RFC(2543) for supporting telephony services using the Distributed Call Signaling architecture described in [2]. This document discusses the semantics associated with the user parameter in the SIP URL for supporting a call signaling architecture where call state is distributed to the clients during call setup and stored there for the duration of the call while the proxy server remains stateless. Additional headers in SIP messages for passing call state information between the clients and their proxies, and support for PSTN-based operator services are also discussed in this document. In addition, the need for the Also and Replaces headers (previously discussed in [3]) are mentioned here. 2. Conventions used in this document 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 [4]. 3. Introduction The Distributed call signaling (DCS) architecture provides signaling support for creating a session using a two-phase signaling scheme so that call state is distributed to the clients and network resources reserved prior to alerting the called party. The SIP proxy server in the DCS architecture is referred to as a DCS-Proxy. The SIP user agent is referred to as a client or endpoint. From a call signaling perspective, the DCS Proxies are involved in setting up a call. All requests from clients that affect the characteristic of a call are sent to the DCS-Proxy. During a successful call setup, call state and the associated billing information is encrypted by the proxies and sent to the clients using the proposed "State" header. This is sent in the initial INVITE to the "called" client (and in the 200 OK to the "calling" client/caller. The DCS-Proxy in effect, transfers call state to the DCS Group Internet Draft - Expiration 04/30/00 2 SIP Extensions for Distributed Call State October 1999 clients and other network entities during the call-setup phase and then remains stateless for the duration of the call. If the client wishes to change call characteristics (e.g. invoke calling features like forwarding, call transfer etc.), it passes the encrypted state information in the SIP INVITE request to its proxy server. We propose the use of the "private=" token in the user field of the SIP URL to indicates that "token" can only be interpreted by the DCS-Proxy. The semantics of the telephony subscriber URL and associated user-param values to support number identification and portability are discussed in Section 4.1. The OSPS (Operator Services Provisioning System) header is proposed for supporting PSTN based operator services of "Busy-Line-Verify" and "Emergency Interrupt". The response of the client (in an active call) to a SIP INVITE that includes this header is not to return busy to the PSTN media gateway (and thereby the operator) that initiated this request. The Distributed Call Signaling Architecture uses the Also and Replaces headers for implementing call transfers. The addition of parties referenced in the Also header and the removal of parties referenced in the Replaces header are used for implementing services that require the addition and removal of call-legs to an existing call. 4. SIP Extensions In this section, we propose the SIP extensions to address the issues identified in the Introduction. The following syntax specification uses the augmented Backus-Naur Form (BNF) as described in RFC-2234 [5]. 4.1 SIP URL Extensions The distributed call signaling protocol defines the semantics of the user field of the SIP-URL and refers to such as a DCS-URL. These URLs MUST be in accordance with SIP version 2 section 2, Figure 2 of RFC-2543. The DCS protocol defines the SIP-URL 'user' syntax to allow endpoints to be identified by an encrypted string that may be decrypted only by the DCS proxy. This allows end-point address information and billing information to be encrypted, stored in client devices, then later delivered to a trusted DCS proxy in support of CLASS features such as 3-way-calling, call-trace and return-call. Additionally, the DCS protocol defines the SIP-URL DCS Group Internet Draft - Expiration 04/30/00 3 SIP Extensions for Distributed Call State October 1999 'user' syntax to allow endpoints to be identified by phone numbers augmented with additional parameters. This allows DCS proxies to support local number portability (LNP) location services. The user syntax for a DCS-URL in BNF is shown below. User = telephone-subscriber *("," dcs-user-param) | dcs-user-param *("," dcs-user-param) | *(unreserved | escaped | "&" | "=" | "+" | "$" | ",") telephone-subscriber = global-phone-number | local-phone-number | special-service-name dcs-user-param = lnp-param | private-param | other-param lnp-param = "lnp=" token private-param = "private=" token special-service-name = "return-call" | "call-trace" |"bridge" A standard SIP parser will accept this definition as a valid username. The user-param "user=ip" is optional and may be included when the destination is identified using hostname or IPv4address syntax. Therefore, the DCS-URL "sip: John Doe" is equivalent to DCS-URL "sip:John Doe;user=ip". When a DCS-URL includes the user-param "user=phone", the user field MUST contain an ITU recommendation E.164 phone number and MUST use DCS-URL telephone-subscriber syntax. An example of a valid DCS-URL containing the user-param "user=phone" is: sip:212.555.1212@dcs-proxy.provider;user=phone When a DCS-URL includes the lnp-param, the user field MUST contain an ITU recommendation E.164 phone number, and user-param MUST include user=phone. An example of a DCS-URL containing the lnp- param is: sip:212-555-1212,lnp=212-234@dcsproxy.provider;user=phone When a DCS-URL includes the private-param, the token in the private- param MUST be a string encrypted by the DCS Proxy using its private key. An example of a DCS-URL containing the private-param is: sip: return-call,private=x419d2b70a3@dcsproxy.provider DCS Group Internet Draft - Expiration 04/30/00 4 SIP Extensions for Distributed Call State October 1999 4.2 State The State extension conveys encrypted state information between a Proxy and a client. This state information allows the Proxy to reliably and securely store state information in the client that may be needed for subsequent feature invocation, allowing the Proxy to remain stateless. State = "State" ":" token The State field is an alphanumeric (starting with alphabetic only) string that is syntactically identical to a token. It is an encoding of an encrypted structure containing multiple pieces of information needed by the proxy to perform various mid-call features. The encrypted structure is returned from the client to the Proxy for various call services, such as return-call, call- trace, call-forwarding-no-answer, etc. The State field typically includes but is not limited to the following information: the calling and called party address information, the indication of privacy requested, optional billing information, sequence of via's and calling party id, for support of call-trace and return-call. This information is encrypted and signed by the proxy. The State header field discussed in this section should not be confused with HTTP1.1 Cookies as described in [6]. The intended use of the two is very different. HTTP uses the Cookie for "state" management, or as a handle to pass session context change from server to client where the server is the other endpoint of the session. On the otherhand, the State header is sent by the SIP proxy to the client so that call state can be securely stored at the endpoint making the associated proxy "stateless" during the call. The state header can be considered to be a handle to request session change by the endpoint from its proxy. In addition, there are no attribute value pairs associated with the state header as in the Cookie that clients make use of. 4.3 OSPS Operator services support for Busy line verification (BLV) and Emergency interrupt(EI) services initiated by an operator on the PSTN network motivates the need for the OSPS header. This header is intended to be used in SIP INVITE messages from the PSTN gateway to the client being queried or interrupted. The tag values permitted in this header are "BLV" for busy line verification and "EI" for emergency interrupt. OSPS = "OSPS" ":" OSPS-Tag DCS Group Internet Draft - Expiration 04/30/00 5 SIP Extensions for Distributed Call State October 1999 OSPS-Tag = "BLV" | "EI" The response of the client to an INVITE with this header is not to return busy. 4.4 Also The Also header is required for adding new participants to an existing call. Its functionality is described in the SIP Call Control Services draft [3]. It is discussed here for completeness and is required to realize many services in the DCS architecture. The Also header advises the recipient to issue INVITE requests to the addresses listed in the header. Also = "Also" ":" SIP-URL *[ "," SIP-URL] The URL extensions discussed in Section 4.1 are permitted in the Also header. If a client receives an INVITE with an Also header that includes a URL tagged with private=, it SHOULD send the INVITE for the new call-leg to its DCS-Proxy with the Request-URI copied from the Also header of the received INVITE request. 4.5 Replaces The Replaces header is required for removing participants from an existing call. Its functionality was originally described in the expired SIP Call Control Services draft [3]. It is discussed here for completeness and is required to realize many services in the DCS architecture. The Replaces extension asks the recipient to issue a BYE to the addresses listed. Replaces = "Replaces" ":" SIP-URL *[ "," SIP-URL] As with the Also header, the URL extensions discussed in Section 4.1 are permitted in the Replaces header. 5. Security Considerations The clients are untrusted entities in the DCS architecture. The contents of all headers tagged as "private" are verified by DCS- Proxies. DCS-Proxies are responsible for verifying the contents and consistency of the headers and extended URL's discussed in this document. 6. References DCS Group Internet Draft - Expiration 04/30/00 6 SIP Extensions for Distributed Call State October 1999 1. Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996. 2 DCS Group, "Architectural Considerations for Providing Carrier Class Telephony Services Utilizing SIP-based Distributed Call Control Mechanisms", draft-dcsgroup-sip-arch-01.txt, October 1999. 3 Schulzrinne, H and Rosenberg, J, SIP Call Control Services, draft-ietf-mmusic-sip-cc-01.txt, June 1999, expires December 1999. 4 Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997 5 Crocker, D. and Overell, P.(Editors), "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, Internet Mail Consortium and Demon Internet Ltd., November 1997 6 K r i s t ol, D. and Montulli, L. ," HTTP State Management Mechanism", RFC 2109, February 1997.See current working draft modified by the same authors based on field implementation feedback. 7. Acknowledgments The Distributed Call Signaling work in the PacketCable project is the work of a large number of people, representing many different companies. The authors would like to recognize and thank the following for their assistance: John Wheeler, Motorola; David Boardman, Daniel Paul, Arris Interactive; Bill Blum, Jon Fellows, Jay Strater, Jeff Ollis, Clive Holborow, General Instruments; Doug Newlin, Guido Schuster, Ikhlaq Sidhu, 3Com; Jiri Matousek, Bay Networks; Farzi Khazai, Nortel; John Chapman, Bill Guckel, Michael Ramalho, Cisco; and Chuck Kalmanek, Doug Nortz, John Lawser, James Cheng, Tung-Hai Hsiao, and Partho Mishra, AT&T. 8. Author's Addresses Bill Marshall AT&T Florham Park, NJ 07932 Email: wtm@research.att.com K. K. Ramakrishnan AT&T Florham Park, NJ 07932 Email: kkrama@research.att.com DCS Group Internet Draft - Expiration 04/30/00 7 SIP Extensions for Distributed Call State June 1999 Ed Miller CableLabs Louisville, CO 80027 Email: E.Miller@Cablelabs.com Glenn Russell CableLabs Louisville, CO 80027 Email: G.Russell@Cablelabs.com Burcak Beser 3Com Rolling Meadows, IL 60008 Email: Burcak_Beser@3com.com Mike Mannette 3Com Rolling Meadows, IL 60008 Email: Michael_Mannette@3com.com Kurt Steinbrenner 3Com Rolling Meadows, IL 60008 Email: Kurt_Steinbrenner@3com.com Dave Oran Cisco Acton, MA 01720 Email: oran@cisco.com John Pickens Com21 San Jose, CA Email: jpickens@com21.com Poornima Lalwaney General Instrument San Diego, CA 92121 Email: plalwaney@gi.com Jon Fellows General Instrument San Diego, CA 92121 Email: jfellows@gi.com Doc Evans Lucent Cable Communications Westminster, CO 30120 Email: n7dr@lucent.com Keith Kelly NetSpeak DCS Group Internet Draft - Expiration 04/30/00 8 SIP Extensions for Distributed Call State June 1999 Boca Raton, FL 33587 Email: keith@netspeak.com Flemming Andreasen Telcordia Piscataway, NJ Email: fandreas@telcordia.com DCS Group Internet Draft - Expiration 04/30/00 9 SIP Extensions for Distributed Call State June 1999 Full Copyright Statement "Copyright (C) The Internet Society (date). 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 implmentation 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." Expiration Date This memo is filed as , and expires April 30, 2000. DCS Group Internet Draft - Expiration 04/30/00 10