SIPPING Working Group                               Jayshree Bharatia
   Internet Draft                                             Sanjoy Sen
   Category: Standards Track                                 Ray Yuhanna
   Expires on May 2002                                       Scott Orton
                                                             Mark Watson
                                                         NORTEL NETWORKS
                                                           November 2001
               Redirection Service Capability in SIP
              <draft-bharatia-sipping-redirect-00.txt>

Status of this Memo

   This document is an Internet-Draft and is in full conformance
   with all provisions of Section 10 of RFC2026.
   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

Abstract

   SIP is selected as a session control protocol for many VOIP
   applications. Hence it should provide capabilities for supporting
   such redirection-based services as automatic call distribution for
   call centers, third-party voicemail, follow-me service etc. The
   concept of Call Redirection is implicit in the capabilities already
   defined for SIP Proxies and Clients. However, in order to allow
   redirection to be used as a component of other services (in
   particular voicemail), and in order to facilitate inter-working with
   existing services, these capabilities needs to operate in a
   consistent and well-defined way, and also need to support transfer
   of certain additional pieces of information, such as redirecting and
   redirected-to addresses, redirecting reason, redirection counter
   etc. This draft discusses this required set of information,
   evaluates existing work and proposes solution to this effect.

   Table of Contents

   SIP Voicemail Solutions                               November 2001

   Status of this Memo................................................1
   Abstract...........................................................1
   1  Conventions used in this document ..............................2
   2  Introduction: Redirection Services .............................2
   3  Redirection Information ........................................3
   4  Existing Mechanisms in SIP .....................................6
   5  Other Solution Options .........................................7
   6  Examples of using the Redirection Information ..................9
   7  Security Considerations .......................................18
   8  IANA Considerations ...........................................19
   9  References ....................................................19
   10   Acknowledgments .............................................19
   11   Author's Address ............................................19
   12   Full Copyright Statement ....................................19

1  Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in
   this document are to be interpreted as described in RFC-2119.

2  Introduction: Redirection Services

   Call redirection is a standard feature currently provided by the
   traditional PBX and CO switches in Enterprise/PSTN and ISDN
   networks. Typical applications for call redirection are in automatic
   call distribution (ACD) for call centers, third-party voicemail,
   follow-me service etc.  Since SIP is being selected as a session
   control protocol for many VOIP applications, it becomes a natural
   choice for supporting such services and beyond.

   The concept of Call Redirection is implicit in the capabilities
   already defined for SIP Proxies and Clients. However, in order to
   allow redirection to be used as a component of other services (in
   particular voicemail), and in order to facilitate inter-working with
   existing redirection services, these capabilities needs to operate
   in a consistent and well-defined way, and also need to support
   transfer of certain additional pieces of information.

   The intention is not to duplicate ISDN Diversion services in SIP
   networks - the move to SIP based session control allows us the
   opportunity to redesign certain aspects of these legacy services and
   in particular allows us to move from a model in which services
   themselves are monolithically standardized, to one where the subject
   of standardization is 'service capabilities' which can be built into
   services by service providers or end-users.

   Nonetheless, attention must be paid to inter-working with legacy
   services. Usually this can be limited to capabilities for the

   Internet Draft           Expires May 2002                  [Page 2]


   SIP Voicemail Solutions                               November 2001

   transfer of information associated, without impact on the functional
   behavior of the SIP elements.

   In order to understand what information may need to be carried
   between SIP entities and possible PSTN entities involved in the
   call, we examine first the services currently offered in the
   PSTN/ISDN. [Q.952] describes a list of redirection services for
   PSTN. SIP should contain capabilities, which allow services to be
   built at least as advanced as these, and hopefully considerably
   better. Examples,

       1. Pre-configured call forwarding service to a certain
          destination address when the user is busy or not-available or
          does not reply
       2. Per-call call forwarding service triggered by the called
          party themselves (call deflection)
       3. A service, which notifies the calling party with redirected-
          to information, when a redirection occurs. Certain privacy
          restrictions need to be met while presenting the redirection
          information.
       4. A service, which notifies the redirecting party with
          redirected-to information, when a redirection occurs. Certain
          privacy restrictions need to be met while presenting the
          redirection information.
       5. The presentation of the address of the redirecting user to
          the user that the call is redirected to.
       6. It should be possible to restrict the maximum number of times
          a call is forwarded (e.g., to avoid a loop).

     The above services should operate in a consistent manner for calls
     originating (terminating) in an IP network and terminating
     (originating) in the PSTN.

