Internet DRAFT - draft-jentz-subscribe-with-replaces

draft-jentz-subscribe-with-replaces







Network Working Group                                           B. Jentz
Internet-Draft                                                R. Horvath
Expires: December 21, 2006                                     M. Coulas
                                                                Motorola
                                                           June 19, 2006


 Subscription Mobility for the Session Initiation Protocol (SIP) using
                        SUBSCRIBE with Replaces
               draft-jentz-subscribe-with-replaces-01.txt

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on December 21, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   A device using the Session Initiation Protocol (SIP) may need to
   perform a handover between networks that results in a corresponding
   change to the mobile's SIP edge proxy.  Alternatively, there may be
   the need to transfer a SIP dialog from one device to another.  In
   both of these scenarios, the device needs a procedure to allow it to
   take an existing SIP dialog and logically replace it with a new SIP



Jentz, et al.           Expires December 21, 2006               [Page 1]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


   dialog.  An important subset of these dialogs consists of the
   device's subscription dialogs.  This document proposes to extend the
   SIP SUBSCRIBE method to include the Replaces header field for the
   purpose of enabling a more robust solution to SIP subscription
   mobility.


Table of Contents

   1.  Conventions  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   3.  Motivation . . . . . . . . . . . . . . . . . . . . . . . . . .  4
   4.  Mobile Subscriber Scenario . . . . . . . . . . . . . . . . . .  5
     4.1.  Baseline Example . . . . . . . . . . . . . . . . . . . . .  6
     4.2.  Example using SUBSCRIBE with Replaces Header . . . . . . .  7
   5.  Mobile Notifier Scenario . . . . . . . . . . . . . . . . . . .  9
     5.1.  Baseline Example . . . . . . . . . . . . . . . . . . . . . 10
     5.2.  Example using SUBSCRIBE with Replaces Header . . . . . . . 11
   6.  Notifier User Agent Behavior . . . . . . . . . . . . . . . . . 14
   7.  Use of GRUUs . . . . . . . . . . . . . . . . . . . . . . . . . 15
   8.  Header Field Definition  . . . . . . . . . . . . . . . . . . . 16
   9.  Security Considerations  . . . . . . . . . . . . . . . . . . . 17
   10. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 17
   11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 17
     11.1. Normative References . . . . . . . . . . . . . . . . . . . 17
     11.2. Informative References . . . . . . . . . . . . . . . . . . 18
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 19
   Intellectual Property and Copyright Statements . . . . . . . . . . 20























Jentz, et al.           Expires December 21, 2006               [Page 2]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


1.  Conventions

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

   This document refers frequently to the terms "subscription",
   "subscriber" and "notifier".  These are defined in Section 2 of RFC
   3265 [2].  This document also uses the term "subscription dialog" to
   refer to a dialog created by an authorized subscription.  The term
   "source network" refers to the network where the mobile device has
   active SIP dialog(s) prior to handover.  The term "target network"
   refers to the network where the mobile device needs to create new SIP
   dialog(s) that will logically replace its existing SIP dialog(s) as a
   result of a handover procedure.

   This document uses the scenario of a single mobile device performing
   a handover procedure from the "source network" to the "target
   network" to illustrate the functionality of this extension.
   Alternatively, the scenario requiring the transfer of a "subscription
   dialog" from one device to another would require the device on the
   "source network" and "target network" to be different devices.  The
   behavior of the extension is the same in either scenario.


2.  Introduction

   In the context of seamless mobility solutions for mobile devices
   managing SIP [3] sessions and dialogs, there are scenarios in which a
   mobile device needs to perform a handover between networks that
   results in a corresponding change to the mobile's SIP edge proxy.
   Alternatively, there are scenarios requiring the transfer of a SIP
   dialog from one device to another.  In both the handover and device
   transfer scenarios, the device needs a procedure to allow it to take
   an existing SIP dialog and logically replace it with a new SIP
   dialog.

   The SIP "Replaces" Header specification [4] specifies that the
   Replaces header is used to logically replace an existing SIP dialog
   with a new SIP dialog.  More specifically, the Replaces header
   contains call-id, to-tag and from-tag information that is used to
   match an existing SIP dialog.  The Replaces header field indicates
   that a single dialog identified by the header field is to be
   terminated and logically replaced by the new SIP dialog in which it
   is contained.  It is a request header only, and defined only for
   INVITE requests.

   The device's INVITE dialogs and corresponding sessions are one set of



