tech-invite   World Map     

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

RFC 5359

 
 
 

Session Initiation Protocol Service Examples

Part 6 of 6, p. 147 to 170
Prev RFC Part

 


prevText      Top      Up      ToC       Page 147 
2.16.  Call Pickup


            Alice          Bob                Bill
             |              |                   |
             |   INVITE F1  |                   |
             |------------->|                   |
             |180 Ringing F2|                   |
             |<-------------|                   |
             |              |   SUBSCRIBE F3    |
             |              |<------------------|
             |              |     200 OK F4     |
             |              |------------------>|
             |              |     NOTIFY F5     |
             |              |------------------>|
             |              |     200 OK F6     |
             |              |<------------------|
             |          INVITE Replaces:Bob  F7 |
             |<---------------------------------|
             |              |     200 OK F8     |
             |--------------------------------->|
             |   CANCEL F9  |                   |
             |------------->|                   |
             |  200 OK F10  |                   |
             |<-------------|                   |
             |    487 F11   |                   |
             |<-------------|                   |
             |    ACK F12   |                   |
             |------------->|                   |
             |                    ACK F13       |
             |<---------------------------------|
             |                                  |
             |    Two-Way RTP Established       |
             |<================================>|
             |                     BYE F14      |
             |--------------------------------->|
             |                   200 OK F15     |
             |<---------------------------------|
             |                                  |

   Bob and Bill are part of a work group at example.com that can pick up
   each other's calls.  Alice calls Bob, who does not answer.  Bill
   wishes to pick up the call and sends a SUBSCRIBE to Bob to retrieve
   the dialog information.  Bill then generates an INVITE with a
   Replaces to Alice.  Alice answers the INVITE and sends a CANCEL to
   stop Bob's phone ringing.  Note that the relative order of the
   487/ACK sequence (F11/F12) and the 200 OK to the CANCEL (F10) is not
   deterministic.

Top      Up      ToC       Page 148 
   This call flow shows the use of the "early-only" parameter [RFC3891]
   in the Replaces header field of F7.  This parameter prevents Alice
   from accepting the INVITE if Bob has already accepted the INVITE.  If
   Bill had wished to "take" the call from Bob regardless of whether he
   had answered, the parameter would not have been present in F7.

   Also note that the subscription between Bob and Carol could have been
   established prior to Alice's call.

   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

Top      Up      ToC       Page 149 
  CSeq: 1 INVITE
  Contact: <sips:bob@client.biloxi.example.com>
  Content-Length: 0

  /* Bill decides to pick up the call. */


  F3 SUBSCRIBE  Bill -> Bob

  SUBSCRIBE sips:bob@biloxi.example.com SIP/2.0
  Via: SIP/2.0/TLS pc.biloxi.example.com:5061
   ;branch=z9hG4bK74bf
  Max-Forwards: 70
  From: Bill <sips:bill@biloxi.example.com>;tag=8675309
  To: Bob <sips:bob@biloxi.example.com>
  Call-ID: rt4353gs2egg@pc.biloxi.example.com
  CSeq: 1 SUBSCRIBE
  Contact: <sips:bill@pc.biloxi.example.com>
  Event: dialog
  Expires: 0
  Accept: application/dialog-info+xml
  Content-Length: 0


  F4 200 OK Bob -> Bill

  SIP/2.0 200 OK
  Via: SIP/2.0/TLS pc.biloxi.example.com:5061
   ;branch=z9hG4bK74bf
   ;received=192.0.2.114
  Max-Forwards: 70
  From: Bill <sips:bill@biloxi.example.com>;tag=8675309
  To: Bob <sips:bob@biloxi.example.com>;tag=31451098
  Call-ID: rt4353gs2egg@pc.biloxi.example.com
  CSeq: 1 SUBSCRIBE
  Content-Length: 0


  F5 NOTIFY  Bob -> Bill

  NOTIFY sips:bill@pc.biloxi.example.com SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bK74br
  Max-Forwards: 70
  From: Bob <sips:bob@biloxi.example.com>;tag=31451098
  To: Bill <sips:bill@biloxi.example.com>;tag=8675309
  Call-ID: rt4353gs2egg@pc.biloxi.example.com
  CSeq: 1 NOTIFY