3  Redirection Information

  This section presents a non-exhaustive list of information elements
  that are required to be carried between call-control entities in
  support of services such as those listed above. For each such
  information element, we have provided a definition (i.e., WHAT is
  this information?), assessed its applicability (i.e., WHY is it
  useful?) and WHERE would it appear in current SIP messages.

  Voicemail is used as an example but the capabilities discussed here
  could be relevant to any service residing on a service platform to
  which a call is redirected.


   Internet Draft           Expires May 2002                  [Page 3]


   SIP Voicemail Solutions                               November 2001

  In this context, there are two approaches to carry this information
  required by the service platform to perform the service:

  A) Service-specific: if the information is required to be understood
  only by the domain addressed in the Request-URI, then the information
  can be encoded on the left-hand-side of the Request-URI [RFC3087].
  For example, the Request-URI for depositing a voicemail could be of
  the following form, indicating that the call should be directed to
  voicemail box 025643, and that the greeting should be the `busy'
  greeting:

     Vm025643_busy@myVoicemail.myProvider.com

     Approach (A) has the advantage of not requiring any specific
     client capabilities, but the disadvantage of potential obscurity
     in the provisioning of the service and the absence of a mechanism
     to authenticate the information. This also does not satisfy any
     privacy requirements as the subscriber information can be derived
     from the Request-URI.

  B) Generic: if the information may be required to be understood by
  other entities, then a standardized mechanism is required to carry
  it. In this case it would be more appropriate to use existing SIP
  headers.

     Approach (B) has the disadvantage that clients must support the
     `generic' information headers before they can access the service,
     but the advantage is that other entities (e.g., proxies, gateways)
     can see the information and thereby enhance the service (for
     instance by authenticating the information).


  The information we consider is as follows:

     1) Calling party address, e.g., SIP URL, E.164
          WHAT: The party who placed the call
          WHY: A voicemail system, for example, can provide special
          service based on recognition of certain address-domain or DN
          (e.g., play a different-than-normal greeting or allow out-
          calling from the voicemail system).
          WHERE: This information is carried in the From header and/or
          Remote-Party-ID, where privacy restrictions apply. In many
          cases a user may have multiple addresses a subset of which is
          understood by the redirection service (e.g., for certain
          legacy voicemail systems, this parameter can be a DN or a
          local number required by that system). Consider a scenario

   Internet Draft           Expires May 2002                  [Page 4]


   SIP Voicemail Solutions                               November 2001

          where A calls B in SIP domain and the call is forwarded to
          B's voicemail in PSTN domain. Then, A's SIP URI in the From
          header is not adequate to represent A to the PSTN voicemail
          system.

     2) Original called party address, e.g., SIP URL, E.164
          WHAT: The original address called by the caller
          WHY: For our voicemail example, this would allow the system
          to locate the called party's mailbox
          WHERE: This is typically carried in the To header. As stated
          earlier, in many cases a user may have multiple addresses a
          subset of which is understood by the redirection service.

     3) Redirected-to address, e.g., SIP URL, E.164
          WHAT: The address towards which the call has been forwarded
          or must be forwarded
          WHY: Needed for routing the forwarded leg of the call and for
          notifying the calling party of the new destination of the
          call. Can also be used to provide special service contexts,
          e.g., different addresses for voice-mail and fax
          deposit/retrieval services in a unified messaging system.
          WHERE: For an INVITE forwarded onwards from the redirecting
          party, this information is just the Request-URI.

     4) Redirecting address, e.g., SIP URL, E.164
          WHAT: The address from which the call is redirected. For the
          first redirection, this is the same as the original called
          party address.
          WHY: In case the redirected-to party would need to know the
          redirecting party address, during multiple call forwarding.
          WHERE: If there is a single redirection, then this
          information is equal to the originally called party and so is
          carried in the To header. For multiple redirections, this
          information is not carried in any of current SIP headers, but
          could be encoded into the SIP URI if following approach (A).

     5) Redirecting reason(s)
          WHAT: The reason for (each) redirection
          WHY: This information might be useful for presentation to the
          redirected-to party. A voicemail service can also use this
          information to play out the corresponding announcement.
          WHERE: No current SIP header carries this information, but
          could be encoded into the SIP URI if following approach (A).

     6) Redirection counter

   Internet Draft           Expires May 2002                  [Page 5]


   SIP Voicemail Solutions                               November 2001

          WHAT: A counter, which is incremented each time a redirection
          occurs during session set-up.
          WHY: Useful for eliminating possible loops or wastage of
          network resources, when a forwarding chain gets too long.
          Also, for an IP<->PSTN call, a separate counter is required
          to consolidate the number of call forwards in both the
          segments (IP and PSTN). This is required for a network
          provider operating both the segments.
          WHERE: Typically SIP uses the Max-Forwards header to limit
          the number of entities that a message can pass. However, this
          applies to every time a request passes a SIP entity and is
          not limited to redirection as discussed here.

   PRIVACY Requirement: There may be privacy restrictions in presenting
   the address information (e.g., called, calling, redirected-to,
   redirecting) of the party's involved in the call. At any point, the
   SIP UA or the Proxy should be able to hide the address information
   before sending a message containing the above information to an un-
   trusted party. The framework described in [Priv] can be used as
   discussed later in this draft.

   The above parameters need to be sent in the direction of the
   redirected-to party or service (downstream direction). For a simple
   voicemail service example, the mandatory parameters are calling
   party address, original called party address or redirecting address,
   the redirected-to address and the redirecting reason(s). In the
   upstream direction, parameters that may be used for redirection
   notification to the calling party are redirected-to address and the
   redirecting reason. All trusted SIP entities involved in redirection
   should be able to create and modify redirection information.

