DISPATCH Working Group                                    Amardeep Sinha
Internet Draft                                            Subhrajyoti De
Intended Status: Informational                         Sunil Kumar Sinha
Expires: October 1, 2012                             Manjunath Hanchinal
                                                           April 2, 2012


  The Continue Header Field for the Session Initiation Protocol (SIP)
          draft-sinha-dispatch-sip-continuation-option-03.txt

Abstract

   Before placing a call, it is quite often useful for the Caller to
   know whether a Callee is in favorable state to receive a call or
   not. This document defines an optional tag "continue" and a header
   "Continue" to address the purpose.  The "Continue" header field is
   to confirm the session continuity with the Callee from the Caller
   after an option for session continuity is placed by the Callee based
   on the unfavorable state of the Callee.  This functionality is needed
   to resolve the unwillingness of the Callee to receive any call. An
   option is given to the Callee by the Service Provider or by the
   Handset Manufacturer or by the Carrier to establish this requirement.


Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.  Internet-Drafts are working
   documents of the Internet Engineering Task Force (IETF).  Note that
   other groups may also distribute working documents as
   Internet-Drafts.  The list of current Internet-Drafts is at
   http://datatracker.ietf.org/drafts/current.

   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."

   This Internet-Draft will expire on October 1, 2012.

Copyright Notice

   Copyright (c) 2011 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with
   respect to this document.

De,Hanchinal,Sinha           Expires October 2012               [Page 1]


Internet-Draft              SIP Continuation Option           April 2012

Table of Contents
   1.   Introduction.................................................02
        1.1  Terminology.............................................04
   2.   Overall Operation............................................04
   3.   UAS Behavior.................................................05
   4.   UAC Behavior.................................................06
   5.   The Continue Header Definition...............................06
   6.   Backwards Compatibility......................................08
   7.   Examples and Use cases.......................................08
        7.1 Call is Finally Placed by Calling Party..................08
        7.2 Call is Finally Not Placed by Calling Party..............10
        7.3 Caller Hungs Up..........................................12
        7.4 Caller does not have Call Continuation Option feature....12
        7.5 Callee does not support NDDND feature....................13
        7.6 SIP-ISDN Interworking with Call Continuation feature.....13
        7.7 SIP-FXS Interworking with Call Continuation feature......17
   8.   Implementation Recommendation................................20
   9.   IANA Considerations..........................................21
        9.1  IANA Registration of Continue SIP Header field..........21
        9.2  IANA Registration of continue SIP Option-tag............21
  10.   Security Considerations......................................21
  11.   Acknowledgements.............................................21
  12.   References...................................................22
        12.1  Normative References...................................22
        12.2  Informative References.................................22
  13.   Authors' Address.............................................22

1. Introduction

   Session Initiation Protocol (SIP) allows Caller to establish sessions
   with Callee without knowing whether Callee is in a position to accept
   session request or not.  There is no way by which Caller can know
   the favorable state of Callee.  There are several reasons why the
   Caller wants to know the favorable state of Callee before finally
   placing the call, because Callee may be in a different time zone,
   Callee may be in a meeting, theatre, having lunch with family/friends
   ,etc.  Callee may not want to be disturbed but may like to receive
   calls which is urgent and of good interest to him.  Another example
   Bob may not like office calls on weekends or at his personal/family
   time, but a project which requires his consent to progress or
   business gets affected can be treated as urgent and he would like to
   hear them.  Same in case he's in a business meeting and doesnot want
   to receive call from family or his team but anything which requires
   his urgent attention, it would be important for him to accept.  The
   nearest approach or solutions to such problem available till date is
   described below along with the appropriate cause why this document is
   not considering this for implementation.  These approaches are not
   sufficient enough to address all concerns and not giving the control
   on the call to the Caller for urgent call irrespective of Callee's
   priority.

De,Hanchinal,Sinha           Expires October 2012               [Page 2]


Internet-Draft              SIP Continuation Option           April 2012

   (a) By OPTION Method - It is used to determine the capabilities of
       SIP User Agent (UA).  This OPTION method allows a SIP User Agent
       Client (UAC) to discover information about the supported method,
       content types, extensions, codec, etc for a client which is
       registered with the Server. OPTION method is given by the Caller
       to know either Server Capabilities or Client Capabilities and not
       to its callee's state.

   (b) By Priority Header - Priority Header can be used to override a
       ongoing call, DND option or any voice feature based on the
       Priority of the call as set by the Caller and as agreed with the
       Operator. If Called Party supports the feature and Caller does
       not support Priority, then this feature will be just DND.

   (c) By Do Not Disturb (DND) - When user enable DND on the phone, this
       parameter allows user to specify how the DND features handle
       incoming calls:

      (c.1) Call Reject - This option specifies that no incoming call
       information gets presented to the user.  Depending on how user
       configure the DND Incoming Call Alert parameter, the phone may
       play a beep or display a flash notification of the call.

      (c.2) Ringer Off - This option turns off the ringer, but incoming
       call information gets presented to the device, so that the user
       can accept the call.

      DND feature doesnot serve the requirement of Caller to make a call
      in diverted to voicemail.

   (d) By Presence[1] Feature - The use of PRESENCE with UAC clients
       restricted to higher end-mobile devices. It is also not necessary
       that caller and callee both are in each-other's buddy's list or
       connected to same social-networks as it is not necessary that
       call is between two known persons.

    Therefore the purpose of this document to give the control to the
    Caller. It also describes a mechanism for a Callee to
    convey the information to a Caller to place a call only when call is
    urgent by introducing "Call Continuation Option" and "Non-Dedicated
    Dot Not Disturb (NDDND)" as two new features in TELECOMMUNICATION.