Top      Up      ToC       Page 150 
  Contact: <sips:bob@client.biloxi.example.com>
  Event: dialog
  Subscription-State: terminated;reason=timeout
  Content-Type: application/dialog-info+xml
  Content-Length: ...

  <?xml version="1.0"?>
  <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
         version="0" state="full" entity="sips:bob@biloxi.example.com">
     <dialog id="94992014524" call-id="12345600@atlanta.example.com"
         local-tag="3145678" remote-tag="1234567" direction="recipient">
       <duration>1</duration>
       <local>
         <identity display="Bob">sips:bob@biloxi.example.com</identity>
         <target>sips:bob@client.biloxi.example.com</target>
       </local>
       <remote>
         <identity display="Alice">sips:alice@atlanta.example.com
                                                         </identity>
         <target>sips:a8342043@atlanta.example.com;gr</target>
       </remote>
       <state>early</state>
     </dialog>
   </dialog-info>


  F6 200 OK  Bill -> Bob

  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bK74br
   ;received=192.0.2.105
  From: Bob <sips:bob@biloxi.example.com>;tag=31451098
  To: Bill <sips:bill@biloxi.example.com>;tag=8675309
  Call-ID: rt4353gs2egg@pc.biloxi.example.com
  CSeq: 1 NOTIFY
  Contact: <sips:bill@pc.biloxi.example.com>
  Content-Length: 0


  F7 INVITE  Bill -> 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: Bill <sips:bill@biloxi.example.com>;tag=8675310
  To: Alice <sips:alice@atlanta.example.com>

Top      Up      ToC       Page 151 
  Call-ID: 563456212@b2.biloxi.example.com
  CSeq: 1 INVITE
  Require: replaces
  Replaces: 12345600@atlanta.example.com
   ;from-tag=314578;to-tag=1234567;early-only
  Contact: <sips:bill@pc.biloxi.example.com>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...

  v=0
  o=bill 2890843122 2890843122 IN IP4 pc.biloxi.example.com
  s=
  c=IN IP4 pc.biloxi.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 -> Bill

  SIP/2.0 200 OK
  Via: SIP/2.0/TLS pc.biloxi.example.com:5061
   ;branch=z9hG4bK74HH
   ;received=192.0.2.114
  From: Bill <sips:bill@biloxi.example.com>;tag=8675310
  To: Alice <sips:alice@atlanta.example.com>;tag=131256
  Call-ID: 563456212@b2.biloxi.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

  /* Alice stops Bob's phone from ringing by sending a CANCEL. */

Top      Up      ToC       Page 152 
  F9 CANCEL Alice -> Bob

  CANCEL 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 CANCEL
  Content-Length: 0


  F10 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
  CSeq: 1 CANCEL
  Content-Length: 0


  F11 487 Request Terminated Bob -> Alice

  SIP/2.0 487 Request Terminated
  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
  Content-Length: 0


  F12 ACK Alice -> Bob

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

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


  F13 ACK  Bill -> Alice

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

  /* RTP streams are established between Alice and Bill.
     Later, Alice hangs up with Bill. */


  F14 BYE Alice -> Bill

  BYE sips:bill@pc.biloxi.example.com SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf2
  Max-Forwards: 70
  To: Bill <sips:bill@biloxi.example.com>;tag=8675310
  From: Alice <sips:alice@atlanta.example.com>;tag=131256
  Call-ID: 563456212@b2.biloxi.example.com
  CSeq: 1 BYE
  Content-Length: 0


  F15 200 OK Bill -> Alice

  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf2
   ;received=192.0.2.105
  To: Bill <sips:bill@biloxi.example.com>;tag=8675310
  From: Alice <sips:alice@atlanta.example.com>;tag=131256
  Call-ID: 563456212@b2.biloxi.example.com
  CSeq:  1 BYE
  Content-Length: 0