Jentz, et al.           Expires December 21, 2006               [Page 3]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


   SIP dialogs for which mobility needs to be enabled in the above
   mentioned scenarios.  The SIP Replaces header field as specified in
   [4] provides a means to terminate and logically replace an existing
   INVITE dialog with a new INVITE dialog, thereby enabling the desired
   mobility of INVITE sessions and dialogs.

   The device's subscription dialogs are another set of SIP dialogs for
   which mobility needs to be enabled in the above mentioned scenarios.
   Both the handover and device transfer scenarios include two separate
   use cases where a User Agent (UA) on the device serves as either the
   subscriber or the notifier for the subscription dialog.  The SIP -
   Specific Event Notification specification [2] can be used to provide
   solutions to the subscription mobility problem, but not without the
   risk of poor performance in the case of the handover scenario.

   This document proposes to extend the SIP SUBSCRIBE method to include
   the Replaces header field for the purpose of enabling a more robust
   mobility procedure for subscription dialogs.  The motivation for
   proposing this extension is described in Section 3.  Examples are
   then presented in Section 4 and Section 5 that help to illustrate the
   potential performance improvements that can be enabled with this
   proposed extension using the specific case of the handover scenario.


3.  Motivation

   The primary motivation for extending the SIP SUBSCRIBE method to
   include the Replaces header is to provide for improved handover
   performance for SIP subscription dialogs that are associated with a
   mobile device performing a handover that results in a corresponding
   change to the mobile's SIP edge proxy.  Although SIP subscription
   dialogs can nominally tolerate greater handover latency than real-
   time multimedia sessions, there are some significant handover
   performance issues that need to be taken into consideration as
   highlighted below.

   Once the handover algorithm has generated a trigger indicating the
   need for a handover, the mobile device will first need to obtain the
   address of the new edge proxy server using methods such as those
   described in [10] and [11].  Then the mobile device will typically
   need to execute registration and authentication procedures with the
   target network.

   Using the methods available in [2] to enable subscription mobility,
   the mobile device will need to perform additional SIP signaling over
   the source network before the handover process can be completed.
   This additional signaling on the source network becomes a significant
   source of handover latency if the mobile device has multiple



Jentz, et al.           Expires December 21, 2006               [Page 4]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


   subscription dialogs associated with it.

   Any need for additional SIP signaling over the source network
   following the handover trigger results in the risk of losing
   connectivity to the source network before the SIP signaling exchange
   can be completed.  With a handover triggering algorithm that includes
   a predictor mechanism, it is possible to provide more margin for
   executing the SIP signaling exchange.  Even so, the rapid and
   unpredictable variation of signal levels due to multipath fading and
   shadowing conditions make it difficult to predict the signal quality
   over a future time interval.  A more robust solution would be one
   that eliminates the need for additional SIP signaling on the source
   network entirely.  The SIP SUBSCRIBE with Replaces Header method
   would enable this more robust solution.

   Another important performance measurement is the ability to enable
   SIP subscription mobility even if there is a break in connectivity
   during handover.  In the use case where the UA on the mobile device
   serves as the subscriber, the notifier may be left with an invalid
   subscription that can't be explicitly terminated by the subscriber.
   Similarly, in the use case where the UA on the mobile device serves
   as the notifier, the subscriber may be left with an invalid
   subscription that can't be explicitly terminated by the notifier.
   More importantly, the subscriber may be left without a valid
   subscription for an extended period of time, something which may not
   be acceptable.  A more robust solution would be one that allows the
   UA on the mobile device to explicitly terminate and replace an
   invalid subscription dialog using SIP signaling over the target
   network.  The SIP SUBSCRIBE with Replaces Header method would enable
   this more robust solution.


4.  Mobile Subscriber Scenario

   One mobility scenario of interest involves a mobile SIP subscriber
   that is moving between networks with a corresponding change to the
   SIP edge proxy.  Due to the change in the SIP proxy, the original SIP
   subscription dialog over the source network needs to be re-
   established using a new dialog over the target network.  The change
   in SIP proxies may also result in the mobile device sending a SIP
   REGISTER request through the outbound proxy in the target network to
   update its bindings.  This scenario is illustrated in Figure 1.