Definition

    o Non-Dedicated Do Not Disturb (NDDND)- is a state of Callee which
      portrays that the Callee is in a non-dedicated or slight DND mode
      with willingness to receive calls only if it is urgent.  However
      the decision is driven by the Caller whether to finally place a
      call or not.  By setting this option at the Callee UE or at voice
      services of Callee on the operator side, it ensures that the

De,Hanchinal,Sinha           Expires October 2012               [Page 3]


Internet-Draft              SIP Continuation Option           April 2012

      Caller gets a notification after placing a call that Callee is
      in a unfavorable state to receive call at this moment but in a
      position to accept any call if caller thinks its urgent.

    o Call Continuation Option - is a feature where an option is given
      to the Caller after Caller dials the Callee number to confirm the
      application whether to finally place the call or not based on
      certain configuration at the Callee User Equipment (UE) or at the
      Voice Feature Service of Callee.

1.1 Terminology

    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[5].

2. Overall Operation

   Callee is willing to receive only urgent call by enabling NDDND. This
   will convey the information to Caller that Callee is not in a
   favorable state to receive calls and option will be given to the
   Caller to place a call only if it is urgent. This can be achieved by
   adding an optional tag "continue" in the Require header of 182
   (Queued) provisional response from Callee. If Callee does not enable
   this feature, operation will be as per RFC 3261[2].

   Caller is keen to know whether the Callee is free or not to take a
   call.  So Caller sends INVITE with option tag "continue" in the
   Supported header.  The Callee interprets the Caller up-to-date and
   inline capabilities and responds with 182(Queued)response with
   Require header value as "continue" if the feature NDDND is set at the
   Callee. This SIP response is interpreted at the Caller with a message
   popup or some in call information (device implementation) telling the
   unfavorable state of Callee to receive calls but tells its
   availability state also with an "Y" or "N" which can also be
   simulated by Call-Place GREEN Button or Call-Cancel RED Button
   as per Caller wishes to perform the needful action. This is described
   in details in the mentioned use cases in Section 7. Accordingly PRACK
   [3] or UPDATE [4] with "Continue" header value as "Yes" (if 'Y'
   option is selected or GREEN button is pressed)or "No" (if 'N' option
   is selected) to be sent to Callee or the CANCEL request from Caller
   will be initiated if Hard RED Button is pressed.

   The Caller will have following 3 options to the control session.

   (i) Continue: Yes

      Caller MUST inject "Continue" header with field value as "yes" or
      "YES" in the PRACK or UPDATE to support the Require header of
      provisional response.

De,Hanchinal,Sinha           Expires October 2012               [Page 4]


Internet-Draft              SIP Continuation Option           April 2012

   (ii) Continue: No

      Caller MUST inject "Continue" header with field value as "no"
      or "NO" in the PRACK or UPDATE to support the Require header of
      provisional response.

   (iii) Caller Hungs Up

      CANCEL request is sent by Caller and call gets terminated as per
      described in RFC 3261.

    Note-If the Caller does not act on received 182 (Queued) provisional
    responses, retransmission timer implemented as per RFC 3261.

                               ^
                              / \
                             /   \
                            /     \                  +-------------+
                           /       \                 |             |
              No          / PLACE A \      Yes       | PLACE CALL  |
    +<-------------------<    Call   >-------------->| TO CALLEE   |
    |    CALLER PRESS     \         /  CALLER PRESS  |             |
    |    RED BUTTON        \       /   GREEN BUTTON  +-------------+
    |                       \     /
    |                        \   /
    |                         \ /
    |                          v
    |                          |
    |                          | CALLER HUNG UP
    |                          |
    |                          V
    |                    +----------------+
    |                    |                |
    |                    | Terminate Call |
    |                    |                |
    |                    +----------------+
    |                             ^
    V                             |
    +---------------------------->+

       Figure 1: Algorithm for Call Continuation Option feature

3. UAS Behavior

   A UAS MAY send 182 (Queued) provisional (by adding Require header
   field with the option tag "continue") response if the initial INVITE
   request contains a Supported header field with the option tag
   "continue". If the UAS is unwilling to do so, it MUST ignore the
   option tag "continue" and proceed as per guidelines described in RFC
   3261.

De,Hanchinal,Sinha           Expires October 2012               [Page 5]


Internet-Draft              SIP Continuation Option           April 2012

   A UAS MUST send 182 (Queued) provisional (by adding Require header
   field with the option tag "continue") response if the initial INVITE
   request contained a Require header field with the option tag
   "continue". If the UAS is unwilling to do so, UAS responds with 180
   (Ringing) provisional response.

   A UAS MUST NOT send 182 (Queued) provisional (by adding Require
   header field with the option tag "continue") response if the initial
   INVITE request did not include either a Supported or Require header
   field indicating this feature.

   A UAS MUST NOT send 182 (Queued) provisional (by adding Require
   header field with the option tag "continue") response if the initial
   INVITE request include Priority header with high value.

   If more than one "Continue" header field is present in PRACK or
   UPDATE with two different field values, the UAS MUST reject the
   request with a 400 (Bad Request) response.

   If a "Continue" header field is present in a request other than PRACK
   or UPDATE, the UAS MUST reject the request with a 400 (Bad Request)
   response.


