Internet DRAFT - draft-bharatia-sipping-redirect

draft-bharatia-sipping-redirect



                                    
   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]