Top      Up      ToC       Page 154 
2.17.  Automatic Redial

           Alice             Bob
             |                |
             |    INVITE F1   |
             |--------------->|
             |486 Busy Here F2|
             |<---------------|    Bob is busy
             |     ACK F3     |
             |--------------->|
             |  SUBSCRIBE F4  |
             |--------------->|
             |   200 OK F5    |
             |<---------------|
             |    NOTIFY F6   |
             |<---------------|
             |   200 OK F7    |
             |--------------->|
             |                |
             |    NOTIFY F8   |    Bob is now available
             |<---------------|
             |   200 OK F9    |
             |--------------->|
             |                |
             |   INVITE F10   |
             |--------------->|    Session setup successful
             | 180 Ringing F11|
             |<---------------|
             |   200 OK F12   |
             |<---------------|
             |     ACK F13    |
             |--------------->|
             |  Media Session |
             |<==============>|
             |                |
             |   NOTIFY F14   |
             |<---------------|
             |   200 OK F15   |
             |--------------->|
             |                |
             |  SUBSCRIBE F16 | Alice terminates subscription
             |--------------->|
             |   200 OK F17   |
             |<---------------|
             |   NOTIFY F18   |
             |<---------------|
             |   200 OK F19   |
             |--------------->|
             |                |

Top      Up      ToC       Page 155 
   Bob is initially busy when Alice calls.  Alice subscribes to Bob's
   call state using a SUBSCRIBE F4.  Bob sends a NOTIFY F8 when Bob is
   available.  Alice is alerted, then Alice sends an INVITE to Bob to
   establish the session.  The subscription is terminated using
   SUBSCRIBE F16.

   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:alice@client.atlanta.example.com>
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, 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 486 Busy Here

   SIP/2.0 486 Busy Here
   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=982039i4
   Call-ID: 12345600@atlanta.example.com
   CSeq: 1 INVITE
   Content-Length: 0

Top      Up      ToC       Page 156 
   F3 ACK Alice -> Bob

   ACK 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>;tag=982039i4
   Call-ID: 12345600@atlanta.example.com
   CSeq: 1 ACK
   Content-Length: 0


   F4 SUBSCRIBE Alice -> Bob

   SUBSCRIBE sips:bob@biloxi.example.com SIP/2.0
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
    ;branch=z9hG4bK74b8G
   Max-Forwards: 70
   From: Alice <sips:alice@atlanta.example.com>;tag=837348234
   To: Bob <sips:bob@biloxi.example.com>
   Call-ID: 4524526232@atlanta.example.com
   CSeq: 1 SUBSCRIBE
   Contact: sips:alice@client.atlanta.example.com
   Event: dialog
   Accept: application/dialog-info+xml
   Content-Length: 0


   F5 200 OK Bob -> Alice

   SIP/2.0 200 OK
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
    ;branch=z9hG4bK74b8G
    ;received=192.0.2.103
   From: Alice <sips:alice@atlanta.example.com>;tag=837348234
   To: Bob <sips:bob@biloxi.example.com>;tag=341123
   Call-ID: 4524526232@atlanta.example.com
   Expires: 60
   CSeq: 1 SUBSCRIBE
   Contact: sips:bob@client.biloxi.example.com
   Content-Length: 0