4. UAC Behavior

   When the UAC creates a new request, it can insist for Call
   Continuation Option in the provisional response for the request. To
   do that, it inserts a Require header with the value "continue" as
   option tag in the request. A Require header with the value "continue"
   MUST NOT be present in any requests except INVITE.

   If the UAC does not wish to insist on usage of Call Continuation
   Option in the provisional response, a Supported header MUST be
   include in the request with the option tag "continue". The UAC SHOULD
   include this in all INVITE requests.

   If a provisional response is received for an initial request and that
   response contains a Require header field containing the option tag
   "continue", the response is send in field value of "Continue" header
   in PRACK or UPDATE request.

   If a provisional response is received for an initial request and that
   response contains a Require header field containing the option tag
   "continue" and UAC is unwilling to establish a session, it MUST
   reject with CANCEL request.

5. The "Continue" Header Definition



De,Hanchinal,Sinha           Expires October 2012               [Page 6]


Internet-Draft              SIP Continuation Option           April 2012

    The Call Continuation Option feature makes use of "Continue" header
    which provides control to Caller on establishing the session. It MAY
    appear as an option extension header in PRACK or UPDATE request of
    the Call Continuation Option feature.

    The syntax of "Continue" header field follows the standard SIP
    parameter syntax.

          Continue = "Continue" HCOLON continue_value
          continue_value = "YES" / "yes" / "NO" / "no"

    For example, the used "Continue" header in SIP PRACK or UPDATE
    request would look like

          Continue: "YES"
          Continue: "yes"
          Continue: "NO"
          Continue: "no"

    The information about "Continue" header field in this document in
    relation to method and proxy is summarized in Table 1.

    The "where" column, in the Table 1, describes the request and
    response types in which the header field may be used. The header may
    not appear in other types of SIP messages. Values in the where
    column is:

          R: header field may only appear in requests.

    The proxy column and last fourteen columns relate to the presence of
    a "Continue" header field in a method:


          o: the header field is optional.
          -: the header field is not applicable.


Header field where proxy ACK BYE CAN INV OPT REG PRACK REFER SUB NOT
----------------------------------------------------------------------
Continue       R     -    -   -   -   -   -   -    o     -    -   -



Header field where                                   INF UPD MSG PUB
---------------------------------------------------------------------
Continue       R                                     -    o   -   -

       Table 1: Additional Table Entries for the "Continue" Header



De,Hanchinal,Sinha           Expires October 2012               [Page 7]


Internet-Draft              SIP Continuation Option           April 2012

6. Backwards Compatibility

   This feature or SIP implementation does not have any impact on
   existing Network designs and Handsets. This draft proposes the use of
   additional header called SIP "Continue" header in order to
   incorporate this feature of NDDND.

   Handsets or Network who do not understand this feature shall not
   handle and normal SIP behavior follows as per RFC 3261.

   There are 2 use cases for backward compatibility:

   o Caller Not Updated, Callee Updated

   o Caller Updated, Callee Not Updated

   Handling of SIP messages for the above two mentioned scenarios are
   clearly mentioned in Section 7.4 and Section 7.5 respectively.


7. Examples and Use cases

   This section contains a number of examples and use cases that
   illustrate the use of the "Continue" header field.  For simplicity,
   header fields are usually shown in the same order.  Usually only the
   minimum required header field set is shown.  Also, message body
   content lengths are often not calculated, but instead shown as "..."
   where the actual octet count would be.

   Messages are identified in the figures as F1, F2, F3, etc. This
   references the message details in the table that follows the figure.

   Comments in the message details are shown in the following form:
   /* Comments. */

7.1 Call is Finally Placed by Calling Party

   In this scenario, Alice has enabled NDDND feature in her profile. Bob
   sends initial INVITE with option tag "continue" in Support header.
   Alice asks for confirmation of urgent call before ringing by 182
   (Queued) provisional response with option tag "continue" in Require
   header. Bob confirmed as urgent call by providing yes as "Continue"
   header field value.  Alice's phone rings finally.








De,Hanchinal,Sinha           Expires October 2012               [Page 8]


