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