4  Existing Mechanisms in SIP

   The existing SIP protocol does not provide explicit mechanisms for
   carrying some of the information required for supporting
   redirection-based services. In particular, it does not provide a
   vehicle to carry some of the redirection information such as
   redirecting reasons, redirection counter and the redirecting address
   towards the redirected-to party.

   There is also no explicit way to carry some or all of this
   information to the calling party.

   [Div] provides a partial solution to the problem. It defines a new
   SIP header, Diversion, which conveys some, not all, of the
   redirection information. The Diversion header is added when a SIP

   Internet Draft           Expires May 2002                  [Page 6]


   SIP Voicemail Solutions                               November 2001

   Proxy or an UA changes the destination of the call from that derived
   by normal routing. The main advantages of the Diversion header are
   that it creates a placeholder for all information that a re-
   directing service endpoint might need and is extensible. However,
   under the existing behavior, the calling party is not notified of
   the diversion information and the privacy issues are not dealt with.
   [Div] is also not a Working Group draft.

   [RFC3087] provides examples of using the Request-URI to carry the
   redirection address that would map to a specific mailbox service.
   Not only does this generate URI's that are cumbersome and difficult
   to parse, this also assumes that the UAC or Proxy have knowledge of
   the service context. It also has other shortcomings, stemming from
   the fact that information so encoded is only visible to the
   addressed domain. Devices between the client (or its proxy) and the
   service platform may need to see this information for two reasons:

   1) Proxies may be required to authenticate this information
   2) Gateways may be required to map this information into other
   systems

   So, without explicit mechanisms for carrying this information, it
   can only ever be authenticated by the entity inserting it (which may
   be the client) and can never be mapped into other systems. This
   latter point means that PSTN Voicemail servers could not be used to
   offer service to SIP endpoints and SIP voicemail servers could not
   be used to offer service to PSTN endpoints.

   In support of these scenarios we now consider options for explicit
   support of redirection information in SIP.