Jentz, et al.           Expires December 21, 2006               [Page 5]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


                                 +---------+
                Original Dialog  | Source  |
                  +------------->| Network |<-----------+
                  |              | Proxy   |            |
         |        |              +---------+            |
         |        V                                     V
         |  +------------+                        +----------+
         |  | Mobile     |                        | Notifier |
         |  | Subscriber |                        |          |
         |  +------------+                        +----------+
         |        ^                                     ^
         V        |              +---------+            |
      movement    |              | Target  |            |
                  +------------->| Network |<-----------+
                     New Dialog  | Proxy   |
                                 +---------+

   Figure 1: Mobile Subscriber Mobility Scenario

4.1.  Baseline Example

   RFC 3265 [2] enables a baseline solution to the mobile subscriber
   scenario.  The solution is to have the mobile unsubscribe an existing
   subscription over the source network, then have the mobile re-
   subscribe the same subscription over the target network.  An
   unsubscription is accomplished by having the subscriber send a
   SUBSCRIBE request with the "Expires" header set to "0".  The
   subscription is not considered terminated until the notifier sends a
   NOTIFY message with a "Subscription-State" of "terminated".  An
   example signaling sequence is illustrated in Figure 2.

   The above message sequence will need to be repeated for every
   subscription that the mobile has currently active at the time it
   chooses to switch networks.  This additional signaling over a network
   that the mobile is trying to move away from, creates added handover
   latency and increases the need for predictive handover algorithms so
   that the signaling can be completed before the mobile loses coverage
   on the source network.

   In the event that connectivity to the source network is lost while
   attempting to perform the unsubscribe message sequence, the notifier
   is left with an invalid subscription that can't be explicitly
   terminated by the subscriber.  The subscription will remain in this
   state until either the subscription expires, or the notifier tries to
   send a NOTIFY message on the original dialog and it fails due to a
   response timeout, resulting in the removal of the subscription.  This
   potential for invalid subscriptions is an undesirable condition.




Jentz, et al.           Expires December 21, 2006               [Page 6]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


                            Source           Target
         Mobile             Network          Network
       Subscriber           Proxy            Proxy            Notifier
           |      Handover    |                |                  |
           |<~~~~~Trigger     |                |                  |
           |                  |   SUBSCRIBE (Expires=0)           |
           |----------------->|---------------------------------->|
           |                  |   200 OK       |                  |
           |<-----------------|<----------------------------------|
           |                  |   NOTIFY (terminated)             |
           |<-----------------|<----------------------------------|
           |                  |   200 OK       |                  |
           |----------------->|---------------------------------->|
           |                  |                |                  |
           |---------------------------------->|---->REGISTER/200 |
           |                  |   SUBSCRIBE    |                  |
           |---------------------------------->|----------------->|
           |                  |   200 OK       |                  |
           |<----------------------------------|<-----------------|
           |                  |   NOTIFY       |                  |
           |<----------------------------------|<-----------------|
           |                  |   200 OK       |                  |
           |---------------------------------->|----------------->|
           |                  |                |                  |

   Figure 2: Mobile Subscriber Mobility using existing standards

4.2.  Example using SUBSCRIBE with Replaces Header

   A more efficient approach to the mobile subscriber scenario would be
   to define a Replaces header for use with the SUBSCRIBE method.  From
   [4], the Replaces header contains call-id, to-tag and from-tag
   information that is used to match an existing SIP dialog.  By
   extending the SUBSCRIBE method to include the option of a Replaces
   header, the mobile can send a "SUBSCRIBE with Replaces" request to
   create a new dialog on the target network that will effectively
   terminate and replace a SUBSCRIBE dialog existing on the source
   network.

   In the case where multiple subscriptions are associated with the same
   dialog, the dialog on the source network does not terminate until
   after all the subscriptions in it have been replaced.  A SUBSCRIBE
   request MAY include an "id" parameter in its Event header to support
   differentiation between multiple subscriptions in the same dialog
   [2].  If the original SUBSCRIBE request for the subscription that is
   being replaced contained an "id" parameter in the Event header, then
   the "SUBSCRIBE with Replaces" request MUST also contain an identical
   "id" parameter.