Top      Up      ToC       Page 157 
   F6 NOTIFY Bob -> Alice

   NOTIFY sips:alice@client.atlanta.example.com SIP/2.0
   Via: SIP/2.0/TLS client.biloxi.example.com:5061
    ;branch=z9hG4bK74bn2
   Max-Forwards: 70
   From: Bob <sips:bob@biloxi.example.com>;tag=341123
   To: Alice <sips:alice@atlanta.example.com>;tag=837348234
   Call-ID: 4524526232@atlanta.example.com
   CSeq: 1 NOTIFY
   Contact: <sips:bob@client.biloxi.example.com>
   Event: dialog
   Subscription-State: active;expires=59
   Content-Type: application/dialog-info+xml
   Content-Length: ...

   <?xml version="1.0"?>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
          version="0" state="full" entity="sips:bob@biloxi.example.com">
      <dialog id="562623442g3">
         <duration>1</duration>
        <state>confirmed</state>
      </dialog>
    </dialog-info>


   F7 200 OK Alice -> Bob

   SIP/2.0 200 OK
   Via: SIP/2.0/TLS client.biloxi.example.com:5061
    ;branch=z9hG4bK74bn2
    ;received=192.0.2.105
   From: Bob <sips:bob@biloxi.example.com>;tag=341123
   To: Alice <sips:alice@atlanta.example.com>;tag=837348234
   Call-ID: 4524526232@atlanta.example.com
   CSeq: 1 NOTIFY
   Content-Length: 0

   /* Bob is now available. */


   F8 NOTIFY Bob -> Alice

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

Top      Up      ToC       Page 158 
   To: Alice <sips:alice@atlanta.example.com>;tag=837348234
   Call-ID: 4524526232@atlanta.example.com
   CSeq: 2 NOTIFY
   Event: dialog
   Subscription-State: active;expires=27
   Contact: <sips:bob@client.biloxi.example.com>
   Content-Type: application/dialog-info+xml
   Content-Length: ...

   <?xml version="1.0"?>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
          version="0" state="full" entity="sips:bob@biloxi.example.com">
      <dialog id="562623442g3">
        <state>terminated</state>
      </dialog>
   </dialog-info>


   F9 200 OK Alice -> Bob

   SIP/2.0 200 OK
   Via: SIP/2.0/TLS client.biloxi.example.com:5061
    ;branch=z9hG4bK74bVi
    ;received=192.0.2.105
   From: Bob <sips:bob@biloxi.example.com>;tag=341123
   To: Alice <sips:alice@atlanta.example.com>;tag=837348234
   Call-ID: 4524526232@atlanta.example.com
   CSeq: 2 NOTIFY
   Content-Length: 0


   F10 INVITE Alice -> Bob

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

Top      Up      ToC       Page 159 
   v=0
   o=alice 2890844826 2890844826 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


   F11 180 Ringing Bob -> Alice

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


   F12 200 OK Bob -> Alice

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

   v=0
   o=bob 2890854527 2890854527 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

Top      Up      ToC       Page 160 
   F13 ACK Alice -> Bob

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


   F14 NOTIFY Bob -> Alice

   NOTIFY sips:alice@client.atlanta.example.com SIP/2.0
   Via: SIP/2.0/TLS client.biloxi.example.com:5061
    ;branch=z9hG4bK4bnd2
   Max-Forwards: 70
   From: Bob <sips:bob@biloxi.example.com>;tag=341123
   To: Alice <sips:alice@atlanta.example.com>;tag=837348234
   Call-ID: 4524526232@atlanta.example.com
   CSeq: 3 NOTIFY
   Contact: <sips:bob@client.biloxi.example.com>
   Event: dialog
   Subscription-State: active;expires=15
   Content-Type: application/dialog-info+xml
   Content-Length: ...

   <?xml version="1.0"?>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
          version="0" state="full" entity="sips:bob@biloxi.example.com">
      <dialog id="62d2623442g3">
         <duration>1</duration>
        <state>confirmed</state>
      </dialog>
    </dialog-info>


   F15 200 OK Alice -> Bob

   SIP/2.0 200 OK
   Via: SIP/2.0/TLS client.biloxi.example.com:5061
    ;branch=z9hG4bK4bnd2
    ;received=192.0.2.105
   From: Bob <sips:bob@biloxi.example.com>;tag=341123
   To: Alice <sips:alice@atlanta.example.com>;tag=837348234