5  Other Solution Options

   1) REMOTE-PARTY-ID Header:

   The primary use of this extension [Priv] is for communication of the
   identity of the parties with support of generic privacy
   requirements. The Remote-Party-ID (RPI) header can be easily
   extended to include all the information described in Section 3.
   Every time a redirection occurs, an RPI header is added, if
   required, with the <address-spec> of the redirecting party. A series
   of RPI headers are thus built up as multiple redirections occur,
   charting the history of the call.

   Similarly, RPI could be used to communicate the redirected-to
   address to the calling party in the 181 response.


   Internet Draft           Expires May 2002                  [Page 7]


   SIP Voicemail Solutions                               November 2001

   Two new "rpi-pty-type" are defined: "redirecting" and "redirected-
   to".  The other parameters, which in this case, characterize the
   identity of the redirecting and redirected-to party, such as
   redirecting reason, the order in the redirection list (redirection
   counter) etc., can be added as extensions. The extended syntax is as
   follows:

     Remote-Party-ID = "Remote-Party-ID" ":" [display-name]" <"addr-
                       spec">" *(";" rpi-token)
     rpi-token =       rpi-screen | rpi-pty-type | rpi-id-type | rpi-
                       privacy | rpi-redirect | other-rpi-token |
     rpi-screen =      "screen" "=" ("no" | "yes" )
     rpi-pty-type =    "party" "=" ( "calling" | "called" |
                       "redirecting" | "redirected-to" | token )
     rpi-id-type  =    "id-type" "=" ( "subscriber" | "user" |"alias" |
                       "return" | "term"  | token )
     rpi-privacy  =    "privacy" "=" 1#(("full" | "name" | "uri" |
                       "off" | token ) [ "-" ( "network" | token ) ]  )
     other-rpi-token = token ["-"] ["=" (token | quoted-string)]
     rpi-redirect =    "redirect" "=" rpi-rd-count ["," rpi-rd-reason]

     rpi-id-count =     1*DIGIT
     rpi-rd-reason =   "busy" | "noAnswer" | "unconditional" | token |
                        quoted-string



   One important advantage of using RPI header for redirection is that
   it allows us to deal with the privacy issues. Since privacy is one
   of the more important requirements for any redirection-based
   service, we can effectively reuse an existing framework instead of
   re-inventing one for a new header. [Priv] is already a SIPPING
   Working Group draft and hence, has certain lead-time advantage.

   2) STATE header:

   In [Dcs] usage, the UAC or UAS are not required to create or modify
   a State header. If used for redirection, the UAC/UAS should be able
   to create or modify a State header. In [Dcs] usage, a Proxy is not
   allowed to modify or delete State header information, unless the
   hostname parameter matches that of the Proxy's. If used to carry
   redirection information, any participating Proxy should be able to
   modify certain information (e.g., redirecting address, counter). The
   only way that [Dcs] deals with privacy issues is by mandating use of
   encryption.

   Apart from these differences, the State header is extensible and
   also flexible for exchanging redirection information between SIP
   entities. This is also a current WG draft.


   Internet Draft           Expires May 2002                  [Page 8]


   SIP Voicemail Solutions                               November 2001


   3) COOKIE header:

   The Cookie header can also be used in a way similar to that of the
   State header (see above). When used in "participatory" mode, SIP
   entities are allowed to modify Cookie headers [Willis]. However, a
   Cookie is normally used when there is a need for storage and usage
   of persistent state information across sessions - this is not
   applicable to redirection. The other disadvantages are - the idea is
   still in its infancy, and this is currently not a WG draft.