Jentz, et al.           Expires December 21, 2006               [Page 7]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


   This procedure creates the desired new SUBSCRIBE dialog(s) on the
   target network without having to perform additional messaging on the
   source network.  Since the Replaces header enables the mobile
   subscriber to use the target network to explicitly terminate existing
   SUBSCRIBE dialogs on the source network, it greatly reduces the
   potential for invalid subscriptions that is present using existing
   standards.  This improvement to the SIP subscription mobility problem
   is illustrated in Figure 3.

                            Source           Target
         Mobile             Network          Network
       Subscriber           Proxy            Proxy            Notifier
           |      Handover    |                |                  |
           |<~~~~~Trigger     |                |                  |
           |                  |                |                  |
           |---------------------------------->|---->REGISTER/200 |
           |                  |   SUBSCRIBE w/Replaces            |
           |---------------------------------->|----------------->|
           |                  |   200 OK       |                  |
           |<----------------------------------|<-----------------|
           |                  |   NOTIFY       |                  |
           |<----------------------------------|<-----------------|
           |                  |   200 OK       |                  |
           |---------------------------------->|----------------->|
           |                  |   NOTIFY (terminated)             |
           |        X<--------|<----------------------------------|

   Figure 3: Mobile Subscriber Mobility using SUBSCRIBE with Replaces

   For illustrative purposes, assume that an initial SUBSCRIBE request
   was sent by a mobile subscriber on the source network with the
   following message parameters:

   SUBSCRIBE sip:notifier1@example.net SIP/2.0
   To: <sip:notifier1@example.net>
   From: <sip:subscriber2@example.net>;tag=1234
   Call-ID: 0987a@mn.example.net
   CSeq: 1 SUBSCRIBE
   Contact: <sip:subscriber2@address1.example.net>
   Event: pkg10;id=42

   The corresponding 200 OK response might look as follows:

   SIP/2.0 200 OK
   To: <sip:notifier1@example.net>;tag=5678
   From: <sip:subscriber2@example.net>;tag=1234
   Call-ID: 0987a@mn.example.net
   CSeq: 1 SUBSCRIBE



Jentz, et al.           Expires December 21, 2006               [Page 8]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


   Contact: <sip:notifier1@address2.example.net>

   Later on, a handover takes place whereby the mobile needs to create a
   re-subscription dialog on the target network using the SUBSCRIBE with
   Replaces method.  This message might look as follows:

   SUBSCRIBE <sip:notifier1@example.net SIP/2.0
   To: <sip:notifier1@example.net>
   From: <sip:subscriber2@example.net>;tag=2468
   Call-ID: 7531b@mn.example.net
   CSeq: 1 SUBSCRIBE
   Contact: <sip:subscriber2@address3.example.net>
   Event: pkg10;id=42
   Require: replaces
   Replaces: 0987a@mn.example.net;to-tag=5678;from-tag=1234


5.  Mobile Notifier Scenario

   A second mobility scenario of interest involves a mobile SIP notifier
   that is moving between networks with a corresponding change to the
   SIP edge proxy.  Due to the change in the SIP proxy, the original SIP
   subscription dialog over the source network needs to be re-
   established using a new dialog over the target network.  The change
   in SIP proxies will also result in the mobile device sending a SIP
   REGISTER request through the outbound proxy in the target network to
   update its bindings.  This scenario is illustrated in Figure 4.

                                 +---------+
                Original Dialog  | Source  |
                  +------------->| Network |<-----------+
                  |              | Proxy   |            |
         |        |              +---------+            |
         |        V                                     V
         |  +-----------+                         +------------+
         |  | Mobile    |                         | Subscriber |
         |  | Notifier  |                         |            |
         |  +-----------+                         +------------+
         |        ^                                     ^
         V        |              +---------+            |
      movement    |              | Target  |            |
                  +------------->| Network |<-----------+
                     New Dialog  | Proxy   |
                                 +---------+

   Figure 4: Mobile Notifier Mobility Scenario





Jentz, et al.           Expires December 21, 2006               [Page 9]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