Top      Up      ToC       Page 161 
   Call-ID: 4524526232@atlanta.example.com
   CSeq: 3 NOTIFY
   Content-Length: 0

   /* Alice terminates the subscription. */


   F16 SUBSCRIBE Alice -> Bob

   SUBSCRIBE sips:bob@client.biloxi.example.com SIP/2.0
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
    ;branch=z9hG4bK474b8
   Max-Forwards: 70
   From: Alice <sips:alice@atlanta.example.com>;tag=837348234
   To: Alice <sips:alice@atlanta.example.com>;tag=837348234
   Call-ID: 4524526232@atlanta.example.com
   CSeq: 2 SUBSCRIBE
   Contact: sips:alice@client.atlanta.example.com
   Event: dialog
   Expires: 0
   Accept: application/dialog-info+xml
   Content-Length: 0


   F17 200 OK Bob -> Alice

   SIP/2.0 200 OK
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
    ;branch=z9hG4bK474b8
    ;received=192.0.2.103
   From: Alice <sips:alice@atlanta.example.com>;tag=837348234
   To: Bob <sips:bob@biloxi.example.com>;tag=341123
   Call-ID: 4524526232@atlanta.example.com
   Expires: 0
   CSeq: 2 SUBSCRIBE
   Contact: sips:bob@client.biloxi.example.com
   Content-Length: 0


   F18 NOTIFY Bob -> Alice

   NOTIFY sips:alice@client.atlanta.example.com SIP/2.0
   Via: SIP/2.0/TLS client.biloxi.example.com:5061
    ;branch=z9hG4bKb5n2j
   Max-Forwards: 70
   From: Bob <sips:bob@biloxi.example.com>;tag=341123
   To: Alice <sips:alice@atlanta.example.com>;tag=837348234
   Call-ID: 4524526232@atlanta.example.com

Top      Up      ToC       Page 162 
   CSeq: 4 NOTIFY
   Contact: <sips:bob@client.biloxi.example.com>
   Event: dialog
   Subscription-State: terminated;reason=noresource
   Content-Type: application/dialog-info+xml
   Content-Length: ...

   <?xml version="1.0"?>
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
          version="0" state="full" entity="sips:bob@biloxi.example.com">
      <dialog id="62d2623442g3">
         <duration>3</duration>
        <state>confirmed</state>
      </dialog>
    </dialog-info>


   F19 200 OK Alice -> Bob

   SIP/2.0 200 OK
   Via: SIP/2.0/TLS client.biloxi.example.com:5061
    ;branch=z9hG4bKb5n2j
    ;received=192.0.2.105
   From: Bob <sips:bob@biloxi.example.com>;tag=341123
   To: Alice <sips:alice@atlanta.example.com>;tag=837348234
   Call-ID: 4524526232@atlanta.example.com
   CSeq: 4 NOTIFY
   Content-Length: 0

Top      Up      ToC       Page 163 
2.18.  Click to Dial

        Bob's PC                Bob                Carol
            | REFER Refer-To:Carol F1                 |
            |------------------->|                    |
            |  202 Accepted F2   |                    |
            |<-------------------|                    |
            |                    |     INVITE F3      |
            |                    |------------------->|
            |                    |   180 Ringing F4   |
            |                    |<-------------------|
            |                    |     200 OK F5      |
            |                    |<-------------------|
            |                    |       ACK F6       |
            |                    |------------------->|
            |                    |         RTP        |
            |                    |<==================>|
            |                    |                    |

   In this example, while browsing the web on his PC, Bob clicks on
   Carol's SIP URI, intending to establish a session with Carol.  Bob's
   web browser passes the SIP URI to the SIP client on Bob's PC.  The PC
   client is configured with the URI of Bob's SIP phone.  A REFER is
   sent to the SIP phone, which results in the establishment of the
   session between Bob and Carol.

   Note that Bob's PC requests that no REFER dialog be established by
   the use of the Refer-Sub: false header field [RFC4488].

   This flow is preferable to the 3pcc flow because the end-to-end SIP
   signaling is not interrupted by the 3pcc controller, and because
   Bob's experience of the call will not be marred by the lack of
   ringback tone or possible clipping.  Suitable authorization of the
   REFER and explicit authorization of the triggered INVITE by Bob are
   necessary.

   Message Details

   /* Bob's PC SIP client sends a REFER to Bob's SIP phone. */

      F1 REFER PC -> Bob

      REFER sips:bob@biloxi.example.com SIP/2.0
      Via: SIP/2.0/TLS pc.biloxi.example.com:5061
       ;branch=z9hG4bKnashds7
      Max-Forwards: 70
      From: <sips:pc.biloxi.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>

