tech-invite   World Map     

IETF     RFCs     Groups     SIP     ABNFs    |    3GPP     Specs     Glossaries     Architecture     IMS     UICC    |    search

RFC 5359

 
 
 

Session Initiation Protocol Service Examples

Part 3 of 6, p. 58 to 83
Prev RFC Part       Next RFC Part

 


prevText      Top      Up      ToC       Page 58 
2.5.  Transfer - Attended

           Alice             Bob          Carol
             |                |              |
             |    INVITE F1   |              |
             |--------------->|              |
             | 180 Ringing F2 |              |
             |<---------------|              |
             |    200 OK F3   |              |
             |<---------------|              |
             |     ACK F4     |              |
             |--------------->|              |
             |       RTP      |              |
             |<==============>|              |
             |INVITE (hold) F5|              |
             |<---------------|              |
             |    200 OK F6   |              |
             |--------------->|              |
             |     ACK F7     |              |
             |<---------------|              |
             |     No RTP     |              |
             |                |  INVITE F8   |
             |                |------------->|
             |                | 180 Ringing F9
             |                |<-------------|
             |                |  200 OK F10  |
             |                |<-------------|
             |                |    ACK F11   |
             |                |------------->|
             |                |     RTP      |
             |                |<============>|
             |                |INVITE (hold) F12
             |                |------------->|
             |                | 200 OK F13   |
             |                |<-------------|
             |                |    ACK F14   |
             |                |------------->|
             |                |     No RTP   |
             | REFER Refer-To: C F15         |
             |<---------------|              |
             |202 Accepted F16|              |
             |--------------->|              |
             |   NOTIFY F17   |              |
             |--------------->|              |
             |   200 OK F18   |              |
             |<---------------|              |
             |     INVITE Replaces: B F19    |
             |------------------------------>|

Top      Up      ToC       Page 59 
             |            200 OK F20         |
             |<------------------------------|
             |             ACK F21           |
             |------------------------------>|
             |               RTP             |
             |<=============================>|
             |                |    BYE F22   |
             |                |<-------------|
             |                |  200 OK F23  |
             |                |------------->|
             |   NOTIFY F24   |              |
             |--------------->|              |
             |   200 OK F25   |              |
             |<---------------|              |
             |    BYE F26     |              |
             |<---------------|              |
             |   200 OK F27   |              |
             |--------------->|              |


   In this scenario, Alice calls Bob.  Bob puts Alice on hold then calls
   Carol to announce transfer, then places Carol on hold.  Bob transfers
   Alice to Carol, which replaces the session between Bob and Carol.
   Carol then disconnects session with Bob.  Alice reports success of
   transfer to Bob, who then disconnects with Alice.  In this example,
   the Replaces header field [RFC3891] is inserted into the Refer-To URI
   by Bob.  Note that the Refer-To URI is the Contact URI returned by
   Carol in the 200 OK response F10.  This ensures that only the correct
   instance of Carol is reached.  The presence of the gr URI parameter
   in the Contact URI in message F10 indicates that the Contact URI is a
   GRUU [GRUU] and will be globally routable outside of the dialog.
   Without knowing the Contact URI is a gruu, Bob must be prepared, if
   the triggered INVITE had failed, to retry the REFER with a Refer-To
   URI of the URI used to reach Carol but with a Require: replaces
   header escaped in the Refer-To header field, as discussed in the
   transfer document [TRANSFER].

   Message Details

      F1 INVITE Alice -> Bob

      INVITE sips:bob@biloxi.example.com SIP/2.0
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
      Max-Forwards: 70
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>
      Call-ID: 12345600@atlanta.example.com

Top      Up      ToC       Page 60 
      CSeq: 1 INVITE
      Contact: <sips:alice@client.atlanta.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
      s=
      c=IN IP4 client.atlanta.example.com
      t=0 0
      m=audio 49170 RTP/AVP 0
      a=rtpmap:0 PCMU/8000


      F2 180 Ringing Bob -> Alice

      SIP/2.0 180 Ringing
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
       ;received=192.0.2.103
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=23431
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      Content-Length: 0


      F3 200 OK Bob -> Alice

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
       ;received=192.0.2.103
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=23431
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