5.1.  Baseline Example

   RFC 3265 [2] enables a baseline solution to the mobile notifier
   scenario.  The solution is to have the mobile send a NOTIFY message
   with a "Subscription-State" header of "terminated", a reason
   parameter of "probation" and a "retry-after" parameter with a
   sufficient time period to account for the signaling latency required
   to terminate all the dialogs in the source network and re-register
   the mobile in the target network.  Upon receipt of this NOTIFY
   message, the subscriber will attempt to re-subscribe after the time
   period specified by the "retry-after" parameter.  This subscription
   is established on a new dialog and does not re-use the route set from
   the previous subscription dialog.  If the mobile notifier has
   successfully re-registered itself to the target network, a new
   subscription dialog will be established in the target network,
   completing notifier handover.  An example signaling sequence is
   illustrated in Figure 5.

   NOTIFY messages will need to be sent for every active subscription
   that the mobile acts as a notifier for at the time it chooses to
   switch networks.  This additional signaling over a network that the
   mobile is trying to move away from, creates added handover latency
   and increases the need for predictive handover algorithms so that the
   signaling can be completed before the mobile loses coverage on the
   source network.

   In the event that connectivity to the source network is lost while
   attempting to perform the NOTIFY with probation messaging, the
   subscriber is left with an invalid subscription that can't be
   explicitly terminated by the notifier.  The subscriber may attempt to
   refresh the subscription, but it will not be successful due to the
   fact that the original dialog on the source network is now invalid.
   The subscription will therefore remain invalid until it expires, at
   which point the subscriber may or may not attempt to re-subscribe.
   In addition, once connectivity to the source network is lost, the
   mobile notifier can't send event notification messages to the
   subscriber until after the subscriber re-subscribes and establishes a
   new dialog on the target network.  This potential for invalid
   subscriptions is an undesirable condition.

   More importantly, either the delay associated with the "retry-after"
   parameter in a successful notifier handover, or the delay associated
   with waiting for an invalid subscription to expire before a re-
   subscription is attempted in an unsuccessful notifier handover, may
   result in both the subscriber and the notifier being left without a
   valid subscription for an extended period of time.  This extended
   delay may not be acceptable.




Jentz, et al.           Expires December 21, 2006              [Page 10]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


                          Source           Target
      Mobile              Network          Network
     Notifier             Proxy            Proxy            Subscriber
         |      Handover    |                |                  |
         |<~~~~~Trigger     |                |                  |
         |                  |                |                  |
         |     NOTIFY (terminated, retry-after=delta-seconds)   |
         |----------------->|---------------------------------->|
         |                  |   200 OK       |                  |
         |<-----------------|<----------------------------------| ----
         |                  |                |                  |   ^
         |                  |                |                  |   |
         |---------------------------------->|---->REGISTER/200 | delta
         |                  |                |                  | seconds
         |                  |                |                  |   |
         |                  |   SUBSCRIBE    |                  |   V
         |<----------------------------------|<-----------------| ----
         |                  |   200 OK       |                  |
         |---------------------------------->|----------------->|
         |                  |   NOTIFY       |                  |
         |---------------------------------->|----------------->|
         |                  |   200 OK       |                  |
         |<----------------------------------|<-----------------|
         |                  |                |                  |

   Figure 5: Mobile Notifier Mobility using existing standards

5.2.  Example using SUBSCRIBE with Replaces Header

   By defining a Replaces header for use with the SUBSCRIBE method, a
   more robust solution to the mobile notifier scenario can be enabled.
   Once the mobile is registered in the target network, the notifier can
   send a REFER request [5] to the subscriber requesting that it re-
   subscribe to the same event package while replacing the existing
   subscription (i.e. replacing the original dialog).  The Contact
   header will supply the updated contact parameter for the mobile
   notifier in the target network.  The Refer-To header will utilize the
   SUBSCRIBE with Replaces method to reference the original dialog
   associated with the source network that needs to be terminated and
   replaced by a new dialog in the target network.  The Referred-By [8]
   header is used to provide the mobile notifier's identity.  It is sent
   back to the mobile notifier as part of the SUBSCRIBE with Replaces
   request for use in authorization.

   A Target-Dialog header [6] with Call-ID, local-tag and remote-tag
   parameters that match the original dialog is also included in the
   REFER request to allow the subscriber to identify the targeted dialog
   and authorize the request.  In order for the notifier to use the



Jentz, et al.           Expires December 21, 2006              [Page 11]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


   Target-Dialog header, the original SUBSCRIBE request SHOULD include
   support for the "tdialog" option tag.

   Since the SUBSCRIBE target identified by the Refer-To header is also
   the REFER-Issuer, it is already aware of the progress of the
   requested REFER request.  If the original subscription supports the
   "norefersub" option tag defined in [7], it is RECOMMENDED that the
   REFER request include the Refer-Sub header field set to "false" to
   request that the REFER-Recipient (i.e. the subscriber) accept the
   REFER request without establishing an implicit subscription and the
   resulting NOTIFY message.  This helps to reduce both latency and
   unnecessary networking overhead.

   In the case where multiple subscriptions are associated with the same
   dialog, the dialog on the source network does not terminate until
   after all the subscriptions in it have been replaced.  A SUBSCRIBE
   request MAY include an "id" parameter in its Event header to support
   differentiation between multiple subscriptions in the same dialog
   [2].  If the original SUBSCRIBE request for the subscription that is
   being replaced contained an "id" parameter in the Event header, then
   the "SUBSCRIBE with Replaces" request, specified in the Refer-To
   header, MUST also contain an identical "id" parameter.

   This procedure creates the desired new subscription dialog(s) on the
   target network without having to perform additional messaging on the
   source network.  Since the Replaces header enables the mobile
   notifier to use the target network to explicitly terminate existing
   subscription dialogs on the source network, it greatly reduces the
   potential for invalid subscriptions that is present using existing
   standards.  This improvement to the SIP subscription mobility problem
   is illustrated in Figure 6.




