Top      Up      ToC       Page 164 
      Call-ID: 1234560183434
      CSeq: 1 REFER
      Refer-To: <sips:carol@chicago.example.com>
      Refer-Sub: false
      Contact: <sips:pc.biloxi.example.com>
      Content-Length: 0


      F2 202 Accepted Bob -> PC

      SIP/2.0 202 Accepted
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds7
       ;received=192.0.2.103
      From: <sips:pc.biloxi.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 1234560183434
      Contact: <sips:bob@client.biloxi.example.com>
      CSeq: 1 REFER
      Refer-Sub: false
      Content-Length: 0


      F3 INVITE Bob -> Carol

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

      v=0
      o=bob 2890844539 2890844539 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

Top      Up      ToC       Page 165 
      F4 180 Ringing Carol -> Bob

      SIP/2.0 180 Ringing
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashdK9
       ;received=192.0.2.113
      From: Bob <sips:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=928287
      Call-ID: 7436222@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:carol@client.chicago.example.com>
      Content-Length: 0


      F5 200 OK Carol -> Bob

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

      v=0
      o=carol 2890844527 2890844527 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


      F6 ACK Bob -> Carol

      ACK sips:carol@client.chicago.example.com SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashd43
      Max-Forwards: 70
      From: Bob <sips:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=928287

Top      Up      ToC       Page 166 
      Call-ID: 7436222@atlanta.example.com
      CSeq: 1 ACK
      Content-Length: 0

      /* Bob and Carol now have established a session. */

3.  Security Considerations

   Since many of the examples in this document involve SIP call control,
   either peer-to-peer or 3pcc, the security considerations in the
   Multiparty Framework document [FRAMEWORK] apply.

   Many of the services shown in this document rely on a particular user
   agent being part of a group.  Members of a group could be, for
   example, employees within a particular department, a set of home
   phone extensions, members of a call center, etc.  As such, user
   agents that are part of the group permit other group members special
   privileges and features.  For example, while a user agent may not in
   general allow another user agent to learn detailed dialog
   information, this information might be shared with another group
   member in order to facilitate a service such as call pickup.  Group
   members must be authenticated using normal SIP means such as
   certificates or shared secrets.

   The service examples in this document make extensive use of the SIP
   call control primitives REFER, Replaces, Join, and the dialog
   package.  The security considerations associated with each of these
   extensions [RFC3515], [RFC3891], [RFC3911], [RFC4235] apply to the
   scenarios in this document.

4.  Acknowledgements

   The authors would like to thank the following reviewers of the
   document for their detailed comments and corrections: Vijay Gurbani,
   John Elwell, Joel Repiquet, Nagesh Kumar, Chandra Ravipati, Eric
   Burger, Jeroen Bemmel, Miguel Garcia, and Dale Worley.

   The Transfer - Instant Messaging call flow is based on the "IM-a-
   call" call flow by Jonathan Rosenberg and Henning Schulzrinne.  The
   Automatic Redial call flow is based on a call flow by Adam Roach.
   The authors wish to thank the following individuals for their
   assistance and review of this call flows document: Joel Repiquet, Aki
   Neimi, Rohan Mahy, Jonathan Rosenberg, Hemant Agrawal, Henry
   Sinnreich, Dean Willis, David Devanatham, Joe Pizzimenti, Matt
   Cannon, John Hearty, the whole MCI WorldCom IPOP Design team, Scott

Top      Up      ToC       Page 167 
   Orton, Greg Osterhout, Pat Sollee, Doug Weisenberg, Danny Mistry,
   Steve McKinnon, and Denise Ingram, Denise Caballero, Tom Redman, Ilya
   Slain, Pat Sollee, John Truetken, and others from MCI WorldCom, 3Com,
   Cisco, Lucent, and Nortel.