Top      Up      ToC       Page 61 
      v=0
      o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com
      s=
      c=IN IP4 client.biloxi.example.com
      t=0 0
      m=audio 3456 RTP/AVP 0
      a=rtpmap:0 PCMU/8000


      F4 ACK Alice -> Bob

      ACK sips:bob@client.biloxi.example.com SIP/2.0
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf
      Max-Forwards: 70
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=23431
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 ACK
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Length: 0


      /* Alice and Bob have established a session.
         Bob puts Alice on hold. */


      F5 INVITE Bob -> Alice

      INVITE sips:alice@client.atlanta.example.com SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds7
      Max-Forwards: 70
      From: Bob <sips:bob@biloxi.example.com>;tag=23431
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1024 INVITE
      Contact: <sips:bob@client.biloxi.example.com>;+sip.rendering="no"
      Content-Type: application/sdp
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Length: ...

      v=0
      o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com
      s=
      c=IN IP4 client.biloxi.example.com

Top      Up      ToC       Page 62 
      t=0 0
      m=audio 3456 RTP/AVP 0
      a=rtpmap:0 PCMU/8000
      a=sendonly


      F6 200 OK Alice -> Bob

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds7
       ;received=192.0.2.113
      From: Bob <sips:bob@biloxi.example.com>;tag=23431
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1024 INVITE
      Contact: <sips:alice@client.atlanta.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com
      s=
      c=IN IP4 client.atlanta.example.com
      t=0 0
      m=audio 49170 RTP/AVP 0
      a=rtpmap:0 PCMU/8000
      a=recvonly


      F7 ACK Bob -> Alice

      ACK sips:alice@client.atlanta.example.com SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds3
      Max-Forwards: 70
      From: Bob <sips:bob@biloxi.example.com>;tag=23431
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1024 ACK
      Content-Length: 0

      /* Bob calls Carol. */

Top      Up      ToC       Page 63 
      F8 INVITE Bob -> Carol

      INVITE sips:carol@chicago.example.com SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnash
      Max-Forwards: 70
      From: Bob <sips:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>
      Call-ID: sdjfdjfskdf@biloxi.example.com
      CSeq: 42 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=bob 28908445834 2890844834 IN IP4 client.biloxi.example.com
      s=
      c=IN IP4 client.biloxi.example.com
      t=0 0
      m=audio 3458 RTP/AVP 0
      a=rtpmap:0 PCMU/8000


      F9 180 Ringing Carol -> Bob

      SIP/2.0 180 Ringing
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnash
       ;received=192.0.2.113
      From: Bob <sips:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=5f35a3
      Call-ID: sdjfdjfskdf@biloxi.example.com
      CSeq: 42 INVITE
      Contact: <sips:39itp34klkd@chicago.example.com>
      Content-Length: 0


      F10 200 OK Carol -> Bob

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnash
       ;received=192.0.2.113
      From: Bob <sips:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=5f35a3
      Call-ID: sdjfdjfskdf@biloxi.example.com

Top      Up      ToC       Page 64 
      CSeq: 42 INVITE
      Contact: <sips:39itp34klkd@chicago.example.com;gr>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces, gruu
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com
      s=
      c=IN IP4 client.chicago.example.com
      t=0 0
      m=audio 3456 RTP/AVP 0
      a=rtpmap:0 PCMU/8000


      F11 ACK Bob -> Carol

      ACK sips:39itp34klkd@chicago.example.com;gr SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashd5
      Max-Forwards: 70
      From: Bob <sips:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=5f35a3
      Call-ID: sdjfdjfskdf@biloxi.example.com
      CSeq: 42 ACK
      Content-Length: 0

      /* Bob puts Carol on hold. */


      F12 INVITE Bob -> Carol

      INVITE sips:39itp34klkd@chicago.example.com;gr SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds0
      Max-Forwards: 70
      From: Bob <sips:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=5f35a3
      Call-ID: sdjfdjfskdf@biloxi.example.com
      CSeq: 43 INVITE
      Contact: <sips:bob@client.biloxi.example.com>;+sip.rendering="no"
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