Jentz, et al.           Expires December 21, 2006              [Page 12]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


                          Source           Target
      Mobile              Network          Network
     Notifier             Proxy            Proxy            Subscriber
         |      Handover    |                |                  |
         |<~~~~~Trigger     |                |                  |
         |                  |                |                  |
         |---------------------------------->|---->REGISTER/200 |
         |     REFER (method=SUBSCRIBE w/Replaces)              |
         |---------------------------------->|----------------->|
         |                  |   202 Accepted |                  |
         |<----------------------------------|<-----------------|
         |                  |   SUBSCRIBE w/Replaces            |
         |<----------------------------------|<-----------------|
         |                  |   200 OK       |                  |
         |---------------------------------->|----------------->|
         |                  |   NOTIFY       |                  |
         |---------------------------------->|----------------->|
         |                  |   200 OK       |                  |
         |<----------------------------------|<-----------------|
         |   NOTIFY (terminated)             |                  |
         |----------------->|------>X        |                  |

   Figure 6: Mobile Notifier Mobility using SUBSCRIBE with Replaces

   For illustrative purposes, assume that an initial SUBSCRIBE request
   was created by a subscriber and sent on the source network with the
   following message parameters:

   SUBSCRIBE sip:notifier2@example.net SIP/2.0
   To: <sip:notifier2@example.net>
   From: <sip:subscriber1@example.net>;tag=1234
   Call-ID: 0987a@host.example.net
   CSeq: 1 SUBSCRIBE
   Contact: <sip:subscriber1@address1.example.net>
   Event: pkg10;id=42
   Supported: tdialog, norefersub, replaces

   The corresponding 200 OK response might look as follows:

   SIP/2.0 200 OK
   To: <sip:notifier2@example.net>;tag=5678
   From: <sip:subscriber1@example.net>;tag=1234
   Call-ID: 0987a@host.example.net
   CSeq: 1 SUBSCRIBE
   Contact: <sip:notifier2@address2.example.net>

   Later on, a handover takes place whereby the mobile needs to perform
   notifier handover on the target network using REFER and making use of



Jentz, et al.           Expires December 21, 2006              [Page 13]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


   the SUBSCRIBE with Replaces method.  This message might look as
   follows:

   REFER sip:subscriber1@example.net SIP/2.0
   To: <sip:subscriber1@example.net>
   From: <sip:notifier2@example.net>;tag=2468
   Call-ID: 7531b@mn.example.net
   CSeq: 1 REFER
   Contact: <sip:notifier2@address3.example.net>
   Require: replaces, tdialog
   Refer-To: <sip:notifier2@example.net;method=SUBSCRIBE?Replaces=
          0987a%40host.example.net%3Bto-tag%3D5678%3Bfrom-tag%3D1234&
          Event=pkg10%3Bid%3D42>
   Referred-By: <sip:notifier2@example.net>
   Target-Dialog: 0987a@host.example.net;remote-tag=1234;local-tag=5678
   Refer-Sub: false

   Since the Refer-To URI is a SIP URI indicating SUBSCRIBE with
   Replaces, the subscriber user agent will request a new subscription
   on the target network using the SUBSCRIBE with Replaces method.  This
   message might look as follows:

   SUBSCRIBE sip:notifier2@example.net SIP/2.0
   To: <sip:notifier2@example.net>
   From: <sip:subscriber1@example.net>;tag=1357
   Call-ID: 9742c@host.example.net
   CSeq: 1 SUBSCRIBE
   Contact <sip:subscriber1@address1.example.net>
   Event: pkg10;id=42
   Supported: tdialog, norefersub, replaces
   Require: replaces
   Replaces: 0987a@host.example.net;to-tag=5678;from-tag=1234
   Referred-By: <sip:notifier2@example.net>