5.  References

5.1.  Normative References

   [RFC3261]    Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
                A., Peterson, J., Sparks, R., Handley, M., and E.
                Schooler, "SIP: Session Initiation Protocol", RFC 3261,
                June 2002.

   [RFC3264]    Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
                with Session Description Protocol (SDP)", RFC 3264,
                June 2002.

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

   [RFC3428]    Campbell, B., Rosenberg, J., Schulzrinne, H., Huitema,
                C., and D. Gurle, "Session Initiation Protocol (SIP)
                Extension for Instant Messaging", RFC 3428,
                December 2002.

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

   [RFC3840]    Rosenberg, J., Schulzrinne, H., and P. Kyzivat,
                "Indicating User Agent Capabilities in the Session
                Initiation Protocol (SIP)", RFC 3840, August 2004.

   [RFC3891]    Mahy, R., Biggs, B., and R. Dean, "The Session
                Initiation Protocol (SIP) "Replaces" Header", RFC 3891,
                September 2004.

   [RFC3911]    Mahy, R. and D. Petrie, "The Session Initiation Protocol
                (SIP) "Join" Header", RFC 3911, October 2004.

   [RFC4235]    Rosenberg, J., Schulzrinne, H., and R. Mahy, "An INVITE-
                Initiated Dialog Event Package for the Session
                Initiation Protocol (SIP)", RFC 4235, November 2005.

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

Top      Up      ToC       Page 168 
   [RFC4579]    Johnston, A. and O. Levin, "Session Initiation Protocol
                (SIP) Call Control - Conferencing for User Agents",
                BCP 119, RFC 4579, August 2006.

5.2.  Informative References

   [FRAMEWORK]  Mahy, R., Sparks, R., Rosenberg, J., Petrie, D., and A.
                Johnston, "A Call Control and Multi-party usage
                framework for the Session Initiation Protocol (SIP)",
                Work in Progress, April 2008.

   [GRUU]       Rosenberg, J., "Obtaining and Using Globally Routable
                User Agent (UA) URIs (GRUU) in the Session Initiation
                Protocol (SIP)", Work in Progress, October 2007.

   [RFC3665]    Johnston, A., Donovan, S., Sparks, R., Cunningham, C.,
                and K. Summers, "Session Initiation Protocol (SIP) Basic
                Call Flow Examples", BCP 75, RFC 3665, December 2003.

   [RFC3725]    Rosenberg, J., Peterson, J., Schulzrinne, H., and G.
                Camarillo, "Best Current Practices for Third Party Call
                Control (3pcc) in the Session Initiation Protocol
                (SIP)", BCP 85, RFC 3725, April 2004.

   [RFC4317]    Johnston, A. and R. Sparks, "Session Description
                Protocol (SDP) Offer/Answer Examples", RFC 4317,
                December 2005.

   [RFC4475]    Sparks, R., Hawrylyshen, A., Johnston, A., Rosenberg,
                J., and H. Schulzrinne, "Session Initiation Protocol
                (SIP) Torture Test Messages", RFC 4475, May 2006.

   [TRANSFER]   Sparks, R. and A. Johnston, "Session Initiation Protocol
                Call Control - Transfer", Work in Progress,
                September 2008.

Top      Up      ToC       Page 169 
Authors' Addresses

   Alan Johnston (editor)
   Avaya
   St. Louis, MO  63124

   EMail: alan@sipstation.com


   Robert J. Sparks
   Tekelec

   EMail: RjS@nostrum.com


   Chris Cunningham
   Cisco Systems

   EMail: chrcunni@cisco.com


   Steve Donovan
   Cisco Systems

   EMail: srd@cisco.com


   Kevin Summers
   Sonus
   Plano, TX  75093

   EMail: ksummers@sonusnet.com

Top      Up      ToC       Page 170 
Full Copyright Statement

   Copyright (C) The IETF Trust (2008).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

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

Intellectual Property

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

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

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