Top      Up      ToC       Page 65 
      v=0
      o=bob 289084834 2890844835 IN IP4 client.biloxi.example.com
      s=
      c=IN IP4 client.biloxi.example.com
      t=0 0
      m=audio 3458 RTP/AVP 0
      a=rtpmap:0 PCMU/8000
      a=sendonly


      F13 200 OK Carol -> Bob

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds0
       ;received=192.0.2.113
      From: Bob <sips:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=5f35a3
      Call-ID: sdjfdjfskdf@biloxi.example.com
      CSeq: 43 INVITE
      Contact: <sips:39itp34klkd@chicago.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces, gruu
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=carol 2890844922 2890844923 IN IP4 client.chicago.example.com
      s=
      c=IN IP4 client.chicago.example.com
      t=0 0
      m=audio 3456 RTP/AVP 0
      a=rtpmap:0 PCMU/8000
      a=recvonly


      F14 ACK Bob -> Carol

      ACK sips:39itp34klkd@chicago.example.com;gr SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnash334
      Max-Forwards: 70
      From: Bob <sips:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=5f35a3
      Call-ID: sdjfdjfskdf@biloxi.example.com

Top      Up      ToC       Page 66 
      CSeq: 43 ACK
      Content-Length: 0

      /* Bob transfers Alice to Carol. */


      F15 REFER Bob -> Alice

      REFER sips:alice@client.atlanta.example.com SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds2g
      Max-Forwards: 70
      From: Bob <sips:bob@biloxi.example.com>;tag=23431
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1025 REFER
    <allOneLine>
      Refer-To: <sips:39itp34klkd@chicago.example.com?Replaces=
      sdjfdjfskdf%40biloxi.example.com%3Bto-tag%3D5f35a3
      %3Bfrom-tag%3D8675309&Require=replaces>
    </allOneLine>
      Referred-By: <sips:bob@biloxi.example.com>
      Contact: <sips:bob@client.biloxi.example.com>
      Content-Length: 0


      F16 202 Accepted Alice -> Bob

      SIP/2.0 202 Accepted
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds2g
       ;received=192.0.2.113
      From: Bob <sips:bob@biloxi.example.com>;tag=23431
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      Contact: <sips:alice@client.atlanta.example.com>
      CSeq: 1025 REFER
      Content-Length: 0


      F17 NOTIFY Alice -> Bob

      NOTIFY sips:bob@client.biloxi.example.com SIP/2.0
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bfK
      Max-Forwards: 70
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=23431

Top      Up      ToC       Page 67 
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 NOTIFY
      Contact: <sips:alice@client.atlanta.example.com>
      Event: refer
      Subscription-State: active;expires=60
      Content-Type: message/sipfrag
      Content-Length: ...

      SIP/2.0 100 Trying


      F18 200 OK Bob -> Alice

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bfK
       ;received=192.0.2.103
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=23431
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 NOTIFY
      Content-Length: 0

      /* Alice establishes session with Carol, which replaces the
         session between Bob and Carol. */


      F19 INVITE Alice -> Carol

      INVITE sips:39itp34klkd@chicago.example.com;gr SIP/2.0
      Via: SIP/2.0/TLS chicago.example.com:5061
       ;branch=z9hG4bKadfe4ko
      To: Carol <sips:39itp34klkd@chicago.example.com>
      Max-Forwards: 70
      From: Alice <sips:alice@atlanta.example.com>;tag=3461
      Call-ID: 9435674543@atlanta.example.com
      CSeq: 1 INVITE
      Require: replaces
      Referred-By: <sips:bob@biloxi.example.com>
      Replaces: sdjfdjfskdf@biloxi.example.com
       ;to-tag=5f35a3;from-tag=8675309
      Contact: <sips:alice@client.atlanta.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