6.  Notifier User Agent Behavior

   Upon receiving a SUBSCRIBE with Replaces header, the user agent for
   the notifier attempts to match the call-id, to-tag and from-tag
   parameters with an active dialog.  If the Replaces header field
   matches an active dialog, the notifier MUST verify that the initiator
   of the new SUBSCRIBE dialog is authorized to replace the matched
   dialog.  If the initiator of the new SUBSCRIBE dialog has been
   successfully authenticated as being equivalent to the user who
   initiated the original SUBSCRIBE dialog, then the replacement is
   authorized.  SIP authentication mechanisms are discussed in [3].

   If the authorization is successful, the notifier user agent attempts



Jentz, et al.           Expires December 21, 2006              [Page 14]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


   to accept the new SUBSCRIBE dialog, reassign the event package and
   other resources of the matched dialog to the new SUBSCRIBE dialog,
   and remove the original subscription.  It creates the new
   subscription and new dialog, and returns a "200 OK" response.  Upon
   successfully accepting the subscription, the notifier MUST send a
   NOTIFY message immediately to communicate the resource state to the
   subscriber.  To remain backward compatible with RFC 3265 [2], the
   Notifier MUST also send a final NOTIFY message for the original
   SUBSCRIBE dialog that is being replaced.  This NOTIFY message is sent
   with a "Subscription-State" of "terminated".

   If the Replaces header field does not match an active dialog, the
   notifier rejects the SUBSCRIBE request and returns a 481 response.
   The subscriber can still re-subscribe by creating an unrelated
   initial SUBSCRIBE request with a freshly generated Call-ID and a new,
   unique "From" tag.  If the Replaces header field matches a dialog
   which was not created with a SUBSCRIBE, the notifier MUST reject the
   request with a 481 response.

   Some additional User Agent Server (UAS) behavior is documented in
   Section 3 of RFC 3891 [4].  This additional UAS behavior applies to
   the Notifier user agent as well, with the term SUBSCRIBE substituted
   for the term INVITE.


7.  Use of GRUUs

   In order for the subscriber and notifier migration procedures
   described in this specification to work properly, it is important
   that the required SIP requests be routed to the correct endpoint
   destination.  For example, in the subscriber migration scenario, the
   SUBSCRIBE with Replaces request needs to be routed to the specific UA
   instance that is performing the notifier function for the original
   subscription.  Similarly, in the notifier migration scenario, the
   REFER request needs to be routed to the specific UA instance that
   initiated the subscription.

   As explained in [9], "When a request is sent to a URI with the AOR
   property, routing logic is applied in proxies to deliver the request
   to one or more UAs.  That logic can result in a different routing
   decision based on the time of day, or the identity of the caller.
   However, when a request is made to a URI with the Globally Routable
   User Agent URI (GRUU) property, the routing logic is dictated by the
   GRUU property.  The request has to be delivered to a very specific UA
   instance.  That UA instance has to be the same UA instance for all
   requests sent to that URI".  Consequently, the subscription migration
   procedures described in this specification cannot be guaranteed to
   work properly if the required SIP requests are addressed to AORs.



Jentz, et al.           Expires December 21, 2006              [Page 15]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


   The subscription migration procedures described in this
   specification, however, will work properly if the SIP requests are
   addressed to GRUUs identifying the specific UA instances implementing
   the subscriber and notifier functions of the subscription.
   Consequently, it is strongly RECOMMENDED that GRUUs be used as the
   remote targets of subscription dialogs and that these GRUUs be used
   as the destination address of SIP requests used to migrate
   subscriptions.  Specifically, GRUUs SHOULD be used in specific SIP
   requests as follows:

   o  Contact header of all SUBSCRIBE requests

   o  Contact header of 200 responses to SUBSCRIBE requests

   o  Contact header of all NOTIFY requests

   o  Request-URI of SUBSCRIBE with Replaces requests used in subscriber
      migration procedure

   o  Request-URI of REFER requests used in notifier migration procedure

   o  Refer-To header of REFER requests used in notifier migration
      procedure

   o  Request-URI of SUBSCRIBE with Replaces requests used in notifier
      migration procedure


8.  Header Field Definition

   This document extends the Replaces Header definition from [4] to
   include the SUBSCRIBE method.  This document adds the following
   modified entry to Table 2 in [3].  Additions to this table are also
   provided for extension methods defined at the time of publication of
   this document.  This is provided as a courtesy to the reader and is
   not normative in any way.


      Header field    where    proxy   ACK  BYE  CAN  INV  OPT  REG  MSG
      ------------    -----    -----   ---  ---  ---  ---  ---  ---  ---
      Replaces          R               -    -    -    o    -    -    -

                                       SUB  NOT  REF  INF  UPD  PRA  PUB
                                       ---  ---  ---  ---  ---  ---  ---
                                        o    -    -    -    -    -    -


   The syntax of the Replaces header field is defined in [4] and is not



