SIPPING WG C. Jennings Internet-Draft Cisco Systems, Inc. Expires: August 7, 2004 February 7, 2004 Updating the Connected Party in SIP draft-jennings-sipping-connected-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 August 7, 2004. Copyright Notice Copyright (C) The Internet Society (2004). All Rights Reserved. Abstract Communication systems often have situations in which the party at the far end of the call changes, making it necessary to have a way to notify the near end of the new identity at the far end. This draft discusses ways to update this "connected party" information in SIP. This work is being discussed on the sipping@ietf.org mailing list. Jennings Expires August 7, 2004 [Page 1] Internet-Draft SIP Connected Party February 2004 Table of Contents 1. Conventions and Definitions . . . . . . . . . . . . . . . . . 3 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3.1 Connected UAS or UAC Updated . . . . . . . . . . . . . . . . . 3 3.2 Early UAC Updated . . . . . . . . . . . . . . . . . . . . . . 3 3.3 Early UAS Updated . . . . . . . . . . . . . . . . . . . . . . 4 4. Solutions Using Transfer Mechanisms . . . . . . . . . . . . . 4 4.1 Connected UAS or UAC Updated . . . . . . . . . . . . . . . . . 4 4.2 Early UAC Updated . . . . . . . . . . . . . . . . . . . . . . 4 4.3 Early UAS Updated . . . . . . . . . . . . . . . . . . . . . . 5 5. Solutions Based on UPDATE . . . . . . . . . . . . . . . . . . 5 6. Why PAI is Useless . . . . . . . . . . . . . . . . . . . . . . 6 7. Recommendations . . . . . . . . . . . . . . . . . . . . . . . 7 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 7 Normative References . . . . . . . . . . . . . . . . . . . . . 7 Informative References . . . . . . . . . . . . . . . . . . . . 7 Author's Address . . . . . . . . . . . . . . . . . . . . . . . 8 Intellectual Property and Copyright Statements . . . . . . . . 9 Jennings Expires August 7, 2004 [Page 2] Internet-Draft SIP Connected Party February 2004 1. Conventions and Definitions 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 [6]. 2. Introduction SIP[5] initiates sessions but it also provides information on the identities of the parties at both ends of a session. This is necessary as users find it very desirable for knowing how to deal with the communications that SIP is initiating. As a call proceeds, these identities may change. This can happen for many reasons: calls are forwarded, calls are parked and picked up, calls are transferred, calls are queued to be picked up by a pool of agents, and so on. The use cases here are split into two categories: where the identity change happens in an early dialog or a connected call, or where the callee's or the caller's identity changes. How the identity of the called party is provided to the caller is not well defined in SIP. This is early work discussing the problems and looking at possible solutions to this problem. It needs considerable work and consideration for how the approach would interact with existing systems. It is being discussed on the sipping@ietf.org mailing list. 3. Use Cases Identity information often contains both a human readable name and a network address such as a phone number or SIP URL. 3.1 Connected UAS or UAC Updated The classic case is when Alice calls Bob who forwarded to Charlie who answers the phone. Alice would like to know she is talking to Charlie not Bob. These cases do not involve early dialogs. Since the call has been established, the use cases are symmetrical. Either the UAS or UAC could need to be updated in any of these cases. The classic case is when a call is transferred. The UAS has originally answered the call with the identity Help Desk but wishes to change it, mid-call, to Alice. 3.2 Early UAC Updated In a typical example, phone A rings but user B remotely picks up the Jennings Expires August 7, 2004 [Page 3] Internet-Draft SIP Connected Party February 2004 ringing phone from a different one. Call queuing in an ACD is another example. The call may initially be queued for the "Help Desk" but later be moved to ring Bob's phone. It should be noted that the history requirements[9] cover this case. 3.3 Early UAS Updated First, Alan dials Charlie on behalf of another user, Bob in this case. While Charlie's phone is ringing, Alan steps out of the call and lets Bob talk to Charlie. 4. Solutions Using Transfer Mechanisms Many of these use cases seem to come up because there is a B2BUA involved. This B2BUA may be acting as a call control system or it may be a PSTN inter-working GW which is effectively a B2BUA with the PSTN connecting the two UAs that form the B2BUA. It's fine to have a B2BUA connected to a P2P system; however, the whole design of the B2BUA concept in SIP is to make B2BUA just look like a valid peer to the P2P system. These solutions are derived by looking at what would happen if approximately the same functionality were done in a P2P system, and looking at signaling from the point of view of the UA that is receiving the updated identity. 4.1 Connected UAS or UAC Updated When A is in a connected call with B and B wishes to update the identity that A sees to C, this is the same from A's point of view as B transferring the call to C. In this case the identity can be updated by sending a new INVITE to A with the From set to C and including a replaces header to indicate it replaces the original call. This approach may have bad interaction with who gets billed. 4.2 Early UAC Updated Here the UAS wishes to change its identity and update the UAC. The UAS sends back a new early dialog with the new identity. From the UAC point of view, this looks like the call to a UAS that forked to form a new early dialog with a different UAS. This might have bad interactions with early media. Trying to solve this the same way as the when the UAC is connected Jennings Expires August 7, 2004 [Page 4] Internet-Draft SIP Connected Party February 2004 does not work because the new INVITE with the replaces results in a completely wrong view about which UA is in the ringing state and which is already off hook. 4.3 Early UAS Updated Here the UAC wishes to change its identity and update it on all the UASs that it has forked to while it had an outstanding INVITE. The transfer issues draft [3] clearly points out that the UAS is a moving target due to forking with the "Consultative Turned Blind" issues. Changing the identity of UAC complicates this even further because the routing of the invite may have been dependent on the identity of the UAS. For example, calls from Private may go straight to voice mail while calls from Boss get forked to office phone and cell phone. It is probable that whatever solution is chosen to deal with the "Consultative Turned Blind" problem in [3] can also be used to update identity in this scenario. The recommendation here is to hold off on defining something special for identity updates until the solution for the transfer issues problem is resolved. The idea of sending a new INVITE with replaces, waiting a little while, and then sending a CANCEL to the original INVITE has been suggested. This fails in the case where the call is to the PSTN and forks to a different gateway. 5. Solutions Based on UPDATE User agents could send UPDATE requests that do not contain SDP, but do change the To and From headers. The tags in the To or From headers would not be changed. Any UPDATES received by an RFC 2543 [10] system would fail to match the transaction due to the changed To or From. This would not result in the call failing but would only result in the identity failing to be displayed correctly. Changing the To and From headers was contemplated in Section 12.2.1.1 of RFC 3261 which says "Usage of the URI from the To and From fields in the original request within subsequent requests is done for backwards compatibility with RFC 2543, which used the URI for dialog identification. In this specification, only the tags are used for dialog identification. It is expected that mandatory reflection of the original To and From URI in mid-dialog requests will be deprecated in a subsequent revision of this specification." As an alternative to changing the To and From headers, a new Name header could be created that represents the identity of the sender of the message. Jennings Expires August 7, 2004 [Page 5] Internet-Draft SIP Connected Party February 2004 The biggest problem with these approaches is that they make it very hard to apply new policy to the call if the user's identity changes. Consider the example above. The identity of the caller determines where the call is forked; with this approach, the system would not change where the call was being forked if the identity of the caller changed. Another issue is how this interacts with outstanding UPDATES that are being used for offer/answer negotiation. 6. Why PAI is Useless PAI, described in RFC 3325 [4], was designed to work in very limited trust domains. It is primarily useful when a UAC wishes its identity to be anonymous to the UAS but the intermediate trust domain needs to know the UAC's identity for legal call trace reasons. There are no legal call trace requirements of this type from the UAS to the UAC. If the UAS wishes to change its identity to Anonymous, there is no need to carry the real identity along. It is important to understand this: the requirement solved by PAI is asymmetrical and does not apply in the backwards direction. The requirements driving the work in this document are about informing the party at the far end of the call of a changed identity. PAI will never work for this. The fundamental requirement for PAI is that as the PAI crosses from one trust domain A to the next trust domain B, the next trust domain B must discard it unless it can independently verify it. This is so because if B passes it to any other element even inside its trust domain, those elements will assume the PAI is true even though B does not know this to be true. The end user device that is capable of displaying the PAI information is never in the same trust domain as the network elements, so it must discard this information as it comes in. RFC 3325 specifically says "However, if a User Agent Server receives a message from a previous element that it does not trust, it MUST NOT use the P-Asserted-Identity header field in any way." A UAS that sits in the user's hand is not going to be trusted by the "network" trust domain. Trust domains are symmetrical - you cannot have a trust domain in which the phone trusts the network but the network does not trust the phone. To summarize, given two trust domains A and B, even if you passed the PAI around in responses in A, as soon as it got passed to B, it would be discarded or unusable. If it got passed in a response to a proxy in B, 3325 says that "the proxy MUST authenticate the originator of the message" which of course the proxy cannot do for a response, so it would have to drop the PAI. There is no use case in which the UA producing the PAI and the UA that could display a PAI to an end user Jennings Expires August 7, 2004 [Page 6] Internet-Draft SIP Connected Party February 2004 are in the same trust domain. A new header, like Name, could be defined as described in Section 5 but PAI is not useful for this. 7. Recommendations Deprecating forking and early media do not seem feasible. The early unattended transfer problem has been floating around for a long time with no good solution. Using UPDATE or some new method to update connected party information after a dialog is formed seems very appealing. This name could be in a changed To or From header or in a new header. This same approach could be used when the caller identity changed in an early dialog. History seem like a good approach for coping with the ever changing identity of various UASs during early dialogs. 8. Acknowledgments Thanks to Randy Baird and Rohan Mahy. Normative References [1] Sparks, R., "The SIP Referred-By Mechanism", draft-ietf-sip-referredby-03 (work in progress), August 2003. [2] Biggs, B., Dean, R. and R. Mahy, "The Session Inititation Protocol (SIP) 'Replaces' Header", draft-ietf-sip-replaces-04 (work in progress), August 2003. [3] Petrie, D., "SIP Transfer Issues", draft-petrie-sipping-xfer-issues-00 (work in progress), October 2003. [4] Jennings, C., Peterson, J. and M. Watson, "Private Extensions to the Session Initiation Protocol (SIP) for Asserted Identity within Trusted Networks", RFC 3325, November 2002. [5] 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. [6] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. Informative References [7] Elwell, J., "Interworking between SIP and QSIG", draft-ietf-sipping-qsig2sip-02 (work in progress), August 2003. Jennings Expires August 7, 2004 [Page 7] Internet-Draft SIP Connected Party February 2004 [8] Venkataramanan, V., "Enhancements to Asserted Identity to Enable Called Party Name Delivery using SIP", draft-venkatar-sipping-called-name-00 (work in progress), June 2003. [9] Barnes, M., "SIP Generic Request History Capability Ãû Requirements", draft-ietf-sipping-req-history-04 (work in progress), June 2003. [10] Handley, M., Schulzrinne, H., Schooler, E. and J. Rosenberg, "SIP: Session Initiation Protocol", RFC 2543, March 1999. Author's Address Cullen Jennings Cisco Systems, Inc. 170 West Tasman Dr. MS: SJC-21/2 San Jose, CA 95134 USA Phone: +1 408 902 3341 EMail: fluffy@cisco.com Jennings Expires August 7, 2004 [Page 8] Internet-Draft SIP Connected Party February 2004 Intellectual Property Statement The IETF takes no position regarding the validity or scope of any intellectual property 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; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication 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 implementors or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director. Full Copyright Statement Copyright (C) The Internet Society (2004). 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 assignees. 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 Jennings Expires August 7, 2004 [Page 9] Internet-Draft SIP Connected Party February 2004 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. Jennings Expires August 7, 2004 [Page 10]