Top      Up      ToC       Page 68 
      v=0
      o=alice 2890844989 2890844989 IN IP4 client.atlanta.example.com
      s=
      c=IN IP4 client.atlanta.example.com
      t=0 0
      m=audio 3458 RTP/AVP 0
      a=rtpmap:0 PCMU/8000


      F20 200 OK Carol -> Alice

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS chicago.example.com:5061
       ;branch=z9hG4bKadfe4ko
       ;received=192.0.2.103
      To: Carol <sips:39itp34klkd@chicago.example.com>;tag=ff3a
      From: Alice <sips:alice@atlanta.example.com>;tag=3461
      Call-ID: 9435674543@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:39itp34klkd@chicago.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces, gruu
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=carol 2890844221 2890844221 IN IP4 client.chicago.example.com
      s=
      c=IN IP4 client.chicago.example.com
      t=0 0
      m=audio 49172 RTP/AVP 0
      a=rtpmap:0 PCMU/8000


      F21 ACK Alice -> Carol

      ACK sips:39itp34klkd@chicago.example.com;gr SIP/2.0
      Via: SIP/2.0/TLS chicago.example.com:5061
       ;branch=z9hG4bKadfe4kU3
      To: Carol <sips:39itp34klkd@chicago.example.com>;tag=ff3a
      Max-Forwards: 70
      From: Alice <sips:alice@atlanta.example.com>;tag=3461
      Call-ID: 9435674543@atlanta.example.com
      CSeq: 1 ACK
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY

Top      Up      ToC       Page 69 
      Supported: replaces
      Content-Length: 0

      /* Carol then disconnects from Bob. */


      F22 BYE Carol -> Bob

      BYE sips:bob@client.biloxi.example.com SIP/2.0
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bfE
      To: Bob <sips:bob@biloxi.example.com>;tag=8675309
      Max-Forwards: 70
      From: Carol <sips:carol@chicago.example.com>;tag=5f35a3
      Call-ID: sdjfdjfskdf@biloxi.example.com
      CSeq: 1 BYE
      Content-Length: 0


      F23 200 OK Bob -> Carol

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bfE
       ;received=192.0.2.123
      To: Bob <sips:bob@biloxi.example.com>;tag=8675309
      From: Carol <sips:carol@chicago.example.com>;tag=5f35a3
      Call-ID: sdjfdjfskdf@biloxi.example.com
      CSeq: 1 BYE
      Content-Length: 0


      /* Alice tells Bob that the call has been
         successfully transferred. */

      F24 NOTIFY Alice -> Bob

      NOTIFY sips:bob@client.biloxi.example.com SIP/2.0
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf2N
      Max-Forwards: 70
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=23431
      Call-ID: 12345600@atlanta.example.com
      CSeq: 3 NOTIFY
      Event: refer
      Subscription-State: terminated;reason=noresource

Top      Up      ToC       Page 70 
      Contact: <sips:alice@client.atlanta.example.com>
      Content-Type: message/sipfrag
      Content-Length: ...

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS chicago.example.com:5061
       ;branch=z9hG4bKadfe4ko
       ;received=192.0.2.103
      To: Carol <sips:39itp34klkd@chicago.example.com>;tag=ff3a
      From: Alice <sips:alice@atlanta.example.com>;tag=3461
      Call-ID: 9435674543@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:39itp34klkd@chicago.example.com>


      F25 200 OK Bob -> Alice

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
       ;received=192.0.2.103
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=23431
      Call-ID: 12345600@atlanta.example.com
      CSeq: 3 NOTIFY
      Content-Length: 0

      /* Bob disconnects with Alice. */


      F26 BYE Bob -> Alice

      BYE sips:alice@client.atlanta.example.com SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds7P
      Max-Forwards: 70
      From: Bob <sips:bob@biloxi.example.com>;tag=23431
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1026 BYE
      Content-Length: 0


      F27 200 OK Alice -> Bob

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds7P

Top      Up      ToC       Page 71 
       ;received=192.0.2.113
      From: Bob <sips:bob@biloxi.example.com>;tag=23431
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1026 BYE
      Content-Length: 0

2.6.  Transfer - Instant Messaging


            Alice          Bob                Carol
             |              |                   |
             |   INVITE F1  |                   |
             |------------->|                   |
             | 180 Ringing F2                   |
             |<-------------|                   |
             |  200 OK F3   |                   |
             |<-------------|                   |
             |    ACK F4    |                   |
             |------------->|                   |
             |  Both way RTP Established        |
             |<============>|                   |
             |              |     MESSAGE F5    |
             |              |------------------>|
             |              |     200 OK F6     |
             |              |<------------------|
             |              |                   |
             |       INVITE Replaces:A-B F7     |
             |<---------------------------------|
             |            200 OK F8             |
             |--------------------------------->|
             |               ACK F9             |
             |<---------------------------------|
             |   Both way RTP Established       |
             |<================================>|
             |    BYE F10   |                   |
             |------------->|                   |
             |  200 OK F11  |                   |
             |<-------------|                   |
             |                                  |

   In this scenario, Alice and Bob establish a session between them.
   Bob wants Carol to take the call and so sends an Instant Message (IM)
   to Carol containing Alice's URI and an embedded Replaces header
   field.  If Carol clicks on the URI, Carol's SIP UA sends an INVITE to
   Alice, which replaces the session with Bob.

