Internet Engineering Task Force R. Mahy Internet Draft Cisco Systems Document: draft-mahy-sip-189-00.txt Nov 2000 Individual Submission Expires: Apr 2001 A SIP Extension: Informational Responses to the REFER method Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026 [1]. 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. 1. Abstract This document defines a SIP [2] extension to the REFER method [3] of the SIP Call Control Framework [4]. This extension provides for the ability to convey information about the progress of the Referred request when that request is in a provisional state for a long period of time (many seconds or minutes). 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 [2]. 3. The 189 Provisional Received response REFER is a SIP method defined in [3]. The REFER method indicates that the recipient should contact a third party using the contact information provided in the method. A success response indicates that the recipient was able to contact the third party. If the recipient's agent decides to contact the resource in the Refer-To header, a 200 OK response is returned if it the contact was successful, otherwise a 503 Service Unavailable is returned. Provisional Responses to REFER Nov 2000 Under some circumstances the sender of the REFER may have to wait many seconds or minutes before receiving a final response (for example if the requested contact was sent an INVITE which was queued). In the interim, no information about the status of the requested contact is available. The Referring UA may wish to CANCEL such a response, or complete an in-progress transfer, or simply inform the Referring user of the progress of the request. This document proposes a new informational response status-code to indicate the in-progress status of the Referred request. This document amends the grammar for informational (1xx) response status- codes as follows: Informational = _100_ ; Trying | _180_ ; Ringing | _181_ ; Call Is Being Forwarded | _182_ ; Queued | _183_ ; Session Progress | "189" ; Provisional Received 4. Usage Examples The first example shows an ordinary Attended Transfer which uses the REFER method. In the next example, the Transferring user decides not to wait for the target to answer and completes the transfer. The Transferring UA wants some confirmation that the Referred request is now in progress (ringing, queued, etc) before abandoning the call. The Transferring UA can even safely discard state for the REFER transaction at this point and silently discard the final 200 or 503 response. "Ordinary" Attended Transfer. Short conversation ensues between B and C. B completes the transfer A B C | | | | INVITE | | |---------------------------->| | | | | | 180 Ringing | | |<----------------------------| | | | | | 200 OK | | |<----------------------------| | | | | | ACK | | |---------------------------->| | | | | | 2-way media | | |<===========================>| | | | | Provisional Responses to REFER Nov 2000 | | | | reINVITE (Hold) | | |<----------------------------| | | 200 OK | | |---------------------------->| | | ACK | | |<----------------------------| | | | INVITE | | |---------------------------->| | | | | | 180 Ringing | | |<----------------------------| | | | | | 200 OK | | |<----------------------------| | | | | | ACK | | |---------------------------->| | | | | | 2-way media | | |<===========================>| | | | | REFER | | |<----------------------------| | | | | | | INVITE | |-----------------------------+---------------------------->| | | | | 200 OK (INVITE) | | |<----------------------------+-----------------------------| | | | | | ACK | |-----------------------------+---------------------------->| | | | | 2-way media | | |<=========================================================>| | | | | 200 OK (REFER) | | |---------------------------->| | | | | | BYE | | |<----------------------------| | | 200 OK | | |---------------------------->| | | | | Attended Transfer, transfer is completed while C is still ringing A B C | | | Provisional Responses to REFER Nov 2000 | INVITE | | |---------------------------->| | | | | | 180 Ringing | | |<----------------------------| | | | | | 200 OK | | |<----------------------------| | | | | | ACK | | |---------------------------->| | | | | | 2-way media | | |<===========================>| | | | | | | | | reINVITE (Hold) | | |<----------------------------| | | 200 OK | | |---------------------------->| | | ACK | | |<----------------------------| | | | INVITE | | |---------------------------->| | | | | | 180 Ringing | | |<----------------------------| | | | | | | | REFER | | |<----------------------------| | | | | | | INVITE | |-----------------------------+---------------------------->| | | | | 180 Ringing (INVITE) | | |<----------------------------+-----------------------------| | | | | 189 (Ringing) (REFER) | | |---------------------------->| | | | | | BYE | | |<----------------------------| | | 200 OK | | |---------------------------->| | | | | | | | | | | | 200 OK (INVITE) | | |<----------------------------+-----------------------------| | | | | | ACK | |-----------------------------+---------------------------->| Provisional Responses to REFER Nov 2000 | | | | 2-way media | | |<=========================================================>| | | | | 200 OK (REFER) | | |---------------------------->| | | | | Attended Transfer, call is completed in the middle of a 183 prompt. A B C | | | | INVITE | | |---------------------------->| | | | | | 180 Ringing | | |<----------------------------| | | | | | 200 OK | | |<----------------------------| | | | | | ACK | | |---------------------------->| | | | | | 2-way media | | |<===========================>| | | | | | | | | reINVITE (Hold) | | |<----------------------------| | | 200 OK | | |---------------------------->| | | ACK | | |<----------------------------| | | | INVITE | | |---------------------------->| | | | | | 183 Progress | | |<----------------------------| | | 1-way media | | |<============================| | REFER | | |<----------------------------| | | | | | | INVITE | |-----------------------------+---------------------------->| | | | | 183 Progress (INVITE) | | |<----------------------------+-----------------------------| | | | | 1-way media | | Provisional Responses to REFER Nov 2000 |<==========================================================| | | | | 189 (Progress) (REFER) | | |---------------------------->| | | | | | BYE | | |<----------------------------| | | 200 OK | | |---------------------------->| | | | | | | | | | | | 200 OK (INVITE) | | |<----------------------------+-----------------------------| | | | | | ACK | |-----------------------------+---------------------------->| | | | | 2-way media | | |<=========================================================>| | | | | 200 OK (REFER) | | |---------------------------->| | | | | Below is an example call flow using a Dialer application. The Referred request is forwarded and queued for a considerable period of time before returning success. Dialer A B | | | | REFER | | |---------------------------->| | | | INVITE | | |---------------------------->| | | | | | 180 Ringing | | 189 (Ringing) |<----------------------------| |<----------------------------| | | | 182 Forwarding | | 189 (Forwarding) |<----------------------------| |<----------------------------| | | | 181 Queued | | 189 (Queued) |<----------------------------| |<----------------------------| 1-way media | | |<============================| | | | | | 181 Queued | | 189 (Queued) |<----------------------------| |<----------------------------| 181 Queued | | 189 (Queued) |<----------------------------| |<----------------------------| | Provisional Responses to REFER Nov 2000 | | | | | | | | 183 Progress | | 189 (Progress) |<----------------------------| |<----------------------------| new 1-way media | | |<============================| | | | | | 200 OK | | 200 OK |<----------------------------| |<----------------------------| 2-way media | | |<===========================>| | | | | | | | | | | | | | REFER | | |---------------------------->| | | | BYE | | |---------------------------->| | | 200 OK | | |<----------------------------| | 200 OK | | |<----------------------------| | | | | | | | In this second example, the Dialer's REFER triggers an INVITE which is forked. The first contact rings and then declines the call while the second contact attempt fails. Again the Dialer waits for seconds or minutes before it receives a final response. Dialer A B C D | REFER | | | | |-------->| INVITE | | | | |--------->| | | | | 302 (try C or D) | | | |<---------| | | | | ACK | | | | |--------->| INVITE | | | |------------------------>| | | 189 | | 180 Ringing | | |(Ringing)|<------------------------| | |<--------| | 603 Declined| | | |<------------------------| | | | | | INVITE | | |------------------------------------>| | | | | 401 Who are you? | |<------------------------------------| | | | | ACK | | |------------------------------------>| Provisional Responses to REFER Nov 2000 | | | | INVITE | | |------------------------------------>| | 189 | | | 182 Queued| |(Queued) |<------------------------------------| |<--------| | | 502 Bad Gateway | |<------------------------------------| | | | | ACK | | 503 |------------------------------------>| |<--------| | | | | | | | | 5. Behavior of the Referring UA A Referring UA which does not support this extension MUST silently ignore the 189 response code. A Referring UA which implements this extension MAY present this information to the user of the device or use this information for additional processing. 6. Behavior of the Referred UA When a UA sends an INVITE request as a result of a REFER request, it MUST summarize the INVITE response codes and return the summarized responses to the Referring UA. The Referred UA which supports this extension SHOULD send the Referring UA a 189 Provisional Received response when it receives provisional responses to its Referred INVITE. It SHOULD include the SIP headers of the triggering provisional response in the body of the response (encoded using the application/sip MIME type). It MAY include additional information in the response. It SHOULD NOT include any session descriptions that are present in the triggering provisional response, as this might unintentionally reveal potentially private information. 7. Behavior of Proxy Servers As with most other responses, Proxy servers MUST forward this response back the UA which originated the matching REFER. 8. Security Considerations The 189 Provisional Received response may unintentionally reveal potentially private information about the involved parties. Provisional Responses to REFER Nov 2000 9. References 1 Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996. 2 Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997 [1] S Bradner, "The Internet Standards Process -- Revision 3", RFC2026 (BCP), IETF, October 1996. [2] M. Handley, E. Schooler, and H. Schulzrinne, "SIP: Session Initiation Protocol", RFC2543, Internet Engineering Task Force, Nov 1998. [3] R. Sparks, "SIP Call Control Transfer", Internet Draft , Internet Engineering Task Force, September 2000. Work in progress. [4] B. Campbell, "Framework for SIP Call Control Extensions", Internet Draft , Internet Engineering Task Force, March 2000. Work in Progress. 10. Acknowledgments Thanks to Robert Sparks for several ideas regarding this draft. 11. Author's Addresses Rohan Mahy Cisco Systems 170 W Tasman Dr MS: I/2/3 Phone: +1 408 526 8570 Email: rohan@cisco.com Provisional Responses to REFER Nov 2000 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