Internet-Draft              SIP Continuation Option           April 2012

        Bob                    Proxy                    Alice
         |    INVITE     F1      |                        |
         |---------------------->|                        |
         |    100 Trying   F2    |                        |
         |<----------------------|       INVITE   F3      |
         |                       |----------------------->|
         |                       |                        |
         |                       |     182 Queued   F4    |
         |    182 Queued   F5    |<-----------------------|
         |<----------------------|                        |
         |                       |                        |
         |       PRACK      F6   |                        |
         |---------------------->|       PRACK   F7       |
         |                       |----------------------->|
         |                       |                        |
         |                       |       200 OK   F8      |
         |      200 OK    F9     |<-----------------------|
         |<----------------------|                        |
         |                       |                        |
         |                       |   180 Ringing   F10    |
         |    180 Ringing  F11   |<-----------------------|
         |<----------------------|                        |
         |                       |                        |
                    * Rest of flow not shown *


            Figure 2: Call is Finally Placed by Calling Party

   Message Details

  /* The initial INVITE request has option tag "continue" in Support
     header. */

    F1 Message Bob->Proxy

    INVITE sip:alice@proxy.com SIP/2.0
    Via: SIP/2.0/UDP client.biloxi.example.com;branch=z9hG4bKnashds8
    Max-Forwards: 70
    To: Alice <sip:alice@atlanta.example.com>
    From: Bob <sip:bob@biloxi.example.com>;tag=67890
    Call-ID: a84b4c76e66710
    CSeq: 1 INVITE
    Supported:100rel,continue
    Contact: <sip:bob@client.biloxi.example.com>
    Content-Type: application/sdp
    Content-Length: ...

    (Bob's SDP not shown)



De,Hanchinal,Sinha           Expires October 2012               [Page 9]


Internet-Draft              SIP Continuation Option           April 2012

  /* Alice supporting the new header extension "Continue", initially
     her phone does not ring upon receiving initial INVITE request. It
     will include option tag "continue" in Require header while sending
     182 (Queued) provisional response to Bob. The response, F5,
     received at Bob, might look like this. */


    F5 Message Proxy ->Bob

    SIP/2.0 182 Queued
    Via: SIP/2.0/UDP client.biloxi.example.com;branch=z9hG4bKnashds8
    To: Alice <sip:alice@atlanta.example.com>;tag=12345
    From: Bob <sip:bob@biloxi.example.com>;tag=67890
    Contact: <sip:bob@192.0.2.4>
    Require: 100rel,continue
    Call-ID: a84b4c76e66710
    CSeq: 1 INVITE
    Content-Type: application/sdp
    Content-Length: ...

    (Alice's SDP not shown)

  /* Thus Bob comes to know that Alice is not willing to accept call
    if the call is not very important.  So Bob has control on the call
    and can take a decision on his call.  Assume Bob finally place the
    call include "yes" or "YES" as the field value of "Continue"
    header in PRACK method (F6).*/


    F6 Message Bob -> Proxy

    PRACK sip: sip:alice@proxy.com SIP/2.0
    Via: SIP/2.0/UDP client.biloxi.example.com:5060;
    branch=z9hG4bKnash009
    Max-Forward: 70
    From: Bob <sip:bob@biloxi.example.com>;tag=67890
    To: Alice <sip:alice@atlanta.example.com>;tag=12345
    Call-ID: a84b4c76e66710
    Require: 100rel,continue
    CSeq: 2 PRACK
    RAck: 1 1 INVITE
    Continue: YES
    Content-Length: 0

    Alice's phone rings as it got the confirmation. The guidelines of
    rest of messages flow is described in RFC 3261.

7.2 Call is Finally Not Placed by Calling Party



De,Hanchinal,Sinha           Expires October 2012              [Page 10]


Internet-Draft              SIP Continuation Option           April 2012

    In this scenario, Bob finally decided not placed the call to Alice
    as his call is not very urgent and Alice is willing to receive only
    urgent call at this moment.  The Alice's phone does not ring and
    call is forward to preset destination if any.

        Bob                    Proxy                    Alice
         |       INVITE     F1   |                        |
         |---------------------->|                        |
         |    100 Trying   F2    |                        |
         |<----------------------|       INVITE   F3      |
         |                       |----------------------->|
         |                       |                        |
         |                       |     182 Queued   F4    |
         |    182 Queued   F5    |<-----------------------|
         |<----------------------|                        |
         |                       |                        |
         |       PRACK    F6     |                        |
         |---------------------->|       PRACK   F7       |
         |                       |----------------------->|
         |                       |                        |
         |                       |       200 OK   F8      |
         |      200 OK    F9     |<-----------------------|
         |<----------------------|                        |
         |                       |                        |
         |                       |                        |
         |                       |   486 Busy Here  F10   |
         |                       |<-----------------------|
         |                       |                        |
                     * Rest of flow not shown *

         Figure 3: Call is Finally Not Placed by Calling Party

  /* Assume Bob finally wish not to place the call with Alice as his
     call is not very important.  So he injects "no" or "NO" as the
     field value of "Continue" header in PRACK method (F6)*/

    F6 Message Bob -> Proxy

    PRACK sip: sip:bob@biloxi.example.com SIP/2.0
    Via: SIP/2.0/TCP client.biloxi.example.com:5060;branch=z9hG4bK124
    Max-Forward: 70
    From: Bob sip:bob@biloxi.example.com;tag=67890
    To: Alice <sip:alice@atlanta.example.com>;tag=12345
    Call-ID: 12ka4@ biloxi.example.com
    CSeq: 2 PRACK
    Continue: NO
    Content-Length: 0

    Alice's phone does not ring as it got confirmation as no.  PRACK is
    responded by 200 (OK) followed by 486 (Busy Here) as per RFC 3261

De,Hanchinal,Sinha           Expires October 2012              [Page 11]


Internet-Draft              SIP Continuation Option           April 2012

7.3 Caller Hungs Up

   In this example, Bob hangs up the call with Alice when he comes to
   know that Alice need confirmation about importance of call before
   ringing, which is shown in Figure 3.

        Bob                    Proxy                    Alice
         |      INVITE     F1    |                        |
         |---------------------->|                        |
         |    100 Trying   F2    |                        |
         |<----------------------|       INVITE    F3     |
         |                       |----------------------->|
         |                       |                        |
         |                       |     182 Queued   F4    |
         |    182 Queued   F5    |<-----------------------|
         |<----------------------|                        |
         |                       |                        |
         |       CANCEL    F6    |                        |
         |---------------------->|      CANCEL    F7      |
         |                       |----------------------->|
                   * Rest of flow not shown *


                   Figure 4: Caller Hungs Up


  /* Bob disconnects by initiating a Cancel (F6) request and the call
    is handled as per RFC 3261*/

    F6 Message Bob -> Proxy

    CANCEL sip: sip:bob@biloxi.example.com SIP/2.0
    Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bK123
    Max-Forward: 70
    From: Bob <sip:bob@biloxi.example.com>;tag=67890
    To: Alice <sip:alice@atlanta.example.com>;tag=12345
    Call-ID: 12ka4@biloxi.example.com
    CSeq: 1 INVITE
    Content-Length: 0

   The guidelines of rest of messages flow is described in RFC 3261.

7.4 Caller does not have Call Continuation Option feature

   There might be cases when Bob doesnot support "Continue" header
   but Alice has enabled NDDND feature.  In such a case Bob wouldnot be
   facilitated with continue advantages.  Bob sends initial INVITE
   without option tag "continue" in Support or Require header and will
   receive 480 (Temporarily Unavailable) responses.  Alice phone will
   not ring.

De,Hanchinal,Sinha           Expires October 2012              [Page 12]


Internet-Draft              SIP Continuation Option           April 2012


    Bob                    Proxy                   Alice (NDDND enabled)
       |      INVITE     F1    |                        |
       |---------------------->|                        |
       |    100 Trying   F2    |                        |
       |<----------------------|       INVITE    F3     |
       |                       |----------------------->|
       |                       |                        |
       |                       | 480 Temporarily        |
       |                       |      Unavailable   F5  |
       |                       |<-----------------------|
       |                       |                        |
                       * Rest of flow not shown *

      Figure 5: Caller does not has Call Continuation Option feature

   NDDND feature will be overwritten and Alice phone ring if the initial
   INVITE request include Priority header with high value.  Basic
   intention of Alice is not to block urgent or emergency call but to
   avoid unimportant call as busy.

7.5 Callee does not support NDDND feature

   Alice phone rings which even though option tag "continue" present in
   Support header of initial INVITE send by Bob.

     Bob                    Proxy                 Alice (NDDND disabled)
       |      INVITE     F1    |                        |
       |---------------------->|                        |
       |    100 Trying   F2    |                        |
       |<----------------------|       INVITE    F3     |
       |                       |----------------------->|
       |                       |                        |
       |                       |   180 Ringing   F4     |
       |                       |<-----------------------|
                   * Rest of flow not shown *

            Figure 6: Callee does not support NDDND feature

7.6 SIP-ISDN Interworking with Call Continuation feature

    In this scenario, ISDN terminal(Intelligent mode) has enabled
    NDDND feature in his/her profile.  SIP UAC sends initial INVITE
    with option tag "continue" in Support header.  ISDN terminal asks
    for confirmation of urgent call before ringing by sending Q 931
    Information Element (IE) in ISDN Facility message.  SIP UAC
    confirmed as urgent call by providing yes as "Continue" header
    field value.  ISDN terminal phone rings finally.



De,Hanchinal,Sinha           Expires October 2012              [Page 13]


Internet-Draft              SIP Continuation Option           April 2012


        SIP UAC (Bob)         SIP Gateway         ISDN Terminal (Alice)
         |    INVITE     F1      |                        |
         |---------------------->|                        |
         |    100 Trying   F2    |                        |
         |<----------------------|  Q 931 SETUP   F3      |
         |                       |----------------------->|
         |                       |                        |
         |                       | Call Proceeding   F4   |
         |    182 Queued   F5    |<-----------------------|
         |<----------------------|                        |
         |                       |                        |
         |       PRACK      F6   |                        |
         |---------------------->| INFO [Continue] F7     |
         |                       |----------------------->|
         |                       |                        |
         |                       |                        |
         |      200 OK    F8     |                        |
         |<----------------------|                        |
         |                       |                        |
         |                       |   Alerting   F9        |
         |    180 Ringing  F10   |<-----------------------|
         |<----------------------|                        |
         |                       |                        |
                    * Rest of flow not shown *

        Figure 7: Interworking Call is Finally Placed by Calling Party
                  Message Details

 /* The initial INVITE request has option tag "continue" in Support
    header. */

    F1 Message Bob->Proxy

    INVITE sip:alice@proxy.com SIP/2.0
    Via: SIP/2.0/UDP client.biloxi.example.com;branch=z9hG4bKnashds8
    Max-Forwards: 70
    To: Alice <sip:alice@atlanta.example.com>
    From: Bob <sip:bob@biloxi.example.com>;tag=67890
    Call-ID: a84b4c76e66710
    CSeq: 1 INVITE
    Supported:100rel,continue
    Contact: <sip:bob@client.biloxi.example.com>
    Content-Type: application/sdp
    Content-Length: ...

    (Bob's SDP not shown)




De,Hanchinal,Sinha           Expires October 2012              [Page 14]


Internet-Draft              SIP Continuation Option           April 2012

  /* Alice supporting the new header extension "Continue", initially
     her phone does not ring upon receiving initial INVITE request.  It
     will include option tag "continue" in Require header while sending
     182 (Queued) provisional response to Bob.  The response, F5,
     received at Bob, might look like this. */

    F5 Message Proxy ->Bob

    SIP/2.0 182 Queued
    Via: SIP/2.0/UDP client.biloxi.example.com;branch=z9hG4bKnashds8
    To: Alice <sip:alice@atlanta.example.com>;tag=12345
    From: Bob <sip:bob@biloxi.example.com>;tag=67890
    Contact: <sip:bob@192.0.2.4>
    Require: 100rel,continue
    Call-ID: a84b4c76e66710
    CSeq: 1 INVITE
    Content-Type: application/sdp
    Content-Length: ...

    (Alice's SDP not shown)

  /* Thus Bob comes to know that Alice is not willing to accept call
    if the call is not very important.  So Bob has control on the call
    and can take a decision on his call.  Assume Bob finally place the
    call include "yes" or "YES" as the field value of "Continue"
    header in PRACK method (F6).*/

    F6 Message Bob -> Proxy

    PRACK sip: sip:alice@proxy.com SIP/2.0
    Via: SIP/2.0/UDP client.biloxi.example.com:5060;
    branch=z9hG4bKnash009
    Max-Forward: 70
    From: Bob <sip:bob@biloxi.example.com>;tag=67890
    To: Alice <sip:alice@atlanta.example.com>;tag=12345
    Call-ID: a84b4c76e66710
    Require: 100rel,continue
    CSeq: 2 PRACK
    RAck: 1 1 INVITE
    Continue: YES
    Content-Length: 0


 F3 Q931 Signaling message (IE) SIP Gateway -> ISDN Terminal

    03:29:41.816 line:5/0 L3 rx SETUP callref:5.
    03:29:41.817 hex01: 08 01 05 05 04 03 80 90 a3 6c 06 01 81 33 30 30
    03:29:41.817 hex02: 31 70 05 81 33 30 30 32 a1
    03:29:41.817 Called Number : 3002
    03:29:41.817 Calling Number : 3001

De,Hanchinal,Sinha           Expires October 2012              [Page 15]


Internet-Draft              SIP Continuation Option           April 2012

    03:29:41.819 line:5/0 L1 frame sent.
    03:29:41.819 line:5/0 L2 tx RR P/F=0 NR=13 C/R=0 TEI=0.
    03:29:41.819 hex: 00 01 01 1a

 F4 Q.931 Signaling message (IE) SIP Gateway <- ISDN Terminal

    03:29:41.859 line:5/0 L1 frame sent.
    03:29:41.860 line:5/0 L2 tx INFO P=0 NR=13 NS=12 C/R=1 TEI=0.
    03:29:41.860 hex: 02 01 18 1a
    03:29:41.860 line:5/0 L3 tx CALL PROCEEDING callref:5.
    03:29:41.861 hex01: 08 01 85 02 18 01 89
    03:29:41.861 line:5/7 L1 frame sent.
    03:29:41.862 line:5/7 L2 tx INFO P=0 NR=4 NS=4 C/R=1 TEI=0.
    03:29:41.862 hex: 02 01 08 08

 F7 Q931 Facility message (IE) SIP Gateway -> ISDN Terminal

    03:29:41.965 line:5/7 L1 frame received.
    03:29:41.965 line:5/7 L2 rx INFO P=0 NR=5 NS=6 C/R=0 TEI=0.
    03:29:41.965 hex: 00 01 0c 0a

    Fac(1c): 08 01 6e 05 1c 31 9f aa 0b 80 01 01 a1 03 80 01 30 82 01
    00 8b 01 00 a1 1e 02 01 01 02 01 23 30 16 30 14 a1 0f 81 04 45 55
    52 4f a2 07 81 02 0f 99 82 01 06 82 01 00


    08|00001000     Protocol discriminator: DSS1
    01|00000001       Length of callReference: 1
    6e|0-------       Call reference flag: Origination Side
      |-1101110       Call reference: 110
    05|00000101     Message type: SETUP
    1c|00011100     I-Element: Facility information element identifier
    31|00110001       Length = 49
    9f|10011111       Protocol Profile:
    aa|10101010       Tag/Class/Form: aa/Context specific/Constructed ()
    0b|00001011         Length (small) = 11
    80|10000000         Not decoded
    01|00000001         Not decoded
    01|00000001         Not decoded
    a1|10100001         Not decoded
    03|00000011         Not decoded
    80|10000000         Not decoded
    01|00000001         Not decoded
    30|00110000         Not decoded
    82|10000010         Not decoded

De,Hanchinal,Sinha           Expires October 2012              [Page 16]


Internet-Draft              SIP Continuation Option           April 2012

    01|00000001         Not decoded
    00|00000000         Not decoded
    8b|10001011       Tag/Class/Form: 8b/Context specific/Primitive ()
    01|00000001         Length (small) = 1
    00|00000000         Not decoded
    a1|10100001       Tag/Class/Form: a1/Context specific/Constructed
                       (Invoke)
    1e|00011110         Length (small) = 30
    02|00000010         Tag/Class/Form: 02/Universal/Primitive (integer)
                        (Invoke ID)
    01|00000001           Length (small) = 1
    01|00000001           Invoke ID: 1
    02|00000010         Tag/Class/Form: 02/Universal/Primitive (integer)
                        (Operation value)
    01|00000001           Length (small) = 1
    23|00100011           Operation value: 35, Continue
    30|00110000         Tag/Class/Form: 30/Universal/Constructed
                         (sequence)
    16|00010110           Length (small) = 22
    30|00110000           Tag/Class/Form: 30/Universal/Constructed
                          (sequence)



    The guidelines of rest of messages flow is described in RFC 3261
    and ETSI TS 183 036 V3.4.1 document.

7.7 SIP-FXS Interworking with Call Continuation feature

    In this scenario, FXS phone (Intelligent mode) has enabled NDDDND
    NDDND feature in his/her analog-user-profile with dial-peer
    configured for SIP-FXS call with route provisioned in Voice
    Gateway. SIP UAC sends initial INVITE with option tag "continue"
    in Support header. FXS phone asks for confirmation of urgent call
    call before ringing by sending FXS event-triggered Continue
    message. SIP UAC confirmed as urgent call by providing yes as
    "Continue" header field value. FXS phone rings finally.














De,Hanchinal,Sinha           Expires October 2012              [Page 17]


Internet-Draft              SIP Continuation Option           April 2012

      SIP UAC (Bob)       Voice Gateway        Intelligent FXS(Alice)
         |                       |                        |
         |    INVITE     F1      |                        |
         |---------------------->|                        |
         |    100 Trying   F2    |                        |
         |<----------------------| F3 event incoming call |
         |                       |----------------------->|
         |                       | on local port 5/1 recvd|
         |    182 Queued   F4    |
         |<----------------------|                        |
         |                       |                        |
         |       PRACK      F5   |                        |
         |---------------------->| event-trigger F6       |
         |                       |----------------------->|
         |                       |    [Continue] received |
         |                       |                        |
         |      200 OK    F7     |                        |
         |<----------------------|                        |
         |                       |                        |
         |                       | event FXS port 5/1     |
         |    180 Ringing  F9    |<-----------------------|
         |<----------------------|  status: ringing F8    |
         |                       |                        |
                    * Rest of flow not shown *

        Figure 8: Interworking Call is Finally Placed by Calling Party


    Message Details

  F1 Message Bob->Voice Gateway

    INVITE sip:6666@20.20.2.71:5060 SIP/2.0
    Via: SIP/2.0/UDP <20.20.2.10:5062>;branch=
    z9hG4bKa34888322e87a14e8.b688156c7e0985838
    Max-Forwards: 70
    From: "1004" <sip:1004@20.20.2.10:5062>;tag=6e8892955e
    To: "6666" <sip:6666@20.20.2.71:5060>
    Call-ID: 5d2e26590f35cc8b
    CSeq: 18826 INVITE
    Allow:  INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, OPTIONS, UPDATE,
    PRACK,SUBSCRIBE, INFO
    Require:100rel,continue
    Allow-Events: talk, hold, conference, LocalModeStatus
    Contact: sip:1004@20.20.2.10:5062
    Content-Type: application/sdp
    Content-Length: ....

 F2 Message Voice Gateway -> Bob




De,Hanchinal,Sinha            Expires October 2012             [Page 18]


Internet-Draft              SIP Continuation Option           April 2012

    SIP/2.0 100 Trying
    Allow:PRACK,ACK,CANCEL,BYE,SUBSCRIBE,NOTIFY,INVITE,REFER,
    OPTIONS,INFO,UPDATE, REGISTER
    Call-ID: 5d2e26590f35cc8b
    CSeq: 18826 INVITE
    From: "1004" <sip:1004@20.20.2.10:5062>;tag=6e8892955e
    To: "6666" <sip:6666@20.20.2.71:5060>
    Via: SIP/2.0/UDP <20.20.2.10:5062>;received=20.20.2.10;
    branch=z9hG4bKa34888322e87a14e8.b688156c7e0985838

  F3 Voice Gateway -> FXS Phone

    event "Incoming call on local port: 5/1, calling:1004 , called:
    6004, call- id: 8" received
    event "UAC <20.20.2.71:5060> <- UAS <20.20.2.10:5062> INVITE"
    received

  F4 Message Voice Gateway -> Bob

    SIP/2.0 183 Session Progress
    Allow-Events: hold,talk
    Call-ID: 5d2e26590f35cc8b
    Require: 100rel,continue
    CSeq: 18826 INVITE
    From: "1004" <sip:1004@20.20.2.10:5062>;tag=6e8892955e
    To: "6666" <sip:6666@20.20.2.71:5060>;tag=2704
    Via: SIP/2.0/UDP <20.20.2.10:5062>;received=20.20.2.10;branch=
    z9hG4bKa34888322e87a14e8.b688156c7e0985838

  F5 Message Bob  -> Voice Gateway

    PRACK sip: sip:alice@proxy.com SIP/2.0
    Via: SIP/2.0/UDP client.biloxi.example.com:5060;
    branch=z9hG4bKnash009
    Max-Forward: 70
    From: Bob <sip:bob@biloxi.example.com>;tag=67890
    To: Alice <sip:alice@atlanta.example.com>;tag=12345
    Call-ID: a84b4c76e66710
    Require: 100rel,continue
    CSeq: 2 PRACK
    RAck: 1 1 INVITE
    Continue: YES
    Content-Length: 0

 F6 Message Voice-Gateway -> FXS Phone (Intelligent)

    Event Continue is received on local port: 5/1

 F7 Message Voice Gateway -> Bob



De,Hanchinal,Sinha            Expires October 2012             [Page 19]


Internet-Draft              SIP Continuation Option           April 2012

    SIP/2.0 180 Ringing
    Allow-Events: hold,talk
    Call-ID: 5d2e26590f35cc8b
    CSeq: 18826 INVITE
    From: "1004" <sip:1004@20.20.2.10:5062>;tag=6e8892955e
    To: "6666" <sip:6666@20.20.2.71:5060>;tag=2704
    Via: SIP/2.0/UDP <20.20.2.10:5062>;received=20.20.2.10;
    branch=z9hG4bKa34888322e87a14e8.b688156c7e0985838


 F8 Message FXS Phone -> Voice Gateway

    FXS port 5/1 status: ringing on

8. Implementation Recommendation

    "Session Continuation Option" feature in SIP is a new call control
    feature proposed in this document applicable in favour of Callee
    that gives option to Caller requesting for a confirmation to place
    a call to Callee based on the following new applications at the
    Callee.

   o    Callee unfavorable Time to Receive Call (usually when the
        Callee is sleeping or travelling, based on Callee time zone
        which is based on his location that needs to be updated by
        Callee in case of VoIP subscriber, and manually or
        automatically done by Mobile Service Provider based on
        Daylight Savings for 3G/4G subscriber).

   o    Callee has set a Non-Dedicated Do-Not-Disturb (NDDND) that is
        DND with lower priority when the Callee is in a theatre,
        meeting, driving, lunch/dinner, etc.  - Callee is willing to
        receive the call only when it is very urgent.

    This application is totally based on SIP Call Session
    Establishment principles (Offer-Answer Model) with minor
    deviation in call flows and is implementation specific and
    driven based on configuration at.

   o    SIP UA or Voice Over Internet Protocol (VoIP) End Device,
        3G/4G Handsets (Device Driven) - Device plays more important
        role in Call Handling.

   o    SIP Back-To-Back User Agent (B2BUA) server as a part of Voice
        Feature Services given by the Service Provider (Service
        Provider Driven) - Network plays more important role in Call
        Handling instead of SIP Terminals or 3G/4G Handsets.




De,Hanchinal,Sinha            Expires October 2012             [Page 20]


Internet-Draft              SIP Continuation Option           April 2012

    This Call Feature Application handling behaviour and subsequent
    actions at the Calling and Callee and SIP AS is clearly defined
    later using State Diagrams based on the call confirmation options
    handled by Calling Party and relevant configurations / services
    provided by the Network Service Provider.

    This feature can be implemented using SIP with minor changes at
    protocol level by introducing "Continue" header in SIP PRACK
    Request and slight changes in the basic Offer-Answer Model
    implementation in both UAs and SIP AS based on implementation,
    calls of which are discussed in detail later on.  There will be an
    additional need of changes in UA Application and also at SIP AS in
    case this feature is driven by a SIP AS instead of Callee.

    This feature is fully backward compatible and doesnot have any
    impact on existing Subscribers, Devices, Network Setup and
    Operation.  The Service Provider may need to upgrade their SIP
    Application server in case they wish to give this new voice
    feature as a new service to their subscribers.  Similarly Device
    Manufacturer needs to upgrade the application of their handsets or
    introduce as a new application feature in their new Handsets or
    Devices.

9. IANA Considerations

    This document registers a new header field name with a compact
    form and one new option tag.

9.1  IANA Registration of "Continue" SIP Header field

    Name of Header:        Continue
    Compact Form:          g

9.2  IANA Registration of "continue" SIP Option-tag

    Name of option:         continue
    Description:            Support for the SIP Continue header.

10. Security Considerations

    The Continue header in this document does not in itself have
    security considerations. However, as mentioned in RFC 3427[6], an
    important reason for the IETF to manage the extensions of SIP is to
    ensure that all extensions and parameters are able to provide secure
    usage.

11. Acknowledgements

    Thanks to Paul Kyzivat, Worley, Dale R (Dale), John Elwell and Ram
    Mohan R who provided helpful comments, feedback and suggestions.

De,Hanchinal,Sinha            Expires October 2012             [Page 21]


Internet-Draft              SIP Continuation Option           April 2012

    Also the authors would like to thank Mayur Saxena, Jay Prakash
    Dubey, Lakshmi P Vijay Badithe, Prasad Kulkarni, Rajesh Batagurki,
    Vineet Hada, Ayan Ghosh, Reetesh Gupta, Nishesh Shukla, Dipankar
    Goswami, Gagandeep Singh and Gauri Kshirsagar for their input.

12. References

12.1  Normative References

    [1] Rosenberg, J., "A Presence Event Package for the Session
        Initiation Protocol (SIP)", RFC 3856, August 2004.

    [2] 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.

    [3] Rosenberg, J. and H. Schulzrinne, "Reliability of Provisional
        Responses in the Session Initiation Protocol (SIP)", RFC 3262,
        June 2002.

    [4] Rosenberg, J., "The Session Initiation Protocol (SIP)UPDATE
        Method", RFC 3311, October 2002.

12.2   Informative References

    [5] Bradner, S., "Key words for use in RFCs to indicate requirement
        levels," BCP 14, RFC 2119, March 1997.

    [6] Peterson, J., Jennings, C., and R. Sparks, "Change Process for
        the Session Initiation Protocol (SIP) and the Real-time
        Applications and Infrastructure Area", BCP 67,RFC 5727,
        March 2010.

    [7] Q.931 : ISDN user-network interface layer 3 specification for
        basic call control

13. Authors' Addresses

    Amardeep Sinha
    FF02, First Floor,
    Rainbow Residency,
    Green-Glen-Layout,
    Bellandur, Outer-Ring-Road
    Bangalore (Karnataka)
    India -560103

    EMail: sinha.amardeep@gmail.com




De,Hanchinal,Sinha            Expires October 2012             [Page 22]


Internet-Draft              SIP Continuation Option           April 2012


    Subhrajyoti De
    F.E. 91 SECTOR 3
    SALT LAKE CITY
    KOLKATA - 700 106.
    WEST BENGAL. INDIA.

    EMail: de_subhrajyoti@yahoo.co.uk


    Sunil Kumar Sinha
    FF01, First Floor,
    Rainbow Residency,
    Green-Glen-Layout,
    Bellandur, Outer-Ring-Road
    Bangalore (Karnataka)
    India -560103

    EMail: sunilkumarsinha9@gmail.com


    MANJUNATH Hanchinal
    64, C-101, GAGAN DARSHAN APARTMENTS,
    10TH A CROSS KANAKA NAGAR,
    R.T. NAGAR,
    Bangalore (Karnataka)
    India -560032

    EMail: manjugd@gmail.com






















De,Hanchinal,Sinha           Expires October 2012              [Page 23]