Top      Up      ToC       Page 72 
   This scenario shows the use of the SIP MESSAGE [RFC3428] method to
   pass the URI.  However, another IM protocol or other method could
   have been used to pass the URI from Bob to Carol.

   Message Details

      F1 INVITE Alice -> Bob
      INVITE sips:bob@biloxi.example.com SIP/2.0
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
      Max-Forwards: 70
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:a8342043f@atlanta.example.com;gr>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces, gruu
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
      s=
      c=IN IP4 client.atlanta.example.com
      t=0 0
      m=audio 49170 RTP/AVP 0
      a=rtpmap:0 PCMU/8000


      F2 180 Ringing Bob -> Alice

      SIP/2.0 180 Ringing
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
       ;received=192.0.2.103
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=3145678
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      Content-Length: 0

Top      Up      ToC       Page 73 
      F3 200 OK Bob -> Alice

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
       ;received=192.0.2.103
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=3145678
      Call-ID: 12345600@atlanta.example.com
      Contact: <sips:bob@client.biloxi.example.com>
      CSeq: 1 INVITE
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com
      s=
      c=IN IP4 client.biloxi.example.com
      t=0 0
      m=audio 3456 RTP/AVP 0
      a=rtpmap:0 PCMU/8000


      F4 ACK Alice -> Bob

      ACK sips:bob@client.biloxi.example.com SIP/2.0
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74r
      Max-Forwards: 70
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=3145678
      Call-ID: 12345600@atlanta.example.com
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      CSeq: 1 ACK
      Content-Length: 0

      /* Bob IMs Carol. */


      F5 MESSAGE Bob -> Carol

      MESSAGE sips:carol@chicago.example.com SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnash
      Max-Forwards: 70

Top      Up      ToC       Page 74 
      From: Bob <sips:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>
      Call-ID: sdjfdjfskdf@biloxi.example.com
      CSeq: 42 MESSAGE
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE
      Supported: replaces
      Content-Type: text/html
      Content-Length: ...

      <HTML>Do you want to take this call from
    <allOneLine>
      <A HREF="sips:a8342043f@atlanta.example.com;gr?Replaces=
      12345600@atlanta.example.com%3Bto-tag%3D3145678
      %3Bfrom-tag%3D1234567&Require=replaces">
      Alice</A>?
    </allOneLine>
       </HTML>


      F6 200 OK Carol -> Bob

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnash
       ;received=192.0.2.113
      From: Bob <sips:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=5f35a3
      Call-ID: sdjfdjfskdf@biloxi.example.com
      CSeq: 42 MESSAGE
      Contact: <sips:carol@client.chicago.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE
      Supported: replaces
      Content-Length: 0

      /* Carol takes the call from Bob. */


      F7 INVITE  Carol -> Alice

      INVITE sips:a8342043f@atlanta.example.com;gr SIP/2.0
      Via: SIP/2.0/TLS pc.biloxi.example.com:5061
       ;branch=z9hG4bK74HH
      Max-Forwards: 70
      From: Carol <sips:carol@chicago.example.com>;tag=8675310
      To: Alice <sips:a8342043f@atlanta.example.com;gr>
      Call-ID: 563456212@b2.chicago.example.com
      CSeq: 1 INVITE
      Require: replaces

