draft-mahy-sip-189
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
<draft-ietf-sip-cc-transfer-01.txt>, Internet Engineering Task
Force, September 2000. Work in progress.
[4] B. Campbell, "Framework for SIP Call Control Extensions",
Internet Draft <draft-ietf-sip-cc-framework-00.txt>,
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