6  Examples of using the Redirection Information

   In this section, we provide two examples of how the redirection
   information would be used in a voicemail system. The redirection
   information is carried in the Remote-Party-ID headers. Other
   redirection scenarios will be considered in future versions of the
   draft.

   Example 1: Call forward on busy

   The call flow depicts the following scenario - user A calls user B,
   but is forwarded by the Proxy to UserB's Voicemail Server (VMS) on
   busy. The Proxy determines the voicemail box address of UserB and
   inserts a RPI header in the INVITE. The Proxy sends the redirection
   information to A in an RPI header in 181 response.


   User A            Proxy              User B              VMS
        |                 |                  |                |
        |  INVITE F1      |                  |                |
        |---------------->|  INVITE F2       |                |
        |                 |----------------->|                |
        | (100 Trying) F3 |                  |                |
        |<----------------| 486 Busy F4      |                |
        |                 |<-----------------|                |
        |                 |                  |                |
        |                 |         INVITE F5                 |
        |(181 Call Fwd) F6|---------------------------------->|
        |<----------------|                  |                |
        |                 |         200 OK F7|                |
        |  200 OK F8      |<----------------------------------|
        |<----------------|                  |                |
        |                 |         ACK F9   |                |
        |---------------------------------------------------->|
        |                 |                  |                |
        | RTP Established between A and voice-mail box for B  |
        |<-m-m-m-m-m-m-m-m-m-m-m-m-m-m-m-m-m-m-m-m-m-m-m-m-m->|

   Internet Draft           Expires May 2002                  [Page 9]


   SIP Voicemail Solutions                               November 2001

        |                 |                  |                |



     Flow Id                            Comments

    INVITE F1     INVITE sip:UserB@nortelnetworks.com SIP/2.0
    A->Proxy      Via: SIP/2.0/UDP here.com:5060
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>
                  Call-Id: 12345600@here.com
                  CSeq: 1 INVITE
                  Contact: BigGuy <sip:UserA@here.com>
                  Content-Type: application/sdp
                  Content-Length: <appropriate value>

                  v=0
                  o=UserA 2890844526 2890844526 IN IP4 client.here.com
                  s=Session SDP
                  c=IN IP4 100.101.102.103
                  t=0 0
                  m=audio 49170 RTP/AVP 0
                  a=rtpmap:0 PCMU/8000

                  /*Client for A prepares to receive data on port 49170
                  from the network. */

   INVITE F2      INVITE sip:UserB1@ims.nortelnetworks.com SIP/2.0
   Proxy->B1      Via: SIP/2.0/UDP ims.nortelnetworks.com:5060;branch=1
                  Via: SIP/2.0/UDP here.com:5060
                  Record-Route: <sip:UserB@nortelnetworks.com>
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>
                  Call-Id: 12345600@here.com
                  CSeq: 1 INVITE
                  Contact: BigGuy <sip:UserA@here.com>
                  Content-Type: application/sdp
                  Content-Length: <appropriate value>

                  v=0
                  o=UserA 2890844526 2890844526 IN IP4 client.here.com
                  s=Session SDP
                  c=IN IP4 100.101.102.103
                  t=0 0
                  m=audio 49170 RTP/AVP 0
                  a=rtpmap:0 PCMU/8000

   Internet Draft           Expires May 2002                 [Page 10]


   SIP Voicemail Solutions                               November 2001


    (100 Trying   SIP/2.0 100 Trying
    F3            Via: SIP/2.0/UDP here.com:5060
    Proxy->A)     From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>
                  Call-Id: 12345600@here.com
                  CSeq: 1 INVITE
                  Content-Length: 0

    486 Busy      SIP/2.0 486 Busy
    F4            Via: SIP/2.0/UDP ims.nortelnetworks.com:5060;branch=1
    B1->Proxy     Via: SIP/2.0/UDP here.com:5060
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>;tag=3
                  Call-Id: 12345600@here.com
                  CSeq: 1 INVITE
                  Content-Length: 0

    INVITE F5     INVITE sip:VM@nortelnetworks.com SIP/2.0
    Proxy->VM     Via: SIP/2.0/UDP ims.nortelnetworks.com:5060;branch=2
                  Via: SIP/2.0/UDP here.com:5060
                  Record-Route: <sip:UserB@nortelnetworks.com>
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>
                  Call-Id: 12345600@here.com
                  Remote-Party-ID: LittleGuy <9726852222>;
                  screen=yes; party=redirecting; id-type=alias;
                  redirect=1,busy
                  CSeq: 1 INVITE
                  Contact: BigGuy <sip:UserA@here.com>
                  Content-Type: application/sdp
                  Content-Length: <appropriate value>

                  v=0
                  o=UserA 2890844526 2890844526 IN IP4 client.here.com
                  s=Session SDP
                  c=IN IP4 100.101.102.103
                  t=0 0
                  m=audio 49170 RTP/AVP 0
                  a=rtpmap:0 PCMU/8000

     181 F6       SIP/2.0 181 Call is forwarding
     (Proxy->A)   Via: SIP/2.0/UDP here.com:5060
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>
                  Call-Id: 12345600@here.com

   Internet Draft           Expires May 2002                 [Page 11]


   SIP Voicemail Solutions                               November 2001

                  Remote-Party-ID: TheVoiceMail; screen=yes;
                  party=redirected-to; id-type=subscriber;
                  redirect=1,busy
                  CSeq: 1 INVITE
                  Content-Length: 0

    200 OK F7     SIP/2.0 200 OK
    VM->Proxy     Via: SIP/2.0/UDP ims.nortelnetworks.com:5060;branch=2
                  Via: SIP/2.0/UDP here.com:5060
                  Record-Route: <sip:UserB@nortelnetworks.com>
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>;tag=3
                  Call-Id: 12345600@here.com
                  CSeq: 1 INVITE
                  Contact: TheVoiceMail <sip:VM@nortelnetworks.com>
                  Content-Type: application/sdp
                  Content-Length: <appropriate value>

                  v=0
                  o=UserB 2890844527 2890844527 IN IP4
                  vm.nortelnetworks.com
                  s=Session SDP
                  c=IN IP4 110.111.112.114
                  t=0 0
                  m=audio 3456 RTP/AVP 0
                  a=rtpmap:0 PCMU/8000


    200 OK F8     SIP/2.0 200 OK
    Proxy->A      Via: SIP/2.0/UDP nortelnetworks.com:5060; branch=2
                  Via: SIP/2.0/UDP here.com:5060
                  Record-Route: <sip:UserB@nortelnetworks.com>
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>;tag=3
                  Call-Id: 12345600@here.com

                  CSeq: 1 INVITE
                  Contact: TheVoiceMail <sip:VM@nortelnetworks.com>
                  Content-Type: application/sdp
                  Content-Length: <appropriate value>

                  v=0
                  o=UserB 2890844527 2890844527 IN IP4
                  vm.nortelnetworks.com
                  s=Session SDP
                  c=IN IP4 110.111.112.114

   Internet Draft           Expires May 2002                 [Page 12]


   SIP Voicemail Solutions                               November 2001

                  t=0 0
                  m=audio 3456 RTP/AVP 0
                  a=rtpmap:0 PCMU/8000


    ACK F9        ACK sip:VM@nortelnetworks.com SIP/2.0
    A->VM         Via: SIP/2.0/UDP here.com:5060
                  Route:<sip:VM@nortelnetworks.com>
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>;tag=3
                  Call-Id: 12345600@here.com
                  CSeq: 1 ACK
                  Content-Length: 0

                  /* RTP streams are established between A and VMS. The
                  VMS starts announcement for UserB */



   Example 2: Multiple Call Forwarding

   In this example, UA A calls UA B through a Proxy. Proxy determines
   that B is busy and forwards the call to C, who is temporarily
   unavailable. The Proxy now forwards the call to B's VMS.


     A             Proxy           B            C          VMS

     |              |              |             |          |
     |--INVITE F1-->|              |             |          |
     |              |              |             |          |
     |              |--INVITE F2 ->|             |          |
     |<--100 F3 ----|              |             |          |
     |              |<-486 F4------|             |          |
     |              |              |             |          |
     |<---181 F5 ---|              |             |          |
     |              |--------INVITE F6---------->|          |
     |              |              |             |          |
     |              |<--------180 F7-------------|          |
     |<---180 F8 ---|              |             |          |
     |              |              |             |          |
     |  . . .       |--------INVITE------------->|          |
     |              |        timeout             |          |
     |<---181 F9 ---|              |             |          |
     |              |              |             |          |
     |              |-------INVITE F10--------------------->|
     |              |              |             |          |

   Internet Draft           Expires May 2002                 [Page 13]


   SIP Voicemail Solutions                               November 2001

     |              |<-200 F11------------------------------|
     |              |              |             |          |
     |<-200-F12-----|              |             |          |
     |              |              |             |          |
     |--ACK F13-------------------------------------------->|
     |              |              |             |          |
     |              |              |             |          |


     Flow Id             Comments

    INVITE F1     INVITE sip:UserB@nortelnetworks.com SIP/2.0
    A->Proxy      Via: SIP/2.0/UDP here.com:5060
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>
                  Call-Id: 12345600@here.com
                  CSeq: 1 INVITE
                  Contact: BigGuy <sip:UserA@here.com>
                  Content-Type: application/sdp
                  Content-Length: <appropriate value>

                  v=0
                  o=UserA 2890844526 2890844526 IN IP4 client.here.com
                  s=Session SDP
                  c=IN IP4 100.101.102.103
                  t=0 0
                  m=audio 49170 RTP/AVP 0
                  a=rtpmap:0 PCMU/8000

                  /*Client for A prepares to receive data on port 49170
                  from the network. */

   INVITE F2      INVITE sip:UserB1@ims.nortelnetworks.com SIP/2.0
   Proxy->B1      Via: SIP/2.0/UDP ims.nortelnetworks.com:5060;branch=1
                  Via: SIP/2.0/UDP here.com:5060
                  Record-Route: <sip:UserB@nortelnetworks.com>
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>
                  Call-Id: 12345600@here.com
                  CSeq: 1 INVITE
                  Contact: BigGuy <sip:UserA@here.com>
                  Content-Type: application/sdp
                  Content-Length: <appropriate value>

                  v=0
                  o=UserA 2890844526 2890844526 IN IP4 client.here.com
                  s=Session SDP

   Internet Draft           Expires May 2002                 [Page 14]


   SIP Voicemail Solutions                               November 2001

                  c=IN IP4 100.101.102.103
                  t=0 0
                  m=audio 49170 RTP/AVP 0
                  a=rtpmap:0 PCMU/8000

    (100 Trying   SIP/2.0 100 Trying
    F3            Via: SIP/2.0/UDP here.com:5060
    Proxy->A)     From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>
                  Call-Id: 12345600@here.com
                  CSeq: 1 INVITE
                  Content-Length: 0


    486 Busy      SIP/2.0 486 Busy
    F4            Via: SIP/2.0/UDP ims.nortelnetworks.com:5060;branch=1
    B1->Proxy     Via: SIP/2.0/UDP here.com:5060
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>;tag=3
                  Call-Id: 12345600@here.com
                  CSeq: 1 INVITE
                  Content-Length: 0

                  SIP/2.0 181 Call is forwarding
    181 F5        Via: SIP/2.0/UDP here.com:5060
    (Proxy->A)    From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>
                  Call-Id: 12345600@here.com
                  Remote-Party-ID: PartyC <9726853333>; screen=yes;
                  party=redirected-to; id-type=alias;
                  redirect=1,busy
                  CSeq: 1 INVITE
                  Content-Length: 0

    INVITE F6     INVITE sip:UserC1@nortelnetworks.com SIP/2.0
    Proxy->C      Via: SIP/2.0/UDP ims.nortelnetworks.com:5060;branch=2
                  Via: SIP/2.0/UDP here.com:5060
                  Record-Route: <sip:UserB@nortelnetworks.com>
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>
                  Call-Id: 12345600@here.com
                  Remote-Party-ID:  LittleGuy <9726852222 >;
                  screen=yes; party=redirecting; id-type=alias;
                  redirect=1,busy
                  CSeq: 1 INVITE
                  Contact: BigGuy <sip:UserA@here.com>

   Internet Draft           Expires May 2002                 [Page 15]


   SIP Voicemail Solutions                               November 2001

                  Content-Type: application/sdp
                  Content-Length: <appropriate value>

                  v=0
                  o=UserA 2890844526 2890844526 IN IP4 client.here.com
                  s=Session SDP
                  c=IN IP4 100.101.102.103
                  t=0 0
                  m=audio 49170 RTP/AVP 0
                  a=rtpmap:0 PCMU/8000

    180 Ring F7   SIP/2.0 180 Ringing
     C->Proxy     Via: SIP/2.0/UDP there.com:5060
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>;tag=5
                  Call-ID: 12345600@here.com
                  CSeq: 1 INVITE
                  Content-Length: 0

     F8 180       SIP/2.0 180 Ringing
    (Proxy->A)    SIP/2.0/UDP here.com:5060
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>
                  Call-Id: 12345600@here.com
                  CSeq: 1 INVITE
                  Content-Length: 0

                  /* User C is not available. INVITE is sent multiple
                  times until it times out. */

    181 F9        Via: SIP/2.0/UDP here.com:5060
    (Proxy->A)    From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>
                  Call-Id: 12345600@here.com
                  Remote-Party-ID: TheVoiceMail; screen=yes;
                  party=redirected-to; id-type=subscriber;
                  redirect=2,noAnswer
                  CSeq: 1 INVITE
                  Content-Length: 0

    INVITE F10    INVITE sip:VM@nortelnetworks.com SIP/2.0
    Proxy->VM     Via: SIP/2.0/UDP ims.nortelnetworks.com:5060;branch=3
                  Via: SIP/2.0/UDP here.com:5060
                  Record-Route: <sip:UserB@nortelnetworks.com>
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>

   Internet Draft           Expires May 2002                 [Page 16]


   SIP Voicemail Solutions                               November 2001

                  Call-Id: 12345600@here.com
                  Remote-Party-ID:  LittleGuy <9726852222>; screen=yes;
                  party=redirecting; id-type=alias; redirect=1,busy
                  Remote-Party-ID:  PartyC <9726853333>; screen=yes;
                  party=redirecting; id-type=alias; redirect=2,noAnswer
                  CSeq: 1 INVITE
                  Contact: BigGuy <sip:UserA@here.com>
                  Content-Type: application/sdp
                  Content-Length: <appropriate value>

                  v=0
                  o=UserA 2890844526 2890844526 IN IP4 client.here.com
                  s=Session SDP
                  c=IN IP4 100.101.102.103
                  t=0 0
                  m=audio 49170 RTP/AVP 0
                  a=rtpmap:0 PCMU/8000

                  /* The proxy forwards the INVITE to VMS after adding
                  two RPI headers */

    200 OK F11    SIP/2.0 200 OK
    VM->Proxy     Via: SIP/2.0/UDP ims.nortelnetworks.com:5060;branch=3
                  Via: SIP/2.0/UDP here.com:5060
                  Record-Route: <sip:UserB@nortelnetworks.com>
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>;tag=3
                  Call-Id: 12345600@here.com

                  CSeq: 1 INVITE
                  Contact: TheVoiceMail <sip:VM@nortelnetworks.com>
                  Content-Type: application/sdp
                  Content-Length: <appropriate value>

                  v=0
                  o=UserB 2890844527 2890844527 IN IP4
                  vm.nortelnetworks.com
                  s=Session SDP
                  c=IN IP4 110.111.112.114
                  t=0 0
                  m=audio 3456 RTP/AVP 0
                  a=rtpmap:0 PCMU/8000


    200 OK F12    SIP/2.0 200 OK
    Proxy->A      Via: SIP/2.0/UDP ims.nortelnetworks.com:5060;branch=3

   Internet Draft           Expires May 2002                 [Page 17]


   SIP Voicemail Solutions                               November 2001

                  Via: SIP/2.0/UDP here.com:5060
                  Record-Route: <sip:UserB@nortelnetworks.com>
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>;tag=3
                  Call-Id: 12345600@here.com

                  CSeq: 1 INVITE
                  Contact: TheVoiceMail <sip:VM@nortelnetworks.com>
                  Content-Type: application/sdp
                  Content-Length: <appropriate value>

                  v=0
                  o=UserB 2890844527 2890844527 IN IP4
                  vm.nortelnetworks.com
                  s=Session SDP
                  c=IN IP4 110.111.112.114
                  t=0 0
                  m=audio 3456 RTP/AVP 0
                  a=rtpmap:0 PCMU/8000

    ACK F13       ACK sip:VM@nortelnetworks.com SIP/2.0
    A->VM         Via: SIP/2.0/UDP here.com:5060
                  Route:<sip:VM@nortelnetworks.com>
                  From: BigGuy <sip:UserA@here.com>
                  To: LittleGuy <sip:UserB@nortelnetworks.com>;tag=3
                  Call-Id: 12345600@here.com
                  CSeq: 1 ACK
                  Content-Length: 0

                  /* RTP streams are established between A and VMS. VMS
                  starts announcement for UserB */