Top      Up      ToC       Page 75 
      Replaces: 12345600@atlanta.example.com
       ;to-tag=3145678;from-tag=1234567
      Contact: <sips:carol@client.chicago.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=carol 2890843122 2890843122 IN IP4 client.chicago.example.com
      s=
      c=IN IP4 client.chicago.example.com
      t=0 0
      m=audio 5342 RTP/AVP 0
      a=rtpmap:0 PCMU/8000

      /* Alice matches the dialog information in the
         Replaces header and accepts the INVITE. */


      F8 200 OK Alice -> Carol

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS pc.biloxi.example.com:5061
       ;branch=z9hG4bK74HH
       ;received=192.0.2.114
      From: Carol <sips:carol@chicago.example.com>;tag=8675310
      To: Alice <sips:a8342043f@atlanta.example.com;gr>;tag=131256
      Call-ID: 563456212@b2.chicago.example.com
      CSeq: 1 INVITE
      Contact: <sips:a8342043f@atlanta.example.com;gr>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces, gruu
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=alice 289084543 289084543 IN IP4 client.atlanta.example.com
      s=
      c=IN IP4 client.atlanta.example.com
      t=0 0
      m=audio 49172 RTP/AVP 0
      a=rtpmap:0 PCMU/8000

Top      Up      ToC       Page 76 
      F9 ACK  Carol -> Alice

      ACK sips:a8342043f@atlanta.example.com;gr SIP/2.0
      Via: SIP/2.0/TLS b2.biloxi.example.com:5061
       ;branch=z9hG4bK7435
      Max-Forwards: 70
      From: Carol <sips:carol@chicago.example.com>;tag=8675310
      To: Alice <sips:a8342043f@atlanta.example.com;gr>;tag=131256
      Call-ID: 563456212@b2.chicago.example.com
      CSeq: 1 ACK
      Content-Length: 0


      /* RTP streams are established between Alice and Carol.
         Alice hangs up with Bob due to the Replaces header field. */


      F10 BYE Alice -> Bob

      BYE sips:bob@client.biloxi.example.com SIP/2.0
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf
      Max-Forwards: 70
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=3145678
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 BYE
      Content-Length: 0


      F11 200 OK Bob -> Alice

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf
       ;received=192.0.2.103
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=3145678
      Call-ID: 12345600@atlanta.example.com
      CSeq:  2 BYE
      Content-Length: 0

Top      Up      ToC       Page 77 
2.7.  Call Forwarding Unconditional


            Alice           Proxy          Gateway
             |                |              |
             |    INVITE F1   |              |
             |--------------->|              |
             |(100 Trying) F2 |              |
             |<---------------|              |
             | (181 Call Is Being Forwarded) F3
             |<---------------|   INVITE F4  |
             |                |------------->|
             |                |180 Ringing F5|
             | 180 Ringing F6 |<-------------|
             |<---------------|  200 OK F7   |
             |    200 OK F8   |<-------------|
             |<---------------|              |
             |     ACK F9     |              |
             |--------------->|    ACK F10   |
             |                |------------->|
             |    Both way RTP Established   |
             |<=============================>|
             |     BYE F11    |              |
             |--------------->|   BYE F12    |
             |                |------------->|
             |                |   200 OK F13 |
             |    200 OK F14  |<-------------|
             |<---------------|              |
             |                |              |

   Bob wants all calls forwarded to the Public Switched Telephone
   Network (PSTN) (which is just another URI to the proxy server).
   Alice calls Bob.  The proxy server rewrites the Request URI, and
   forwards the INVITE to a Gateway.  Details of messaging behind the
   Gateway are not shown.

   Note that the 181 Call is Being Forwarded response is shown as sent
   by the proxy.  Strictly speaking, the proxy is behaving as a user
   agent in this case as a proxy cannot generate non-100 provisional
   responses.

   Note also that forwarding could be accomplished using a redirect (302
   Moved Temporarily response).

Top      Up      ToC       Page 78 
   Message Details

      F1 INVITE Alice -> Proxy
      INVITE sips:bob@biloxi.example.com SIP/2.0
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
      Max-Forwards: 70
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:alice@client.atlanta.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
      s=
      c=IN IP4 client.atlanta.example.com
      t=0 0
      m=audio 49170 RTP/AVP 0
      a=rtpmap:0 PCMU/8000


      F2 (100 Trying) Proxy -> Alice

      SIP/2.0 100 Trying
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
       ;received=192.0.2.103
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Content-Length: 0


      F3 (181 Call is Being Forwarded) Proxy -> Alice

      SIP/2.0 181 Call is Being Forwarded
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
       ;received=192.0.2.103
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=9214d