Jentz, et al.           Expires December 21, 2006              [Page 16]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


   modified by this document.  It is included below as a courtesy to the
   reader.


      Replaces         = "Replaces" HCOLON callid *(SEMI replaces-param)
      replaces-param   = to-tag / from-tag / early-flag / generic-param
      to-tag           = "to-tag" EQUAL token
      from-tag         = "from-tag" EQUAL token
      early-flag       = "early-only"

   A Replaces header field MUST contain exactly one to-tag and exactly
   one from-tag, as they are required for unique dialog matching.  A
   Replaces header field MAY contain the early flag [4].


9.  Security Considerations

   The security considerations in RFC 3265 [2], RFC 3261 [3] and RFC
   3891 [4] apply.  The extension specified in this document can be used
   to replace a subscription dialog associated with a specific edge
   proxy with a new subscription dialog associated with a different edge
   proxy.  As such, subscriptions with the Replaces header MUST only be
   accepted if the subscriber requesting replacement has been properly
   authenticated using standard SIP authentication methods, and
   authorized to request a replacement of the subscription dialog.


10.  IANA Considerations

   This document creates no new registration considerations for IANA.
   It makes use of existing SIP methods, header fields, and option tags.


11.  References

11.1.  Normative References

   [1]  Bradner, S., "Key Words for Use in RFCs to Indicate Requirement
        Levels", BCP 14, RFC 2119, March 1997.

   [2]  Roach, A., "Session Initiation Protocol (SIP)-Specific Event
        Notification", RFC 3265, June 2002.

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

   [4]  Mahy, R., Biggs, B., and R. Dean, "The Session Initiation



Jentz, et al.           Expires December 21, 2006              [Page 17]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


        Protocol (SIP) "Replaces" Header", RFC 3891, September 2004.

   [5]  Sparks, R., "The Session Initiation Protocol (SIP) Refer
        Method", RFC 3515, April 2003.

   [6]  Rosenberg, J., "Request Authorization through Dialog
        Identification in the Session Initiation Protocol (SIP)",
        RFC 4538, June 2006.

   [7]  Levin, O., "Suppression of Session Initiation Protocol (SIP)
        REFER Method Implicit Subscription", RFC 4488, May 2006.

   [8]  Sparks, R., "The Session Initiation Protocol (SIP) Referred-By
        Mechanism", RFC 3892, September 2004.

   [9]  Rosenberg, J., "Obtaining and Using Globally Routable User Agent
        (UA) URIs (GRUU) in the Session Initiation Protocol (SIP)",
        draft-ietf-sip-gruu-09 (work in progress), June 2006.

11.2.  Informative References

   [10]  Schulzrinne, H., "Dynamic Host Configuration Protocol (DHCP-
         for-IPv4) Option for Session Initiation Protocol (SIP)
         Servers", RFC 3361, August 2002.

   [11]  Schulzrinne, H. and B. Volz, "Dynamic Host Configuration
         Protocol (DHCPv6) Options for Session Initiation Protocol (SIP)
         Servers", RFC 3319, July 2003.























Jentz, et al.           Expires December 21, 2006              [Page 18]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


Authors' Addresses

   Bradley F. Jentz
   Motorola
   1301 E. Algonquin Road
   Room 2246
   Schaumburg, IL  60196
   US

   Phone: +1 847-576-5946
   Email: cbj002@motorola.com
   URI:   http://www.motorola.com/


   Robert Horvath
   Motorola
   1501 W. Shure Drive
   Arlington Heights, IL  60004
   US

   Phone: +1 847-632-4760
   Email: bob.horvath@motorola.com
   URI:   http://www.motorola.com/


   Michael F. Coulas
   Motorola
   600 N. US Highway 45
   Room E1/50N
   Libertyville, IL  60048
   US

   Phone: +1 847-523-1827
   Email: mcoulas1@motorola.com
   URI:   http://www.motorola.com/
















Jentz, et al.           Expires December 21, 2006              [Page 19]

Internet-Draft         SIP SUBSCRIBE with Replaces             June 2006


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Copyright Statement

   Copyright (C) The Internet Society (2006).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.




Jentz, et al.           Expires December 21, 2006              [Page 20]