7  Security Considerations

   In the proposed usage of RPI header, the security considerations
   discussed in [Priv] applies. If the RPI header is received by an un-
   trusted entity, the header may be discarded. For proper usage of the
   RPI header in this context, it is required that there is a trust
   relationship between the redirecting and redirected-to parties.
   Integrity protection of messages carrying the RPI header towards the
   service endpoint is of utmost importance, as a possible man-in-the-
   middle attack can easily modify header information and subvert the
   service.


   Internet Draft           Expires May 2002                 [Page 18]


   SIP Voicemail Solutions                               November 2001


8  IANA Considerations

   The new tokens defined as extensions to the RPI header fields need
   to be registered with IANA.

9  References

   [RFC3087] "Control of Service Context using SIP Request-URI"
   [Div]     "Diversion Indication in SIP", draft-levy-sip-diversion-
             02.txt
   [Priv]    "SIP Extensions for Caller Identity and Privacy", draft-
             ietf-sip-privacy-02.txt
   [Willis]  "SIP Cookies", draft-willis-sip-cookies-00.txt
   [Dcs]     "SIP Extensions for supporting distributed call state",
             draft-ietf-sip-state-02.txt
   [Q.952]   "Stage 3 Service Description for Call Offering
             Supplementary Services using DSS 1 - Diversion
             Supplementary Services"

10 Acknowledgments

   The authors would like to thank Francois Audet, Mary Barnes, Anthony
   Brown, Chris Hogg (Nortel) and Ari Immonen (Tecnomen) for their
   useful comments and suggestions related to this draft.

11 Author's Address

   Sanjoy Sen
   Nortel Networks
   sanjoy@nortelnetworks.com

   Jayshree Bharatia
   Nortel Networks
   bharatia@nortelnetworks.com

   Ray Yuhanna
   Nortel Networks
   yuhanna@nortelnetworks.com

   Scott Orton
   Nortel Networks
   orton@nortelnetworks.com

   Mark Watson
   Nortel Networks
   mwatson@nortelnetworks.com

12 Full Copyright Statement

   Copyright (C) The Internet Society (2000).  All Rights Reserved.


   Internet Draft           Expires May 2002                 [Page 19]


   SIP Voicemail Solutions                               November 2001

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph
   are included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.  The limited permissions granted above are perpetual and
   will not be revoked by the Internet Society or its successors or
   assigns.  This document and the information contained
   herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIMS 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."




   Internet Draft           Expires May 2002                 [Page 20]