Top      Up      ToC       Page 79 
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Content-Length: 0

      /* Proxy forwards call by rewriting Request-URI. */


      F4 INVITE Proxy -> Gateway

      INVITE sips:+19727293660@gw1.example.com;user=phone SIP/2.0
      Via: SIP/2.0/TLS ss1.example.com:5061
       ;branch=z9hG4bK83749.1
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
       ;received=192.0.2.103
      Record-Route: <sips:ss1.example.com;lr>
      Max-Forwards: 69
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:alice@client.atlanta.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
      s=
      c=IN IP4 client.atlanta.example.com
      t=0 0
      m=audio 49170 RTP/AVP 0
      a=rtpmap:0 PCMU/8000


      F5 180 Ringing Gateway -> Proxy

      SIP/2.0 180 Ringing
      Via: SIP/2.0/TLS ss1.example.com:5061
       ;branch=z9hG4bK83749.1
       ;received=192.0.2.54
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
       ;received=192.0.2.103
      Record-Route: <sips:ss1.example.com;lr>
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com

Top      Up      ToC       Page 80 
      CSeq: 1 INVITE
      Contact: <sips:+19727293660@gw1.example.com;user=phone>
      Content Length:0


      F6 180 Ringing Proxy -> Alice

      SIP/2.0 180 Ringing
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
       ;received=192.0.2.103
      Record-Route: <sips:ss1.example.com;lr>
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:+19727293660@gw1.example.com;user=phone>
      Content Length: 0


      F7 200 OK Gateway -> Proxy

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS ss1.example.com:5061
       ;branch=z9hG4bK83749.1
       ;received=192.0.2.54
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
       ;received=192.0.2.103
      Record-Route: <sips:ss1.example.com;lr>
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:+19727293660@gw1.example.com;user=phone>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.example.com
      s=
      c=IN IP4 gatewayone.example.com
      t=0 0
      m=audio 3456 RTP/AVP 0
      a=rtpmap:0 PCMU/8000

Top      Up      ToC       Page 81 
      F8 200 OK Proxy -> Alice

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
       ;received=192.0.2.103
      Record-Route: <sips:ss1.example.com;lr>
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:+19727293660@gw1.example.com;user=phone>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.example.com
      s=
      c=IN IP4 gatewayone.example.com
      t=0 0
      m=audio 3456 RTP/AVP 0
      a=rtpmap:0 PCMU/8000


      F9 ACK Alice -> Proxy

      ACK sips:+19727293660@gw1.example.com;user=phone SIP/2.0
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf31
      Route: <sips:ss1.example.com;lr>
      Max-Forwards: 70
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 ACK
      Content-Length: 0


      F10 ACK Proxy -> Gateway

      ACK sips:+19727293660@gw1.example.com;user=phone SIP/2.0
      Via: SIP/2.0/TLS ss1.example.com:5061
       ;branch=z9hG4bK83749ws.1
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf31
       ;received=192.0.2.103
      Max-Forwards: 69

Top      Up      ToC       Page 82 
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 ACK
      Content-Length: 0


      F11 BYE Alice -> Proxy

      BYE sips:+19727293660@gw1.example.com;user=phone SIP/2.0
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bfJe
      Route: <sips:ss1.example.com;lr>
      Max-Forwards: 70
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 BYE
      Content-Length: 0


      F12 BYE Proxy -> Gateway

      BYE sips:+19727293660@gw1.example.com;user=phone SIP/2.0
      Via: SIP/2.0/TLS ss1.example.com:5061
       ;branch=z9hG4bK83749G1
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bfJe
       ;received=192.0.2.103
      Max-Forwards: 69
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 BYE
      Content-Length: 0


      F13 200 OK Gateway -> Proxy

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS ss1.example.com:5061
       ;branch=z9hG4bK83749G1
       ;received=192.0.2.54
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bfJe
       ;received=192.0.2.103
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159

Top      Up      ToC       Page 83 
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 BYE
      Content-Length: 0


      F14 200 OK Proxy -> Alice

      SIP/2.0 200 OK
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bfJe
       ;received=192.0.2.103
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq:  2 BYE
      Content-Length: 0


Next RFC Part