Difference between revisions of "RFC5359"

From RFC-Wiki
imported>Admin
(Created page with " Network Working Group A. Johnston, Ed.Request for Comments: 5359 AvayaBCP: 144 ...")
 
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 +
Network Working Group                                  A. Johnston, Ed.
 +
Request for Comments: 5359                                        Avaya
 +
BCP: 144                                                      R. Sparks
 +
Category: Best Current Practice                                  Tekelec
 +
                                                        C. Cunningham
 +
                                                          S. Donovan
 +
                                                        Cisco Systems
 +
                                                          K. Summers
 +
                                                                Sonus
 +
                                                        October 2008
  
 +
          Session Initiation Protocol Service Examples
  
 
+
'''Status of This Memo'''
 
 
 
 
 
 
Network Working Group                                  A. Johnston, Ed.Request for Comments: 5359                                        AvayaBCP: 144                                                      R. SparksCategory: Best Current Practice                                  Tekelec                                                        C. Cunningham                                                          S. Donovan                                                        Cisco Systems                                                          K. Summers                                                                Sonus                                                        October 2008
 
 
 
          Session Initiation Protocol Service Examples
 
Status of This Memo
 
  
 
This document specifies an Internet Best Current Practices for the
 
This document specifies an Internet Best Current Practices for the
Line 14: Line 18:
 
improvements.  Distribution of this memo is unlimited.
 
improvements.  Distribution of this memo is unlimited.
  
Abstract
+
'''Abstract'''
  
 
This document gives examples of Session Initiation Protocol (SIP)
 
This document gives examples of Session Initiation Protocol (SIP)
Line 27: Line 31:
 
likely to be implemented on SIP IP telephones in a business
 
likely to be implemented on SIP IP telephones in a business
 
environment.
 
environment.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
== Overview ==
 
== Overview ==
Line 72: Line 57:
 
SIP implementers, designers, and protocol researchers alike and will
 
SIP implementers, designers, and protocol researchers alike and will
 
help further the goal of a standard implementation of [[RFC3261|RFC 3261]]
 
help further the goal of a standard implementation of [[RFC3261|RFC 3261]]
[RFC3261] and some of its extensions.
+
[[RFC3261]] and some of its extensions.
  
 
These flows represent carefully checked and working group reviewed
 
These flows represent carefully checked and working group reviewed
Line 79: Line 64:
  
 
These call flows are based on the current version 2.0 of SIP in RFC
 
These call flows are based on the current version 2.0 of SIP in RFC
3261 [RFC3261] with Session Description Protocol (SDP) usage
+
3261 [[RFC3261]] with Session Description Protocol (SDP) usage
described in [[RFC3264|RFC 3264]] [RFC3264].  Other RFCs also form part of the
+
described in [[RFC3264|RFC 3264]] [[RFC3264]].  Other RFCs also form part of the
 
SIP standard and are used and referenced in these call flows.
 
SIP standard and are used and referenced in these call flows.
  
Line 86: Line 71:
 
definitive as far as protocol issues are concerned.  Also, these
 
definitive as far as protocol issues are concerned.  Also, these
 
flows do not represent the only way to implement these services --
 
flows do not represent the only way to implement these services --
other approaches such as 3pcc (Third Party Call Control) [RFC3725] or
+
other approaches such as 3pcc (Third Party Call Control) [[RFC3725]] or
 
Back-to-Back User Agents (B2BUAs) can be used.  This specification
 
Back-to-Back User Agents (B2BUAs) can be used.  This specification
 
does not preclude these or other approaches for implementing such
 
does not preclude these or other approaches for implementing such
Line 92: Line 77:
 
examples are described in the Multiparty Framework document
 
examples are described in the Multiparty Framework document
 
[FRAMEWORK].
 
[FRAMEWORK].
 
 
 
 
 
 
 
  
 
These flows assume the functionality described in the SIP Call Flow
 
These flows assume the functionality described in the SIP Call Flow
Examples document [RFC3665], which explores basic SIP behavior.  Some
+
Examples document [[RFC3665]], which explores basic SIP behavior.  Some
 
of the scenarios described herein make use of the SIP method
 
of the scenarios described herein make use of the SIP method
extension REFER [RFC3515], the SIP header extension Replaces
+
extension REFER [[RFC3515]], the SIP header extension Replaces
[RFC3891], and the SIP header extension Join [RFC3911].  The SIP
+
[[RFC3891]], and the SIP header extension Join [[RFC3911]].  The SIP
Events document [RFC3265] describes the use of SUBSCRIBE and NOTIFY,
+
Events document [[RFC3265]] describes the use of SUBSCRIBE and NOTIFY,
while the SIP Dialog Event Package document [RFC4235] describes the
+
while the SIP Dialog Event Package document [[RFC4235]] describes the
 
dialog event package.  Some examples make use of the GRUU (Globally
 
dialog event package.  Some examples make use of the GRUU (Globally
 
Routable User Agent URI) extension [GRUU].
 
Routable User Agent URI) extension [GRUU].
Line 121: Line 99:
 
audio media.  These flows apply equally well for other media and
 
audio media.  These flows apply equally well for other media and
 
multimedia sessions.  For more advanced examples of SDP offer/answer
 
multimedia sessions.  For more advanced examples of SDP offer/answer
exchanges, refer to [RFC4317].
+
exchanges, refer to [[RFC4317]].
  
 
Each call flow is presented with a textual description of the
 
Each call flow is presented with a textual description of the
Line 147: Line 125:
 
Messages with parentheses around the name represent optional control
 
Messages with parentheses around the name represent optional control
 
messages.
 
messages.
 
 
 
 
 
  
 
Messages are identified in the figures as F1, F2, etc.  This
 
Messages are identified in the figures as F1, F2, etc.  This
Line 157: Line 130:
  
 
Lines longer than 72 characters are handled using the <allOneLine>
 
Lines longer than 72 characters are handled using the <allOneLine>
convention defined in Section 2.1 of [[RFC4475|RFC 4475]] [RFC4475].
+
convention defined in Section 2.1 of [[RFC4475|RFC 4475]] [[RFC4475]].
  
 
Comments in the message details are shown in the following form:
 
Comments in the message details are shown in the following form:
Line 163: Line 136:
 
/* Comments. */
 
/* Comments. */
  
 +
== Service Examples ==
  
 +
=== Call Hold ===
  
 
+
         Alice          Proxy            Bob
 
+
           |    INVITE F1  |              |
 
+
           |--------------->|              |
 
+
           |                |  INVITE F2  |
 
+
           |(100 Trying) F3 |------------->|
 
+
           |<---------------|              |
 
+
           |                |180 Ringing F4|
 
+
           | 180 Ringing F5 |<-------------|
 
+
           |<---------------|              |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
== Service Examples ==
 
 
 
=== Call Hold ===
 
 
 
         Alice          Proxy            Bob
 
           |    INVITE F1  |              |
 
           |--------------->|              |
 
           |                |  INVITE F2  |
 
           |(100 Trying) F3 |------------->|
 
           |<---------------|              |
 
           |                |180 Ringing F4|
 
           | 180 Ringing F5 |<-------------|
 
           |<---------------|              |
 
 
           |                |  200 OK F6  |
 
           |                |  200 OK F6  |
 
           |    200 OK F7  |<-------------|
 
           |    200 OK F7  |<-------------|
Line 254: Line 184:
 
           |    200 OK F25  |<-------------|
 
           |    200 OK F25  |<-------------|
 
           |<---------------|              |
 
           |<---------------|              |
 
 
 
 
  
 
In this scenario, Alice calls Bob, then Bob places the call on hold.
 
In this scenario, Alice calls Bob, then Bob places the call on hold.
Line 270: Line 196:
  
 
Also note the use of the rendering feature tag defined in [[RFC4235|RFC 4235]]
 
Also note the use of the rendering feature tag defined in [[RFC4235|RFC 4235]]
[RFC4235] used in F10 and F11 to indicate that Bob's UA is no longer
+
[[RFC4235]] used in F10 and F11 to indicate that Bob's UA is no longer
 
rendering media to Bob, i.e., that Bob has placed the call on hold.
 
rendering media to Bob, i.e., that Bob has placed the call on hold.
  
Line 298: Line 224:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F2 INVITE Proxy 1 -> Bob
 
   F2 INVITE Proxy 1 -> Bob
Line 306: Line 231:
 
     ;branch=z9hG4bK83749.1
 
     ;branch=z9hG4bK83749.1
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
 
 
 
 
  
 
     ;branch=z9hG4bK74bf9
 
     ;branch=z9hG4bK74bf9
Line 333: Line 253:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F3 (100 Trying) Proxy 1 -> Alice
 
   F3 (100 Trying) Proxy 1 -> Alice
Line 346: Line 265:
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F4 180 Ringing Bob -> Proxy 1
 
   F4 180 Ringing Bob -> Proxy 1
Line 360: Line 278:
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   To: Bob <sips:[email protected]>;tag=314159
 
   To: Bob <sips:[email protected]>;tag=314159
 
 
 
 
  
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
Line 369: Line 283:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content Length:0
 
   Content Length:0
 
  
 
   F5 180 Ringing Proxy 1 -> Alice
 
   F5 180 Ringing Proxy 1 -> Alice
Line 384: Line 297:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content Length: 0
 
   Content Length: 0
 
  
 
   F6 200 OK Bob -> Proxy 1
 
   F6 200 OK Bob -> Proxy 1
Line 413: Line 325:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
 
 
 
  
 
   F7 200 OK Proxy 1 -> Alice
 
   F7 200 OK Proxy 1 -> Alice
Line 442: Line 350:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F8 ACK Alice -> Proxy 1
 
   F8 ACK Alice -> Proxy 1
Line 458: Line 365:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F9 ACK Proxy 1 -> Bob
 
   F9 ACK Proxy 1 -> Bob
Line 466: Line 372:
 
     ;branch=z9hG4bK837492.1
 
     ;branch=z9hG4bK837492.1
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
 
 
 
  
 
     ;branch=z9hG4bK74bf92
 
     ;branch=z9hG4bK74bf92
Line 481: Line 383:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* Bob places Alice on hold.  Note that the version is
 
   /* Bob places Alice on hold.  Note that the version is
Line 511: Line 412:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=sendonly
 
   a=sendonly
 
  
 
   F11 INVITE Proxy 1 -> Alice
 
   F11 INVITE Proxy 1 -> Alice
Line 519: Line 419:
 
     ;branch=z9hG4bK83749.1
 
     ;branch=z9hG4bK83749.1
 
   Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
   Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
 
 
 
  
 
     ;branch=z9hG4bKnashds7
 
     ;branch=z9hG4bKnashds7
Line 546: Line 442:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=sendonly
 
   a=sendonly
 
  
 
   /* Alice replies to hold. */
 
   /* Alice replies to hold. */
Line 569: Line 464:
 
   Content-Type: application/sdp
 
   Content-Type: application/sdp
 
   Content-Length: ...
 
   Content-Length: ...
 
 
 
 
 
 
 
  
 
   v=0
 
   v=0
Line 585: Line 473:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=recvonly
 
   a=recvonly
 
  
 
   F13 200 OK Proxy 1 -> Bob
 
   F13 200 OK Proxy 1 -> Bob
Line 612: Line 499:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=recvonly
 
   a=recvonly
 
  
 
   F14 ACK Bob -> Proxy 1
 
   F14 ACK Bob -> Proxy 1
Line 625: Line 511:
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
 
 
 
  
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F15 ACK Proxy 1 -> Alice
 
   F15 ACK Proxy 1 -> Alice
Line 651: Line 532:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* Bob takes the call off hold. */
 
   /* Bob takes the call off hold. */
Line 676: Line 556:
 
   s=
 
   s=
 
   c=IN IP4 client.biloxi.example.com
 
   c=IN IP4 client.biloxi.example.com
 
 
 
 
 
 
  
 
   t=0 0
 
   t=0 0
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F17 INVITE Proxy 1 -> Alice
 
   F17 INVITE Proxy 1 -> Alice
Line 715: Line 588:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F18 200 OK Alice -> Proxy 1
 
   F18 200 OK Alice -> Proxy 1
Line 731: Line 603:
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 
   CSeq: 2 INVITE
 
   CSeq: 2 INVITE
 
 
 
 
  
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
Line 749: Line 617:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F19 200 OK Proxy 1 -> Bob
 
   F19 200 OK Proxy 1 -> Bob
Line 775: Line 642:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F20 ACK Bob -> Proxy 1
 
   F20 ACK Bob -> Proxy 1
Line 784: Line 650:
 
   Route: <sips:ss1.example.com;lr>
 
   Route: <sips:ss1.example.com;lr>
 
   Max-Forwards: 70
 
   Max-Forwards: 70
 
 
 
 
  
 
   From: Bob <sips:[email protected]>;tag=314159
 
   From: Bob <sips:[email protected]>;tag=314159
Line 796: Line 658:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F21 ACK Proxy 1 -> Alice
 
   F21 ACK Proxy 1 -> Alice
Line 814: Line 675:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* RTP Media stream re-established.  Alice disconnects. */
 
   /* RTP Media stream re-established.  Alice disconnects. */
Line 830: Line 690:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F23 BYE Proxy 1 -> Bob
 
   F23 BYE Proxy 1 -> Bob
Line 837: Line 696:
 
   Via: SIP/2.0/TLS ss1.example.com:5061
 
   Via: SIP/2.0/TLS ss1.example.com:5061
 
     ;branch=z9hG4bK837497.1
 
     ;branch=z9hG4bK837497.1
 
 
 
 
  
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
Line 851: Line 706:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F24 200 OK Bob -> Proxy 1
 
   F24 200 OK Bob -> Proxy 1
Line 867: Line 721:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F25 200 OK Proxy 1 -> Alice
 
   F25 200 OK Proxy 1 -> Alice
Line 880: Line 733:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
=== Consultation Hold ===
 
=== Consultation Hold ===
Line 943: Line 782:
 
           |                |<-------------|                  |
 
           |                |<-------------|                  |
 
           |                |              |      ACK F24      |
 
           |                |              |      ACK F24      |
 
 
 
 
  
 
           |                |--------------------------------->|
 
           |                |--------------------------------->|
Line 985: Line 820:
  
 
Also note the use of the rendering feature tag defined in [[RFC4235|RFC 4235]]
 
Also note the use of the rendering feature tag defined in [[RFC4235|RFC 4235]]
[RFC4235] used in F10 to indicate that Bob's UA is no longer
+
[[RFC4235]] used in F10 to indicate that Bob's UA is no longer
 
rendering media to Bob, i.e., that Bob has placed the call on hold.
 
rendering media to Bob, i.e., that Bob has placed the call on hold.
  
Line 996: Line 831:
 
     ;branch=z9hG4bK74bf9
 
     ;branch=z9hG4bK74bf9
 
   Max-Forwards: 70
 
   Max-Forwards: 70
 
 
 
 
  
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   From: Alice <sips:[email protected]>;tag=1234567
Line 1,018: Line 849:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F2 INVITE Proxy 1 -> Bob
 
   F2 INVITE Proxy 1 -> Bob
Line 1,047: Line 877:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
 
 
 
 
 
  
 
   F3 (100 Trying) Proxy 1 -> Alice
 
   F3 (100 Trying) Proxy 1 -> Alice
Line 1,065: Line 889:
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F4 180 Ringing Bob -> Proxy 1
 
   F4 180 Ringing Bob -> Proxy 1
Line 1,082: Line 905:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content Length:0
 
   Content Length:0
 
  
 
   F5 180 Ringing Proxy 1 -> Alice
 
   F5 180 Ringing Proxy 1 -> Alice
Line 1,097: Line 919:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content Length: 0
 
   Content Length: 0
 
 
 
 
 
 
 
 
 
  
 
   F6 200 OK Bob -> Proxy 1
 
   F6 200 OK Bob -> Proxy 1
Line 1,134: Line 947:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F7 200 OK Proxy 1 -> Alice
 
   F7 200 OK Proxy 1 -> Alice
Line 1,152: Line 964:
 
   Content-Type: application/sdp
 
   Content-Type: application/sdp
 
   Content-Length: ...
 
   Content-Length: ...
 
 
 
 
 
 
 
  
 
   v=0
 
   v=0
Line 1,167: Line 972:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F8 ACK Alice -> Proxy 1
 
   F8 ACK Alice -> Proxy 1
Line 1,183: Line 987:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F9 ACK Proxy 1 -> Bob
 
   F9 ACK Proxy 1 -> Bob
Line 1,201: Line 1,004:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
 
 
 
 
 
 
 
 
 
 
  
 
   /* Bob places Alice on hold. */
 
   /* Bob places Alice on hold. */
Line 1,240: Line 1,032:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=sendonly
 
   a=sendonly
 
  
 
   F11 INVITE Proxy 1 -> Alice
 
   F11 INVITE Proxy 1 -> Alice
Line 1,261: Line 1,052:
 
   Content-Type: application/sdp
 
   Content-Type: application/sdp
 
   Content-Length: ...
 
   Content-Length: ...
 
 
 
 
  
 
   v=0
 
   v=0
Line 1,274: Line 1,061:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=sendonly
 
   a=sendonly
 
  
 
   F12 200 OK Alice -> Proxy 1
 
   F12 200 OK Alice -> Proxy 1
Line 1,304: Line 1,090:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=recvonly
 
   a=recvonly
 
  
 
   F13 200 OK Proxy 1 -> Bob
 
   F13 200 OK Proxy 1 -> Bob
Line 1,314: Line 1,099:
 
   Record-Route: <sips:ss1.example.com;lr>
 
   Record-Route: <sips:ss1.example.com;lr>
 
   From: Bob <sips:[email protected]>;tag=314159
 
   From: Bob <sips:[email protected]>;tag=314159
 
 
 
 
  
 
   To: Alice <sips:[email protected]>;tag=1234567
 
   To: Alice <sips:[email protected]>;tag=1234567
Line 1,336: Line 1,117:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=recvonly
 
   a=recvonly
 
  
 
   F14 ACK Bob -> Proxy 1
 
   F14 ACK Bob -> Proxy 1
Line 1,352: Line 1,132:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F15 ACK Proxy 1 -> Alice
 
   F15 ACK Proxy 1 -> Alice
Line 1,365: Line 1,144:
 
   From: Bob <sips:[email protected]>;tag=314159
 
   From: Bob <sips:[email protected]>;tag=314159
 
   To: Alice <sips:[email protected]>;tag=1234567
 
   To: Alice <sips:[email protected]>;tag=1234567
 
 
 
 
 
 
  
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F16 INVITE Bob -> Proxy 1
 
   F16 INVITE Bob -> Proxy 1
Line 1,400: Line 1,172:
 
   m=audio 50170 RTP/AVP 0
 
   m=audio 50170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F17 INVITE Proxy 1 -> Carol
 
   F17 INVITE Proxy 1 -> Carol
Line 1,418: Line 1,189:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
 
 
 
 
 
  
 
   Supported: replaces
 
   Supported: replaces
Line 1,436: Line 1,201:
 
   m=audio 50170 RTP/AVP 0
 
   m=audio 50170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F18 (100 Trying) Proxy 1 -> Bob
 
   F18 (100 Trying) Proxy 1 -> Bob
Line 1,449: Line 1,213:
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F19 180 Ringing Carol -> Proxy 1
 
   F19 180 Ringing Carol -> Proxy 1
Line 1,466: Line 1,229:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content Length:0
 
   Content Length:0
 
  
 
   F20 180 Ringing Proxy 1 -> Bob
 
   F20 180 Ringing Proxy 1 -> Bob
Line 1,473: Line 1,235:
 
   Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
   Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
     ;branch=z9hG4bKnashds22
 
     ;branch=z9hG4bKnashds22
 
 
 
 
  
 
     ;received=client.chicago.example.com
 
     ;received=client.chicago.example.com
Line 1,486: Line 1,244:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content Length: 0
 
   Content Length: 0
 
  
 
   F21 200 OK Carol -> Proxy 1
 
   F21 200 OK Carol -> Proxy 1
Line 1,515: Line 1,272:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F22 200 OK Proxy 1 -> Bob
 
   F22 200 OK Proxy 1 -> Bob
Line 1,526: Line 1,282:
 
   From: Bob <sips:[email protected]>;tag=8675309
 
   From: Bob <sips:[email protected]>;tag=8675309
 
   To: Carol <sips:[email protected]>;tag=456654
 
   To: Carol <sips:[email protected]>;tag=456654
 
 
 
 
  
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
Line 1,546: Line 1,298:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F23 ACK Bob -> Proxy 1
 
   F23 ACK Bob -> Proxy 1
Line 1,562: Line 1,313:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F24 ACK Proxy 1 -> Carol
 
   F24 ACK Proxy 1 -> Carol
Line 1,578: Line 1,328:
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
  
 
+
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
 
 
 
 
 
 
 
 
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F25 BYE Bob -> Proxy 1
 
   F25 BYE Bob -> Proxy 1
Line 1,601: Line 1,344:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F26 BYE Proxy 1 -> Carol
 
   F26 BYE Proxy 1 -> Carol
Line 1,617: Line 1,359:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F27 200 OK Carol -> Proxy 1
 
   F27 200 OK Carol -> Proxy 1
Line 1,630: Line 1,371:
 
   From: Bob <sips:[email protected]>;tag=8675309
 
   From: Bob <sips:[email protected]>;tag=8675309
 
   To: Carol <sips:[email protected]>;tag=456654
 
   To: Carol <sips:[email protected]>;tag=456654
 
 
 
 
 
 
  
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F28 200 OK Proxy 1 -> Bob
 
   F28 200 OK Proxy 1 -> Bob
Line 1,653: Line 1,387:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* Bob takes the call off hold. */
 
   /* Bob takes the call off hold. */
Line 1,679: Line 1,412:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
 
 
 
 
 
 
 
 
 
  
 
   F30 INVITE Proxy 1 -> Alice
 
   F30 INVITE Proxy 1 -> Alice
Line 1,717: Line 1,440:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F31 200 OK Alice -> Proxy 1
 
   F31 200 OK Alice -> Proxy 1
Line 1,738: Line 1,460:
 
   Content-Type: application/sdp
 
   Content-Type: application/sdp
 
   Content-Length: ...
 
   Content-Length: ...
 
 
 
 
  
 
   v=0
 
   v=0
Line 1,750: Line 1,468:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F32 200 OK Proxy 1 -> Bob
 
   F32 200 OK Proxy 1 -> Bob
Line 1,776: Line 1,493:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F33 ACK Bob -> Proxy 1
 
   F33 ACK Bob -> Proxy 1
Line 1,791: Line 1,507:
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
   Supported: replaces
 
   Supported: replaces
 
 
 
 
  
 
   Content-Length: 0
 
   Content-Length: 0
Line 1,814: Line 1,526:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F35 BYE Alice -> Proxy 1
 
   F35 BYE Alice -> Proxy 1
Line 1,828: Line 1,539:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F36 BYE Proxy 1 -> Bob
 
   F36 BYE Proxy 1 -> Bob
Line 1,844: Line 1,554:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
 
 
 
  
 
   F37 200 OK Bob -> Proxy 1
 
   F37 200 OK Bob -> Proxy 1
Line 1,863: Line 1,569:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F38 200 OK Proxy 1 -> Alice
 
   F38 200 OK Proxy 1 -> Alice
Line 1,877: Line 1,582:
 
   Content-Length: 0
 
   Content-Length: 0
  
 +
=== Music on Hold ===
  
 
+
         Alice            Bob      Music Server
 
+
           |                |              |
 
+
           |    INVITE F1  |              |
 
+
           |--------------->|              |
 
+
           | 180 Ringing F2 |              |
 
+
           |<---------------|              |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
=== Music on Hold ===
 
 
 
         Alice            Bob      Music Server
 
           |                |              |
 
           |    INVITE F1  |              |
 
           |--------------->|              |
 
           | 180 Ringing F2 |              |
 
           |<---------------|              |
 
 
           |    200 OK F3  |              |
 
           |    200 OK F3  |              |
 
           |<---------------|              |
 
           |<---------------|              |
Line 1,950: Line 1,630:
 
           |<---------------|  200 OK F18  |
 
           |<---------------|  200 OK F18  |
 
           |                |------------->|
 
           |                |------------->|
 
 
 
 
  
 
           |                |              |
 
           |                |              |
Line 1,980: Line 1,656:
  
 
Note the use of the rendering feature tag defined in [[RFC4235|RFC 4235]]
 
Note the use of the rendering feature tag defined in [[RFC4235|RFC 4235]]
[RFC4235] used in F5 to indicate that Bob's UA is no longer rendering
+
[[RFC4235]] used in F5 to indicate that Bob's UA is no longer rendering
 
media to Bob, i.e., that Bob has placed the call on hold.  Feature
 
media to Bob, i.e., that Bob has placed the call on hold.  Feature
 
tags are also used in F12 with the automaton (defined in [[RFC3840|RFC 3840]]
 
tags are also used in F12 with the automaton (defined in [[RFC3840|RFC 3840]]
[RFC3840]) and byeless feature tags (defined in [[RFC4235|RFC 4235]] [RFC4235])
+
[[RFC3840]]) and byeless feature tags (defined in [[RFC4235|RFC 4235]] [[RFC4235]])
 
to describe the capabilities of the Music Server.
 
to describe the capabilities of the Music Server.
  
Line 2,003: Line 1,679:
 
   Contact: <sips:[email protected];gr>
 
   Contact: <sips:[email protected];gr>
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
 
 
 
  
 
   Supported: replaces, gruu
 
   Supported: replaces, gruu
Line 2,019: Line 1,691:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F2 180 Ringing Bob -> Alice
 
   F2 180 Ringing Bob -> Alice
Line 2,033: Line 1,704:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F3 200 OK Bob -> Alice
 
   F3 200 OK Bob -> Alice
Line 2,056: Line 1,726:
 
   c=IN IP4 client.biloxi.example.com
 
   c=IN IP4 client.biloxi.example.com
 
   t=0 0
 
   t=0 0
 
 
 
 
  
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F4 ACK Alice -> Bob
 
   F4 ACK Alice -> Bob
Line 2,078: Line 1,743:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* Bob places Alice on hold. */
 
   /* Bob places Alice on hold. */
Line 2,105: Line 1,769:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=sendonly
 
   a=sendonly
 
 
 
 
 
 
 
 
  
 
   F6 200 OK Alice -> Bob
 
   F6 200 OK Alice -> Bob
Line 2,138: Line 1,794:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=recvonly
 
   a=recvonly
 
  
 
   F7 ACK Bob -> Alice
 
   F7 ACK Bob -> Alice
Line 2,152: Line 1,807:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* Bob REFERs Music Server to establish session with Alice
 
   /* Bob REFERs Music Server to establish session with Alice
Line 2,162: Line 1,816:
 
   Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
   Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
   ;branch=z9hG4bKnashds9
 
   ;branch=z9hG4bKnashds9
 
 
 
 
  
 
   Max-Forwards: 70
 
   Max-Forwards: 70
Line 2,180: Line 1,830:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F9 202 Accepted Music Server -> Bob
 
   F9 202 Accepted Music Server -> Bob
Line 2,194: Line 1,843:
 
   CSeq: 1 REFER
 
   CSeq: 1 REFER
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F10 NOTIFY Music Server -> Bob
 
   F10 NOTIFY Music Server -> Bob
Line 2,213: Line 1,861:
  
 
   SIP/2.0 100 Trying
 
   SIP/2.0 100 Trying
 
 
 
 
 
 
  
 
   F11 200 OK Bob -> Music Server
 
   F11 200 OK Bob -> Music Server
Line 2,231: Line 1,873:
 
   CSeq: 1 NOTIFY
 
   CSeq: 1 NOTIFY
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* Music Server places call to Alice to replace session
 
   /* Music Server places call to Alice to replace session
Line 2,265: Line 1,906:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=sendonly
 
   a=sendonly
 
 
 
 
 
 
 
  
 
   F13 200 OK Alice -> Music Server
 
   F13 200 OK Alice -> Music Server
Line 2,297: Line 1,931:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=recvonly
 
   a=recvonly
 
  
 
   F14 ACK Music Server -> Alice
 
   F14 ACK Music Server -> Alice
Line 2,310: Line 1,943:
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F15 BYE Alice -> Bob
 
   F15 BYE Alice -> Bob
Line 2,321: Line 1,953:
 
   To: Bob <sips:[email protected]>;tag=23431
 
   To: Bob <sips:[email protected]>;tag=23431
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 
 
 
 
  
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F16 200 OK Bob -> Alice
 
   F16 200 OK Bob -> Alice
Line 2,341: Line 1,968:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* Music Server reports success back to Bob by returning
 
   /* Music Server reports success back to Bob by returning
Line 2,372: Line 1,998:
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
   Contact: <sips:[email protected];gr>
 
   Contact: <sips:[email protected];gr>
 
 
 
 
 
 
  
 
   F18 200 OK Bob -> Music Server
 
   F18 200 OK Bob -> Music Server
Line 2,390: Line 2,010:
 
   CSeq: 2 NOTIFY
 
   CSeq: 2 NOTIFY
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* Alice is now parked at the Music Server. */
 
   /* Alice is now parked at the Music Server. */
Line 2,423: Line 2,042:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=sendrecv
 
   a=sendrecv
 
 
 
 
 
 
 
 
  
 
   F20 200 OK Alice -> Bob
 
   F20 200 OK Alice -> Bob
Line 2,457: Line 2,068:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=sendrecv
 
   a=sendrecv
 
  
 
   F21 200 ACK Bob -> Alice
 
   F21 200 ACK Bob -> Alice
Line 2,472: Line 2,082:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F22 BYE Alice -> Music Server
 
   F22 BYE Alice -> Music Server
Line 2,480: Line 2,089:
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
   ;branch=z9hG4bK74rf
 
   ;branch=z9hG4bK74rf
 
 
 
 
  
 
   To: <sips:[email protected]>;tag=0111
 
   To: <sips:[email protected]>;tag=0111
Line 2,490: Line 2,095:
 
   CSeq: 15 BYE
 
   CSeq: 15 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F23 200 OK Music Server -> Alice
 
   F23 200 OK Music Server -> Alice
Line 2,503: Line 2,107:
 
   CSeq: 15 BYE
 
   CSeq: 15 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* Normal media session between Alice and Bob is resumed. */
 
   /* Normal media session between Alice and Bob is resumed. */
  
 +
=== Transfer - Unattended ===
  
 
+
       Alice                Bob                Carol
 
+
         |      INVITE F1    |                    |
 
+
         |<-------------------|                    |
 
+
         |  180 Ringing F2  |                    |
 
+
         |------------------->|                    |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
=== Transfer - Unattended ===
 
 
 
 
 
       Alice                Bob                Carol
 
         |      INVITE F1    |                    |
 
         |<-------------------|                    |
 
         |  180 Ringing F2  |                    |
 
         |------------------->|                    |
 
 
         |      200 OK F3    |                    |
 
         |      200 OK F3    |                    |
 
         |------------------->|                    |
 
         |------------------->|                    |
Line 2,582: Line 2,153:
 
         |------------------->|                    |
 
         |------------------->|                    |
 
         |                    |                    |
 
         |                    |                    |
 
 
 
 
 
 
 
 
  
 
In this scenario, Bob calls Alice.  Alice then transfers Bob to
 
In this scenario, Bob calls Alice.  Alice then transfers Bob to
Line 2,630: Line 2,193:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F2 180 Ringing Alice -> Bob
 
   F2 180 Ringing Alice -> Bob
Line 2,639: Line 2,201:
 
     ;received=192.0.2.113
 
     ;received=192.0.2.113
 
   From: Bob <sips:[email protected]>;tag=314159
 
   From: Bob <sips:[email protected]>;tag=314159
 
 
 
 
  
 
   To: Alice <sips:[email protected]>;tag=1234567
 
   To: Alice <sips:[email protected]>;tag=1234567
Line 2,649: Line 2,207:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F3 200 OK Alice -> Bob
 
   F3 200 OK Alice -> Bob
Line 2,674: Line 2,231:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F4 ACK Bob -> Alice
 
   F4 ACK Bob -> Alice
Line 2,689: Line 2,245:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* Session is established between Alice and Bob. */
 
   /* Session is established between Alice and Bob. */
 
 
 
 
  
 
   /* Alice performs unattended transfer of Bob to Carol. */
 
   /* Alice performs unattended transfer of Bob to Carol. */
 
  
 
   F5 REFER Alice -> Bob
 
   F5 REFER Alice -> Bob
Line 2,714: Line 2,264:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F6 202 Accepted Bob -> Alice
 
   F6 202 Accepted Bob -> Alice
Line 2,728: Line 2,277:
 
   CSeq: 101 REFER
 
   CSeq: 101 REFER
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F7 NOTIFY Bob -> Alice
 
   F7 NOTIFY Bob -> Alice
Line 2,745: Line 2,293:
 
   Content-Type: message/sipfrag
 
   Content-Type: message/sipfrag
 
   Content-Length: ...
 
   Content-Length: ...
 
 
 
 
  
 
   SIP/2.0 100 Trying
 
   SIP/2.0 100 Trying
 
  
 
   F8 200 OK Alice -> Bob
 
   F8 200 OK Alice -> Bob
Line 2,764: Line 2,307:
 
   CSeq: 2 NOTIFY
 
   CSeq: 2 NOTIFY
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* Alice now disconnects with Bob. */
 
   /* Alice now disconnects with Bob. */
 
  
 
   F9 BYE Alice -> Bob
 
   F9 BYE Alice -> Bob
Line 2,780: Line 2,321:
 
   CSeq: 102 BYE
 
   CSeq: 102 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F10 200 OK Bob -> Alice
 
   F10 200 OK Bob -> Alice
Line 2,795: Line 2,335:
  
 
   /* Bob attempts the transfer to Carol. */
 
   /* Bob attempts the transfer to Carol. */
 
 
 
 
 
 
 
  
 
   F11 INVITE Bob -> Carol
 
   F11 INVITE Bob -> Carol
Line 2,827: Line 2,360:
 
   m=audio 3458 RTP/AVP 0
 
   m=audio 3458 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F12 180 Ringing Carol -> Bob
 
   F12 180 Ringing Carol -> Bob
Line 2,841: Line 2,373:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F13 200 OK Carol -> Bob
 
   F13 200 OK Carol -> Bob
Line 2,851: Line 2,382:
 
   From: Bob <sips:[email protected]>;tag=8675309
 
   From: Bob <sips:[email protected]>;tag=8675309
 
   To: Carol <sips:[email protected]>;tag=928287
 
   To: Carol <sips:[email protected]>;tag=928287
 
 
 
 
  
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
Line 2,871: Line 2,398:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F14 ACK Bob -> Carol
 
   F14 ACK Bob -> Carol
Line 2,884: Line 2,410:
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* Bob and Carol now have established a session.  Bob reports
 
   /* Bob and Carol now have established a session.  Bob reports
 
       success to Alice, which Alice probably ignores. */
 
       success to Alice, which Alice probably ignores. */
 
  
 
   F15 NOTIFY Bob -> Alice
 
   F15 NOTIFY Bob -> Alice
Line 2,904: Line 2,428:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Type: message/sipfrag
 
   Content-Type: message/sipfrag
 
 
 
 
  
 
   Content-Length: ...
 
   Content-Length: ...
Line 2,922: Line 2,442:
 
   Content-Type: application/sdp
 
   Content-Type: application/sdp
 
   Content-Length: ...
 
   Content-Length: ...
 
  
 
   F16 200 OK Alice -> Bob
 
   F16 200 OK Alice -> Bob
Line 2,935: Line 2,454:
 
   CSeq: 3 NOTIFY
 
   CSeq: 3 NOTIFY
 
   Content-Length: 0
 
   Content-Length: 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
=== Transfer - Attended ===
 
=== Transfer - Attended ===
Line 3,011: Line 2,504:
 
           |------------------------------>|
 
           |------------------------------>|
  
 
+
           |            200 OK F20        |
 
 
 
 
 
 
           |            200 OK F20        |
 
 
           |<------------------------------|
 
           |<------------------------------|
 
           |            ACK F21          |
 
           |            ACK F21          |
Line 3,033: Line 2,522:
 
           |  200 OK F27  |              |
 
           |  200 OK F27  |              |
 
           |--------------->|              |
 
           |--------------->|              |
 
  
 
In this scenario, Alice calls Bob.  Bob puts Alice on hold then calls
 
In this scenario, Alice calls Bob.  Bob puts Alice on hold then calls
Line 3,040: Line 2,528:
 
Carol then disconnects session with Bob.  Alice reports success of
 
Carol then disconnects session with Bob.  Alice reports success of
 
transfer to Bob, who then disconnects with Alice.  In this example,
 
transfer to Bob, who then disconnects with Alice.  In this example,
the Replaces header field [RFC3891] is inserted into the Refer-To URI
+
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
 
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
 
Carol in the 200 OK response F10.  This ensures that only the correct
Line 3,063: Line 2,551:
 
   To: Bob <sips:[email protected]>
 
   To: Bob <sips:[email protected]>
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 
 
 
 
  
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
Line 3,082: Line 2,566:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F2 180 Ringing Bob -> Alice
 
   F2 180 Ringing Bob -> Alice
Line 3,096: Line 2,579:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F3 200 OK Bob -> Alice
 
   F3 200 OK Bob -> Alice
Line 3,113: Line 2,595:
 
   Content-Type: application/sdp
 
   Content-Type: application/sdp
 
   Content-Length: ...
 
   Content-Length: ...
 
 
 
 
 
 
 
  
 
   v=0
 
   v=0
Line 3,128: Line 2,603:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F4 ACK Alice -> Bob
 
   F4 ACK Alice -> Bob
Line 3,143: Line 2,617:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* Alice and Bob have established a session.
 
   /* Alice and Bob have established a session.
 
       Bob puts Alice on hold. */
 
       Bob puts Alice on hold. */
 
  
 
   F5 INVITE Bob -> Alice
 
   F5 INVITE Bob -> Alice
Line 3,169: Line 2,641:
 
   s=
 
   s=
 
   c=IN IP4 client.biloxi.example.com
 
   c=IN IP4 client.biloxi.example.com
 
 
 
 
  
 
   t=0 0
 
   t=0 0
Line 3,178: Line 2,646:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=sendonly
 
   a=sendonly
 
  
 
   F6 200 OK Alice -> Bob
 
   F6 200 OK Alice -> Bob
Line 3,204: Line 2,671:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=recvonly
 
   a=recvonly
 
  
 
   F7 ACK Bob -> Alice
 
   F7 ACK Bob -> Alice
Line 3,219: Line 2,685:
  
 
   /* Bob calls Carol. */
 
   /* Bob calls Carol. */
 
 
 
 
 
 
 
  
 
   F8 INVITE Bob -> Carol
 
   F8 INVITE Bob -> Carol
Line 3,250: Line 2,709:
 
   m=audio 3458 RTP/AVP 0
 
   m=audio 3458 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F9 180 Ringing Carol -> Bob
 
   F9 180 Ringing Carol -> Bob
Line 3,264: Line 2,722:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F10 200 OK Carol -> Bob
 
   F10 200 OK Carol -> Bob
Line 3,275: Line 2,732:
 
   To: Carol <sips:[email protected]>;tag=5f35a3
 
   To: Carol <sips:[email protected]>;tag=5f35a3
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 
 
 
 
  
 
   CSeq: 42 INVITE
 
   CSeq: 42 INVITE
Line 3,294: Line 2,747:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F11 ACK Bob -> Carol
 
   F11 ACK Bob -> Carol
Line 3,309: Line 2,761:
  
 
   /* Bob puts Carol on hold. */
 
   /* Bob puts Carol on hold. */
 
  
 
   F12 INVITE Bob -> Carol
 
   F12 INVITE Bob -> Carol
Line 3,326: Line 2,777:
 
   Content-Type: application/sdp
 
   Content-Type: application/sdp
 
   Content-Length: ...
 
   Content-Length: ...
 
 
 
 
 
 
  
 
   v=0
 
   v=0
Line 3,341: Line 2,786:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=sendonly
 
   a=sendonly
 
  
 
   F13 200 OK Carol -> Bob
 
   F13 200 OK Carol -> Bob
Line 3,367: Line 2,811:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
   a=recvonly
 
   a=recvonly
 
  
 
   F14 ACK Bob -> Carol
 
   F14 ACK Bob -> Carol
Line 3,378: Line 2,821:
 
   To: Carol <sips:[email protected]>;tag=5f35a3
 
   To: Carol <sips:[email protected]>;tag=5f35a3
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 
 
 
 
 
 
 
  
 
   CSeq: 43 ACK
 
   CSeq: 43 ACK
Line 3,390: Line 2,826:
  
 
   /* Bob transfers Alice to Carol. */
 
   /* Bob transfers Alice to Carol. */
 
  
 
   F15 REFER Bob -> Alice
 
   F15 REFER Bob -> Alice
Line 3,410: Line 2,845:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F16 202 Accepted Alice -> Bob
 
   F16 202 Accepted Alice -> Bob
Line 3,424: Line 2,858:
 
   CSeq: 1025 REFER
 
   CSeq: 1025 REFER
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F17 NOTIFY Alice -> Bob
 
   F17 NOTIFY Alice -> Bob
Line 3,434: Line 2,867:
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   To: Bob <sips:[email protected]>;tag=23431
 
   To: Bob <sips:[email protected]>;tag=23431
 
 
 
 
  
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
Line 3,448: Line 2,877:
  
 
   SIP/2.0 100 Trying
 
   SIP/2.0 100 Trying
 
  
 
   F18 200 OK Bob -> Alice
 
   F18 200 OK Bob -> Alice
Line 3,464: Line 2,892:
 
   /* Alice establishes session with Carol, which replaces the
 
   /* Alice establishes session with Carol, which replaces the
 
       session between Bob and Carol. */
 
       session between Bob and Carol. */
 
  
 
   F19 INVITE Alice -> Carol
 
   F19 INVITE Alice -> Carol
Line 3,485: Line 2,912:
 
   Content-Type: application/sdp
 
   Content-Type: application/sdp
 
   Content-Length: ...
 
   Content-Length: ...
 
 
 
 
 
 
  
 
   v=0
 
   v=0
Line 3,499: Line 2,920:
 
   m=audio 3458 RTP/AVP 0
 
   m=audio 3458 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F20 200 OK Carol -> Alice
 
   F20 200 OK Carol -> Alice
Line 3,524: Line 2,944:
 
   m=audio 49172 RTP/AVP 0
 
   m=audio 49172 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F21 ACK Alice -> Carol
 
   F21 ACK Alice -> Carol
Line 3,537: Line 2,956:
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
 
 
 
 
 
 
  
 
   Supported: replaces
 
   Supported: replaces
Line 3,549: Line 2,961:
  
 
   /* Carol then disconnects from Bob. */
 
   /* Carol then disconnects from Bob. */
 
  
 
   F22 BYE Carol -> Bob
 
   F22 BYE Carol -> Bob
Line 3,562: Line 2,973:
 
   CSeq: 1 BYE
 
   CSeq: 1 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F23 200 OK Bob -> Carol
 
   F23 200 OK Bob -> Carol
Line 3,575: Line 2,985:
 
   CSeq: 1 BYE
 
   CSeq: 1 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* Alice tells Bob that the call has been
 
   /* Alice tells Bob that the call has been
Line 3,592: Line 3,001:
 
   Event: refer
 
   Event: refer
 
   Subscription-State: terminated;reason=noresource
 
   Subscription-State: terminated;reason=noresource
 
 
 
 
 
  
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
Line 3,611: Line 3,015:
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
  
 
   F25 200 OK Bob -> Alice
 
   F25 200 OK Bob -> Alice
Line 3,626: Line 3,029:
  
 
   /* Bob disconnects with Alice. */
 
   /* Bob disconnects with Alice. */
 
  
 
   F26 BYE Bob -> Alice
 
   F26 BYE Bob -> Alice
Line 3,639: Line 3,041:
 
   CSeq: 1026 BYE
 
   CSeq: 1026 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F27 200 OK Alice -> Bob
 
   F27 200 OK Alice -> Bob
Line 3,646: Line 3,047:
 
   Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
   Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
     ;branch=z9hG4bKnashds7P
 
     ;branch=z9hG4bKnashds7P
 
 
 
 
  
 
     ;received=192.0.2.113
 
     ;received=192.0.2.113
Line 3,659: Line 3,056:
  
 
=== Transfer - Instant Messaging ===
 
=== Transfer - Instant Messaging ===
 
  
 
         Alice          Bob                Carol
 
         Alice          Bob                Carol
Line 3,698: Line 3,094:
 
Alice, which replaces the session with Bob.
 
Alice, which replaces the session with Bob.
  
 
+
This scenario shows the use of the SIP MESSAGE [[RFC3428]] method to
 
 
 
 
 
 
 
 
 
 
This scenario shows the use of the SIP MESSAGE [RFC3428] method to
 
 
pass the URI.  However, another IM protocol or other method could
 
pass the URI.  However, another IM protocol or other method could
 
have been used to pass the URI from Bob to Carol.
 
have been used to pass the URI from Bob to Carol.
Line 3,732: Line 3,122:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F2 180 Ringing Bob -> Alice
 
   F2 180 Ringing Bob -> Alice
Line 3,746: Line 3,135:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
 
 
 
 
 
 
 
 
 
  
 
   F3 200 OK Bob -> Alice
 
   F3 200 OK Bob -> Alice
Line 3,780: Line 3,159:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F4 ACK Alice -> Bob
 
   F4 ACK Alice -> Bob
Line 3,797: Line 3,175:
  
 
   /* Bob IMs Carol. */
 
   /* Bob IMs Carol. */
 
  
 
   F5 MESSAGE Bob -> Carol
 
   F5 MESSAGE Bob -> Carol
Line 3,805: Line 3,182:
 
     ;branch=z9hG4bKnash
 
     ;branch=z9hG4bKnash
 
   Max-Forwards: 70
 
   Max-Forwards: 70
 
 
 
 
  
 
   From: Bob <sips:[email protected]>;tag=8675309
 
   From: Bob <sips:[email protected]>;tag=8675309
Line 3,827: Line 3,200:
 
  </allOneLine>
 
  </allOneLine>
 
     </HTML>
 
     </HTML>
 
  
 
   F6 200 OK Carol -> Bob
 
   F6 200 OK Carol -> Bob
Line 3,845: Line 3,217:
  
 
   /* Carol takes the call from Bob. */
 
   /* Carol takes the call from Bob. */
 
  
 
   F7 INVITE  Carol -> Alice
 
   F7 INVITE  Carol -> Alice
Line 3,858: Line 3,229:
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
   Require: replaces
 
   Require: replaces
 
 
 
 
  
 
   Replaces: [email protected]
 
   Replaces: [email protected]
Line 3,881: Line 3,248:
 
   /* Alice matches the dialog information in the
 
   /* Alice matches the dialog information in the
 
       Replaces header and accepts the INVITE. */
 
       Replaces header and accepts the INVITE. */
 
  
 
   F8 200 OK Alice -> Carol
 
   F8 200 OK Alice -> Carol
Line 3,906: Line 3,272:
 
   m=audio 49172 RTP/AVP 0
 
   m=audio 49172 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
 
 
 
 
 
 
 
 
  
 
   F9 ACK  Carol -> Alice
 
   F9 ACK  Carol -> Alice
Line 3,927: Line 3,284:
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* RTP streams are established between Alice and Carol.
 
   /* RTP streams are established between Alice and Carol.
 
       Alice hangs up with Bob due to the Replaces header field. */
 
       Alice hangs up with Bob due to the Replaces header field. */
 
  
 
   F10 BYE Alice -> Bob
 
   F10 BYE Alice -> Bob
Line 3,944: Line 3,299:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F11 200 OK Bob -> Alice
 
   F11 200 OK Bob -> Alice
Line 3,957: Line 3,311:
 
   CSeq:  2 BYE
 
   CSeq:  2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
 
 
 
 
 
 
 
 
 
 
  
 
=== Call Forwarding Unconditional ===
 
=== Call Forwarding Unconditional ===
 
  
 
         Alice          Proxy          Gateway
 
         Alice          Proxy          Gateway
Line 4,012: Line 3,354:
 
Note also that forwarding could be accomplished using a redirect (302
 
Note also that forwarding could be accomplished using a redirect (302
 
Moved Temporarily response).
 
Moved Temporarily response).
 
 
 
 
 
 
 
 
 
  
 
Message Details
 
Message Details
Line 4,045: Line 3,378:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F2 (100 Trying) Proxy -> Alice
 
   F2 (100 Trying) Proxy -> Alice
Line 4,058: Line 3,390:
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F3 (181 Call is Being Forwarded) Proxy -> Alice
 
   F3 (181 Call is Being Forwarded) Proxy -> Alice
Line 4,068: Line 3,399:
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   To: Bob <sips:[email protected]>;tag=9214d
 
   To: Bob <sips:[email protected]>;tag=9214d
 
 
 
 
 
 
  
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
Line 4,080: Line 3,405:
  
 
   /* Proxy forwards call by rewriting Request-URI. */
 
   /* Proxy forwards call by rewriting Request-URI. */
 
  
 
   F4 INVITE Proxy -> Gateway
 
   F4 INVITE Proxy -> Gateway
Line 4,108: Line 3,432:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F5 180 Ringing Gateway -> Proxy
 
   F5 180 Ringing Gateway -> Proxy
Line 4,124: Line 3,447:
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
  
 
+
   CSeq: 1 INVITE
 
 
 
 
 
 
   CSeq: 1 INVITE
 
 
   Contact: <sips:[email protected];user=phone>
 
   Contact: <sips:[email protected];user=phone>
 
   Content Length:0
 
   Content Length:0
 
  
 
   F6 180 Ringing Proxy -> Alice
 
   F6 180 Ringing Proxy -> Alice
Line 4,146: Line 3,464:
 
   Contact: <sips:[email protected];user=phone>
 
   Contact: <sips:[email protected];user=phone>
 
   Content Length: 0
 
   Content Length: 0
 
  
 
   F7 200 OK Gateway -> Proxy
 
   F7 200 OK Gateway -> Proxy
Line 4,174: Line 3,491:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
 
 
 
 
 
  
 
   F8 200 OK Proxy -> Alice
 
   F8 200 OK Proxy -> Alice
Line 4,204: Line 3,515:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F9 ACK Alice -> Proxy
 
   F9 ACK Alice -> Proxy
Line 4,218: Line 3,528:
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F10 ACK Proxy -> Gateway
 
   F10 ACK Proxy -> Gateway
Line 4,229: Line 3,538:
 
     ;received=192.0.2.103
 
     ;received=192.0.2.103
 
   Max-Forwards: 69
 
   Max-Forwards: 69
 
 
 
 
  
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   From: Alice <sips:[email protected]>;tag=1234567
Line 4,239: Line 3,544:
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F11 BYE Alice -> Proxy
 
   F11 BYE Alice -> Proxy
Line 4,253: Line 3,557:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F12 BYE Proxy -> Gateway
 
   F12 BYE Proxy -> Gateway
Line 4,269: Line 3,572:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F13 200 OK Gateway -> Proxy
 
   F13 200 OK Gateway -> Proxy
Line 4,282: Line 3,584:
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   To: Bob <sips:[email protected]>;tag=314159
 
   To: Bob <sips:[email protected]>;tag=314159
 
 
 
 
  
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F14 200 OK Proxy -> Alice
 
   F14 200 OK Proxy -> Alice
Line 4,304: Line 3,601:
 
   Content-Length: 0
 
   Content-Length: 0
  
 +
=== Call Forwarding - Busy ===
  
 
+
         Alice            Proxy          User B1            User B2
 
+
           |                |              |                  |
 
+
           |    INVITE F1  |              |                  |
 
+
           |--------------->|  INVITE F2  |                  |
 
+
           |                |------------->|                  |
 
+
           |(100 Trying) F3 |              |                  |
 
+
           |<---------------|  486 Busy F4 |                  |
 
+
           |                |<-------------|                  |
 
+
           |                |    ACK F5  |                  |
 
+
           |                |------------->|                  |
 
+
           |(181 Call is Being Forwarded) F6                  |
 
+
           |<---------------|              |    INVITE F7      |
 
+
           |                |--------------------------------->|
 
+
           |                |              | 180 Ringing F8    |
 
+
           |                |<---------------------------------|
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
=== Call Forwarding - Busy ===
 
 
 
 
 
         Alice            Proxy          User B1            User B2
 
           |                |              |                  |
 
           |    INVITE F1  |              |                  |
 
           |--------------->|  INVITE F2  |                  |
 
           |                |------------->|                  |
 
           |(100 Trying) F3 |              |                  |
 
           |<---------------|  486 Busy F4 |                  |
 
           |                |<-------------|                  |
 
           |                |    ACK F5  |                  |
 
           |                |------------->|                  |
 
           |(181 Call is Being Forwarded) F6                  |
 
           |<---------------|              |    INVITE F7      |
 
           |                |--------------------------------->|
 
           |                |              | 180 Ringing F8    |
 
           |                |<---------------------------------|
 
 
           | 180 Ringing F9 |              |                  |
 
           | 180 Ringing F9 |              |                  |
 
           |<---------------|              |      200 OK F10  |
 
           |<---------------|              |      200 OK F10  |
Line 4,388: Line 3,648:
 
     ;branch=z9hG4bK74bf9
 
     ;branch=z9hG4bK74bf9
 
   Max-Forwards: 70
 
   Max-Forwards: 70
 
 
 
 
  
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   From: Alice <sips:[email protected]>;tag=1234567
Line 4,409: Line 3,665:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F2 INVITE Proxy -> B1
 
   F2 INVITE Proxy -> B1
Line 4,437: Line 3,692:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
 
 
 
 
 
 
 
  
 
   F3 (100 Trying) Proxy -> Alice
 
   F3 (100 Trying) Proxy -> Alice
Line 4,457: Line 3,704:
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F4 486 Busy Here B1 -> Proxy
 
   F4 486 Busy Here B1 -> Proxy
Line 4,473: Line 3,719:
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F5 ACK Proxy -> B1
 
   F5 ACK Proxy -> B1
Line 4,486: Line 3,731:
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F6 (181 Call is Being Forwarded) Proxy -> Alice
 
   F6 (181 Call is Being Forwarded) Proxy -> Alice
Line 4,495: Line 3,739:
 
     ;received=192.0.2.103
 
     ;received=192.0.2.103
  
 
+
   From: Alice <sips:[email protected]>;tag=1234567
 
 
 
 
 
 
   From: Alice <sips:[email protected]>;tag=1234567
 
 
   To: Bob <sips:[email protected]>;tag=9214d
 
   To: Bob <sips:[email protected]>;tag=9214d
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
Line 4,506: Line 3,746:
  
 
   /* The proxy now forwards the call to B2. */
 
   /* The proxy now forwards the call to B2. */
 
  
 
   F7 INVITE Proxy -> B2
 
   F7 INVITE Proxy -> B2
Line 4,534: Line 3,773:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F8 180 Ringing B2 -> Proxy
 
   F8 180 Ringing B2 -> Proxy
Line 4,547: Line 3,785:
 
   Record-Route: <sips:ss1.example.com;lr>
 
   Record-Route: <sips:ss1.example.com;lr>
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   From: Alice <sips:[email protected]>;tag=1234567
 
 
 
 
  
 
   To: Bob <sips:[email protected]>;tag=7654321
 
   To: Bob <sips:[email protected]>;tag=7654321
Line 4,557: Line 3,791:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F9 180 Ringing Proxy -> Alice
 
   F9 180 Ringing Proxy -> Alice
Line 4,572: Line 3,805:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F10 200 OK B2 -> Proxy
 
   F10 200 OK B2 -> Proxy
Line 4,600: Line 3,832:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
 
 
 
  
 
   F11 200 OK Proxy -> Alice
 
   F11 200 OK Proxy -> Alice
Line 4,628: Line 3,856:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F12 ACK Alice -> Proxy
 
   F12 ACK Alice -> Proxy
Line 4,642: Line 3,869:
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F13 ACK Proxy -> B2
 
   F13 ACK Proxy -> B2
Line 4,653: Line 3,879:
 
     ;received=192.0.2.103
 
     ;received=192.0.2.103
 
   Max-Forwards: 69
 
   Max-Forwards: 69
 
 
 
 
  
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   From: Alice <sips:[email protected]>;tag=1234567
Line 4,667: Line 3,889:
  
 
   /* Alice eventually hangs up with User B2. */
 
   /* Alice eventually hangs up with User B2. */
 
  
 
   F14 BYE Alice -> Proxy
 
   F14 BYE Alice -> Proxy
Line 4,681: Line 3,902:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F15 BYE Proxy -> B2
 
   F15 BYE Proxy -> B2
Line 4,697: Line 3,917:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F16 200 OK B2 -> Proxy
 
   F16 200 OK B2 -> Proxy
Line 4,706: Line 3,925:
 
     ;received=192.0.2.54
 
     ;received=192.0.2.54
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
 
 
 
  
 
     ;branch=z9hG4bK74bW4
 
     ;branch=z9hG4bK74bW4
Line 4,718: Line 3,933:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F17 200 OK Proxy -> Alice
 
   F17 200 OK Proxy -> Alice
Line 4,732: Line 3,946:
 
   Content-Length: 0
 
   Content-Length: 0
  
 +
=== Call Forwarding - No Answer ===
  
 
+
         Alice            Proxy        User B1            User B2
 
+
           |                |              |                  |
 
+
           |    INVITE F1  |              |                  |
 
+
           |--------------->|  INVITE F2  |                  |
 
+
           |(100 Trying) F3 |------------->|                  |
 
+
           |<---------------|180 Ringing F4|                  |
 
+
           | 180 Ringing F5 |<-------------|                  |
 
+
           |<---------------|              |                  |
 
+
           |                Request Timeout                  |
 
+
           |                |              |                  |
 
+
           |                |  CANCEL F6  |                  |
 
+
           |                |------------->|                  |
 
+
           |                |  200 OK F7  |                  |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
=== Call Forwarding - No Answer ===
 
 
 
 
 
         Alice            Proxy        User B1            User B2
 
           |                |              |                  |
 
           |    INVITE F1  |              |                  |
 
           |--------------->|  INVITE F2  |                  |
 
           |(100 Trying) F3 |------------->|                  |
 
           |<---------------|180 Ringing F4|                  |
 
           | 180 Ringing F5 |<-------------|                  |
 
           |<---------------|              |                  |
 
           |                Request Timeout                  |
 
           |                |              |                  |
 
           |                |  CANCEL F6  |                  |
 
           |                |------------->|                  |
 
           |                |  200 OK F7  |                  |
 
 
           |                |<-------------|                  |
 
           |                |<-------------|                  |
 
           |                |    487 F8  |                  |
 
           |                |    487 F8  |                  |
Line 4,810: Line 3,991:
 
(information is known to the proxy server).  Alice calls B1 and no
 
(information is known to the proxy server).  Alice calls B1 and no
 
one answers.  The proxy server then places the call to B2.
 
one answers.  The proxy server then places the call to B2.
 
 
 
 
 
 
  
 
Message Details
 
Message Details
Line 4,841: Line 4,016:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F2 INVITE Proxy -> B1
 
   F2 INVITE Proxy -> B1
Line 4,865: Line 4,039:
 
   o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
 
   o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
 
   s=
 
   s=
 
 
 
 
  
 
   c=IN IP4 client.atlanta.example.com
 
   c=IN IP4 client.atlanta.example.com
Line 4,874: Line 4,044:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F3 (100 Trying) Proxy -> Alice
 
   F3 (100 Trying) Proxy -> Alice
Line 4,887: Line 4,056:
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F4 180 Ringing B1 -> Proxy
 
   F4 180 Ringing B1 -> Proxy
Line 4,905: Line 4,073:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F5 180 Ringing Proxy -> Alice
 
   F5 180 Ringing Proxy -> Alice
Line 4,918: Line 4,085:
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
 
 
 
  
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
Line 4,928: Line 4,091:
 
   /* B1 rings until a configurable timer expires in the proxy.  The
 
   /* B1 rings until a configurable timer expires in the proxy.  The
 
       proxy sends Cancel and proceeds down the list of routes. */
 
       proxy sends Cancel and proceeds down the list of routes. */
 
  
 
   F6 CANCEL Proxy -> B1
 
   F6 CANCEL Proxy -> B1
Line 4,941: Line 4,103:
 
   CSeq: 1 CANCEL
 
   CSeq: 1 CANCEL
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F7 200 OK B1 -> Proxy
 
   F7 200 OK B1 -> Proxy
Line 4,954: Line 4,115:
 
   CSeq: 1 CANCEL
 
   CSeq: 1 CANCEL
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F8 487 Request Terminated B1 -> Proxy
 
   F8 487 Request Terminated B1 -> Proxy
Line 4,971: Line 4,131:
 
   Content-Length: 0
 
   Content-Length: 0
  
 +
  F9 ACK Proxy -> B1
  
 
+
   ACK sips:[email protected] SIP/2.0
 
 
 
 
 
 
  F9 ACK Proxy -> B1
 
 
 
   ACK sips:[email protected] SIP/2.0
 
 
   Via: SIP/2.0/TLS ss1.example.com:5061
 
   Via: SIP/2.0/TLS ss1.example.com:5061
 
     ;branch=z9hG4bK83749.1
 
     ;branch=z9hG4bK83749.1
Line 4,987: Line 4,142:
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F10 (181 Call is Being Forwarded) Proxy -> Alice
 
   F10 (181 Call is Being Forwarded) Proxy -> Alice
Line 5,000: Line 4,154:
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F11 INVITE Proxy -> B2
 
   F11 INVITE Proxy -> B2
Line 5,024: Line 4,177:
 
   o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
 
   o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
 
   s=
 
   s=
 
 
 
 
  
 
   c=IN IP4 client.atlanta.example.com
 
   c=IN IP4 client.atlanta.example.com
Line 5,033: Line 4,182:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F12 180 Ringing B2 -> Proxy
 
   F12 180 Ringing B2 -> Proxy
Line 5,051: Line 4,199:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F13 180 Proxy -> Alice
 
   F13 180 Proxy -> Alice
Line 5,066: Line 4,213:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F14 200 OK B2 -> Proxy
 
   F14 200 OK B2 -> Proxy
Line 5,077: Line 4,223:
 
     ;branch=z9hG4bK74bf9
 
     ;branch=z9hG4bK74bf9
 
     ;received=192.0.2.103
 
     ;received=192.0.2.103
 
 
 
 
  
 
   Record-Route: <sips:ss1.example.com;lr>
 
   Record-Route: <sips:ss1.example.com;lr>
Line 5,099: Line 4,241:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F15 200 OK Proxy -> Alice
 
   F15 200 OK Proxy -> Alice
Line 5,124: Line 4,265:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F16 ACK Alice -> Proxy
 
   F16 ACK Alice -> Proxy
Line 5,130: Line 4,270:
 
   ACK sips:[email protected] SIP/2.0
 
   ACK sips:[email protected] SIP/2.0
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
 
 
 
  
 
     ;branch=z9hG4bK74bf3
 
     ;branch=z9hG4bK74bf3
Line 5,143: Line 4,279:
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F17 ACK Proxy -> B2
 
   F17 ACK Proxy -> B2
Line 5,162: Line 4,297:
 
   /* RTP streams are established between Alice and B2.
 
   /* RTP streams are established between Alice and B2.
 
       Alice hangs up with User B2. */
 
       Alice hangs up with User B2. */
 
  
 
   F18 BYE Alice -> Proxy
 
   F18 BYE Alice -> Proxy
Line 5,176: Line 4,310:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F19 BYE Proxy -> B2
 
   F19 BYE Proxy -> B2
Line 5,183: Line 4,316:
 
   Via: SIP/2.0/TLS ss1.example.com:5061
 
   Via: SIP/2.0/TLS ss1.example.com:5061
 
     ;branch=z9hG4bK837.1
 
     ;branch=z9hG4bK837.1
 
 
 
 
  
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
Line 5,197: Line 4,326:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F20 200 OK B2 -> Proxy
 
   F20 200 OK B2 -> Proxy
Line 5,213: Line 4,341:
 
   CSeq: 2 BYE
 
   CSeq: 2 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F21 200 OK Proxy -> Alice
 
   F21 200 OK Proxy -> Alice
Line 5,227: Line 4,354:
 
   Content-Length: 0
 
   Content-Length: 0
  
 
+
2.10.  3-Way Conference - Third Party Is Added
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
=== 3-Way Conference - Third Party Is Added ===
 
 
 
  
 
         Alice          Bob            Carol
 
         Alice          Bob            Carol
Line 5,276: Line 4,388:
 
Alice, changing Contact URIs to one that indicates Bob's mixer and
 
Alice, changing Contact URIs to one that indicates Bob's mixer and
 
acts like a focus.  As a result, Bob includes the "isfocus" feature
 
acts like a focus.  As a result, Bob includes the "isfocus" feature
tag [RFC3840] as described in [RFC4579].  Bob then INVITEs Carol
+
tag [[RFC3840]] as described in [[RFC4579]].  Bob then INVITEs Carol
 
using the same Contact URI.  Note that Bob could wait to re-INVITE
 
using the same Contact URI.  Note that Bob could wait to re-INVITE
 
Alice until after Carol has answered.  Bob could also put Alice on
 
Alice until after Carol has answered.  Bob could also put Alice on
Line 5,288: Line 4,400:
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
     ;branch=z9hG4bK74bf9
 
     ;branch=z9hG4bK74bf9
 
 
 
 
 
  
 
   Max-Forwards: 70
 
   Max-Forwards: 70
Line 5,312: Line 4,419:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F2 180 Ringing Bob -> Alice
 
   F2 180 Ringing Bob -> Alice
Line 5,326: Line 4,432:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F3 200 OK Bob -> Alice
 
   F3 200 OK Bob -> Alice
Line 5,341: Line 4,446:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
 
 
 
 
  
 
   Supported: replaces, gruu
 
   Supported: replaces, gruu
Line 5,358: Line 4,458:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F4 ACK Alice -> Bob
 
   F4 ACK Alice -> Bob
Line 5,374: Line 4,473:
 
   /* Alice and Bob have established a session.
 
   /* Alice and Bob have established a session.
 
       Bob re-INVITEs, changing Contact URIs. */
 
       Bob re-INVITEs, changing Contact URIs. */
 
  
 
   F5 INVITE Bob -> Alice
 
   F5 INVITE Bob -> Alice
Line 5,395: Line 4,493:
 
   o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com
 
   o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com
 
   s=
 
   s=
 
 
 
 
  
 
   c=IN IP4 client.biloxi.example.com
 
   c=IN IP4 client.biloxi.example.com
Line 5,404: Line 4,498:
 
   m=audio 49172 RTP/AVP 0
 
   m=audio 49172 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F6 200 OK Alice -> Bob
 
   F6 200 OK Alice -> Bob
Line 5,430: Line 4,523:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F7 ACK Bob -> Alice
 
   F7 ACK Bob -> Alice
Line 5,445: Line 4,537:
  
 
   /* Bob calls Carol. */
 
   /* Bob calls Carol. */
 
 
 
 
 
 
 
  
 
   F8 INVITE Bob -> Carol
 
   F8 INVITE Bob -> Carol
Line 5,476: Line 4,561:
 
   m=audio 48174 RTP/AVP 0
 
   m=audio 48174 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F9 180 Ringing Carol -> Bob
 
   F9 180 Ringing Carol -> Bob
Line 5,492: Line 4,576:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F10 200 OK Carol -> Bob
 
   F10 200 OK Carol -> Bob
Line 5,501: Line 4,584:
 
     ;received=192.0.2.113
 
     ;received=192.0.2.113
 
   From: Bob <sips:[email protected]>;tag=8675309
 
   From: Bob <sips:[email protected]>;tag=8675309
 
 
 
 
  
 
   To: Carol <sips:[email protected]>;tag=341313
 
   To: Carol <sips:[email protected]>;tag=341313
Line 5,522: Line 4,601:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F11 ACK Bob -> Carol
 
   F11 ACK Bob -> Carol
Line 5,535: Line 4,613:
 
   CSeq: 42 ACK
 
   CSeq: 42 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   /* Bob's mixer now mixes media from both Alice and Carol
 
   /* Bob's mixer now mixes media from both Alice and Carol
 
       to create the 3-way conference. */
 
       to create the 3-way conference. */
  
 
+
2.11.  3-Way Conference - Third Party Joins
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
=== 3-Way Conference - Third Party Joins ===
 
 
 
  
 
         Alice          Bob            Carol
 
         Alice          Bob            Carol
Line 5,588: Line 4,645:
 
           |                |      RTP    |
 
           |                |      RTP    |
 
           |                |<============>|
 
           |                |<============>|
 
  
 
In this scenario, Alice and Bob are in a 2-party call and Carol
 
In this scenario, Alice and Bob are in a 2-party call and Carol
Line 5,596: Line 4,652:
 
INVITE to Bob containing a Join header identifying the dialog between
 
INVITE to Bob containing a Join header identifying the dialog between
 
Alice and Bob.  Bob re-INVITEs Alice to switch to focus mode and
 
Alice and Bob.  Bob re-INVITEs Alice to switch to focus mode and
includes the "isfocus" feature tag [RFC3840] as described in
+
includes the "isfocus" feature tag [[RFC3840]] as described in
[RFC4579].  Bob then accepts the INVITE from Carol, resulting in the
+
[[RFC4579]].  Bob then accepts the INVITE from Carol, resulting in the
 
3-way call.
 
3-way call.
  
Line 5,607: Line 4,663:
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
     ;branch=z9hG4bK74bf9
 
     ;branch=z9hG4bK74bf9
 
 
 
 
  
 
   Max-Forwards: 70
 
   Max-Forwards: 70
Line 5,630: Line 4,682:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F2 180 Ringing Bob -> Alice
 
   F2 180 Ringing Bob -> Alice
Line 5,644: Line 4,695:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F3 200 OK Bob -> Alice
 
   F3 200 OK Bob -> Alice
Line 5,659: Line 4,709:
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  
 
+
   Supported: replaces, join, gruu
 
 
 
 
 
 
 
 
 
 
   Supported: replaces, join, gruu
 
 
   Content-Type: application/sdp
 
   Content-Type: application/sdp
 
   Content-Length: ...
 
   Content-Length: ...
Line 5,676: Line 4,720:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F4 ACK Alice -> Bob
 
   F4 ACK Alice -> Bob
Line 5,692: Line 4,735:
 
   /* Alice and Bob have established a session.
 
   /* Alice and Bob have established a session.
 
       Carol requests to join the session. */
 
       Carol requests to join the session. */
 
  
 
   F5 INVITE Carol -> Bob
 
   F5 INVITE Carol -> Bob
Line 5,710: Line 4,752:
 
   Content-Type: application/sdp
 
   Content-Type: application/sdp
 
   Content-Length: ...
 
   Content-Length: ...
 
 
 
 
 
 
 
  
 
   v=0
 
   v=0
Line 5,725: Line 4,760:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F6 180 Ringing Bob -> Carol
 
   F6 180 Ringing Bob -> Carol
Line 5,741: Line 4,775:
 
   Supported: replaces
 
   Supported: replaces
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F7 INVITE Bob -> Alice
 
   F7 INVITE Bob -> Alice
Line 5,766: Line 4,799:
 
   m=audio 49172 RTP/AVP 0
 
   m=audio 49172 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
 
 
 
  
 
   F8 200 OK Alice -> Bob
 
   F8 200 OK Alice -> Bob
Line 5,793: Line 4,822:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F9 ACK Bob -> Alice
 
   F9 ACK Bob -> Alice
Line 5,806: Line 4,834:
 
   CSeq: 1024 ACK
 
   CSeq: 1024 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F10 200 OK Bob -> Carol
 
   F10 200 OK Bob -> Carol
Line 5,819: Line 4,846:
 
   CSeq: 99 INVITE
 
   CSeq: 99 INVITE
 
   Contact: <sips:[email protected]>;isfocus
 
   Contact: <sips:[email protected]>;isfocus
 
 
 
 
  
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Line 5,836: Line 4,859:
 
   m=audio 48174 RTP/AVP 0
 
   m=audio 48174 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F11 ACK OK Carol -> Bob
 
   F11 ACK OK Carol -> Bob
Line 5,852: Line 4,874:
 
   Content-Length:0
 
   Content-Length:0
  
 
+
2.12.  Find-Me
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
=== Find-Me ===
 
 
 
  
 
           Alice          Proxy          User  User  User  User
 
           Alice          Proxy          User  User  User  User
Line 5,926: Line 4,922:
 
           |<==================================================>|
 
           |<==================================================>|
  
 
+
           |                |                  BYE F23          |
 
+
           |    BYE F24    |<----------------------------------|
 
 
 
 
           |                |                  BYE F23          |
 
           |    BYE F24    |<----------------------------------|
 
 
           |<---------------|                                  |
 
           |<---------------|                                  |
 
           |    200 OK F25  |                                  |
 
           |    200 OK F25  |                                  |
Line 5,968: Line 4,960:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F2 INVITE Proxy -> B1
 
   F2 INVITE Proxy -> B1
Line 5,978: Line 4,969:
 
     ;branch=z9hG4bK74bf9
 
     ;branch=z9hG4bK74bf9
 
     ;received=192.0.2.103
 
     ;received=192.0.2.103
 
 
 
 
  
 
   Record-Route: <sips:ss1.example.com;lr>
 
   Record-Route: <sips:ss1.example.com;lr>
Line 6,000: Line 4,987:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F3 (100 Trying) Proxy -> Alice
 
   F3 (100 Trying) Proxy -> Alice
Line 6,013: Line 4,999:
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F4 180 Ringing B1 -> Proxy
 
   F4 180 Ringing B1 -> Proxy
Line 6,031: Line 5,016:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
 
 
 
  
 
   F5 180 Ringing Proxy -> Alice
 
   F5 180 Ringing Proxy -> Alice
Line 6,053: Line 5,034:
 
       expires.  The proxy then sends Cancel and proceeds down
 
       expires.  The proxy then sends Cancel and proceeds down
 
       the list of routes. */
 
       the list of routes. */
 
  
 
   F6 CANCEL Proxy -> B1
 
   F6 CANCEL Proxy -> B1
Line 6,066: Line 5,046:
 
   CSeq: 1 CANCEL
 
   CSeq: 1 CANCEL
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F7 200 OK B1 -> Proxy
 
   F7 200 OK B1 -> Proxy
Line 6,079: Line 5,058:
 
   CSeq: 1 CANCEL
 
   CSeq: 1 CANCEL
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F8 487 Request Terminated B1 -> Proxy
 
   F8 487 Request Terminated B1 -> Proxy
  
 
   SIP/2.0 487 Request Terminated
 
   SIP/2.0 487 Request Terminated
 
 
 
 
  
 
   Via: SIP/2.0/TLS ss1.example.com:5061
 
   Via: SIP/2.0/TLS ss1.example.com:5061
Line 6,100: Line 5,074:
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F9 ACK Proxy -> B1
 
   F9 ACK Proxy -> B1
Line 6,113: Line 5,086:
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F10 INVITE Proxy -> B2
 
   F10 INVITE Proxy -> B2
Line 6,137: Line 5,109:
 
   s=
 
   s=
 
   c=IN IP4 client.atlanta.example.com
 
   c=IN IP4 client.atlanta.example.com
 
 
 
 
  
 
   t=0 0
 
   t=0 0
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F11 480 Not Logged In B2 -> Proxy
 
   F11 480 Not Logged In B2 -> Proxy
Line 6,161: Line 5,128:
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F12 ACK Proxy -> B2
 
   F12 ACK Proxy -> B2
Line 6,174: Line 5,140:
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F13 INVITE Proxy -> B3
 
   F13 INVITE Proxy -> B3
Line 6,190: Line 5,155:
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
 
 
 
  
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
Line 6,206: Line 5,167:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F14 486 Busy Here B3 -> Proxy
 
   F14 486 Busy Here B3 -> Proxy
Line 6,222: Line 5,182:
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F15 ACK Proxy -> B3
 
   F15 ACK Proxy -> B3
Line 6,235: Line 5,194:
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F16 INVITE Proxy -> B4
 
   F16 INVITE Proxy -> B4
Line 6,243: Line 5,201:
 
     ;branch=z9hG4bK83749.4
 
     ;branch=z9hG4bK83749.4
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
 
 
 
  
 
     ;branch=z9hG4bK74bf9
 
     ;branch=z9hG4bK74bf9
Line 6,267: Line 5,221:
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F17 180 Ringing B4 -> Proxy
 
   F17 180 Ringing B4 -> Proxy
Line 6,285: Line 5,238:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F18 180 Ringing Proxy -> Alice
 
   F18 180 Ringing Proxy -> Alice
Line 6,296: Line 5,248:
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   To: Bob <sips:[email protected]>;tag=7137136
 
   To: Bob <sips:[email protected]>;tag=7137136
 
 
 
 
  
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
Line 6,305: Line 5,253:
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F19 200 OK B4 -> Proxy
 
   F19 200 OK B4 -> Proxy
Line 6,332: Line 5,279:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F20 200 OK Proxy -> Alice
 
   F20 200 OK Proxy -> Alice
Line 6,348: Line 5,294:
 
   Content-Type: application/sdp
 
   Content-Type: application/sdp
 
   Content-Length: ...
 
   Content-Length: ...
 
 
 
 
 
  
 
   v=0
 
   v=0
Line 6,361: Line 5,302:
 
   m=audio 3456 RTP/AVP 0
 
   m=audio 3456 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
 
  
 
   F21 ACK Alice -> Proxy
 
   F21 ACK Alice -> Proxy
Line 6,375: Line 5,315:
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F22 ACK Proxy -> B4
 
   F22 ACK Proxy -> B4
Line 6,395: Line 5,334:
  
 
   /* User B4 hangs up with Alice. */
 
   /* User B4 hangs up with Alice. */
 
  
 
   F23 BYE B4 -> Proxy
 
   F23 BYE B4 -> Proxy
Line 6,402: Line 5,340:
 
   Via: SIP/2.0/TLS client4.biloxi.example.com:5061
 
   Via: SIP/2.0/TLS client4.biloxi.example.com:5061
 
     ;branch=z9hG4bKnashds7
 
     ;branch=z9hG4bKnashds7
 
 
 
 
  
 
   Route: <sips:ss1.example.com;lr>
 
   Route: <sips:ss1.example.com;lr>
Line 6,414: Line 5,348:
 
   CSeq: 1 BYE
 
   CSeq: 1 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F24 BYE Proxy -> Alice
 
   F24 BYE Proxy -> Alice
Line 6,430: Line 5,363:
 
   CSeq: 1 BYE
 
   CSeq: 1 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F25 200 OK Alice -> Proxy
 
   F25 200 OK Alice -> Proxy
Line 6,446: Line 5,378:
 
   CSeq: 1 BYE
 
   CSeq: 1 BYE
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F26 200 OK Proxy -> B4
 
   F26 200 OK Proxy -> B4
Line 6,455: Line 5,386:
 
     ;received=192.0.2.105
 
     ;received=192.0.2.105
 
   From: Bob <sips:[email protected]>;tag=7137136
 
   From: Bob <sips:[email protected]>;tag=7137136
 
 
 
 
  
 
   To: Alice <sips:[email protected]>;tag=1234567
 
   To: Alice <sips:[email protected]>;tag=1234567
Line 6,465: Line 5,392:
 
   Content-Length: 0
 
   Content-Length: 0
  
 +
2.13.  Call Management (Incoming Call Screening)
  
 +
                                                  Announcement
 +
        Alice          Proxy            Bob          Server
  
 +
          |                |              |              |
 +
          |    INVITE F1  |              |              |
 +
          |------------------------------>|              |
 +
          | 305 Use Proxy F2              |              |
 +
          |<------------------------------|              |
 +
          |    ACK F3    |              |              |
 +
          |------------------------------>|              |
 +
          |    INVITE F4  |              |              |
 +
          |--------------->|              |              |
 +
          | 407 Proxy Authentication F5  |              |
 +
          |<---------------|              |              |
 +
          |    ACK F6    |              |              |
 +
          |--------------->|              |              |
 +
          |    INVITE F7  |              |              |
 +
          |--------------->|              |              |
 +
          | 403 Screening Failure (Terminating) Error-Info: URI F8
 +
          |<---------------|              |              |
 +
          |    ACK F9    |              |              |
 +
          |--------------->|              |              |
 +
          |    INVITE F10  |              |              |
 +
          |--------------------------------------------->|
 +
          |    200 OK F11  |              |              |
 +
          |--------------------------------------------->|
 +
          |    ACK F12    |                            |
 +
          |--------------------------------------------->|
 +
          |          Announcement Played to Caller      |
 +
          |<=============================================|
 +
          |                                    BYE F13  |
 +
          |<---------------------------------------------|
 +
          |    200 OK F14                              |
 +
          |--------------------------------------------->|
 +
          |                                              |
 +
          |                                              |
 +
          |                                              |
  
 +
Bob has an incoming call screening list; Alice is included on the
 +
list of addresses from which Bob will not accept calls.  Alice
 +
attempts to call Bob.  Messages F1, F2, and F3 are included to show
 +
that Bob does not accept INVITEs that have not been screened by the
 +
proxy.
  
 +
Note that call screening cannot be done using the From header --
 +
instead some form of authentication credentials must be used.
  
 +
The screening proxy inserts an announcement URI in an Error-Info
 +
header field, which Alice accesses by sending an INVITE to listen to
 +
the Announcement.  The Announcement Server uses the automaton and
 +
rendering feature tags in F12 and F13 to indicate that it is a media
 +
server only capable of playing announcements.
  
 +
Message Details
  
 +
  F1 INVITE Alice -> Bob
  
 +
  INVITE sips:[email protected] SIP/2.0
 +
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
    ;branch=z9hG4bK74bf9
 +
  Max-Forwards: 70
 +
  From: Alice <sips:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>
 +
  Call-ID: [email protected]
 +
  CSeq: 1 INVITE
 +
  Contact: <sips:[email protected]>
 +
  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
  
 +
  /* Bob only accepts INVITEs that have been screened
 +
      by the proxy. */
  
 +
  F2 305 Use Proxy Bob -> Alice
  
 +
  SIP/2.0 305 Use Proxy
 +
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
    ;branch=z9hG4bK74bf9
 +
    ;received=192.0.2.103
 +
  From: Alice <sips:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>;tag=342123
 +
  Call-ID: [email protected]
 +
  CSeq: 1 INVITE
 +
  Contact: <sips:ss1.example.com>
 +
  Content-Length: 0
  
 +
  F3 ACK Alice -> Bob
  
 +
  ACK sips:[email protected] SIP/2.0
 +
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
    ;branch=z9hG4bK74bf9
 +
  Max-Forwards: 70
 +
  From: Alice <sips:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>;tag=342123
 +
  Call-ID: [email protected]
 +
  CSeq: 1 ACK
 +
  Content-Length: 0
  
 +
  /* A retries the call through the proxy. */
  
 +
  F4 INVITE Alice -> Proxy 1
  
 +
  INVITE sips:[email protected] SIP/2.0
 +
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
    ;branch=z9hG4bK74bf0
 +
  Max-Forwards: 70
 +
  Route: <sips:ss1.example.com>
 +
  From: Alice <sips:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>
 +
  Call-ID: [email protected]
 +
  CSeq: 2 INVITE
 +
  Contact: <sips:[email protected]>
 +
  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
  
 +
  /* Proxy 1 challenges Alice for authentication. */
  
 +
  F5 407 Proxy Authentication Required Proxy 1 -> Alice
  
 +
  SIP/2.0 407 Proxy Authentication Required
 +
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
    ;branch=z9hG4bK74bf0
 +
    ;received=192.0.2.103
  
 +
  From: Alice <sips:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>;tag=7886765
 +
  Call-ID: [email protected]
 +
  CSeq: 2 INVITE
 +
  Proxy-Authenticate: Digest realm="example.com",
 +
      nonce="ea9c8e88df84f1cec4341ae6cbe5a359",
 +
      qop="auth", nc=00000001, cnonce="0a4f113b",
 +
      opaque="", stale=FALSE, algorithm=MD5
 +
  Content-Length: 0
  
 +
  F6 ACK Alice -> Proxy 1
  
 +
  ACK sips:[email protected] SIP/2.0
 +
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
    ;branch=z9hG4bK74bf0
 +
  Max-Forwards: 70
 +
  From: Alice <sips:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>;tag=7886765
 +
  Call-ID: [email protected]
 +
  CSeq: 2 ACK
 +
  Content-Length: 0
  
 +
  /* Alice responds by sending an INVITE with authentication
 +
      credentials in it. */
  
 +
  F7 INVITE Alice -> Proxy 1
  
 +
  INVITE sips:[email protected] SIP/2.0
 +
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
    ;branch=z9hG4bK74bf2
 +
  Max-Forwards: 70
 +
  From: Alice <sips:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>
 +
  Call-ID: [email protected]
 +
  CSeq: 3 INVITE
 +
  Contact: <sips:[email protected]>
 +
  Proxy-Authorization: Digest username="alice",
 +
      realm="example.com", qop=auth,
 +
      nc=00000001, cnonce="4gr84543ft2",
 +
      nonce="ae9137be1c87d175c2dd63302a0d6e0a",
 +
      opaque="", uri="sips:[email protected]",
 +
      response="bbaec39f943bdcb3620d90afc548a45c"
 +
  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
  
 +
  F8 403 Screening Failure (Terminating) Proxy 1 -> Alice
  
 +
  SIP/2.0 403 Screening Failure (Terminating)
 +
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
    ;branch=z9hG4bK74bf2
 +
    ;received=192.0.2.103
 +
  From: Alice <sips:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>;tag=ffe254
 +
  Call-ID: [email protected]
 +
  CSeq: 3 INVITE
 +
  Error-Info: <sips:[email protected]>
 +
  Content-Length: 0
  
 +
  F9 ACK Alice -> Proxy 1
  
 +
  ACK sips:[email protected] SIP/2.0
 +
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
    ;branch=z9hG4bK74bf2
 +
  Max-Forwards: 70
 +
  From: Alice <sips:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>;tag=ffe254
 +
  Call-ID: [email protected]
 +
  Proxy-Authorization: Digest username="alice",
 +
    realm="example.com", nonce="ae9137be1c87d175c2dd63302a0d6e0a",
 +
    opaque="", uri="sips:[email protected]",
 +
    response="bbaec39f943bdcb3620d90afc548a45c"
 +
  CSeq: 3 ACK
 +
  Content-Length: 0
  
 +
  /* To hear the recording, Alice connects to the Error-Info URI. */
  
 +
  F10 INVITE Alice -> Proxy 1
  
 +
  INVITE sips:[email protected] SIP/2.0
 +
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
    ;branch=z9hG4bK74bfj
 +
  Max-Forwards: 70
  
 +
  From: Alice <sips:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>
 +
  Call-ID: [email protected]
 +
  CSeq: 4 INVITE
 +
  Contact: <sips:[email protected]>
 +
  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
  
 +
F11 200 OK Announcement Server -> Proxy 1
  
 +
  SIP/2.0 200 OK
 +
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
    ;branch=z9hG4bK74bfj
 +
    ;received=192.0.2.103
 +
  From: Alice <sips:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>;tag=234934
 +
  Call-ID: [email protected]
 +
  CSeq: 4 INVITE
 +
  Contact: <sips:ms.biloxi.example.com>
 +
    ;automaton;+sip.rendering="no"
 +
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 +
  Content-Type: application/sdp
 +
  Content-Length: ...
 +
 +
  v=0
 +
  o=annc 2890844543 2890844543 IN IP4 announce.biloxi.example.com
 +
  s=
 +
  c=IN IP4 announce.biloxi.example.com
 +
  t=0 0
 +
  m=audio 49174 RTP/AVP 0
 +
  a=rtpmap:0 PCMU/8000
  
 +
F12 ACK Alice -> Announcement Server
 +
 +
  ACK sips:ms.biloxi.example.com SIP/2.0
 +
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
    ;branch=z9hG4bK74b32
 +
 +
  Max-Forwards: 70
 +
  From: Alice <sips:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>;tag=234934
 +
  Call-ID: [email protected]
 +
  CSeq: 4 ACK
 +
  Content-Length: 0
  
 +
  /* Announcement Server plays announcement then disconnects. */
  
 +
  F13 BYE Announcement Server -> Alice
  
 +
  BYE sips:[email protected] SIP/2.0
 +
  Via: SIP/2.0/TLS announcement.example.com:5061
 +
    ;branch=z9hG4bK74bKS
 +
  Max-Forwards: 70
 +
  From: Bob <sips:[email protected]>;tag=234934
 +
  To: Alice <sips:[email protected]>;tag=1234567
 +
  Call-ID: [email protected]
 +
  CSeq: 2334 BYE
 +
  Content-Length: 0
  
 +
  F14 200 OK Alice -> Announcement Server
  
 +
  SIP/2.0 200 OK
 +
  Via: SIP/2.0/TLS announcement.example.com:5061
 +
    ;branch=z9hG4bK74bKS
 +
    ;received=192.0.2.103
 +
  From: Bob <sips:[email protected]>;tag=234934
 +
  To: Alice <sips:[email protected]>;tag=1234567
 +
  Call-ID: [email protected]
 +
  CSeq: 2334 BYE
 +
  Content-Length: 0
  
 +
2.14.  Call Management (Outgoing Call Screening)
  
 
+
         Alice           Proxy           Bob
=== Call Management (Incoming Call Screening) ===
+
           |                |              |
 
+
           |    INVITE F1  |              |
                                                  Announcement
+
           |--------------->|              |
         Alice          Proxy            Bob           Server
+
           | 407 Proxy Authentication F2   |
 
+
           |<---------------|              |
           |                |              |              |
+
           |    ACK F3    |              |
           |    INVITE F1  |              |              |
+
           |--------------->|              |
           |------------------------------>|              |
+
           |    INVITE F4  |              |
           | 305 Use Proxy F2             |              |
+
           |--------------->|              |
           |<------------------------------|              |
+
           | 403 Screening Failure (Originating) F5
           |    ACK F3    |              |              |
+
           |<---------------|              |
           |------------------------------>|              |
+
           |    ACK F6     |              |
           |    INVITE F4  |              |              |
+
           |--------------->|              |
           |--------------->|              |              |
+
           |               |              |
          | 407 Proxy Authentication F5  |              |
+
 
          |<---------------|              |              |
+
Alice has an outgoing call screening list; Bob is included on the
          |    ACK F6    |              |              |
+
list of addresses to which Alice will not be able to place a call.
          |--------------->|              |              |
+
Alice attempts to call Bob.
          |    INVITE F7  |              |              |
+
 
          |--------------->|              |              |
+
Alice could establish a session to listen to the announcement in the
           | 403 Screening Failure (Terminating) Error-Info: URI F8
+
Error-Info header field.
           |<---------------|              |              |
 
           |    ACK F9     |              |              |
 
           |--------------->|              |              |
 
           |   INVITE F10  |              |              |
 
          |--------------------------------------------->|
 
          |    200 OK F11  |              |              |
 
          |--------------------------------------------->|
 
          |    ACK F12    |                            |
 
          |--------------------------------------------->|
 
          |          Announcement Played to Caller      |
 
          |<=============================================|
 
          |                                    BYE F13  |
 
          |<---------------------------------------------|
 
          |    200 OK F14                              |
 
          |--------------------------------------------->|
 
          |                                              |
 
          |                                              |
 
          |                                              |
 
 
 
Bob has an incoming call screening list; Alice is included on the
 
list of addresses from which Bob will not accept calls. Alice
 
attempts to call Bob. Messages F1, F2, and F3 are included to show
 
that Bob does not accept INVITEs that have not been screened by the
 
proxy.
 
 
 
Note that call screening cannot be done using the From header --
 
instead some form of authentication credentials must be used.
 
 
 
 
 
 
 
 
 
 
 
The screening proxy inserts an announcement URI in an Error-Info
 
header field, which Alice accesses by sending an INVITE to listen to
 
the Announcement.  The Announcement Server uses the automaton and
 
rendering feature tags in F12 and F13 to indicate that it is a media
 
server only capable of playing announcements.
 
  
 
Message Details
 
Message Details
  
   F1 INVITE Alice -> Bob
+
   F1 INVITE Alice -> Proxy 1
  
 
   INVITE sips:[email protected] SIP/2.0
 
   INVITE sips:[email protected] SIP/2.0
Line 6,594: Line 5,754:
 
   c=IN IP4 client.atlanta.example.com
 
   c=IN IP4 client.atlanta.example.com
 
   t=0 0
 
   t=0 0
 +
 
   m=audio 49170 RTP/AVP 0
 
   m=audio 49170 RTP/AVP 0
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
  
 +
  /* Proxy 1 challenges Alice for authentication. */
  
   /* Bob only accepts INVITEs that have been screened
+
   F2 407 Proxy Authentication Required Proxy 1 -> Alice
      by the proxy. */
 
  
  F2 305 Use Proxy Bob -> Alice
+
   SIP/2.0 407 Proxy Authentication Required
 
 
   SIP/2.0 305 Use Proxy
 
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
     ;branch=z9hG4bK74bf9
 
     ;branch=z9hG4bK74bf9
 
     ;received=192.0.2.103
 
     ;received=192.0.2.103
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   From: Alice <sips:[email protected]>;tag=1234567
   To: Bob <sips:[email protected]>;tag=342123
+
   To: Bob <sips:[email protected]>;tag=90210
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 
   CSeq: 1 INVITE
 
   CSeq: 1 INVITE
   Contact: <sips:ss1.example.com>
+
   Proxy-Authenticate: Digest realm="example.com",
 +
    nonce="ea9c8e88df84f1cec4341ae6cbe5a359",
 +
    qop="auth", nc=00000001, cnonce="0a4f113b",
 +
    opaque="", stale=FALSE, algorithm=MD5
 
   Content-Length: 0
 
   Content-Length: 0
  
 
+
   F3 ACK Alice -> Proxy 1
 
 
 
 
 
 
 
 
   F3 ACK Alice -> Bob
 
  
 
   ACK sips:[email protected] SIP/2.0
 
   ACK sips:[email protected] SIP/2.0
Line 6,626: Line 5,783:
 
   Max-Forwards: 70
 
   Max-Forwards: 70
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   From: Alice <sips:[email protected]>;tag=1234567
   To: Bob <sips:[email protected]>;tag=342123
+
   To: Bob <sips:[email protected]>;tag=90210
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 
   CSeq: 1 ACK
 
   CSeq: 1 ACK
 
   Content-Length: 0
 
   Content-Length: 0
  
   /* A retries the call through the proxy. */
+
   /* Alice responds be sending an INVITE with authentication
 
+
      credentials in it. */
  
 
   F4 INVITE Alice -> Proxy 1
 
   F4 INVITE Alice -> Proxy 1
Line 6,638: Line 5,795:
 
   INVITE sips:[email protected] SIP/2.0
 
   INVITE sips:[email protected] SIP/2.0
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
     ;branch=z9hG4bK74bf0
+
     ;branch=z9hG4bK74b4
 
   Max-Forwards: 70
 
   Max-Forwards: 70
  Route: <sips:ss1.example.com>
 
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   To: Bob <sips:[email protected]>
 
   To: Bob <sips:[email protected]>
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 +
 
   CSeq: 2 INVITE
 
   CSeq: 2 INVITE
 
   Contact: <sips:[email protected]>
 
   Contact: <sips:[email protected]>
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
+
  Proxy-Authorization: Digest username="alice", realm="example.com",
 +
    nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="",
 +
    uri="sips:[email protected]",
 +
    response="b9d2e5bcdec9f69ab2a9b44f270285a6"
 +
   Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
   Content-Type: application/sdp
 
   Content-Type: application/sdp
 
   Content-Length: ...
 
   Content-Length: ...
Line 6,658: Line 5,819:
 
   a=rtpmap:0 PCMU/8000
 
   a=rtpmap:0 PCMU/8000
  
   /* Proxy 1 challenges Alice for authentication. */
+
   F5 403 Screening Failure (Originating) Proxy 1 -> Alice
  
 
+
   SIP/2.0 403 Screening Failure (Originating)
  F5 407 Proxy Authentication Required Proxy 1 -> Alice
 
 
 
   SIP/2.0 407 Proxy Authentication Required
 
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
     ;branch=z9hG4bK74bf0
+
     ;branch=z9hG4bK74b4
 
     ;received=192.0.2.103
 
     ;received=192.0.2.103
 
 
 
 
 
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   From: Alice <sips:[email protected]>;tag=1234567
   To: Bob <sips:[email protected]>;tag=7886765
+
   To: Bob <sips:[email protected]>;tag=18017
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 
   CSeq: 2 INVITE
 
   CSeq: 2 INVITE
   Proxy-Authenticate: Digest realm="example.com",
+
   Error-Info: <sips:screen-fail-orig-ann@announcement.example.com>
      nonce="ea9c8e88df84f1cec4341ae6cbe5a359",
 
      qop="auth", nc=00000001, cnonce="0a4f113b",
 
      opaque="", stale=FALSE, algorithm=MD5
 
 
   Content-Length: 0
 
   Content-Length: 0
 
  
 
   F6 ACK Alice -> Proxy 1
 
   F6 ACK Alice -> Proxy 1
Line 6,687: Line 5,836:
 
   ACK sips:[email protected] SIP/2.0
 
   ACK sips:[email protected] SIP/2.0
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
     ;branch=z9hG4bK74bf0
+
     ;branch=z9hG4bK74b4
 
   Max-Forwards: 70
 
   Max-Forwards: 70
 
   From: Alice <sips:[email protected]>;tag=1234567
 
   From: Alice <sips:[email protected]>;tag=1234567
   To: Bob <sips:[email protected]>;tag=7886765
+
   To: Bob <sips:[email protected]>;tag=18017
 
   Call-ID: [email protected]
 
   Call-ID: [email protected]
 
   CSeq: 2 ACK
 
   CSeq: 2 ACK
 +
  Proxy-Authorization: Digest username="alice", realm="example.com",
 +
    nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="",
 +
    uri="sips:[email protected]",
 +
    response="b9d2e5bcdec9f69ab2a9b44f270285a6"
 
   Content-Length: 0
 
   Content-Length: 0
  
  /* Alice responds by sending an INVITE with authentication
+
2.15.  Call Park
      credentials in it. */
 
  
 +
        Alice          Bob        Park Server      Carol
 +
          |              |              |              |
 +
          |  INVITE F1  |              |              |
 +
          |------------->|              |              |
 +
          |180 Ringing F2|              |              |
 +
          |<-------------|              |              |
 +
          |  200 OK F3  |              |              |
 +
          |<-------------|              |              |
 +
          |    ACK F4    |              |              |
 +
          |------------->|              |              |
 +
          |  RTP Media  |              |              |
 +
          |<============>|              |              |
 +
          |      Bob Parks Call        |              |
 +
          |              |  REFER Refer-To: A F5      |
 +
          |              |------------->|              |
 +
          |              |    202 F6    |              |
 +
          |              |<-------------|              |
 +
          |              |  NOTIFY F7  |              |
 +
          |              |<-------------|              |
 +
          |              |    200 F8    |              |
 +
          |              |------------->|              |
 +
          |  INVITE F9 Replaces: B      |              |
 +
          |<----------------------------|              |
 +
          |          200 OK F10        |              |
 +
          |---------------------------->|              |
 +
          |          ACK F11          |              |
 +
          |<----------------------------|              |
 +
          |          RTP Music        |              |
 +
          |<===========================>|              |
 +
          |    BYE F12  |              |              |
 +
          |------------->|  NOTIFY F14  |              |
 +
          |  200 OK F13  |<-------------|              |
 +
          |<-------------|  200 OK F15  |              |
 +
          |              |------------->|              |
 +
          |              |  Carol picks up the call  |
 +
          |              |              |              |
 +
          |              |              | SUBSCRIBE F16|
 +
          |              |              |<-------------|
 +
          |              |              |  200 OK F17  |
 +
          |              |              |------------->|
 +
          |              |              |  NOTIFY F18  |
 +
          |              |              |------------->|
 +
          |              |              |  200 OK F19  |
 +
          |              |              |<-------------|
 +
          |          INVITE Replaces: Park Server F20 |
 +
          |<-------------------------------------------|
  
   F7 INVITE Alice -> Proxy 1
+
          |              |              |  200 F21   |
 
+
          |------------------------------------------->|
   INVITE sips:[email protected] SIP/2.0
+
          |              |              |   ACK F22  |
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
+
          |<-------------------------------------------|
    ;branch=z9hG4bK74bf2
+
          |                  RTP Media                |
  Max-Forwards: 70
+
          |<==========================================>|
  From: Alice <sips:[email protected]>;tag=1234567
+
          |          BYE F23          |              |
  To: Bob <sips:[email protected]>
+
          |---------------------------->|              |
  Call-ID: [email protected]
+
          |          200 OK F24        |              |
  CSeq: 3 INVITE
+
          |<----------------------------|              |
  Contact: <sips:[email protected]>
+
          |      No more RTP Music    |              |
  Proxy-Authorization: Digest username="alice",
 
      realm="example.com", qop=auth,
 
      nc=00000001, cnonce="4gr84543ft2",
 
      nonce="ae9137be1c87d175c2dd63302a0d6e0a",
 
      opaque="", uri="sips:[email protected]",
 
      response="bbaec39f943bdcb3620d90afc548a45c"
 
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
  Content-Type: application/sdp
 
  Content-Length: ...
 
 
 
  
 +
In this example, Alice calls Bob.  Bob then parks the call at the
 +
Park Server by sending a REFER to the Park Server.  The server sends
 +
an INVITE to Alice, which replaces the session between Alice and Bob.
 +
The Park Server utilizes the automaton, rendering, and byeless
 +
feature tags in F9 to indicate its capabilities to Alice.  The call
 +
is accepted by Alice and causes Alice to send a BYE to Bob.  Bob
 +
receives notification of the successful park, and also receives the
 +
dialog identifiers in the application/sip body of the NOTIFY
 +
response.
  
 +
Carol wishes to retrieve the call, so she sends an INVITE containing
 +
the dialog identifiers to Alice, which replaces the session with the
 +
Park Server.  Alice accepts the call and sends a BYE to the Park
 +
Server.  Carol obtains the dialog identifiers from a NOTIFY from the
 +
Park Server.
  
 +
Note that this call flow is a special case of call transfer.
  
 +
Note also that this flow could also be used for Music on Hold.
  
  v=0
+
Message Details
  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
 
  
 +
F1 INVITE Alice -> Bob
  
  F8 403 Screening Failure (Terminating) Proxy 1 -> Alice
+
INVITE sips:[email protected] SIP/2.0
 +
Via: SIP/2.0/TLS client.alice.example.com:5061
 +
;branch=z9hG4bKnashds7
 +
Max-Forwards: 70
 +
From: Alice <sips:[email protected]>;tag=1234567
 +
To: Bob <sips:[email protected]>
 +
 +
CSeq: 1 INVITE
 +
Contact: <sips:[email protected];gr>
 +
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
 +
Supported: replaces, gruu
 +
Content-Type: application/sdp
  
  SIP/2.0 403 Screening Failure (Terminating)
+
Content-Length: ...
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
    ;branch=z9hG4bK74bf2
 
    ;received=192.0.2.103
 
  From: Alice <sips:[email protected]>;tag=1234567
 
  To: Bob <sips:[email protected]>;tag=ffe254
 
  Call-ID: [email protected]
 
  CSeq: 3 INVITE
 
  Error-Info: <sips:screen-fail-term-ann@ms.biloxi.example.com>
 
  Content-Length: 0
 
  
 +
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
  
  F9 ACK Alice -> Proxy 1
+
F2 180 Ringing Bob -> Alice
  
  ACK sips:[email protected] SIP/2.0
+
SIP/2.0 180 Ringing
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
+
Via: SIP/2.0/TLS client.atlanta.example.com:5061
    ;branch=z9hG4bK74bf2
+
;branch=z9hG4bKnashds7
  Max-Forwards: 70
+
;received=192.0.2.105
  From: Alice <sips:[email protected]>;tag=1234567
+
From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=ffe254
+
To: Bob <sips:[email protected]>;tag=314159
  Call-ID: 12345600@atlanta.example.com
+
Call-ID: 12345601@atlanta.example.com
  Proxy-Authorization: Digest username="alice",
+
CSeq: 1 INVITE
    realm="example.com", nonce="ae9137be1c87d175c2dd63302a0d6e0a",
+
Contact: <sips:bob@client.biloxi.example.com>
    opaque="", uri="sips:[email protected]",
+
Content-Length: 0
    response="bbaec39f943bdcb3620d90afc548a45c"
 
  CSeq: 3 ACK
 
  Content-Length: 0
 
  
  /* To hear the recording, Alice connects to the Error-Info URI. */
+
F3 200 OK Bob -> Alice
 
 
 
 
  F10 INVITE Alice -> Proxy 1
 
 
 
  INVITE sips:[email protected] SIP/2.0
 
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
    ;branch=z9hG4bK74bfj
 
  Max-Forwards: 70
 
  
 +
SIP/2.0 200 OK
 +
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
;branch=z9hG4bKnashds7
 +
;received=192.0.2.105
 +
From: Alice <sips:[email protected]>;tag=1234567
 +
To: Bob <sips:[email protected]>;tag=314159
 +
 +
CSeq: 1 INVITE
 +
Contact: <sips:[email protected]>
 +
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
 +
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:[email protected] SIP/2.0
 +
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
;branch=z9hG4bKnashds7
 +
Max-Forwards: 70
 +
From: Alice <sips:[email protected]>;tag=1234567
 +
To: Bob <sips:[email protected]>;tag=314159
 +
 +
CSeq: 1 ACK
 +
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
 +
Supported: replaces
 +
Content-Length: 0
  
  From: Alice <sips:[email protected]>;tag=1234567
+
/* Bob REFERs Park Server to establish session with Alice,
   To: Bob <sips:bob@biloxi.example.com>
+
   which replaces the established session between Alice and Bob.
   Call-ID: [email protected]
+
   Note that there is no session established between Bob
   CSeq: 4 INVITE
+
   and the Park Server. */
  Contact: <sips:[email protected].com>
 
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
  Content-Type: application/sdp
 
  Content-Length: ...
 
  
  v=0
+
F5 REFER Bob -> Park Server
  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
 
  
 +
REFER sips:[email protected] SIP/2.0
 +
Via: SIP/2.0/TLS client.biloxi.example.com:5061
 +
;branch=z9hG4bKnashds9
 +
Max-Forwards: 70
 +
From: Bob <sips:[email protected]>;tag=02134
 +
To: Park Server <sips:[email protected]>
 +
 +
CSeq: 1 REFER
 +
<allOneLine>
 +
Refer-To: <sips:[email protected];gr?Replaces=
 +
12345601%40atlanta.example.com%3Bfrom-tag%3D314159
 +
%3Bto-tag%3D1234567&Require=replaces>
 +
</allOneLine>
 +
Referred-By: <sips:[email protected]>
 +
Contact: <sips:[email protected]>
 +
Content-Length: 0
  
F11 200 OK Announcement Server -> Proxy 1
+
F6 202 Accepted Park Server -> Bob
  
  SIP/2.0 200 OK
+
SIP/2.0 202 Accepted
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
+
Via: SIP/2.0/TLS client.biloxi.example.com:5061
    ;branch=z9hG4bK74bfj
+
;branch=z9hG4bKnashds9
    ;received=192.0.2.103
+
;received=192.0.2.105
  From: Alice <sips:alice@atlanta.example.com>;tag=1234567
+
From: Bob <sips:bob@biloxi.example.com>;tag=02134
  To: Bob <sips:bob@biloxi.example.com>;tag=234934
+
To: Park Server <sips:park@server.example.com>;tag=56323
  Call-ID: [email protected]
 
  CSeq: 4 INVITE
 
  Contact: <sips:ms.biloxi.example.com>
 
    ;automaton;+sip.rendering="no"
 
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 
  Content-Type: application/sdp
 
  Content-Length: ...
 
  
  v=0
+
Call-ID: 4802029847@biloxi.example.com
  o=annc 2890844543 2890844543 IN IP4 announce.biloxi.example.com
+
Contact: <sips:park@server.example.com>
  s=
+
CSeq: 1 REFER
  c=IN IP4 announce.biloxi.example.com
+
Content-Length: 0
  t=0 0
 
  m=audio 49174 RTP/AVP 0
 
  a=rtpmap:0 PCMU/8000
 
  
 +
F7 NOTIFY Park Server -> Bob
  
F12 ACK Alice -> Announcement Server
+
NOTIFY sips:[email protected] SIP/2.0
 +
Via: SIP/2.0/TLS server.example.com:5061
 +
;branch=z9hG4bK74bT6
 +
To: Bob <sips:[email protected]>;tag=02134
 +
Max-Forwards: 70
 +
From: Park Server <sips:[email protected]>;tag=56323
 +
 +
CSeq: 1 NOTIFY
 +
Event: refer
 +
Contact: <sips:[email protected]>
 +
Subscription-State: active;expires=60
 +
Content-Type: message/sipfrag
 +
Content-Length: ...
  
  ACK sips:ms.biloxi.example.com SIP/2.0
+
SIP/2.0 100 Trying
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
    ;branch=z9hG4bK74b32
 
  
 +
F8 200 OK Bob -> Park Server
  
 +
SIP/2.0 200 OK
 +
Via: SIP/2.0/TLS server.example.com:5061
 +
;branch=z9hG4bK74bT6
 +
;received=192.0.2.103
 +
To: Bob <sips:[email protected]>;tag=02134
 +
From: Park Server <sips:[email protected]>;tag=56323
 +
 +
CSeq: 1 NOTIFY
 +
Content-Length: 0
  
 +
/* Park Server places call to Alice to replace session
 +
  between Alice and Bob. */
  
 +
F9 INVITE Park Server -> Alice
  
  Max-Forwards: 70
+
INVITE sips:a8342043f@atlanta.example.com;gr SIP/2.0
  From: Alice <sips:alice@atlanta.example.com>;tag=1234567
+
Via: SIP/2.0/TLS server.example.com:5061
  To: Bob <sips:bob@biloxi.example.com>;tag=234934
+
;branch=z9hG4bK74rf
  Call-ID: 12345600@atlanta.example.com
+
Max-Forwards: 70
  CSeq: 4 ACK
+
From: <sips:park@server.example.com>;tag=0111
  Content-Length: 0
 
  
  /* Announcement Server plays announcement then disconnects. */
+
To: <sips:[email protected];gr>
 +
 +
CSeq: 1 INVITE
 +
Referred-By: <sips:[email protected]>
 +
Contact: <sips:[email protected]>;automaton
 +
    ;+sip.byeless;+sip.rendering="no"
 +
Require: replaces
 +
 +
;from-tag=314159;to-tag=1234567
 +
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
 +
Supported: replaces
 +
Content-Type: application/sdp
 +
Content-Length: ...
  
 +
v=0
 +
o=ParkServer 2890844576 2890844576 IN IP4 Park.server.example.com
 +
s=
 +
c=IN IP4 server.example.com
 +
t=0 0
 +
m=audio 49170 RTP/AVP 0
 +
a=rtpmap:0 PCMU/8000
  
  F13 BYE Announcement Server -> Alice
+
F10 200 OK Alice -> Park Server
 
 
  BYE sips:[email protected] SIP/2.0
 
  Via: SIP/2.0/TLS announcement.example.com:5061
 
    ;branch=z9hG4bK74bKS
 
  Max-Forwards: 70
 
  From: Bob <sips:[email protected]>;tag=234934
 
  To: Alice <sips:[email protected]>;tag=1234567
 
  Call-ID: [email protected]
 
  CSeq: 2334 BYE
 
  Content-Length: 0
 
 
 
 
 
  F14 200 OK Alice -> Announcement Server
 
 
 
  SIP/2.0 200 OK
 
  Via: SIP/2.0/TLS announcement.example.com:5061
 
    ;branch=z9hG4bK74bKS
 
    ;received=192.0.2.103
 
  From: Bob <sips:[email protected]>;tag=234934
 
  To: Alice <sips:[email protected]>;tag=1234567
 
  Call-ID: [email protected]
 
  CSeq: 2334 BYE
 
  Content-Length: 0
 
 
 
  
 +
SIP/2.0 200 OK
 +
Via: SIP/2.0/TLS server.example.com:5061
 +
;branch=z9hG4bK74rf
 +
;received=192.0.2.103
 +
From: <sips:[email protected]>;tag=0111
 +
To: <sips:[email protected];gr>;tag=098594
 +
 +
CSeq: 1 INVITE
 +
Contact: <sips:[email protected];gr>
 +
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, 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
 +
a=recvonly
  
 +
F11 ACK Park Server -> Alice
  
 +
ACK sips:[email protected];gr SIP/2.0
 +
Via: SIP/2.0/TLS server.example.com:5061
 +
;branch=z9hG4bK7rfF
 +
Max-Forwards: 70
 +
From: <sips:[email protected]>;tag=0111
 +
To: <sips:[email protected];gr>;tag=098594
 +
 +
CSeq: 1 ACK
 +
Content-Length: 0
  
 +
F12 BYE Alice -> Bob
  
 +
BYE sips:[email protected] SIP/2.0
 +
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
;branch=z9hG4bKnashds7
 +
Max-Forwards: 70
 +
From: Alice <sips:[email protected]>;tag=1234567
 +
To: Bob <sips:[email protected]>;tag=314159
 +
 +
CSeq: 2 BYE
 +
Content-Length: 0
  
 +
F13 200 OK Bob -> Alice
  
 +
SIP/2.0 200 OK
 +
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
;branch=z9hG4bKnashds7
 +
;received=192.0.2.105
 +
From: Alice <sips:[email protected]>;tag=1234567
 +
To: Bob <sips:[email protected]>;tag=314159
 +
 +
CSeq: 2 BYE
 +
Content-Length: 0
  
 +
/* Park Server reports success back to Bob by returning
 +
  a 200 OK response.  Bob obtains the dialog identifiers
 +
  from the headers included in the response. */
  
 +
F14 NOTIFY Park Server -> Bob
  
 +
NOTIFY sips:[email protected] SIP/2.0
 +
Via: SIP/2.0/TLS server.example.com:5061
 +
;branch=z9hG4bK74bf9
  
 +
To: Bob <sips:[email protected]>;tag=02134
 +
Max-Forwards: 70
 +
From: Park Server <sips:[email protected]>;tag=56323
 +
 +
CSeq: 2 NOTIFY
 +
Event: refer
 +
Subscription-State: terminated;reason=noresource
 +
Contact: <sips:[email protected]>;automaton
 +
    ;+sip.byeless;+sip.rendering="no"
 +
Content-Type: message/sipfrag
 +
Content-Length: ...
  
 +
SIP/2.0 200 OK
 +
Via: SIP/2.0/TLS server.example.com:5061
 +
;branch=z9hG4bK74rf
 +
;received=192.0.2.103
 +
From: <sips:[email protected]>;tag=0111
 +
To: <sips:[email protected];gr>;tag=098594
 +
 +
CSeq: 1 INVITE
 +
Contact: <sips:[email protected];gr>
  
 +
F15 200 OK Bob -> Park Server
  
 +
SIP/2.0 200 OK
 +
Via: SIP/2.0/TLS server.example.com:5061
 +
;branch=z9hG4bK74bf9
 +
;received=192.0.2.103
 +
To: Bob <sips:[email protected]>;tag=02134
 +
From: Park Server <sips:[email protected]>;tag=56323
 +
 +
CSeq: 2 NOTIFY
 +
Content-Length: 0
  
 +
/* Alice is now parked at the Park Server. */
  
 +
/* Carol picks up the call by sending an INVITE to A, which
 +
  replaces the existing session with the Park Server.
 +
  Carol needs to know the dialog information to construct
 +
  the Replaces header. */
 +
 +
F16 SUBSCRIBE  Carol -> Park Server
  
=== Call Management (Outgoing Call Screening) ===
+
SUBSCRIBE sips:[email protected] SIP/2.0
 +
Via: SIP/2.0/TLS client.chicago.example.com:5061
 +
;branch=z9hG4bK74b232
  
 +
Max-Forwards: 70
 +
From: Carol <sips:[email protected]>;tag=158x93461
 +
 +
Call-ID: 2d6485356dfaj34dsf
 +
CSeq: 1 SUBSCRIBE
 +
Contact: <sips:[email protected]>
 +
Event: dialog
 +
Expires: 0
 +
Accept: application/dialog-info+xml
 +
Content-Length: 0
  
        Alice            Proxy          Bob
+
F17 200 OK Park Server -> Carol
          |                |              |
+
 
          |    INVITE F1  |              |
+
SIP/2.0 200 OK
          |--------------->|              |
+
Via: SIP/2.0/TLS client.chicago.example.com:5061
          | 407 Proxy Authentication F2  |
+
;branch=z9hG4bK74b232
          |<---------------|              |
+
;received=192.0.2.105
          |    ACK F3    |              |
+
From: Carol <sips:[email protected]>;tag=158x93461
          |--------------->|              |
+
To: <sips:[email protected]>;tag=3213j
          |    INVITE F4  |              |
+
Call-ID: 2d6485356dfaj34dsf
          |--------------->|              |
+
CSeq: 1 SUBSCRIBE
          | 403 Screening Failure (Originating) F5
+
Contact: <sips:[email protected]>;automaton
          |<---------------|              |
+
     ;+sip.byeless;+sip.rendering="no"
          |     ACK F6    |              |
+
Content-Length: 0
          |--------------->|              |
 
          |                |              |
 
  
Alice has an outgoing call screening list; Bob is included on the
+
F18 NOTIFY  Park Server -> Carol
list of addresses to which Alice will not be able to place a call.
 
Alice attempts to call Bob.
 
  
Alice could establish a session to listen to the announcement in the
+
NOTIFY sips:[email protected] SIP/2.0
Error-Info header field.
+
Via: SIP/2.0/TLS server.example.com:5061
 +
;branch=z9hG4bK74b8skd
 +
Max-Forwards: 70
 +
To: Carol <sips:[email protected]>;tag=158x93461
 +
From: <sips:[email protected]>;tag=3213j
 +
Call-ID: 2d6485356dfaj34dsf
 +
CSeq: 1 NOTIFY
 +
Contact: <sips:[email protected]>;automaton
 +
    ;+sip.byeless;+sip.rendering="no"
 +
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:[email protected]">
 +
  <dialog id="439920143524"
 +
      call-id="[email protected].com"
  
Message Details
+
      local-tag="0111" remote-tag="098594" direction="initiator">
 +
    <duration>1</duration>
 +
    <local>
 +
        <target>sips:[email protected]</target>
 +
    </local>
 +
    <remote>
 +
      <target>sips:[email protected];gr</target>
 +
    </remote>
 +
    <state>confirmed</state>
 +
  </dialog>
 +
</dialog-info>
  
  F1 INVITE Alice -> Proxy 1
+
F19 200 OK Carol -> Park Server
  
  INVITE sips:[email protected] SIP/2.0
+
SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
+
Via: SIP/2.0/TLS server.example.com:5061
    ;branch=z9hG4bK74bf9
+
;branch=z9hG4bK74b8skd
  Max-Forwards: 70
+
;received=192.0.2.103
  From: Alice <sips:alice@atlanta.example.com>;tag=1234567
+
To: Carol <sips:carol@chicago.example.com>;tag=158x93461
  To: Bob <sips:bob@biloxi.example.com>
+
From: <sips:park@server.example.com>;tag=3213j
  Call-ID: [email protected]
+
Call-ID: 2d6485356dfaj34dsf
  CSeq: 1 INVITE
+
CSeq: 1 NOTIFY
  Contact: <sips:alice@client.atlanta.example.com>
+
Contact: <sips:carol@client.chicago.example.com>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
+
Content-Length: 0
  Content-Type: application/sdp
 
  Content-Length: ...
 
  
  v=0
+
F20 INVITE Carol -> Alice
  o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
 
  s=
 
  c=IN IP4 client.atlanta.example.com
 
  t=0 0
 
  
 +
INVITE sips:[email protected] SIP/2.0
 +
Via: SIP/2.0/TLS client.chicago.example.com:5061
 +
;branch=z9hG4bK74bQ2
 +
Max-Forwards: 70
 +
From: Carol <sips:[email protected]>;tag=5893461
 +
To: Alice <sips:[email protected]>
 +
 +
CSeq: 1 INVITE
 +
Contact: <sips:[email protected]>
 +
Require: replaces
 +
 +
;to-tag=098594;from-tag=0111
 +
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
 +
SUBSCRIBE, NOTIFY
 +
Supported: replaces
 +
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
  
 +
F21 200 OK Alice -> Carol
  
  m=audio 49170 RTP/AVP 0
+
SIP/2.0 200 OK
  a=rtpmap:0 PCMU/8000
+
Via: SIP/2.0/TLS client.chicago.example.com:5061
 +
;branch=z9hG4bK74bQ2
 +
;received=192.0.2.105
 +
From: Carol <sips:[email protected]>;tag=5893461
 +
To: Alice <sips:[email protected]>;tag=222
 +
 +
CSeq: 1 INVITE
 +
Contact: <sips:[email protected];gr>
 +
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
 +
Supported: replaces, gruu
 +
Content-Type: application/sdp
 +
Content-Length: ...
  
  /* Proxy 1 challenges Alice for authentication. */
+
v=0
 +
o=alice 2890844527 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
  
 +
F22 ACK Carol -> Alice
  
  F2 407 Proxy Authentication Required Proxy 1 -> Alice
+
ACK sips:[email protected];gr SIP/2.0
 +
Via: SIP/2.0/TLS client.chicago.example.com:5061
 +
;branch=z9hG4bK74bJ0
 +
Max-Forwards: 70
 +
From: Carol <sips:[email protected]>;tag=5893461
 +
To: Alice <sips:[email protected]>;tag=222
 +
 +
CSeq: 1 ACK
 +
Content-Length: 0
  
  SIP/2.0 407 Proxy Authentication Required
+
/* A replaces the session to the Park Server with the new
   Via: SIP/2.0/TLS client.atlanta.example.com:5061
+
   session with C and generates a BYE to disconnect the
    ;branch=z9hG4bK74bf9
+
   Park Server. */
    ;received=192.0.2.103
 
   From: Alice <sips:alice@atlanta.example.com>;tag=1234567
 
  To: Bob <sips:[email protected]>;tag=90210
 
  Call-ID: [email protected]
 
  CSeq: 1 INVITE
 
  Proxy-Authenticate: Digest realm="example.com",
 
    nonce="ea9c8e88df84f1cec4341ae6cbe5a359",
 
    qop="auth", nc=00000001, cnonce="0a4f113b",
 
    opaque="", stale=FALSE, algorithm=MD5
 
  Content-Length: 0
 
  
 +
F23 BYE Alice -> Park Server
  
  F3 ACK Alice -> Proxy 1
+
BYE sips:[email protected] SIP/2.0
 +
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
;branch=z9hG4bK74b4N
 +
Max-Forwards: 70
 +
From: Alice <sips:[email protected]>;tag=098594
 +
To: <sips:[email protected]>;tag=0111
 +
 +
CSeq: 1 BYE
 +
Content-Length: 0
  
  ACK sips:[email protected] SIP/2.0
+
F24 200 OK Park Server -> Alice
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
    ;branch=z9hG4bK74bf9
 
  Max-Forwards: 70
 
  From: Alice <sips:[email protected]>;tag=1234567
 
  To: Bob <sips:[email protected]>;tag=90210
 
  Call-ID: [email protected]
 
  CSeq: 1 ACK
 
  Content-Length: 0
 
  
  /* Alice responds be sending an INVITE with authentication
+
SIP/2.0 200 OK
      credentials in it. */
+
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
;branch=z9hG4bK74b4N
 +
;received=192.0.2.103
 +
From: Alice <sips:[email protected]>;tag=098594
 +
To: <sips:park@server.example.com>;tag=0111
 +
 +
CSeq: 1 BYE
 +
Content-Length: 0
  
 +
2.16.  Call Pickup
  
   F4 INVITE Alice -> Proxy 1
+
        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    |
 +
          |<---------------------------------|
 +
          |                                  |
  
  INVITE sips:bob@biloxi.example.com SIP/2.0
+
Bob and Bill are part of a work group at example.com that can pick up
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
+
each other's calls. Alice calls Bob, who does not answer. Bill
    ;branch=z9hG4bK74b4
+
wishes to pick up the call and sends a SUBSCRIBE to Bob to retrieve
  Max-Forwards: 70
+
the dialog information.  Bill then generates an INVITE with a
  From: Alice <sips:alice@atlanta.example.com>;tag=1234567
+
Replaces to Alice. Alice answers the INVITE and sends a CANCEL to
  To: Bob <sips:bob@biloxi.example.com>
+
stop Bob's phone ringing. Note that the relative order of the
  Call-ID: 12345600@atlanta.example.com
+
487/ACK sequence (F11/F12) and the 200 OK to the CANCEL (F10) is not
 +
deterministic.
  
 +
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
  
  CSeq: 2 INVITE
+
  INVITE sips:[email protected] SIP/2.0
  Contact: <sips:alice@client.atlanta.example.com>
+
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
  Proxy-Authorization: Digest username="alice", realm="example.com",
+
;branch=z9hG4bK74bf9
    nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="",
+
  Max-Forwards: 70
    uri="sips:bob@biloxi.example.com",
+
  From: Alice <sips:alice@atlanta.example.com>;tag=1234567
    response="b9d2e5bcdec9f69ab2a9b44f270285a6"
+
  To: Bob <sips:bob@biloxi.example.com>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
+
  Call-ID: 12345600@atlanta.example.com
  Content-Type: application/sdp
+
  CSeq: 1 INVITE
  Content-Length: ...
+
  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
+
  v=0
  o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
+
  o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
  s=
+
  s=
  c=IN IP4 client.atlanta.example.com
+
  c=IN IP4 client.atlanta.example.com
  t=0 0
+
  t=0 0
  m=audio 49170 RTP/AVP 0
+
  m=audio 49170 RTP/AVP 0
  a=rtpmap:0 PCMU/8000
+
  a=rtpmap:0 PCMU/8000
  
 +
  F2 180 Ringing Bob -> Alice
  
  F5 403 Screening Failure (Originating) Proxy 1 -> 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:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>;tag=3145678
 +
  Call-ID: [email protected]
  
  SIP/2.0 403 Screening Failure (Originating)
+
  CSeq: 1 INVITE
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
+
  Contact: <sips:bob@client.biloxi.example.com>
    ;branch=z9hG4bK74b4
+
  Content-Length: 0
    ;received=192.0.2.103
 
  From: Alice <sips:alice@atlanta.example.com>;tag=1234567
 
  To: Bob <sips:bob@biloxi.example.com>;tag=18017
 
  Call-ID: [email protected]
 
  CSeq: 2 INVITE
 
  Error-Info: <sips:screen-fail-orig-ann@announcement.example.com>
 
  Content-Length: 0
 
  
 +
  /* Bill decides to pick up the call. */
  
  F6 ACK Alice -> Proxy 1
+
  F3 SUBSCRIBE  Bill -> Bob
 
 
  ACK sips:[email protected] SIP/2.0
 
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
    ;branch=z9hG4bK74b4
 
  Max-Forwards: 70
 
  From: Alice <sips:[email protected]>;tag=1234567
 
  To: Bob <sips:[email protected]>;tag=18017
 
  Call-ID: [email protected]
 
  CSeq: 2 ACK
 
  Proxy-Authorization: Digest username="alice", realm="example.com",
 
    nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="",
 
    uri="sips:[email protected]",
 
    response="b9d2e5bcdec9f69ab2a9b44f270285a6"
 
  Content-Length: 0
 
  
 +
  SUBSCRIBE sips:[email protected] SIP/2.0
 +
  Via: SIP/2.0/TLS pc.biloxi.example.com:5061
 +
;branch=z9hG4bK74bf
 +
  Max-Forwards: 70
 +
  From: Bill <sips:[email protected]>;tag=8675309
 +
  To: Bob <sips:[email protected]>
 +
  Call-ID: [email protected]
 +
  CSeq: 1 SUBSCRIBE
 +
  Contact: <sips:[email protected]>
 +
  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:[email protected]>;tag=8675309
 +
  To: Bob <sips:[email protected]>;tag=31451098
 +
  Call-ID: [email protected]
 +
  CSeq: 1 SUBSCRIBE
 +
  Content-Length: 0
  
 +
  F5 NOTIFY  Bob -> Bill
  
=== Call Park ===
+
  NOTIFY sips:[email protected] SIP/2.0
 +
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
 +
;branch=z9hG4bK74br
 +
  Max-Forwards: 70
 +
  From: Bob <sips:[email protected]>;tag=31451098
 +
  To: Bill <sips:[email protected]>;tag=8675309
 +
  Call-ID: [email protected]
 +
  CSeq: 1 NOTIFY
 +
 
 +
  Contact: <sips:[email protected]>
 +
  Event: dialog
 +
  Subscription-State: terminated;reason=timeout
 +
  Content-Type: application/dialog-info+xml
 +
  Content-Length: ...
  
        Alice          Bob        Park Server      Carol
+
   <?xml version="1.0"?>
          |              |              |              |
+
   <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
          |   INVITE F1  |              |              |
+
      version="0" state="full" entity="sips:[email protected]">
          |------------->|              |              |
+
   <dialog id="94992014524" call-id="[email protected]"
          |180 Ringing F2|              |              |
+
      local-tag="3145678" remote-tag="1234567" direction="recipient">
          |<-------------|              |              |
+
    <duration>1</duration>
          |  200 OK F3   |              |              |
+
    <local>
          |<-------------|              |              |
+
      <identity display="Bob">sips:[email protected]</identity>
          |    ACK F4    |              |              |
+
      <target>sips:[email protected]</target>
          |------------->|              |              |
+
    </local>
          |  RTP Media   |              |              |
+
    <remote>
          |<============>|              |              |
+
      <identity display="Alice">sips:[email protected]
          |      Bob Parks Call        |              |
+
                                                      </identity>
          |              |  REFER Refer-To: A F5      |
+
      <target>sips:[email protected];gr</target>
          |              |------------->|              |
+
    </remote>
          |              |    202 F6    |              |
+
    <state>early</state>
          |              |<-------------|              |
+
  </dialog>
          |              |  NOTIFY F7  |              |
+
</dialog-info>
          |              |<-------------|              |
 
          |              |    200 F8    |              |
 
          |              |------------->|              |
 
          |  INVITE F9 Replaces: B      |              |
 
          |<----------------------------|              |
 
          |          200 OK F10        |              |
 
          |---------------------------->|              |
 
          |          ACK F11          |              |
 
          |<----------------------------|              |
 
          |          RTP Music        |              |
 
          |<===========================>|              |
 
          |    BYE F12  |              |              |
 
          |------------->|  NOTIFY F14  |              |
 
          |  200 OK F13  |<-------------|              |
 
          |<-------------|  200 OK F15  |              |
 
          |              |------------->|              |
 
          |              |  Carol picks up the call  |
 
          |              |              |              |
 
          |              |              | SUBSCRIBE F16|
 
          |              |              |<-------------|
 
          |              |              |  200 OK F17  |
 
          |              |              |------------->|
 
          |              |              |  NOTIFY F18  |
 
          |              |              |------------->|
 
          |              |              |  200 OK F19  |
 
          |              |              |<-------------|
 
          |          INVITE Replaces: Park Server F20 |
 
          |<-------------------------------------------|
 
  
 +
  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:[email protected]>;tag=31451098
 +
  To: Bill <sips:[email protected]>;tag=8675309
 +
  Call-ID: [email protected]
 +
  CSeq: 1 NOTIFY
 +
  Contact: <sips:[email protected]>
 +
  Content-Length: 0
  
 +
  F7 INVITE  Bill -> Alice
  
 +
  INVITE sips:[email protected];gr SIP/2.0
 +
  Via: SIP/2.0/TLS pc.biloxi.example.com:5061
 +
;branch=z9hG4bK74HH
 +
  Max-Forwards: 70
 +
  From: Bill <sips:[email protected]>;tag=8675310
 +
  To: Alice <sips:[email protected]>
  
          |              |              |   200 F21    |
+
   Call-ID: [email protected]
          |------------------------------------------->|
+
  CSeq: 1 INVITE
          |              |              |    ACK F22   |
+
  Require: replaces
          |<-------------------------------------------|
+
   Replaces: [email protected]
          |                  RTP Media                |
+
;from-tag=314578;to-tag=1234567;early-only
          |<==========================================>|
+
  Contact: <sips:[email protected]>
          |          BYE F23          |              |
+
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
          |---------------------------->|              |
+
  Supported: replaces
          |          200 OK F24        |              |
+
  Content-Type: application/sdp
          |<----------------------------|              |
+
  Content-Length: ...
          |      No more RTP Music    |              |
 
  
In this example, Alice calls Bob. Bob then parks the call at the
+
  v=0
Park Server by sending a REFER to the Park Server.  The server sends
+
  o=bill 2890843122 2890843122 IN IP4 pc.biloxi.example.com
an INVITE to Alice, which replaces the session between Alice and Bob.
+
  s=
The Park Server utilizes the automaton, rendering, and byeless
+
  c=IN IP4 pc.biloxi.example.com
feature tags in F9 to indicate its capabilities to Alice. The call
+
  t=0 0
is accepted by Alice and causes Alice to send a BYE to Bob. Bob
+
  m=audio 5342 RTP/AVP 0
receives notification of the successful park, and also receives the
+
  a=rtpmap:0 PCMU/8000
dialog identifiers in the application/sip body of the NOTIFY
 
response.
 
  
Carol wishes to retrieve the call, so she sends an INVITE containing
+
  /* Alice matches the dialog information in the Replaces header
the dialog identifiers to Alice, which replaces the session with the
+
  and accepts the INVITE. */
Park Server.  Alice accepts the call and sends a BYE to the Park
 
Server.  Carol obtains the dialog identifiers from a NOTIFY from the
 
Park Server.
 
  
Note that this call flow is a special case of call transfer.
+
  F8 200 OK  Alice -> Bill
  
Note also that this flow could also be used for Music on Hold.
+
  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:[email protected]>;tag=8675310
 +
  To: Alice <sips:[email protected]>;tag=131256
 +
  Call-ID: [email protected]
 +
  CSeq: 1 INVITE
 +
  Contact: <sips:[email protected];gr>
 +
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 +
  Supported: replaces, gruu
 +
  Content-Type: application/sdp
 +
  Content-Length: ...
  
Message Details
+
  v=0
 
+
  o=alice 289084543 289084543 IN IP4 client.atlanta.example.com
F1 INVITE Alice -> Bob
+
  s=
 +
  c=IN IP4 client.atlanta.example.com
 +
  t=0 0
 +
  m=audio 49172 RTP/AVP 0
 +
  a=rtpmap:0 PCMU/8000
  
INVITE sips:[email protected] SIP/2.0
+
  /* Alice stops Bob's phone from ringing by sending a CANCEL. */
Via: SIP/2.0/TLS client.alice.example.com:5061
 
;branch=z9hG4bKnashds7
 
Max-Forwards: 70
 
From: Alice <sips:[email protected]>;tag=1234567
 
To: Bob <sips:bob@biloxi.example.com>
 
 
CSeq: 1 INVITE
 
Contact: <sips:[email protected];gr>
 
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
 
Supported: replaces, gruu
 
Content-Type: application/sdp
 
  
 +
  F9 CANCEL Alice -> Bob
  
 +
  CANCEL sips:[email protected] SIP/2.0
 +
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
;branch=z9hG4bK74bf9
 +
  Max-Forwards: 70
 +
  From: Alice <sips:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>
 +
  Call-ID: [email protected]
 +
  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:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>;tag=3145678
 +
  Call-ID: [email protected]
 +
  CSeq: 1 CANCEL
 +
  Content-Length: 0
  
Content-Length: ...
+
  F11 487 Request Terminated Bob -> Alice
  
v=0
+
  SIP/2.0 487 Request Terminated
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
+
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
s=
+
;branch=z9hG4bK74bf9
c=IN IP4 client.atlanta.example.com
+
;received=192.0.2.103
t=0 0
+
  From: Alice <sips:alice@atlanta.example.com>;tag=1234567
m=audio 49170 RTP/AVP 0
+
  To: Bob <sips:[email protected]>;tag=3145678
a=rtpmap:0 PCMU/8000
+
  Call-ID: [email protected]
 +
  CSeq: 1 INVITE
 +
  Content-Length: 0
  
 +
  F12 ACK Alice -> Bob
  
F2 180 Ringing Bob -> Alice
+
  ACK sips:[email protected] SIP/2.0
 +
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
;branch=z9hG4bK83749.1
 +
  Max-Forwards: 70
 +
  From: Alice <sips:[email protected]>;tag=1234567
 +
  To: Bob <sips:[email protected]>;tag=3145678
  
SIP/2.0 180 Ringing
+
  Call-ID: 12345600@atlanta.example.com
Via: SIP/2.0/TLS client.atlanta.example.com:5061
+
  CSeq: 1 ACK
;branch=z9hG4bKnashds7
+
  Content-Length: 0
;received=192.0.2.105
 
From: Alice <sips:[email protected]>;tag=1234567
 
To: Bob <sips:[email protected]>;tag=314159
 
Call-ID: 12345601@atlanta.example.com
 
CSeq: 1 INVITE
 
Contact: <sips:[email protected]>
 
Content-Length: 0
 
  
 +
  F13 ACK  Bill -> Alice
  
F3 200 OK Bob -> Alice
+
  ACK sips:[email protected];gr SIP/2.0
 
+
  Via: SIP/2.0/TLS pc.biloxi.example.com:5061
SIP/2.0 200 OK
+
;branch=z9hG4bK7435
Via: SIP/2.0/TLS client.atlanta.example.com:5061
+
  Max-Forwards: 70
;branch=z9hG4bKnashds7
+
  From: Bill <sips:bill@biloxi.example.com>;tag=8675310
;received=192.0.2.105
+
  To: Alice <sips:alice@atlanta.example.com>;tag=131256
From: Alice <sips:alice@atlanta.example.com>;tag=1234567
+
  Call-ID: 563456212@b2.biloxi.example.com
To: Bob <sips:bob@biloxi.example.com>;tag=314159
+
  CSeq: 1 ACK
Call-ID: 12345601@atlanta.example.com
+
  Content-Length: 0
CSeq: 1 INVITE
 
Contact: <sips:[email protected]>
 
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
 
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
 
  
 +
  /* RTP streams are established between Alice and Bill.
 +
  Later, Alice hangs up with Bill. */
  
 +
  F14 BYE Alice -> Bill
  
 +
  BYE sips:[email protected] SIP/2.0
 +
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
;branch=z9hG4bK74bf2
 +
  Max-Forwards: 70
 +
  To: Bill <sips:[email protected]>;tag=8675310
 +
  From: Alice <sips:[email protected]>;tag=131256
 +
  Call-ID: [email protected]
 +
  CSeq: 1 BYE
 +
  Content-Length: 0
  
 +
  F15 200 OK Bill -> Alice
  
F4 ACK Alice -> Bob
+
  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:[email protected]>;tag=8675310
 +
  From: Alice <sips:[email protected]>;tag=131256
 +
  Call-ID: [email protected]
 +
  CSeq:  1 BYE
 +
  Content-Length: 0
  
ACK sips:bob@client.biloxi.example.com SIP/2.0
+
2.17. Automatic Redial
Via: SIP/2.0/TLS client.atlanta.example.com:5061
+
        Alice            Bob
  ;branch=z9hG4bKnashds7
+
          |                |
Max-Forwards: 70
+
          |    INVITE F1  |
From: Alice <sips:[email protected]>;tag=1234567
+
          |--------------->|
To: Bob <sips:[email protected]>;tag=314159
+
          |486 Busy Here F2|
+
          |<---------------|    Bob is busy
CSeq: 1 ACK
+
          |    ACK F3    |
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
+
          |--------------->|
Supported: replaces
+
          |  SUBSCRIBE F4 |
Content-Length: 0
+
          |--------------->|
 
+
          |  200 OK F5    |
/* Bob REFERs Park Server to establish session with Alice,
+
          |<---------------|
  which replaces the established session between Alice and Bob.
+
          |    NOTIFY F6  |
  Note that there is no session established between Bob
+
          |<---------------|
  and the Park Server. */
+
          |  200 OK F7    |
 
+
          |--------------->|
 
+
          |                |
F5 REFER Bob -> Park Server
+
          |    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  |
 +
          |--------------->|
 +
          |                |
  
REFER sips:park@server.example.com SIP/2.0
+
Bob is initially busy when Alice calls. Alice subscribes to Bob's
Via: SIP/2.0/TLS client.biloxi.example.com:5061
+
call state using a SUBSCRIBE F4.  Bob sends a NOTIFY F8 when Bob is
  ;branch=z9hG4bKnashds9
+
availableAlice is alerted, then Alice sends an INVITE to Bob to
Max-Forwards: 70
+
establish the sessionThe subscription is terminated using
From: Bob <sips:[email protected]>;tag=02134
+
SUBSCRIBE F16.
To: Park Server <sips:[email protected]>
 
Call-ID: 4802029847@biloxi.example.com
 
CSeq: 1 REFER
 
  <allOneLine>
 
Refer-To: <sips:[email protected];gr?Replaces=
 
12345601%40atlanta.example.com%3Bfrom-tag%3D314159
 
%3Bto-tag%3D1234567&Require=replaces>
 
  </allOneLine>
 
Referred-By: <sips:[email protected]>
 
Contact: <sips:[email protected].com>
 
Content-Length: 0
 
  
 +
Message Details
  
F6 202 Accepted Park Server -> Bob
+
F1 INVITE Alice -> Bob
  
SIP/2.0 202 Accepted
+
INVITE sips:[email protected] SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
+
Via: SIP/2.0/TLS client.atlanta.example.com:5061
  ;branch=z9hG4bKnashds9
+
  ;branch=z9hG4bK74bf9
;received=192.0.2.105
+
Max-Forwards: 70
From: Bob <sips:[email protected]>;tag=02134
+
From: Alice <sips:[email protected]>;tag=1234567
To: Park Server <sips:park@server.example.com>;tag=56323
+
To: Bob <sips:[email protected]>
 +
 +
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:[email protected]>;tag=1234567
 +
To: Bob <sips:[email protected]>;tag=982039i4
 +
 +
CSeq: 1 INVITE
 +
Content-Length: 0
  
 +
F3 ACK Alice -> Bob
  
Call-ID: 4802029847@biloxi.example.com
+
ACK sips:[email protected] SIP/2.0
Contact: <sips:park@server.example.com>
+
Via: SIP/2.0/TLS client.atlanta.example.com:5061
CSeq: 1 REFER
+
;branch=z9hG4bK74bf9
 +
Max-Forwards: 70
 +
From: Alice <sips:alice@atlanta.example.com>;tag=1234567
 +
To: Bob <sips:bob@biloxi.example.com>;tag=982039i4
 +
 +
CSeq: 1 ACK
 
Content-Length: 0
 
Content-Length: 0
  
 +
F4 SUBSCRIBE Alice -> Bob
  
F7 NOTIFY Park Server -> Bob
+
SUBSCRIBE sips:[email protected] SIP/2.0
 
+
Via: SIP/2.0/TLS client.atlanta.example.com:5061
NOTIFY sips:bob@client.biloxi.example.com SIP/2.0
+
  ;branch=z9hG4bK74b8G
Via: SIP/2.0/TLS server.example.com:5061
 
  ;branch=z9hG4bK74bT6
 
To: Bob <sips:[email protected]>;tag=02134
 
 
Max-Forwards: 70
 
Max-Forwards: 70
From: Park Server <sips:park@server.example.com>;tag=56323
+
From: Alice <sips:alice@atlanta.example.com>;tag=837348234
Call-ID: 4802029847@biloxi.example.com
+
To: Bob <sips:[email protected]>
CSeq: 1 NOTIFY
+
Call-ID: 4524526232@atlanta.example.com
Event: refer
+
CSeq: 1 SUBSCRIBE
Contact: <sips:park@server.example.com>
+
Contact: sips:alice@client.atlanta.example.com
Subscription-State: active;expires=60
+
Event: dialog
Content-Type: message/sipfrag
+
Accept: application/dialog-info+xml
Content-Length: ...
+
Content-Length: 0
  
SIP/2.0 100 Trying
+
F5 200 OK Bob -> Alice
 
 
 
 
F8 200 OK Bob -> Park Server
 
  
 
SIP/2.0 200 OK
 
SIP/2.0 200 OK
Via: SIP/2.0/TLS server.example.com:5061
+
Via: SIP/2.0/TLS client.atlanta.example.com:5061
  ;branch=z9hG4bK74bT6
+
  ;branch=z9hG4bK74b8G
 
  ;received=192.0.2.103
 
  ;received=192.0.2.103
To: Bob <sips:bob@biloxi.example.com>;tag=02134
+
From: Alice <sips:alice@atlanta.example.com>;tag=837348234
From: Park Server <sips:park@server.example.com>;tag=56323
+
To: Bob <sips:bob@biloxi.example.com>;tag=341123
Call-ID: 4802029847@biloxi.example.com
+
Call-ID: 4524526232@atlanta.example.com
CSeq: 1 NOTIFY
+
Expires: 60
 +
CSeq: 1 SUBSCRIBE
 +
Contact: sips:[email protected]
 
Content-Length: 0
 
Content-Length: 0
  
/* Park Server places call to Alice to replace session
+
F6 NOTIFY Bob -> Alice
  between Alice and Bob. */
 
  
 
+
NOTIFY sips:alice@client.atlanta.example.com SIP/2.0
F9 INVITE Park Server -> Alice
+
Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
+
  ;branch=z9hG4bK74bn2
INVITE sips:a8342043f@atlanta.example.com;gr SIP/2.0
 
Via: SIP/2.0/TLS server.example.com:5061
 
  ;branch=z9hG4bK74rf
 
 
Max-Forwards: 70
 
Max-Forwards: 70
From: <sips:park@server.example.com>;tag=0111
+
From: Bob <sips:bob@biloxi.example.com>;tag=341123
 
+
To: Alice <sips:[email protected]>;tag=837348234
 +
 +
CSeq: 1 NOTIFY
 +
Contact: <sips:[email protected]>
 +
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:[email protected]">
 +
  <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:[email protected]>;tag=341123
 +
To: Alice <sips:[email protected]>;tag=837348234
 +
 +
CSeq: 1 NOTIFY
 +
Content-Length: 0
  
To: <sips:[email protected];gr>
+
/* Bob is now available. */
 
CSeq: 1 INVITE
 
Referred-By: <sips:[email protected]>
 
Contact: <sips:park@server.example.com>;automaton
 
    ;+sip.byeless;+sip.rendering="no"
 
Require: replaces
 
 
;from-tag=314159;to-tag=1234567
 
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
 
Supported: replaces
 
Content-Type: application/sdp
 
Content-Length: ...
 
  
v=0
+
F8 NOTIFY Bob -> Alice
o=ParkServer 2890844576 2890844576 IN IP4 Park.server.example.com
 
s=
 
c=IN IP4 server.example.com
 
t=0 0
 
m=audio 49170 RTP/AVP 0
 
a=rtpmap:0 PCMU/8000
 
  
 +
NOTIFY sips:[email protected] SIP/2.0
 +
Via: SIP/2.0/TLS client.biloxi.example.com:5061
 +
;branch=z9hG4bK74bVi
 +
Max-Forwards: 70
 +
From: Bob <sips:[email protected]>;tag=341123
  
F10 200 OK Alice -> Park Server
+
To: Alice <sips:[email protected]>;tag=837348234
 +
 +
CSeq: 2 NOTIFY
 +
Event: dialog
 +
Subscription-State: active;expires=27
 +
Contact: <sips:[email protected]>
 +
Content-Type: application/dialog-info+xml
 +
Content-Length: ...
  
SIP/2.0 200 OK
+
<?xml version="1.0"?>
Via: SIP/2.0/TLS server.example.com:5061
+
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
  ;branch=z9hG4bK74rf
+
      version="0" state="full" entity="sips:[email protected]">
  ;received=192.0.2.103
+
  <dialog id="562623442g3">
From: <sips:park@server.example.com>;tag=0111
+
    <state>terminated</state>
To: <sips:a8342043f@atlanta.example.com;gr>;tag=098594
+
  </dialog>
Call-ID: a5-75-34-12-76@server.example.com
+
</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
 +
 +
CSeq: 2 NOTIFY
 +
Content-Length: 0
 +
 
 +
F10 INVITE Alice -> Bob
 +
 
 +
INVITE sips:[email protected] SIP/2.0
 +
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
;branch=z9hG4bK74bfq
 +
Max-Forwards: 70
 +
From: Alice <sips:[email protected]>;tag=f23fkg14k
 +
To: Bob <sips:[email protected]>
 +
Call-ID: aoij4i9okitr@atlanta.example.com
 
CSeq: 1 INVITE
 
CSeq: 1 INVITE
Contact: <sips:a8342043f@atlanta.example.com;gr>
+
Contact: <sips:alice@client.atlanta.example.com>
 
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
 
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Supported: replaces, gruu
+
Supported: replaces
 
Content-Type: application/sdp
 
Content-Type: application/sdp
 
Content-Length: ...
 
Content-Length: ...
  
 
v=0
 
v=0
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
+
o=alice 2890844826 2890844826 IN IP4 client.atlanta.example.com
 
s=
 
s=
 
c=IN IP4 client.atlanta.example.com
 
c=IN IP4 client.atlanta.example.com
Line 7,354: Line 6,946:
 
m=audio 49170 RTP/AVP 0
 
m=audio 49170 RTP/AVP 0
 
a=rtpmap:0 PCMU/8000
 
a=rtpmap:0 PCMU/8000
a=recvonly
 
  
 +
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:[email protected]>;tag=f23fkg14k
 +
To: Bob <sips:[email protected]>;tag=23431
 +
 +
CSeq: 1 INVITE
 +
Contact: <sips:[email protected]>
 +
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:[email protected]>;tag=f23fkg14k
 +
To: Bob <sips:[email protected]>;tag=23431
 +
 +
CSeq: 1 INVITE
 +
Contact: <sips:[email protected]>
 +
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
  
F11 ACK Park Server -> Alice
+
F13 ACK Alice -> Bob
 
 
ACK sips:[email protected];gr SIP/2.0
 
Via: SIP/2.0/TLS server.example.com:5061
 
;branch=z9hG4bK7rfF
 
Max-Forwards: 70
 
From: <sips:[email protected]>;tag=0111
 
To: <sips:[email protected];gr>;tag=098594
 
 
CSeq: 1 ACK
 
Content-Length: 0
 
 
 
 
 
F12 BYE Alice -> Bob
 
  
BYE sips:[email protected] SIP/2.0
+
ACK sips:[email protected] SIP/2.0
 
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
Via: SIP/2.0/TLS client.atlanta.example.com:5061
  ;branch=z9hG4bKnashds7
+
  ;branch=z9hG4bK74bLBJ
 
Max-Forwards: 70
 
Max-Forwards: 70
From: Alice <sips:[email protected]>;tag=1234567
+
From: Alice <sips:[email protected]>;tag=f23fkg14k
To: Bob <sips:[email protected]>;tag=314159
+
To: Bob <sips:[email protected]>;tag=23431
Call-ID: 12345601@atlanta.example.com
+
Call-ID: aoij4i9okitr@atlanta.example.com
CSeq: 2 BYE
+
CSeq: 1 ACK
 
Content-Length: 0
 
Content-Length: 0
  
 +
F14 NOTIFY Bob -> Alice
  
F13 200 OK Bob -> Alice
+
NOTIFY sips:[email protected] SIP/2.0
 +
Via: SIP/2.0/TLS client.biloxi.example.com:5061
 +
;branch=z9hG4bK4bnd2
 +
Max-Forwards: 70
 +
From: Bob <sips:[email protected]>;tag=341123
 +
To: Alice <sips:[email protected]>;tag=837348234
 +
 +
CSeq: 3 NOTIFY
 +
Contact: <sips:[email protected]>
 +
Event: dialog
 +
Subscription-State: active;expires=15
 +
Content-Type: application/dialog-info+xml
 +
Content-Length: ...
  
SIP/2.0 200 OK
+
<?xml version="1.0"?>
Via: SIP/2.0/TLS client.atlanta.example.com:5061
+
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
  ;branch=z9hG4bKnashds7
+
      version="0" state="full" entity="sips:[email protected]">
 +
  <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
 
  ;received=192.0.2.105
From: Alice <sips:alice@atlanta.example.com>;tag=1234567
+
From: Bob <sips:bob@biloxi.example.com>;tag=341123
To: Bob <sips:bob@biloxi.example.com>;tag=314159
+
To: Alice <sips:alice@atlanta.example.com>;tag=837348234
Call-ID: 12345601@atlanta.example.com
+
 
CSeq: 2 BYE
+
Call-ID: 4524526232@atlanta.example.com
 +
CSeq: 3 NOTIFY
 
Content-Length: 0
 
Content-Length: 0
  
/* Park Server reports success back to Bob by returning
+
/* Alice terminates the subscription. */
  a 200 OK response.  Bob obtains the dialog identifiers
 
  from the headers included in the response. */
 
  
 +
F16 SUBSCRIBE Alice -> Bob
  
F14 NOTIFY Park Server -> Bob
+
SUBSCRIBE sips:[email protected] SIP/2.0
 +
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 +
;branch=z9hG4bK474b8
 +
Max-Forwards: 70
 +
From: Alice <sips:[email protected]>;tag=837348234
 +
To: Alice <sips:[email protected]>;tag=837348234
 +
 +
CSeq: 2 SUBSCRIBE
 +
Contact: sips:[email protected]
 +
Event: dialog
 +
Expires: 0
 +
Accept: application/dialog-info+xml
 +
Content-Length: 0
  
NOTIFY sips:[email protected] SIP/2.0
+
F17 200 OK Bob -> Alice
Via: SIP/2.0/TLS server.example.com:5061
 
;branch=z9hG4bK74bf9
 
  
 +
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:[email protected]>;tag=837348234
 +
To: Bob <sips:[email protected]>;tag=341123
 +
 +
Expires: 0
 +
CSeq: 2 SUBSCRIBE
 +
Contact: sips:[email protected]
 +
Content-Length: 0
  
 +
F18 NOTIFY Bob -> Alice
  
 +
NOTIFY sips:[email protected] SIP/2.0
 +
Via: SIP/2.0/TLS client.biloxi.example.com:5061
 +
;branch=z9hG4bKb5n2j
 +
Max-Forwards: 70
 +
From: Bob <sips:[email protected]>;tag=341123
 +
To: Alice <sips:[email protected]>;tag=837348234
 +
  
 
+
CSeq: 4 NOTIFY
To: Bob <sips:[email protected]>;tag=02134
+
Contact: <sips:bob@client.biloxi.example.com>
Max-Forwards: 70
+
Event: dialog
From: Park Server <sips:[email protected]>;tag=56323
 
 
CSeq: 2 NOTIFY
 
Event: refer
 
 
Subscription-State: terminated;reason=noresource
 
Subscription-State: terminated;reason=noresource
Contact: <sips:[email protected]>;automaton
+
Content-Type: application/dialog-info+xml
    ;+sip.byeless;+sip.rendering="no"
 
Content-Type: message/sipfrag
 
 
Content-Length: ...
 
Content-Length: ...
  
SIP/2.0 200 OK
+
<?xml version="1.0"?>
Via: SIP/2.0/TLS server.example.com:5061
+
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
;branch=z9hG4bK74rf
+
      version="0" state="full" entity="sips:bob@biloxi.example.com">
;received=192.0.2.103
+
  <dialog id="62d2623442g3">
From: <sips:park@server.example.com>;tag=0111
+
      <duration>3</duration>
To: <sips:[email protected];gr>;tag=098594
+
    <state>confirmed</state>
+
  </dialog>
CSeq: 1 INVITE
+
</dialog-info>
Contact: <sips:[email protected];gr>
 
  
 
+
F19 200 OK Alice -> Bob
F15 200 OK Bob -> Park Server
 
  
 
SIP/2.0 200 OK
 
SIP/2.0 200 OK
Via: SIP/2.0/TLS server.example.com:5061
+
Via: SIP/2.0/TLS client.biloxi.example.com:5061
  ;branch=z9hG4bK74bf9
+
  ;branch=z9hG4bKb5n2j
  ;received=192.0.2.103
+
  ;received=192.0.2.105
To: Bob <sips:[email protected]>;tag=02134
+
From: Bob <sips:[email protected]>;tag=341123
From: Park Server <sips:park@server.example.com>;tag=56323
+
To: Alice <sips:alice@atlanta.example.com>;tag=837348234
Call-ID: 4802029847@biloxi.example.com
+
Call-ID: 4524526232@atlanta.example.com
CSeq: 2 NOTIFY
+
CSeq: 4 NOTIFY
 
Content-Length: 0
 
Content-Length: 0
  
/* Alice is now parked at the Park Server. */
+
2.18.  Click to Dial
  
/* Carol picks up the call by sending an INVITE to A, which
+
    Bob's PC                Bob                Carol
  replaces the existing session with the Park Server.
+
        | REFER Refer-To:Carol F1                |
  Carol needs to know the dialog information to construct
+
        |------------------->|                    |
  the Replaces header. */
+
        |  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.
  
F16 SUBSCRIBE  Carol -> Park Server
+
Note that Bob's PC requests that no REFER dialog be established by
 +
the use of the Refer-Sub: false header field [[RFC4488]].
  
SUBSCRIBE sips:[email protected] SIP/2.0
+
This flow is preferable to the 3pcc flow because the end-to-end SIP
Via: SIP/2.0/TLS client.chicago.example.com:5061
+
signaling is not interrupted by the 3pcc controller, and because
;branch=z9hG4bK74b232
+
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:[email protected] 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:[email protected]>
  
Max-Forwards: 70
+
  Call-ID: 1234560183434
From: Carol <sips:[email protected]>;tag=158x93461
+
  CSeq: 1 REFER
To: <sips:park@server.example.com>
+
  Refer-To: <sips:carol@chicago.example.com>
Call-ID: 2d6485356dfaj34dsf
+
  Refer-Sub: false
CSeq: 1 SUBSCRIBE
+
  Contact: <sips:pc.biloxi.example.com>
Contact: <sips:carol@client.chicago.example.com>
+
  Content-Length: 0
Event: dialog
 
Expires: 0
 
Accept: application/dialog-info+xml
 
Content-Length: 0
 
  
 +
  F2 202 Accepted Bob -> PC
  
F17 200 OK Park Server -> Carol
+
  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:[email protected]>;tag=314159
 +
  Call-ID: 1234560183434
 +
  Contact: <sips:[email protected]>
 +
  CSeq: 1 REFER
 +
  Refer-Sub: false
 +
  Content-Length: 0
 +
 
 +
  F3 INVITE Bob -> Carol
  
SIP/2.0 200 OK
+
  INVITE sips:[email protected] SIP/2.0
Via: SIP/2.0/TLS client.chicago.example.com:5061
+
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bK74b232
+
    ;branch=z9hG4bKnashdK9
;received=192.0.2.105
+
  Max-Forwards: 70
From: Carol <sips:carol@chicago.example.com>;tag=158x93461
+
  From: Bob <sips:bob@biloxi.example.com>;tag=8675309
To: <sips:park@server.example.com>;tag=3213j
+
  To: Carol <sips:carol@chicago.example.com>
Call-ID: 2d6485356dfaj34dsf
+
  Call-ID: [email protected]
CSeq: 1 SUBSCRIBE
+
  CSeq: 1 INVITE
Contact: <sips:park@server.example.com>;automaton
+
  Contact: <sips:bob@client.biloxi.example.com>
    ;+sip.byeless;+sip.rendering="no"
+
  Referred-By: <sips:pc.biloxi.example.com>
Content-Length: 0
+
  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
  
F18 NOTIFY  Park Server -> Carol
+
  F4 180 Ringing Carol -> Bob
  
NOTIFY sips:[email protected] SIP/2.0
+
  SIP/2.0 180 Ringing
Via: SIP/2.0/TLS server.example.com:5061
+
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bK74b8skd
+
    ;branch=z9hG4bKnashdK9
Max-Forwards: 70
+
    ;received=192.0.2.113
To: Carol <sips:carol@chicago.example.com>;tag=158x93461
+
  From: Bob <sips:bob@biloxi.example.com>;tag=8675309
From: <sips:park@server.example.com>;tag=3213j
+
  To: Carol <sips:carol@chicago.example.com>;tag=928287
Call-ID: 2d6485356dfaj34dsf
+
  Call-ID: [email protected]
CSeq: 1 NOTIFY
+
  CSeq: 1 INVITE
Contact: <sips:park@server.example.com>;automaton
+
  Contact: <sips:carol@client.chicago.example.com>
    ;+sip.byeless;+sip.rendering="no"
+
  Content-Length: 0
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:[email protected]">
 
  <dialog id="439920143524"
 
      call-id="[email protected]"
 
  
 +
  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:[email protected]>;tag=8675309
 +
  To: Carol <sips:[email protected]>;tag=928287
 +
  Call-ID: [email protected]
 +
  CSeq: 1 INVITE
 +
  Contact: <sips:[email protected]>
 +
  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
  
      local-tag="0111" remote-tag="098594" direction="initiator">
+
  ACK sips:[email protected] SIP/2.0
    <duration>1</duration>
+
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
    <local>
+
    ;branch=z9hG4bKnashd43
        <target>sips:park@server.example.com</target>
+
  Max-Forwards: 70
    </local>
+
  From: Bob <sips:bob@biloxi.example.com>;tag=8675309
    <remote>
+
  To: Carol <sips:[email protected]>;tag=928287
      <target>sips:a8342043f@atlanta.example.com;gr</target>
+
 
    </remote>
+
  Call-ID: 7436222@atlanta.example.com
    <state>confirmed</state>
+
  CSeq: 1 ACK
   </dialog>
+
  Content-Length: 0
</dialog-info>
+
 
 +
   /* Bob and Carol now have established a session. */
  
 +
== Security Considerations ==
  
F19 200 OK Carol -> Park Server
+
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.
  
SIP/2.0 200 OK
+
Many of the services shown in this document rely on a particular user
Via: SIP/2.0/TLS server.example.com:5061
+
agent being part of a group. Members of a group could be, for
  ;branch=z9hG4bK74b8skd
+
example, employees within a particular department, a set of home
;received=192.0.2.103
+
phone extensions, members of a call center, etcAs such, user
To: Carol <sips:carol@chicago.example.com>;tag=158x93461
+
agents that are part of the group permit other group members special
From: <sips:park@server.example.com>;tag=3213j
+
privileges and features. For example, while a user agent may not in
Call-ID: 2d6485356dfaj34dsf
+
general allow another user agent to learn detailed dialog
CSeq: 1 NOTIFY
+
information, this information might be shared with another group
Contact: <sips:[email protected].com>
+
member in order to facilitate a service such as call pickup. Group
Content-Length: 0
+
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.
  
F20 INVITE Carol -> Alice
+
== Acknowledgements ==
  
INVITE sips:[email protected] SIP/2.0
+
The authors would like to thank the following reviewers of the
Via: SIP/2.0/TLS client.chicago.example.com:5061
+
document for their detailed comments and corrections: Vijay Gurbani,
;branch=z9hG4bK74bQ2
+
John Elwell, Joel Repiquet, Nagesh Kumar, Chandra Ravipati, Eric
Max-Forwards: 70
 
From: Carol <sips:[email protected]>;tag=5893461
 
To: Alice <sips:[email protected]>
 
 
CSeq: 1 INVITE
 
Contact: <sips:[email protected]>
 
Require: replaces
 
 
;to-tag=098594;from-tag=0111
 
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
 
SUBSCRIBE, NOTIFY
 
Supported: replaces
 
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
 
 
 
 
 
F21 200 OK Alice -> Carol
 
 
 
SIP/2.0 200 OK
 
Via: SIP/2.0/TLS client.chicago.example.com:5061
 
;branch=z9hG4bK74bQ2
 
;received=192.0.2.105
 
From: Carol <sips:[email protected]>;tag=5893461
 
To: Alice <sips:[email protected]>;tag=222
 
 
CSeq: 1 INVITE
 
Contact: <sips:[email protected];gr>
 
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
 
Supported: replaces, gruu
 
Content-Type: application/sdp
 
Content-Length: ...
 
 
 
v=0
 
o=alice 2890844527 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
 
 
 
 
 
F22 ACK Carol -> Alice
 
 
 
ACK sips:[email protected];gr SIP/2.0
 
Via: SIP/2.0/TLS client.chicago.example.com:5061
 
;branch=z9hG4bK74bJ0
 
Max-Forwards: 70
 
From: Carol <sips:[email protected]>;tag=5893461
 
To: Alice <sips:[email protected]>;tag=222
 
 
CSeq: 1 ACK
 
Content-Length: 0
 
 
 
/* A replaces the session to the Park Server with the new
 
  session with C and generates a BYE to disconnect the
 
  Park Server. */
 
 
 
 
 
 
 
 
 
 
 
F23 BYE Alice -> Park Server
 
 
 
BYE sips:[email protected] SIP/2.0
 
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
;branch=z9hG4bK74b4N
 
Max-Forwards: 70
 
From: Alice <sips:[email protected]>;tag=098594
 
To: <sips:[email protected]>;tag=0111
 
 
CSeq: 1 BYE
 
Content-Length: 0
 
 
 
 
 
F24 200 OK Park Server -> Alice
 
 
 
SIP/2.0 200 OK
 
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
;branch=z9hG4bK74b4N
 
;received=192.0.2.103
 
From: Alice <sips:[email protected]>;tag=098594
 
To: <sips:[email protected]>;tag=0111
 
 
CSeq: 1 BYE
 
Content-Length: 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
=== 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.
 
 
 
 
 
 
 
 
 
 
 
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:[email protected] SIP/2.0
 
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
;branch=z9hG4bK74bf9
 
  Max-Forwards: 70
 
  From: Alice <sips:[email protected]>;tag=1234567
 
  To: Bob <sips:[email protected]>
 
  Call-ID: [email protected]
 
  CSeq: 1 INVITE
 
  Contact: <sips:[email protected];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:[email protected]>;tag=1234567
 
  To: Bob <sips:[email protected]>;tag=3145678
 
  Call-ID: [email protected]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  CSeq: 1 INVITE
 
  Contact: <sips:[email protected]>
 
  Content-Length: 0
 
 
 
  /* Bill decides to pick up the call. */
 
 
 
 
 
  F3 SUBSCRIBE  Bill -> Bob
 
 
 
  SUBSCRIBE sips:[email protected] SIP/2.0
 
  Via: SIP/2.0/TLS pc.biloxi.example.com:5061
 
;branch=z9hG4bK74bf
 
  Max-Forwards: 70
 
  From: Bill <sips:[email protected]>;tag=8675309
 
  To: Bob <sips:[email protected]>
 
  Call-ID: [email protected]
 
  CSeq: 1 SUBSCRIBE
 
  Contact: <sips:[email protected]>
 
  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:[email protected]>;tag=8675309
 
  To: Bob <sips:[email protected]>;tag=31451098
 
  Call-ID: [email protected]
 
  CSeq: 1 SUBSCRIBE
 
  Content-Length: 0
 
 
 
 
 
  F5 NOTIFY  Bob -> Bill
 
 
 
  NOTIFY sips:[email protected] SIP/2.0
 
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
;branch=z9hG4bK74br
 
  Max-Forwards: 70
 
  From: Bob <sips:[email protected]>;tag=31451098
 
  To: Bill <sips:[email protected]>;tag=8675309
 
  Call-ID: [email protected]
 
  CSeq: 1 NOTIFY
 
 
 
 
 
 
 
 
 
 
 
  Contact: <sips:[email protected]>
 
  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:[email protected]">
 
  <dialog id="94992014524" call-id="[email protected]"
 
      local-tag="3145678" remote-tag="1234567" direction="recipient">
 
    <duration>1</duration>
 
    <local>
 
      <identity display="Bob">sips:[email protected]</identity>
 
      <target>sips:[email protected]</target>
 
    </local>
 
    <remote>
 
      <identity display="Alice">sips:[email protected]
 
                                                      </identity>
 
      <target>sips:[email protected];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:[email protected]>;tag=31451098
 
  To: Bill <sips:[email protected]>;tag=8675309
 
  Call-ID: [email protected]
 
  CSeq: 1 NOTIFY
 
  Contact: <sips:[email protected]>
 
  Content-Length: 0
 
 
 
 
 
  F7 INVITE  Bill -> Alice
 
 
 
  INVITE sips:[email protected];gr SIP/2.0
 
  Via: SIP/2.0/TLS pc.biloxi.example.com:5061
 
;branch=z9hG4bK74HH
 
  Max-Forwards: 70
 
  From: Bill <sips:[email protected]>;tag=8675310
 
  To: Alice <sips:[email protected]>
 
 
 
 
 
 
 
 
 
 
 
  Call-ID: [email protected]
 
  CSeq: 1 INVITE
 
  Require: replaces
 
  Replaces: [email protected]
 
;from-tag=314578;to-tag=1234567;early-only
 
  Contact: <sips:[email protected]>
 
  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:[email protected]>;tag=8675310
 
  To: Alice <sips:[email protected]>;tag=131256
 
  Call-ID: [email protected]
 
  CSeq: 1 INVITE
 
  Contact: <sips:[email protected];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. */
 
 
 
 
 
 
 
 
 
 
 
  F9 CANCEL Alice -> Bob
 
 
 
  CANCEL sips:[email protected] SIP/2.0
 
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
;branch=z9hG4bK74bf9
 
  Max-Forwards: 70
 
  From: Alice <sips:[email protected]>;tag=1234567
 
  To: Bob <sips:[email protected]>
 
  Call-ID: [email protected]
 
  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:[email protected]>;tag=1234567
 
  To: Bob <sips:[email protected]>;tag=3145678
 
  Call-ID: [email protected]
 
  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:[email protected]>;tag=1234567
 
  To: Bob <sips:[email protected]>;tag=3145678
 
  Call-ID: [email protected]
 
  CSeq: 1 INVITE
 
  Content-Length: 0
 
 
 
 
 
  F12 ACK Alice -> Bob
 
 
 
  ACK sips:[email protected] SIP/2.0
 
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
;branch=z9hG4bK83749.1
 
  Max-Forwards: 70
 
  From: Alice <sips:[email protected]>;tag=1234567
 
  To: Bob <sips:[email protected]>;tag=3145678
 
 
 
 
 
 
 
 
 
 
 
 
 
  Call-ID: [email protected]
 
  CSeq: 1 ACK
 
  Content-Length: 0
 
 
 
 
 
  F13 ACK  Bill -> Alice
 
 
 
  ACK sips:[email protected];gr SIP/2.0
 
  Via: SIP/2.0/TLS pc.biloxi.example.com:5061
 
;branch=z9hG4bK7435
 
  Max-Forwards: 70
 
  From: Bill <sips:[email protected]>;tag=8675310
 
  To: Alice <sips:[email protected]>;tag=131256
 
  Call-ID: [email protected]
 
  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:[email protected] SIP/2.0
 
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
;branch=z9hG4bK74bf2
 
  Max-Forwards: 70
 
  To: Bill <sips:[email protected]>;tag=8675310
 
  From: Alice <sips:[email protected]>;tag=131256
 
  Call-ID: [email protected]
 
  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:[email protected]>;tag=8675310
 
  From: Alice <sips:[email protected]>;tag=131256
 
  Call-ID: [email protected]
 
  CSeq:  1 BYE
 
  Content-Length: 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
=== 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  |
 
          |--------------->|
 
          |                |
 
 
 
 
 
 
 
 
 
 
 
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:[email protected] SIP/2.0
 
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
;branch=z9hG4bK74bf9
 
Max-Forwards: 70
 
From: Alice <sips:[email protected]>;tag=1234567
 
To: Bob <sips:[email protected]>
 
 
CSeq: 1 INVITE
 
Contact: <sips:[email protected]>
 
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:[email protected]>;tag=1234567
 
To: Bob <sips:[email protected]>;tag=982039i4
 
 
CSeq: 1 INVITE
 
Content-Length: 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
F3 ACK Alice -> Bob
 
 
 
ACK sips:[email protected] SIP/2.0
 
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
;branch=z9hG4bK74bf9
 
Max-Forwards: 70
 
From: Alice <sips:[email protected]>;tag=1234567
 
To: Bob <sips:[email protected]>;tag=982039i4
 
 
CSeq: 1 ACK
 
Content-Length: 0
 
 
 
 
 
F4 SUBSCRIBE Alice -> Bob
 
 
 
SUBSCRIBE sips:[email protected] SIP/2.0
 
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
;branch=z9hG4bK74b8G
 
Max-Forwards: 70
 
From: Alice <sips:[email protected]>;tag=837348234
 
To: Bob <sips:[email protected]>
 
 
CSeq: 1 SUBSCRIBE
 
Contact: sips:[email protected]
 
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:[email protected]>;tag=837348234
 
To: Bob <sips:[email protected]>;tag=341123
 
 
Expires: 60
 
CSeq: 1 SUBSCRIBE
 
Contact: sips:[email protected]
 
Content-Length: 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
F6 NOTIFY Bob -> Alice
 
 
 
NOTIFY sips:[email protected] SIP/2.0
 
Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
;branch=z9hG4bK74bn2
 
Max-Forwards: 70
 
From: Bob <sips:[email protected]>;tag=341123
 
To: Alice <sips:[email protected]>;tag=837348234
 
 
CSeq: 1 NOTIFY
 
Contact: <sips:[email protected]>
 
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:[email protected]">
 
  <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:[email protected]>;tag=341123
 
To: Alice <sips:[email protected]>;tag=837348234
 
 
CSeq: 1 NOTIFY
 
Content-Length: 0
 
 
 
/* Bob is now available. */
 
 
 
 
 
F8 NOTIFY Bob -> Alice
 
 
 
NOTIFY sips:[email protected] SIP/2.0
 
Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
;branch=z9hG4bK74bVi
 
Max-Forwards: 70
 
From: Bob <sips:[email protected]>;tag=341123
 
 
 
 
 
 
 
 
 
 
 
To: Alice <sips:[email protected]>;tag=837348234
 
 
CSeq: 2 NOTIFY
 
Event: dialog
 
Subscription-State: active;expires=27
 
Contact: <sips:[email protected]>
 
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:[email protected]">
 
  <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:[email protected]>;tag=341123
 
To: Alice <sips:[email protected]>;tag=837348234
 
 
CSeq: 2 NOTIFY
 
Content-Length: 0
 
 
 
 
 
F10 INVITE Alice -> Bob
 
 
 
INVITE sips:[email protected] SIP/2.0
 
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
;branch=z9hG4bK74bfq
 
Max-Forwards: 70
 
From: Alice <sips:[email protected]>;tag=f23fkg14k
 
To: Bob <sips:[email protected]>
 
 
CSeq: 1 INVITE
 
Contact: <sips:[email protected]>
 
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
 
Supported: replaces
 
Content-Type: application/sdp
 
Content-Length: ...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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:[email protected]>;tag=f23fkg14k
 
To: Bob <sips:[email protected]>;tag=23431
 
 
CSeq: 1 INVITE
 
Contact: <sips:[email protected]>
 
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:[email protected]>;tag=f23fkg14k
 
To: Bob <sips:[email protected]>;tag=23431
 
 
CSeq: 1 INVITE
 
Contact: <sips:[email protected]>
 
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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
F13 ACK Alice -> Bob
 
 
 
ACK sips:[email protected] SIP/2.0
 
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
;branch=z9hG4bK74bLBJ
 
Max-Forwards: 70
 
From: Alice <sips:[email protected]>;tag=f23fkg14k
 
To: Bob <sips:[email protected]>;tag=23431
 
 
CSeq: 1 ACK
 
Content-Length: 0
 
 
 
 
 
F14 NOTIFY Bob -> Alice
 
 
 
NOTIFY sips:[email protected] SIP/2.0
 
Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
;branch=z9hG4bK4bnd2
 
Max-Forwards: 70
 
From: Bob <sips:[email protected]>;tag=341123
 
To: Alice <sips:[email protected]>;tag=837348234
 
 
CSeq: 3 NOTIFY
 
Contact: <sips:[email protected]>
 
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:[email protected]">
 
  <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:[email protected]>;tag=341123
 
To: Alice <sips:[email protected]>;tag=837348234
 
 
 
 
 
 
 
 
 
 
 
 
 
 
CSeq: 3 NOTIFY
 
Content-Length: 0
 
 
 
/* Alice terminates the subscription. */
 
 
 
 
 
F16 SUBSCRIBE Alice -> Bob
 
 
 
SUBSCRIBE sips:[email protected] SIP/2.0
 
Via: SIP/2.0/TLS client.atlanta.example.com:5061
 
;branch=z9hG4bK474b8
 
Max-Forwards: 70
 
From: Alice <sips:[email protected]>;tag=837348234
 
To: Alice <sips:[email protected]>;tag=837348234
 
 
CSeq: 2 SUBSCRIBE
 
Contact: sips:[email protected]
 
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:[email protected]>;tag=837348234
 
To: Bob <sips:[email protected]>;tag=341123
 
 
Expires: 0
 
CSeq: 2 SUBSCRIBE
 
Contact: sips:[email protected]
 
Content-Length: 0
 
 
 
 
 
F18 NOTIFY Bob -> Alice
 
 
 
NOTIFY sips:[email protected] SIP/2.0
 
Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
;branch=z9hG4bKb5n2j
 
Max-Forwards: 70
 
From: Bob <sips:[email protected]>;tag=341123
 
To: Alice <sips:[email protected]>;tag=837348234
 
 
 
 
 
 
 
 
 
 
 
 
CSeq: 4 NOTIFY
 
Contact: <sips:[email protected]>
 
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:[email protected]">
 
  <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:[email protected]>;tag=341123
 
To: Alice <sips:[email protected]>;tag=837348234
 
 
CSeq: 4 NOTIFY
 
Content-Length: 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
=== 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:[email protected] 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:[email protected]>
 
 
 
 
 
 
 
 
 
 
 
  Call-ID: 1234560183434
 
  CSeq: 1 REFER
 
  Refer-To: <sips:[email protected]>
 
  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:[email protected]>;tag=314159
 
  Call-ID: 1234560183434
 
  Contact: <sips:[email protected]>
 
  CSeq: 1 REFER
 
  Refer-Sub: false
 
  Content-Length: 0
 
 
 
 
 
  F3 INVITE Bob -> Carol
 
 
 
  INVITE sips:[email protected] SIP/2.0
 
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
    ;branch=z9hG4bKnashdK9
 
  Max-Forwards: 70
 
  From: Bob <sips:[email protected]>;tag=8675309
 
  To: Carol <sips:[email protected]>
 
  Call-ID: [email protected]
 
  CSeq: 1 INVITE
 
  Contact: <sips:[email protected]>
 
  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
 
 
 
 
 
 
 
 
 
 
 
 
 
  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:[email protected]>;tag=8675309
 
  To: Carol <sips:[email protected]>;tag=928287
 
  Call-ID: [email protected]
 
  CSeq: 1 INVITE
 
  Contact: <sips:[email protected]>
 
  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:[email protected]>;tag=8675309
 
  To: Carol <sips:[email protected]>;tag=928287
 
  Call-ID: [email protected]
 
  CSeq: 1 INVITE
 
  Contact: <sips:[email protected]>
 
  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:[email protected] SIP/2.0
 
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
 
    ;branch=z9hG4bKnashd43
 
  Max-Forwards: 70
 
  From: Bob <sips:[email protected]>;tag=8675309
 
  To: Carol <sips:[email protected]>;tag=928287
 
 
 
 
 
 
 
 
 
 
 
 
 
  Call-ID: [email protected]
 
  CSeq: 1 ACK
 
  Content-Length: 0
 
 
 
  /* Bob and Carol now have established a session. */
 
 
 
== 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.
 
 
 
== 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.
 
Burger, Jeroen Bemmel, Miguel Garcia, and Dale Worley.
  
Line 8,729: Line 7,288:
 
assistance and review of this call flows document: Joel Repiquet, Aki
 
assistance and review of this call flows document: Joel Repiquet, Aki
 
Neimi, Rohan Mahy, Jonathan Rosenberg, Hemant Agrawal, Henry
 
Neimi, Rohan Mahy, Jonathan Rosenberg, Hemant Agrawal, Henry
Sinnreich, Dean Willis, David Devanatham, Joe Pizzimenti, Matt
+
Sinnreich, Dean Willis, David Devanatham, Joe Pizzimenti, Matt
Cannon, John Hearty, the whole MCI WorldCom IPOP Design team, Scott
+
Cannon, John Hearty, the whole MCI WorldCom IPOP Design team, Scott
 +
 
 +
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.
 +
 
 +
== References ==
 +
 
 +
=== Normative References ===
  
 +
[[RFC3261]]    Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
 +
            A., Peterson, J., Sparks, R., Handley, M., and E.
 +
            Schooler, "SIP: Session Initiation Protocol", [[RFC3261|RFC 3261]],
 +
            June 2002.
  
 +
[[RFC3264]]    Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
 +
            with Session Description Protocol (SDP)", [[RFC3264|RFC 3264]],
 +
            June 2002.
  
 +
[[RFC3265]]    Roach, A., "Session Initiation Protocol (SIP)-Specific
 +
            Event Notification", [[RFC3265|RFC 3265]], June 2002.
  
 +
[[RFC3428]]    Campbell, B., Rosenberg, J., Schulzrinne, H., Huitema,
 +
            C., and D. Gurle, "Session Initiation Protocol (SIP)
 +
            Extension for Instant Messaging", [[RFC3428|RFC 3428]],
 +
            December 2002.
  
 +
[[RFC3515]]    Sparks, R., "The Session Initiation Protocol (SIP) Refer
 +
            Method", [[RFC3515|RFC 3515]], April 2003.
  
 +
[[RFC3840]]    Rosenberg, J., Schulzrinne, H., and P. Kyzivat,
 +
            "Indicating User Agent Capabilities in the Session
 +
            Initiation Protocol (SIP)", [[RFC3840|RFC 3840]], August 2004.
  
 +
[[RFC3891]]    Mahy, R., Biggs, B., and R. Dean, "The Session
 +
            Initiation Protocol (SIP) "Replaces" Header", [[RFC3891|RFC 3891]],
 +
            September 2004.
  
Orton, Greg Osterhout, Pat Sollee, Doug Weisenberg, Danny Mistry,
+
[[RFC3911]]    Mahy, R. and D. Petrie, "The Session Initiation Protocol
Steve McKinnon, and Denise Ingram, Denise Caballero, Tom Redman, Ilya
+
            (SIP) "Join" Header", [[RFC3911|RFC 3911]], October 2004.
Slain, Pat Sollee, John Truetken, and others from MCI WorldCom, 3Com,
 
Cisco, Lucent, and Nortel.
 
  
== References ==
+
[[RFC4235]]    Rosenberg, J., Schulzrinne, H., and R. Mahy, "An INVITE-
 +
            Initiated Dialog Event Package for the Session
 +
            Initiation Protocol (SIP)", [[RFC4235|RFC 4235]], November 2005.
  
=== Normative References ===
+
[[RFC4488]]    Levin, O., "Suppression of Session Initiation Protocol
 +
            (SIP) REFER Method Implicit Subscription", [[RFC4488|RFC 4488]],
 +
            May 2006.
  
[RFC3261]    Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,             A., Peterson, J., Sparks, R., Handley, M., and E.             Schooler, "SIP: Session Initiation Protocol", [[RFC3261|RFC 3261]],            June 2002.
+
[[RFC4579]]    Johnston, A. and O. Levin, "Session Initiation Protocol
[RFC3264]    Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model            with Session Description Protocol (SDP)", [[RFC3264|RFC 3264]],            June 2002.
+
            (SIP) Call Control - Conferencing for User Agents",
[RFC3265]    Roach, A., "Session Initiation Protocol (SIP)-Specific            Event Notification", [[RFC3265|RFC 3265]], June 2002.
+
            [[BCP119|BCP 119]], [[RFC4579|RFC 4579]], August 2006.
[RFC3428]    Campbell, B., Rosenberg, J., Schulzrinne, H., Huitema,            C., and D. Gurle, "Session Initiation Protocol (SIP)            Extension for Instant Messaging", [[RFC3428|RFC 3428]],            December 2002.
 
[RFC3515]    Sparks, R., "The Session Initiation Protocol (SIP) Refer            Method", [[RFC3515|RFC 3515]], April 2003.
 
[RFC3840]   Rosenberg, J., Schulzrinne, H., and P. Kyzivat,            "Indicating User Agent Capabilities in the Session            Initiation Protocol (SIP)", [[RFC3840|RFC 3840]], August 2004.
 
[RFC3891]    Mahy, R., Biggs, B., and R. Dean, "The Session            Initiation Protocol (SIP) "Replaces" Header", [[RFC3891|RFC 3891]],            September 2004.
 
[RFC3911]    Mahy, R. and D. Petrie, "The Session Initiation Protocol            (SIP) "Join" Header", [[RFC3911|RFC 3911]], October 2004.
 
[RFC4235]    Rosenberg, J., Schulzrinne, H., and R. Mahy, "An INVITE-            Initiated Dialog Event Package for the Session            Initiation Protocol (SIP)", [[RFC4235|RFC 4235]], November 2005.
 
[RFC4488]    Levin, O., "Suppression of Session Initiation Protocol            (SIP) REFER Method Implicit Subscription", [[RFC4488|RFC 4488]],            May 2006.
 
  
 
 
 
 
[RFC4579]    Johnston, A. and O. Levin, "Session Initiation Protocol            (SIP) Call Control - Conferencing for User Agents",            [[BCP119|BCP 119]], [[RFC4579|RFC 4579]], August 2006.
 
 
=== Informative References ===
 
=== 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.
+
[FRAMEWORK]  Mahy, R., Sparks, R., Rosenberg, J., Petrie, D., and A.
[GRUU]      Rosenberg, J., "Obtaining and Using Globally Routable            User Agent (UA) URIs (GRUU) in the Session Initiation            Protocol (SIP)", Work in Progress, October 2007.
+
            Johnston, "A Call Control and Multi-party usage
[RFC3665]    Johnston, A., Donovan, S., Sparks, R., Cunningham, C.,            and K. Summers, "Session Initiation Protocol (SIP) Basic            Call Flow Examples", [[BCP75|BCP 75]], [[RFC3665|RFC 3665]], December 2003.
+
            framework for the Session Initiation Protocol (SIP)",
[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)", [[BCP85|BCP 85]], [[RFC3725|RFC 3725]], April 2004.
+
            Work in Progress, April 2008.
[RFC4317]    Johnston, A. and R. Sparks, "Session Description            Protocol (SDP) Offer/Answer Examples", [[RFC4317|RFC 4317]],            December 2005.
 
[RFC4475]    Sparks, R., Hawrylyshen, A., Johnston, A., Rosenberg,            J., and H. Schulzrinne, "Session Initiation Protocol            (SIP) Torture Test Messages", [[RFC4475|RFC 4475]], May 2006.
 
[TRANSFER]  Sparks, R. and A. Johnston, "Session Initiation Protocol            Call Control - Transfer", Work in Progress,            September 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", [[BCP75|BCP 75]], [[RFC3665|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)", [[BCP85|BCP 85]], [[RFC3725|RFC 3725]], April 2004.
  
 +
[[RFC4317]]    Johnston, A. and R. Sparks, "Session Description
 +
            Protocol (SDP) Offer/Answer Examples", [[RFC4317|RFC 4317]],
 +
            December 2005.
  
 +
[[RFC4475]]    Sparks, R., Hawrylyshen, A., Johnston, A., Rosenberg,
 +
            J., and H. Schulzrinne, "Session Initiation Protocol
 +
            (SIP) Torture Test Messages", [[RFC4475|RFC 4475]], May 2006.
  
 +
[TRANSFER]  Sparks, R. and A. Johnston, "Session Initiation Protocol
 +
            Call Control - Transfer", Work in Progress,
 +
            September 2008.
  
 
Authors' Addresses
 
Authors' Addresses
Line 8,797: Line 7,382:
  
  
 
  
 
Robert J. Sparks
 
Robert J. Sparks
Line 8,803: Line 7,387:
  
  
 
  
 
Chris Cunningham
 
Chris Cunningham
Line 8,809: Line 7,392:
  
  
 
  
 
Steve Donovan
 
Steve Donovan
Line 8,815: Line 7,397:
  
  
 
  
 
Kevin Summers
 
Kevin Summers
Line 8,822: Line 7,403:
  
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  
 
Full Copyright Statement
 
Full Copyright Statement
Line 8,882: Line 7,443:
 
this standard.  Please address the information to the IETF at
 
this standard.  Please address the information to the IETF at
  
 
 
 
 
 
 
 
 
 
 
 
  
 
[[Category:Best Current Practice]]
 
[[Category:Best Current Practice]]

Latest revision as of 17:06, 11 October 2020

Network Working Group A. Johnston, Ed. Request for Comments: 5359 Avaya BCP: 144 R. Sparks Category: Best Current Practice Tekelec

                                                       C. Cunningham
                                                          S. Donovan
                                                       Cisco Systems
                                                          K. Summers
                                                               Sonus
                                                        October 2008
          Session Initiation Protocol Service Examples

Status of This Memo

This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements. Distribution of this memo is unlimited.

Abstract

This document gives examples of Session Initiation Protocol (SIP) services. This covers most features offered in so-called IP Centrex offerings from local exchange carriers and PBX (Private Branch Exchange) features. Most of the services shown in this document are implemented in the SIP user agents, although some require the assistance of a SIP proxy. Some require some extensions to SIP including the REFER, SUBSCRIBE, and NOTIFY methods and the Replaces and Join header fields. These features are not intended to be an exhaustive set, but rather show implementations of common features likely to be implemented on SIP IP telephones in a business environment.

Overview

This document provides example call flows detailing a SIP implementation of the following traditional telephony services:

       Call Hold                        3-Way Conference
       Consultation Hold                Find-Me
       Music on Hold                    Incoming Call Screening
       Unattended Transfer              Outgoing Call Screening
       Attended Transfer                Call Park
       Instant Messaging Transfer       Call Pickup
       Unconditional Call Forwarding    Automatic Redial
       Call Forwarding on Busy          Click to Dial
       Call Forwarding on No Answer

Note that the Single Line Extension call flow has been removed from this document and will be covered in a separate document.

The call flows shown in this document were developed in the design of a SIP IP communications network. They represent an example set of so-called IP Centrex services or PBX services.

It is the hope of the authors that this document will be useful for SIP implementers, designers, and protocol researchers alike and will help further the goal of a standard implementation of RFC 3261 RFC3261 and some of its extensions.

These flows represent carefully checked and working group reviewed scenarios of SIP service examples as a companion to the specifications.

These call flows are based on the current version 2.0 of SIP in RFC 3261 RFC3261 with Session Description Protocol (SDP) usage described in RFC 3264 RFC3264. Other RFCs also form part of the SIP standard and are used and referenced in these call flows.

The SIP specification and the other referenced documents are definitive as far as protocol issues are concerned. Also, these flows do not represent the only way to implement these services -- other approaches such as 3pcc (Third Party Call Control) RFC3725 or Back-to-Back User Agents (B2BUAs) can be used. This specification does not preclude these or other approaches for implementing such services. The peer-to-peer design and principles of these service examples are described in the Multiparty Framework document [FRAMEWORK].

These flows assume the functionality described in the SIP Call Flow Examples document RFC3665, which explores basic SIP behavior. Some of the scenarios described herein make use of the SIP method extension REFER RFC3515, the SIP header extension Replaces RFC3891, and the SIP header extension Join RFC3911. The SIP Events document RFC3265 describes the use of SUBSCRIBE and NOTIFY, while the SIP Dialog Event Package document RFC4235 describes the dialog event package. Some examples make use of the GRUU (Globally Routable User Agent URI) extension [GRUU].

These flows were prepared assuming a network of proxies, registrars, and other SIP servers. The use of Secure SIP URIs (sips) is shown throughout this document, implying TLS transport on each hop with assumed certificate validation. However, other security approaches can be used. The use of Digest authentication is shown in some examples.

The emphasis in these call flows is the SIP signaling exchange. As a result, only very simple SDP offer/answer exchanges are shown with audio media. These flows apply equally well for other media and multimedia sessions. For more advanced examples of SDP offer/answer exchanges, refer to RFC4317.

Each call flow is presented with a textual description of the scenario, a message flow diagram showing the messages exchanged between separate network elements, and the detailed contents of each message shown in the diagram.

For simplicity in reading and editing the document, there are a number of differences between some of the examples and actual SIP messages. For example, the HTTP Digest responses are not actual MD5 encodings. Call-IDs are often repeated, and CSeq counts often begin at 1. Header fields are usually shown in the same order. Usually only the minimum required header field set is shown. Also, message body content lengths are often not calculated, but instead shown as "..." where the actual octet count would be.

Legend for Message Flows

Dashed lines (---) represent control messages that are mandatory to the call scenario. These control messages can be SIP signaling.

Double dashed lines (===) represent media paths between network elements.

Messages with parentheses around the name represent optional control messages.

Messages are identified in the figures as F1, F2, etc. This references the message details in the table that follows the figure.

Lines longer than 72 characters are handled using the <allOneLine> convention defined in Section 2.1 of RFC 4475 RFC4475.

Comments in the message details are shown in the following form:

/* Comments. */

Service Examples

Call Hold

        Alice           Proxy            Bob
         |    INVITE F1   |              |
         |--------------->|              |
         |                |   INVITE F2  |
         |(100 Trying) F3 |------------->|
         |<---------------|              |
         |                |180 Ringing F4|
         | 180 Ringing F5 |<-------------|
         |<---------------|              |
         |                |  200 OK F6   |
         |    200 OK F7   |<-------------|
         |<---------------|              |
         |     ACK F8     |              |
         |--------------->|    ACK F9    |
         |                |------------->|
         |    Both way RTP Established   |
         |<=============================>|
         |                |INVITE(hold) F10
         |INVITE(hold) F11|<-------------|
         |<---------------|              |
         |    200 OK F12  |              |
         |--------------->|   200 OK F13 |
         |                |------------->|
         |                |     ACK F14  |
         |     ACK F15    |<-------------|
         |<---------------|              |
         |           No RTP Sent!        |
         |                |  INVITE F16  |
         |   INVITE F17   |<-------------|
         |<---------------|              |
         |   200 OK F18   |              |
         |--------------->|  200 OK F19  |
         |                |------------->|
         |                |    ACK F20   |
         |     ACK F21    |<-------------|
         |<---------------|              |
         |    Both way RTP Established   |
         |<=============================>|
         |     BYE F22    |              |
         |--------------->|   BYE F23    |
         |                |------------->|
         |                |   200 OK F24 |
         |    200 OK F25  |<-------------|
         |<---------------|              |

In this scenario, Alice calls Bob, then Bob places the call on hold. Bob then takes the call off hold, then Alice hangs up the call. Note that hold is unidirectional in nature. However, a UA that places the other party on hold will generally also stop sending media, resulting in no media exchange between the UAs. Older UAs may set the connection address to 0.0.0.0 when initiating hold. However, this behavior has been deprecated in favor or using the a=inactive SDP attribute if no media is sent, or the a=sendonly attribute if media is still sent.

Also note the use of the rendering feature tag defined in RFC 4235 RFC4235 used in F10 and F11 to indicate that Bob's UA is no longer rendering media to Bob, i.e., that Bob has placed the call on hold.

Message Details

  F1 INVITE Alice -> Proxy 1
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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 INVITE Proxy 1 -> Bob
  INVITE sips:[email protected] 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  F3 (100 Trying) Proxy 1 -> 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Content-Length: 0
  F4 180 Ringing Bob -> Proxy 1
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content Length:0
  F5 180 Ringing Proxy 1 -> 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content Length: 0
  F6 200 OK Bob -> Proxy 1
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  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
  F7 200 OK Proxy 1 -> 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  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
  F8 ACK Alice -> Proxy 1
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf92
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  F9 ACK Proxy 1 -> Bob
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK837492.1
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf92
   ;received=192.0.2.103
  Max-Forwards: 69
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  /* Bob places Alice on hold.  Note that the version is
     incremented in the o= field of the SDP. */
  F10 INVITE Bob -> Proxy 1
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>;+sip.rendering="no"
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844528 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
  a=sendonly
  F11 INVITE Proxy 1 -> Alice
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.1
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  Max-Forwards: 69
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>;+sip.rendering="no"
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844528 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
  a=sendonly
  /* Alice replies to hold. */
  F12 200 OK Alice -> Proxy 1
  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.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  F13 200 OK Proxy 1 -> Bob
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  F14 ACK Bob -> Proxy 1
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds72
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  F15 ACK Proxy 1 -> Alice
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.1
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds72
   ;received=192.0.2.105
  Max-Forwards: 69
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  /* Bob takes the call off hold. */
  F16 INVITE Bob -> Proxy 1
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds73
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844529 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
  F17 INVITE Proxy 1 -> Alice
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK837493.1
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds73
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  Max-Forwards: 69
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844529 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
  F18 200 OK Alice -> Proxy 1
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK837493.1
   ;received=192.0.2.54
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds73
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=alice 2890844526 2890844528 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
  F19 200 OK Proxy 1 -> Bob
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds73
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=alice 2890844526 2890844528 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
  F20 ACK Bob -> Proxy 1
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds74
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  F21 ACK Proxy 1 -> Alice
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK837494.1
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds74
   ;received=192.0.2.105
  Max-Forwards: 69
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  /* RTP Media stream re-established.  Alice disconnects. */
  F22 BYE Alice -> Proxy 1
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf97
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F23 BYE Proxy 1 -> Bob
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK837497.1
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf97
   ;received=192.0.2.103
  Max-Forwards: 69
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F24 200 OK Bob -> Proxy 1
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK837497.1
   ;received=192.0.2.54
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf97
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F25 200 OK Proxy 1 -> Alice
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf97
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0

Consultation Hold

       Alice            Proxy           Bob                Carol
         |                |              |                   |
         |    INVITE F1   |              |                   |
         |--------------->|   INVITE F2  |                   |
         |                |------------->|                   |
         |(100 Trying) F3 |              |                   |
         |<---------------|180 Ringing F4|                   |
         |                |<-------------|                   |
         | 180 Ringing F5 |              |                   |
         |<---------------|  200 OK F6   |                   |
         |                |<-------------|                   |
         |    200 OK F7   |              |                   |
         |<---------------|              |                   |
         |     ACK F8     |              |                   |
         |--------------->|     ACK F9   |                   |
         |                |------------->|                   |
         |     Both way RTP Established  |                   |
         |<=============================>|                   |
         |                |INVITE(hold) F10                  |
         |INVITE(hold) F11|<-------------|                   |
         |<---------------|              |                   |
         |    200 OK F12  |              |                   |
         |--------------->|   200 OK F13 |                   |
         |                |------------->|                   |
         |                |     ACK F14  |                   |
         |                |<-------------|                   |
         |    ACK F15     |              |                   |
         |<---------------|              |                   |
         |         No RTP Sent!          |                   |
         |                |   INVITE F16 |                   |
         |                |<-------------|                   |
         |                |              |    INVITE F17     |
         |                |--------------------------------->|
         |                |(100 Trying) F18                  |
         |                |------------->|                   |
         |                |              | 180 Ringing F19   |
         |                |<---------------------------------|
         |                | 180 Ringing F20                  |
         |                |------------->|                   |
         |                |              |    200 OK F21     |
         |                |<---------------------------------|
         |                |   200 OK F22 |                   |
         |                |------------->|                   |
         |                |    ACK F23   |                   |
         |                |<-------------|                   |
         |                |              |      ACK F24      |
         |                |--------------------------------->|
         |                |         Both way RTP Established |
         |                |              |<=================>|
         |                |   BYE F25    |                   |
         |                |<-------------|                   |
         |                |              |       BYE F26     |
         |                |--------------------------------->|
         |                |              |    200 OK F27     |
         |                |<---------------------------------|
         |                |   200 OK F28 |                   |
         |                |------------->|                   |
         |                |   INVITE F29 |                   |
         |    INVITE F30  |<-------------|                   |
         |<---------------|              |                   |
         |    200 OK F31  |              |                   |
         |--------------->|   200 OK F32 |                   |
         |                |------------->|                   |
         |                |     ACK F33  |                   |
         |                |<-------------|                   |
         |    ACK F34     |              |                   |
         |<---------------|              |                   |
         |     Both way RTP Established  |                   |
         |<=============================>|                   |
         |    BYE F35     |              |                   |
         |--------------->|    BYE F36   |                   |
         |                |------------->|                   |
         |                |   200 OK F37 |                   |
         |                |<-------------|                   |
         |  200 OK F38    |              |                   |
         |<---------------|              |                   |
         |                |              |                   |

In this scenario, Alice calls Bob. Bob places call on hold. Bob calls Carol. Bob then disconnects with Carol, then takes the call with Alice off hold. The call ends when Alice hangs up.

Also note the use of the rendering feature tag defined in RFC 4235 RFC4235 used in F10 to indicate that Bob's UA is no longer rendering media to Bob, i.e., that Bob has placed the call on hold.

Message Details

  F1 INVITE Alice -> Proxy 1
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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 INVITE Proxy 1 -> Bob
  INVITE sips:[email protected] 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  F3 (100 Trying) Proxy 1 -> 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Content-Length: 0
  F4 180 Ringing Bob -> Proxy 1
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content Length:0
  F5 180 Ringing Proxy 1 -> 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content Length: 0
  F6 200 OK Bob -> Proxy 1
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  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
  F7 200 OK Proxy 1 -> 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  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
  F8 ACK Alice -> Proxy 1
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf45
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  F9 ACK Proxy 1 -> Bob
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK837494.1
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf45
   ;received=192.0.2.103
  Max-Forwards: 69
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  /* Bob places Alice on hold. */
  F10 INVITE Bob -> Proxy 1
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>;+sip.rendering="no"
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844528 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
  a=sendonly
  F11 INVITE Proxy 1 -> Alice
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK837497.1
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  Max-Forwards: 69
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>;+sip.rendering="no"
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844528 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
  a=sendonly
  F12 200 OK Alice -> Proxy 1
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK837497.1
   ;received=192.0.2.54
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  F13 200 OK Proxy 1 -> Bob
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  F14 ACK Bob -> Proxy 1
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashdsg
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  F15 ACK Proxy 1 -> Alice
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK8374.1
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashdsg
   ;received=192.0.2.105
  Max-Forwards: 69
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  F16 INVITE Bob -> Proxy 1
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds22
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844834 2890844834 IN IP4 client.biloxi.example.com
  s=
  c=IN IP4 client.biloxi.example.com
  t=0 0
  m=audio 50170 RTP/AVP 0
  a=rtpmap:0 PCMU/8000
  F17 INVITE Proxy 1 -> Carol
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749a.1
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds22
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  Max-Forwards: 69
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844834 2890844834 IN IP4 client.biloxi.example.com
  s=
  c=IN IP4 client.biloxi.example.com
  t=0 0
  m=audio 50170 RTP/AVP 0
  a=rtpmap:0 PCMU/8000
  F18 (100 Trying) Proxy 1 -> Bob
  SIP/2.0 100 Trying
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds22
   ;received=192.0.2.105
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Content-Length: 0
  F19 180 Ringing Carol -> Proxy 1
  SIP/2.0 180 Ringing
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749a.1
   ;received=192.0.2.54
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds22
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=456654
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content Length:0
  F20 180 Ringing Proxy 1 -> Bob
  SIP/2.0 180 Ringing
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds22
   ;received=client.chicago.example.com
  Record-Route: <sips:ss1.example.com;lr>
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=456654
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content Length: 0
  F21 200 OK Carol -> Proxy 1
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749a.1
   ;received=192.0.2.54
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds22
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=456654
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  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
  F22 200 OK Proxy 1 -> Bob
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds22
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=456654
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  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
  F23 ACK Bob -> Proxy 1
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds24
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=456654
  Call-ID: [email protected]
  CSeq: 1 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  F24 ACK Proxy 1 -> Carol
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749b.1
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds24
   ;received=192.0.2.105
  Max-Forwards: 69
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=456654
  Call-ID: [email protected]
  CSeq: 1 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  F25 BYE Bob -> Proxy 1
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7j
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=456654
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F26 BYE Proxy 1 -> Carol
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749k.1
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7j
   ;received=192.0.2.105
  Max-Forwards: 69
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=456654
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F27 200 OK Carol -> Proxy 1
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749k.1
   ;received=192.0.2.54
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7j
   ;received=192.0.2.105
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=456654
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F28 200 OK Proxy 1 -> Bob
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7j
   ;received=192.0.2.105
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=456654
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  /* Bob takes the call off hold. */
  F29 INVITE Bob -> Proxy 1
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7b
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2 INVITE
  Contact: <sips:[email protected]>
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844529 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
  F30 INVITE Proxy 1 -> Alice
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749q.1
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7b
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  Max-Forwards: 69
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844529 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
  F31 200 OK Alice -> Proxy 1
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749q.1
   ;received=192.0.2.54
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7b
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=alice 2890844526 2890844528 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
  F32 200 OK Proxy 1 -> Bob
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7b
   ;received=192.0.2.105
  Record-Route: <sips:ss1.example.com;lr>
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=alice 2890844526 2890844528 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
  F33 ACK Bob -> Proxy 1
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7d7
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  F34 ACK Proxy 1 -> Alice
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK8374.1
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7d7
   ;received=192.0.2.105
  Max-Forwards: 69
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  F35 BYE Alice -> Proxy 1
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf10
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F36 BYE Proxy 1 -> Bob
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK8379.1
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf10
   ;received=192.0.2.103
  Max-Forwards: 69
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F37 200 OK Bob -> Proxy 1
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK8379.1
   ;received=192.0.2.54
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf10
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F38 200 OK Proxy 1 -> Alice
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf10
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0

Music on Hold

       Alice             Bob       Music Server
         |                |              |
         |    INVITE F1   |              |
         |--------------->|              |
         | 180 Ringing F2 |              |
         |<---------------|              |
         |    200 OK F3   |              |
         |<---------------|              |
         |     ACK F4     |              |
         |--------------->|              |
         |       RTP      |              |
         |<==============>|              |
         |                |              |
         |   Bob places Alice on hold    |
         |                |              |
         | INVITE (hold) F5              |
         |<---------------|              |
         |    200 OK F6   |              |
         |--------------->|              |
         |     ACK F7     |              |
         |<---------------|              |
         |    no RTP      |              |
         |                |              |
         |  Bob initiates music on hold  |
         |                |              |
         |                |   REFER Refer-To: A F8
         |                |------------->|
         |                |    202 F9    |
         |                |<-------------|
         |                |   NOTIFY F10 |
         |                |<-------------|
         |                |    200 F11   |
         |                |------------->|
         |  INVITE F12 Replaces: B       |
         |<------------------------------|
         |          200 OK F13           |
         |------------------------------>|
         |           ACK F14             |
         |<------------------------------|
         |           RTP Music           |
         |<==============================|
         |     BYE F15    |              |
         |--------------->|  NOTIFY F17  |
         |  200 OK F16    |<-------------|
         |<---------------|  200 OK F18  |
         |                |------------->|
         |                |              |
         | The music on hold is complete |
         |                |              |
         |    Bob takes Alice off hold   |
         |                |              |
         |  INVITE Replaces: M F19       |
         |<---------------|              |
         |    200 OK F20  |              |
         |--------------->|              |
         |     ACK F21    |              |
         |<---------------|              |
         |       RTP      |              |
         |<==============>|              |
         |            BYE F22            |
         |------------------------------>|
         |          200 OK F23           |
         |<------------------------------|

In this flow, Bob places Alice on hold with music. This is performed by Bob sending a REFER to a Music Server that sends an INVITE with Replaces to Alice. The Music Server then sends RTP music to Alice. Bob picks the call up from hold by sending an INVITE with Replaces to Alice.

Note the use of the rendering feature tag defined in RFC 4235 RFC4235 used in F5 to indicate that Bob's UA is no longer rendering media to Bob, i.e., that Bob has placed the call on hold. Feature tags are also used in F12 with the automaton (defined in RFC 3840 RFC3840) and byeless feature tags (defined in RFC 4235 RFC4235) to describe the capabilities of the Music Server.

Should Alice not wish to receive music on hold, her UA could refuse F12 and she will remain on hold with Bob, but in silence.

Message Details

 F1 INVITE Alice -> Bob
 INVITE sips:[email protected] SIP/2.0
 Via: SIP/2.0/TLS client.atlanta.example.com:5061
  ;branch=z9hG4bK74bf9
 Max-Forwards: 70
 From: Alice <sips:[email protected]>;tag=1234567
 To: Bob <sips:[email protected]>
 Call-ID: [email protected]
 CSeq: 1 INVITE
 Contact: <sips:[email protected];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:[email protected]>;tag=1234567
 To: Bob <sips:[email protected]>;tag=23431
 Call-ID: [email protected]
 CSeq: 1 INVITE
 Contact: <sips:[email protected]>
 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:[email protected]>;tag=1234567
 To: Bob <sips:[email protected]>;tag=23431
 Call-ID: [email protected]
 CSeq: 1 INVITE
 Contact: <sips:[email protected]>
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 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:[email protected] SIP/2.0
 Via: SIP/2.0/TLS client.atlanta.example.com:5061
  ;branch=z9hG4bK74bfd
 Max-Forwards: 70
 From: Alice <sips:[email protected]>;tag=1234567
 To: Bob <sips:[email protected]>;tag=23431
 Call-ID: [email protected]
 CSeq: 1 ACK
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 Supported: replaces
 Content-Length: 0
 /* Bob places Alice on hold. */
 F5 INVITE Bob -> Alice
 INVITE sips:[email protected];gr SIP/2.0
 Via: SIP/2.0/TLS client.biloxi.example.com:5061
  ;branch=z9hG4bK874bk
 To: Alice <sips:[email protected]>;tag=1234567
 From: Bob <sips:[email protected]>;tag=23431
 Call-ID: [email protected]
 CSeq: 712 INVITE
 Contact: <sips:[email protected]>;+sip.rendering="no"
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 Supported: replaces
 Content-Type: application/sdp
 Content-Length: ...
 v=0
 o=bob 2890844527 2890844528 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
 a=sendonly
 F6 200 OK Alice -> Bob
 SIP/2.0 200 OK
 Via: SIP/2.0/TLS client.biloxi.example.com:5061
  ;branch=z9hG4bK874bk
  ;received=192.0.2.105
 To: Alice <sips:[email protected]>;tag=1234567
 From: Bob <sips:[email protected]>;tag=23431
 Call-ID: [email protected]
 CSeq: 712 INVITE
 Contact: <sips:[email protected];gr>
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 Supported: replaces, gruu
 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:[email protected];gr SIP/2.0
 Via: SIP/2.0/TLS client.biloxi.example.com:5061
  ;branch=z9hG4bKq874b
 To: Alice <sips:[email protected]>;tag=1234567
 From: Bob <sips:[email protected]>;tag=23431
 Call-ID: [email protected]
 CSeq: 712 ACK
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
 Supported: replaces
 Content-Length: 0
 /* Bob REFERs Music Server to establish session with Alice
    which replaces the established session between Alice and Bob. */
 F8 REFER Bob -> Music Server
 REFER sips:[email protected] SIP/2.0
 Via: SIP/2.0/TLS client.biloxi.example.com:5061
  ;branch=z9hG4bKnashds9
 Max-Forwards: 70
 From: Bob <sips:[email protected]>;tag=02134
 To: Music Server <sips:[email protected]>
 Call-ID: [email protected]
 CSeq: 1 REFER

<allOneLine>

 Refer-To: <sips:[email protected];gr?Replaces=
 12345600%40atlanta.example.com%3Bfrom-tag%3D23431
 %3Bto-tag%3D1234567&Require=replaces>

</allOneLine>

 Referred-By: <sips:[email protected]>
 Contact: <sips:[email protected]>
 Content-Length: 0
 F9 202 Accepted Music Server -> Bob
 SIP/2.0 202 Accepted
 Via: SIP/2.0/TLS client.biloxi.example.com:5061
  ;branch=z9hG4bKnashds9
  ;received=192.0.2.105
 From: Bob <sips:[email protected]>;tag=02134
 To: Music Server <sips:[email protected]>;tag=56323
 Call-ID: [email protected]
 Contact: <sips:[email protected]>
 CSeq: 1 REFER
 Content-Length: 0
 F10 NOTIFY Music Server -> Bob
 NOTIFY sips:[email protected] SIP/2.0
 Via: SIP/2.0/TLS server.example.com:5061
  ;branch=z9hG4bK74bT6
 To: Bob <sips:[email protected]>;tag=02134
 Max-Forwards: 70
 From: Music Server <sips:[email protected]>;tag=56323
 Call-ID: [email protected]
 CSeq: 1 NOTIFY
 Event: refer
 Subscription-State: active;expires=60
 Contact: <sips:[email protected]>
 Content-Type: message/sipfrag
 Content-Length: ...
 SIP/2.0 100 Trying
 F11 200 OK Bob -> Music Server
 SIP/2.0 200 OK
 Via: SIP/2.0/TLS server.example.com:5061
  ;branch=z9hG4bK74bT6
  ;received=192.0.2.103
 To: Bob <sips:[email protected]>;tag=02134
 From: Music Server <sips:[email protected]>;tag=56323
 Call-ID: [email protected]
 CSeq: 1 NOTIFY
 Content-Length: 0
 /* Music Server places call to Alice to replace session
    between Alice and Bob. */
 F12 INVITE Music Server -> Alice
 INVITE sips:[email protected];gr SIP/2.0
 Via: SIP/2.0/TLS server.example.com:5061
  ;branch=z9hG4bK74rf
 Max-Forwards: 70
 From: <sips:[email protected]>;tag=0111
 To: <sips:[email protected];gr>
 Call-ID: [email protected]
 CSeq: 1 INVITE
 Referred-By: <sips:[email protected]>
 Contact: <sips:[email protected]>;automaton
  ;+sip.byeless;+sip.rendering="no"
 Require: replaces
 Replaces: [email protected]
  ;from-tag=23431;to-tag=1234567
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
 Supported: replaces
 Content-Type: application/sdp
 Content-Length: ...
 v=0
 o=MusicServer 2890844576 2890844576 IN IP4 server.example.com
 s=
 c=IN IP4 server.example.com
 t=0 0
 m=audio 49170 RTP/AVP 0
 a=rtpmap:0 PCMU/8000
 a=sendonly
 F13 200 OK Alice -> Music Server
 SIP/2.0 200 OK
 Via: SIP/2.0/TLS server.example.com:5061
  ;branch=z9hG4bK74rf
  ;received=192.0.2.103
 From: <sips:[email protected]>;tag=0111
 To: <sips:[email protected];gr>;tag=098594
 Call-ID: [email protected]
 CSeq: 1 INVITE
 Contact: <sips:[email protected];gr>
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, 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
 a=recvonly
 F14 ACK Music Server -> Alice
 ACK sips:[email protected];gr SIP/2.0
 Via: SIP/2.0/TLS server.example.com:5061
  ;branch=z9hG4bK7rfF
 Max-Forwards: 70
 From: <sips:[email protected]>;tag=0111
 To: <sips:[email protected];gr>;tag=098594
 Call-ID: [email protected]
 CSeq: 1 ACK
 Content-Length: 0
 F15 BYE Alice -> Bob
 BYE sips:[email protected] SIP/2.0
 Via: SIP/2.0/TLS client.atlanta.example.com:5061
  ;branch=z9hG4bKnashds7
 Max-Forwards: 70
 From: Alice <sips:[email protected]>;tag=1234567
 To: Bob <sips:[email protected]>;tag=23431
 Call-ID: [email protected]
 CSeq: 2 BYE
 Content-Length: 0
 F16 200 OK Bob -> Alice
 SIP/2.0 200 OK
 Via: SIP/2.0/TLS client.atlanta.example.com:5061
  ;branch=z9hG4bKnashds7
  ;received=192.0.2.105
 From: Alice <sips:[email protected]>;tag=1234567
 To: Bob <sips:[email protected]>;tag=23431
 Call-ID: [email protected]
 CSeq: 2 BYE
 Content-Length: 0
 /* Music Server reports success back to Bob by returning
    a 200 OK response.  Bob obtains the dialog identifiers
    from the headers included in the response. */
 F17 NOTIFY Music Server -> Bob
 NOTIFY sips:[email protected] SIP/2.0
 Via: SIP/2.0/TLS server.example.com:5061
  ;branch=z9hG4bK74bf9
 To: Bob <sips:[email protected]>;tag=02134
 Max-Forwards: 70
 From: Music Server <sips:[email protected]>;tag=56323
 Call-ID: [email protected]
 CSeq: 2 NOTIFY
 Event: refer
 Subscription-State: terminated;reason=noresource
 Contact: <sips:[email protected]>
 Content-Type: message/sipfrag
 Content-Length: ...
 SIP/2.0 200 OK
 Via: SIP/2.0/TLS server.example.com:5061
  ;branch=z9hG4bK74rf
  ;received=192.0.2.103
 From: <sips:[email protected]>;tag=0111
 To: <sips:[email protected];gr>;tag=098594
 Call-ID: [email protected]
 CSeq: 1 INVITE
 Contact: <sips:[email protected];gr>
 F18 200 OK Bob -> Music Server
 SIP/2.0 200 OK
 Via: SIP/2.0/TLS server.example.com:5061
  ;branch=z9hG4bK74bf9
  ;received=192.0.2.103
 To: Bob <sips:[email protected]>;tag=02134
 From: Music Server <sips:[email protected]>;tag=56323
 Call-ID: [email protected]
 CSeq: 2 NOTIFY
 Content-Length: 0
 /* Alice is now parked at the Music Server. */
 /* Bob picks up the call by sending an INVITE to Alice, who
    replaces the existing session with the Music Server. */
 F19 INVITE Bob -> Alice
 INVITE sips:[email protected];gr SIP/2.0
 Via: SIP/2.0/TLS client.biloxi.example.com:5061
  ;branch=z9hG4bK74bf9
 From: Bob <sips:[email protected]>;tag=4i323pr
 To: Alice <sips:[email protected];gr>
 Call-ID: uioewrjk2k2were
 CSeq: 42121 INVITE
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
  SUBSCRIBE, NOTIFY
 Replaces: [email protected]
  ;to-tag=098594;from-tag=0111
 Contact: <sips:[email protected]>
 Supported: replaces
 Content-Type: application/sdp
 Content-Length: ...
 v=0
 o=bob 2890844631 2890844631 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=sendrecv
 F20 200 OK Alice -> Bob
 SIP/2.0 200 OK
 Via: SIP/2.0/TLS client.biloxi.example.com:5061
  ;branch=z9hG4bK74bf9
  ;received=192.0.2.105
 From: Bob <sips:[email protected]>;tag=4i323pr
 To: Alice <sips:[email protected];gr>;tag=6654323
 Call-ID: uioewrjk2k2were
 CSeq: 42121 INVITE
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
  SUBSCRIBE, NOTIFY
 Contact: <sips:[email protected]>
 Supported: replaces
 Content-Type: application/sdp
 Content-Length: ...
 v=0
 o=alice 2890844576 2890844576 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=sendrecv
 F21 200 ACK Bob -> Alice
 ACK sips:[email protected] SIP/2.0
 Via: SIP/2.0/TLS client.biloxi.example.com:5061
  ;branch=z9hG4bKj974bf9
 From: Bob <sips:[email protected]>;tag=4i323pr
 To: Alice <sips:[email protected];gr>;tag=6654323
 Call-ID: uioewrjk2k2were
 CSeq: 42121 ACK
 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
  SUBSCRIBE, NOTIFY
 Supported: replaces
 Content-Length: 0
 F22 BYE Alice -> Music Server
 BYE sips:[email protected] SIP/2.0
 Max-Forwards: 70
 Via: SIP/2.0/TLS client.atlanta.example.com:5061
  ;branch=z9hG4bK74rf
 To: <sips:[email protected]>;tag=0111
 From: <sips:[email protected];gr>;tag=098594
 Call-ID: [email protected]
 CSeq: 15 BYE
 Content-Length: 0
 F23 200 OK Music Server -> Alice
 SIP/2.0 200 OK
 Via: SIP/2.0/TLS client.atlanta.example.com:5061
  ;branch=z9hG4bK74rf
  ;received=192.0.2.103
 To: <sips:[email protected]>;tag=0111
 From: <sips:[email protected];gr>;tag=098594
 Call-ID: [email protected]
 CSeq: 15 BYE
 Content-Length: 0
 /* Normal media session between Alice and Bob is resumed. */

Transfer - Unattended

      Alice                 Bob                 Carol
        |      INVITE F1     |                    |
        |<-------------------|                    |
        |   180 Ringing F2   |                    |
        |------------------->|                    |
        |      200 OK F3     |                    |
        |------------------->|                    |
        |        ACK F4      |                    |
        |<-------------------|                    |
        |        RTP         |                    |
        |<==================>|                    |
        |                    |                    |
        |  Alice performs unattended transfer     |
        |                    |                    |
        | REFER Refer-To:C F5|                    |
        |------------------->|                    |
        |  202 Accepted F6   |                    |
        |<-------------------|                    |
        |      NOTIFY F7     |                    |
        |<-------------------|                    |
        |      200 OK F8     |                    |
        |------------------->|                    |
        |       BYE F9       |                    |
        |------------------->|                    |
        |     200 OK F10     |                    |
        |<-------------------|                    |
        |   No RTP Session   | INVITE Referred-By: A F11
        |                    |------------------->|
        |                    |   180 Ringing F12  |
        |                    |<-------------------|
        |                    |     200 OK F13     |
        |                    |<-------------------|
        |                    |       ACK F14      |
        |                    |------------------->|
        |                    |        RTP         |
        |                    |<==================>|
        |      NOTIFY F15    |                    |
        |<-------------------|                    |
        |      200 OK F16    |                    |
        |------------------->|                    |
        |                    |                    |

In this scenario, Bob calls Alice. Alice then transfers Bob to Carol, then Alice disconnects with Bob. Bob establishes the session to Carol then reports the success back to Alice in the NOTIFY in F15. If the transfer fails, Bob can send a new INVITE back to Alice to re- establish the session.

Despite the BYE sent by Alice in F9, the dialog between Alice and Bob still exists until the subscription created by the REFER has terminated (either due to a NOTIFY containing a Subscription-State: terminated;reason=noresource header field, as in F15, or a 481 response to a NOTIFY).

For more about call transfer, see the transfer document [TRANSFER].

Message Details

  F1 INVITE Bob -> Alice
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  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
  F2 180 Ringing Alice -> Bob
  SIP/2.0 180 Ringing
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7
   ;received=192.0.2.113
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content-Length: 0
  F3 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:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  F4 ACK Bob -> Alice
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds2
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  /* Session is established between Alice and Bob. */
  /* Alice performs unattended transfer of Bob to Carol. */
  F5 REFER Alice -> Bob
  REFER sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds8
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 101 REFER
  Refer-To: <sips:[email protected]>
  Referred-By: <[email protected]>
  Contact: <sips:[email protected]>
  Content-Length: 0
  F6 202 Accepted Bob -> Alice
  SIP/2.0 202 Accepted
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds8
   ;received=192.0.2.105
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  Contact: <sips:[email protected]>
  CSeq: 101 REFER
  Content-Length: 0
  F7 NOTIFY Bob -> Alice
  NOTIFY sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds32
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2 NOTIFY
  Event: refer
  Subscription-State: active;expires=60
  Contact: <sips:[email protected]>
  Content-Type: message/sipfrag
  Content-Length: ...
  SIP/2.0 100 Trying
  F8 200 OK Alice -> Bob
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds32
   ;received=192.0.2.113
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2 NOTIFY
  Content-Length: 0
  /* Alice now disconnects with Bob. */
  F9 BYE Alice -> Bob
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds43
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 102 BYE
  Content-Length: 0
  F10 200 OK Bob -> Alice
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds43
   ;received=192.0.2.105
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 102 BYE
  Content-Length: 0
  /* Bob attempts the transfer to Carol. */
  F11 INVITE Bob -> Carol
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds1
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Referred-By: <[email protected]>
  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
  F12 180 Ringing Carol -> Bob
  SIP/2.0 180 Ringing
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds1
   ;received=192.0.2.113
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=928287
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content-Length: 0
  F13 200 OK Carol -> Bob
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds1
   ;received=192.0.2.113
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=928287
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=carol 2890944542 2890844542 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
  F14 ACK Bob -> Carol
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds9
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=928287
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  /* Bob and Carol now have established a session.  Bob reports
     success to Alice, which Alice probably ignores. */
  F15 NOTIFY Bob -> Alice
  NOTIFY sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds67
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 3 NOTIFY
  Event: refer
  Subscription-State: terminated;reason=noresource
  Contact: <sips:[email protected]>
  Content-Type: message/sipfrag
  Content-Length: ...
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds1
   ;received=192.0.2.113
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=928287
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content-Type: application/sdp
  Content-Length: ...
  F16 200 OK Alice -> Bob
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds6
   ;received=192.0.2.113
  From: Bob <sips:[email protected]>;tag=314159
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 3 NOTIFY
  Content-Length: 0

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    |
         |------------------------------>|
         |            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:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=23431
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=23431
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  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:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=23431
  Call-ID: [email protected]
  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:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=23431
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1024 INVITE
  Contact: <sips:[email protected]>;+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
  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:[email protected]>;tag=23431
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1024 INVITE
  Contact: <sips:[email protected]>
  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:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds3
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=23431
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1024 ACK
  Content-Length: 0
  /* Bob calls Carol. */
  F8 INVITE Bob -> Carol
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnash
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 42 INVITE
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=5f35a3
  Call-ID: [email protected]
  CSeq: 42 INVITE
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=5f35a3
  Call-ID: [email protected]
  CSeq: 42 INVITE
  Contact: <sips:[email protected];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:[email protected];gr SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashd5
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=5f35a3
  Call-ID: [email protected]
  CSeq: 42 ACK
  Content-Length: 0
  /* Bob puts Carol on hold. */
  F12 INVITE Bob -> Carol
  INVITE sips:[email protected];gr SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds0
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=5f35a3
  Call-ID: [email protected]
  CSeq: 43 INVITE
  Contact: <sips:[email protected]>;+sip.rendering="no"
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  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:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=5f35a3
  Call-ID: [email protected]
  CSeq: 43 INVITE
  Contact: <sips:[email protected]>
  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:[email protected];gr SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnash334
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=5f35a3
  Call-ID: [email protected]
  CSeq: 43 ACK
  Content-Length: 0
  /* Bob transfers Alice to Carol. */
  F15 REFER Bob -> Alice
  REFER sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds2g
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=23431
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1025 REFER
<allOneLine>
  Refer-To: <sips:[email protected]?Replaces=
  sdjfdjfskdf%40biloxi.example.com%3Bto-tag%3D5f35a3
  %3Bfrom-tag%3D8675309&Require=replaces>
</allOneLine>
  Referred-By: <sips:[email protected]>
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=23431
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  Contact: <sips:[email protected]>
  CSeq: 1025 REFER
  Content-Length: 0
  F17 NOTIFY Alice -> Bob
  NOTIFY sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bfK
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=23431
  Call-ID: [email protected]
  CSeq: 2 NOTIFY
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=23431
  Call-ID: [email protected]
  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:[email protected];gr SIP/2.0
  Via: SIP/2.0/TLS chicago.example.com:5061
   ;branch=z9hG4bKadfe4ko
  To: Carol <sips:[email protected]>
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=3461
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Require: replaces
  Referred-By: <sips:[email protected]>
  Replaces: [email protected]
   ;to-tag=5f35a3;from-tag=8675309
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Type: application/sdp
  Content-Length: ...
  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:[email protected]>;tag=ff3a
  From: Alice <sips:[email protected]>;tag=3461
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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:[email protected];gr SIP/2.0
  Via: SIP/2.0/TLS chicago.example.com:5061
   ;branch=z9hG4bKadfe4kU3
  To: Carol <sips:[email protected]>;tag=ff3a
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=3461
  Call-ID: [email protected]
  CSeq: 1 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  /* Carol then disconnects from Bob. */
  F22 BYE Carol -> Bob
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bfE
  To: Bob <sips:[email protected]>;tag=8675309
  Max-Forwards: 70
  From: Carol <sips:[email protected]>;tag=5f35a3
  Call-ID: [email protected]
  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:[email protected]>;tag=8675309
  From: Carol <sips:[email protected]>;tag=5f35a3
  Call-ID: [email protected]
  CSeq: 1 BYE
  Content-Length: 0
  /* Alice tells Bob that the call has been
     successfully transferred. */
  F24 NOTIFY Alice -> Bob
  NOTIFY sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf2N
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=23431
  Call-ID: [email protected]
  CSeq: 3 NOTIFY
  Event: refer
  Subscription-State: terminated;reason=noresource
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=ff3a
  From: Alice <sips:[email protected]>;tag=3461
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=23431
  Call-ID: [email protected]
  CSeq: 3 NOTIFY
  Content-Length: 0
  /* Bob disconnects with Alice. */
  F26 BYE Bob -> Alice
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7P
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=23431
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  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
   ;received=192.0.2.113
  From: Bob <sips:[email protected]>;tag=23431
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1026 BYE
  Content-Length: 0

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.

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:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected];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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=3145678
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=3145678
  Call-ID: [email protected]
  Contact: <sips:[email protected]>
  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:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74r
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=3145678
  Call-ID: [email protected]
  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:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnash
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>
  Call-ID: [email protected]
  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:[email protected];gr?Replaces=
  [email protected]%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:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=5f35a3
  Call-ID: [email protected]
  CSeq: 42 MESSAGE
  Contact: <sips:[email protected]>
  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:[email protected];gr SIP/2.0
  Via: SIP/2.0/TLS pc.biloxi.example.com:5061
   ;branch=z9hG4bK74HH
  Max-Forwards: 70
  From: Carol <sips:[email protected]>;tag=8675310
  To: Alice <sips:[email protected];gr>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Require: replaces
  Replaces: [email protected]
   ;to-tag=3145678;from-tag=1234567
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=8675310
  To: Alice <sips:[email protected];gr>;tag=131256
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected];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
  F9 ACK  Carol -> Alice
  ACK sips:[email protected];gr SIP/2.0
  Via: SIP/2.0/TLS b2.biloxi.example.com:5061
   ;branch=z9hG4bK7435
  Max-Forwards: 70
  From: Carol <sips:[email protected]>;tag=8675310
  To: Alice <sips:[email protected];gr>;tag=131256
  Call-ID: [email protected]
  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:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=3145678
  Call-ID: [email protected]
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=3145678
  Call-ID: [email protected]
  CSeq:  2 BYE
  Content-Length: 0

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).

Message Details

  F1 INVITE Alice -> Proxy
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=9214d
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Content-Length: 0
  /* Proxy forwards call by rewriting Request-URI. */
  F4 INVITE Proxy -> Gateway
  INVITE sips:[email protected];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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected];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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected];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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected];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
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected];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:[email protected];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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  F10 ACK Proxy -> Gateway
  ACK sips:[email protected];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
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  F11 BYE Alice -> Proxy
  BYE sips:[email protected];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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F12 BYE Proxy -> Gateway
  BYE sips:[email protected];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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314159
  Call-ID: [email protected]
  CSeq:  2 BYE
  Content-Length: 0

Call Forwarding - Busy

       Alice            Proxy          User B1             User B2
         |                |              |                   |
         |    INVITE F1   |              |                   |
         |--------------->|   INVITE F2  |                   |
         |                |------------->|                   |
         |(100 Trying) F3 |              |                   |
         |<---------------|  486 Busy F4 |                   |
         |                |<-------------|                   |
         |                |     ACK F5   |                   |
         |                |------------->|                   |
         |(181 Call is Being Forwarded) F6                   |
         |<---------------|              |    INVITE F7      |
         |                |--------------------------------->|
         |                |              | 180 Ringing F8    |
         |                |<---------------------------------|
         | 180 Ringing F9 |              |                   |
         |<---------------|              |      200 OK F10   |
         |                |<---------------------------------|
         |    200 OK F11  |              |                   |
         |<---------------|              |                   |
         |     ACK F12    |              |                   |
         |--------------->|              |     ACK F13       |
         |                |--------------------------------->|
         |               Both way RTP Established            |
         |<=================================================>|
         |    BYE F14     |              |                   |
         |--------------->|              |      BYE F15      |
         |                |--------------------------------->|
         |                |              |    200 OK F16     |
         |  200 OK F17    |<---------------------------------|
         |<---------------|              |                   |
         |                |              |                   |

Bob wants calls to B1 forwarded to B2 if B1 is busy (this information is known to the proxy). Alice calls B1, B1 is busy, the proxy server places call to B2.

Message Details

  F1 INVITE Alice -> Proxy
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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 INVITE Proxy -> B1
  INVITE sips:[email protected] 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  F3 (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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Content-Length: 0
  F4 486 Busy Here B1 -> Proxy
  SIP/2.0 486 Busy Here
  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
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Content-Length: 0
  F5 ACK Proxy -> B1
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.1
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  F6 (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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=9214d
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Content-Length: 0
  /* The proxy now forwards the call to B2. */
  F7 INVITE Proxy -> B2
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.2
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  F8 180 Ringing B2 -> Proxy
  SIP/2.0 180 Ringing
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.2
   ;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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7654321
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content-Length: 0
  F9 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7654321
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content-Length: 0
  F10 200 OK B2 -> Proxy
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.2
   ;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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7654321
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com
  s=
  c=IN IP4 client2.biloxi.example.com
  t=0 0
  m=audio 3456 RTP/AVP 0
  a=rtpmap:0 PCMU/8000
  F11 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7654321
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com
  s=
  c=IN IP4 client2.biloxi.example.com
  t=0 0
  m=audio 3456 RTP/AVP 0
  a=rtpmap:0 PCMU/8000
  F12 ACK Alice -> Proxy
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bfX
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7654321
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  F13 ACK Proxy -> B2
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83731
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bfX
   ;received=192.0.2.103
  Max-Forwards: 69
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7654321
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  /* RTP streams are established between Alice and B2. */
  /* Alice eventually hangs up with User B2. */
  F14 BYE Alice -> Proxy
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bW4
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7654321
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F15 BYE Proxy -> B2
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK837493
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bW4
   ;received=192.0.2.103
  Max-Forwards: 69
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7654321
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F16 200 OK B2 -> Proxy
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK837493
   ;received=192.0.2.54
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bW4
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7654321
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F17 200 OK Proxy -> Alice
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bW4
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7654321
  Call-ID: [email protected]
  CSeq:  2 BYE
  Content-Length: 0

Call Forwarding - No Answer

       Alice            Proxy         User B1             User B2
         |                |              |                   |
         |    INVITE F1   |              |                   |
         |--------------->|   INVITE F2  |                   |
         |(100 Trying) F3 |------------->|                   |
         |<---------------|180 Ringing F4|                   |
         | 180 Ringing F5 |<-------------|                   |
         |<---------------|              |                   |
         |                 Request Timeout                   |
         |                |              |                   |
         |                |   CANCEL F6  |                   |
         |                |------------->|                   |
         |                |   200 OK F7  |                   |
         |                |<-------------|                   |
         |                |     487 F8   |                   |
         |                |<-------------|                   |
         |                |     ACK F9   |                   |
         |                |------------->|                   |
         |(181 Call is Being Forwarded) F10                  |
         |<---------------|              |    INVITE F11     |
         |                |--------------------------------->|
         |                |              | 180 Ringing F12   |
         | 180 Ringing F13|<---------------------------------|
         |<---------------|              |      200 OK F14   |
         |                |<---------------------------------|
         |   200 OK F15   |              |                   |
         |<---------------|              |                   |
         |     ACK F16    |              |                   |
         |--------------->|              |     ACK F17       |
         |                |--------------------------------->|
         |               Both way RTP Established            |
         |<=================================================>|
         |    BYE F18     |              |                   |
         |--------------->|              |      BYE F19      |
         |                |--------------------------------->|
         |                |              |    200 OK F20     |
         |  200 OK F21    |<---------------------------------|
         |<---------------|              |                   |
         |                |              |                   |

Bob wants calls to B1 forwarded to B2 if B1 is not answered (information is known to the proxy server). Alice calls B1 and no one answers. The proxy server then places the call to B2.

Message Details

  F1 INVITE Alice -> Proxy
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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 INVITE Proxy -> B1
  INVITE sips:[email protected] 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  F3 (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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Content-Length: 0
  F4 180 Ringing B1 -> 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=3145678
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content-Length: 0
  F5 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=3145678
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content-Length: 0
  /* B1 rings until a configurable timer expires in the proxy.  The
     proxy sends Cancel and proceeds down the list of routes. */
  F6 CANCEL Proxy -> B1
  CANCEL sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.1
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 CANCEL
  Content-Length: 0
  F7 200 OK B1 -> Proxy
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.1
   ;received=192.0.2.54
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=329d823
  Call-ID: [email protected]
  CSeq: 1 CANCEL
  Content-Length: 0
  F8 487 Request Terminated B1 -> Proxy
  SIP/2.0 487 Request Terminated
  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
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=3145678
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Content-Length: 0
  F9 ACK Proxy -> B1
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.1
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=3145678
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  F10 (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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=9214d
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Content-Length: 0
  F11 INVITE Proxy -> B2
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.2
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  F12 180 Ringing B2 -> Proxy
  SIP/2.0 180 Ringing
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.2
   ;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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content-Length: 0
  F13 180 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content-Length: 0
  F14 200 OK B2 -> Proxy
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.2
   ;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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com
  s=
  c=IN IP4 client2.biloxi.example.com
  t=0 0
  m=audio 3456 RTP/AVP 0
  a=rtpmap:0 PCMU/8000
  F15 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com
  s=
  c=IN IP4 client2.biloxi.example.com
  t=0 0
  m=audio 3456 RTP/AVP 0
  a=rtpmap:0 PCMU/8000
  F16 ACK Alice -> Proxy
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf3
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  F17 ACK Proxy -> B2
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK8374.1
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf3
   ;received=192.0.2.103
  Max-Forwards: 69
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  /* RTP streams are established between Alice and B2.
     Alice hangs up with User B2. */
  F18 BYE Alice -> Proxy
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74b3f
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F19 BYE Proxy -> B2
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK837.1
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74b3f
   ;received=192.0.2.103
  Max-Forwards: 69
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F20 200 OK B2 -> Proxy
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK837.1
   ;received=192.0.2.54
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74b3f
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 2 BYE
  Content-Length: 0
  F21 200 OK Proxy -> Alice
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74b3f
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq:  2 BYE
  Content-Length: 0

2.10. 3-Way Conference - Third Party Is Added

        Alice           Bob            Carol
         |    INVITE F1   |              |
         |--------------->|              |
         | 180 Ringing F2 |              |
         |<---------------|              |
         |    200 OK F3   |              |
         |<---------------|              |
         |     ACK F4     |              |
         |--------------->|              |
         |       RTP      |              |
         |<==============>|              |
         |   INVITE F5    |              |
         |<---------------|              |
         |    200 OK F6   |              |
         |--------------->|              |
         |     ACK F7     |              |
         |<---------------|  INVITE F8   |
         |                |------------->|
         |                |    180 F9    |
         |                |<-------------|
         |                |  200 OK F10  |
         |                |<-------------|
         |                |  ACK F11     |
         |                |------------->|
         |                |       RTP    |
         |                |<============>|

In this scenario, Alice and Bob are in a 2-party call (session) when Bob wishes to add Carol into the conversation. Bob is capable of media mixing in a 3-party call. Bob first sends a re-INVITE to Alice, changing Contact URIs to one that indicates Bob's mixer and acts like a focus. As a result, Bob includes the "isfocus" feature tag RFC3840 as described in RFC4579. Bob then INVITEs Carol using the same Contact URI. Note that Bob could wait to re-INVITE Alice until after Carol has answered. Bob could also put Alice on hold before calling Carol.

Message Details

  F1 INVITE Alice -> Bob
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=23431
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=23431
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces, gruu
  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:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bfL
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=23431
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  /* Alice and Bob have established a session.
     Bob re-INVITEs, changing Contact URIs. */
  F5 INVITE Bob -> Alice
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashds
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=23431
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1024 INVITE
  Contact: <sips:[email protected]>;isfocus
  Content-Type: application/sdp
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces, gruu
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com
  s=
  c=IN IP4 client.biloxi.example.com
  t=0 0
  m=audio 49172 RTP/AVP 0
  a=rtpmap:0 PCMU/8000
  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:[email protected]>;tag=23431
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1024 INVITE
  Contact: <sips:[email protected]>
  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
  F7 ACK Bob -> Alice
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnash3G
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=23431
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1024 ACK
  Content-Length: 0
  /* Bob calls Carol. */
  F8 INVITE Bob -> Carol
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashJfd
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 42 INVITE
  Contact: <sips:[email protected]>;isfocus
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces, gruu
  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 48174 RTP/AVP 0
  a=rtpmap:0 PCMU/8000
  F9 180 Ringing Carol -> Bob
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashJfd
   ;received=192.0.2.113
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=341313
  Call-ID: [email protected]
  CSeq: 42 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  F10 200 OK Carol -> Bob
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashJfd
   ;received=192.0.2.113
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=341313
  Call-ID: [email protected]
  CSeq: 42 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  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:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnash431
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=341313
  Call-ID: [email protected]
  CSeq: 42 ACK
  Content-Length: 0
  /* Bob's mixer now mixes media from both Alice and Carol
     to create the 3-way conference. */

2.11. 3-Way Conference - Third Party Joins

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

In this scenario, Alice and Bob are in a 2-party call and Carol wishes to join, resulting in a 3-party call. Carol could have learned Bob's dialog identifier using some non-SIP means, or possibly from a NOTIFY with the dialog package sent by Bob. Carol sends an INVITE to Bob containing a Join header identifying the dialog between Alice and Bob. Bob re-INVITEs Alice to switch to focus mode and includes the "isfocus" feature tag RFC3840 as described in RFC4579. Bob then accepts the INVITE from Carol, resulting in the 3-way call.

Message Details

  F1 INVITE Alice -> Bob
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=23431
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=23431
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces, join, gruu
  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:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf6
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=23431
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  /* Alice and Bob have established a session.
     Carol requests to join the session. */
  F5 INVITE Carol -> Bob
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS chicago.example.com:5061
   ;branch=z9hG4bKnashds7
  Max-Forwards: 70
  From: Carol <sips:[email protected]>;tag=8675309
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 99 INVITE
  Contact: <sips:[email protected]>
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces, join
  Join: [email protected];from-tag=1234567;to-tag=23431
  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
  F6 180 Ringing Bob -> Carol
  SIP/2.0 180 Ringing
  Via: SIP/2.0/TLS chicago.example.com:5061
   ;branch=z9hG4bKnashds7
   ;received=120.
  From: Carol <sips:[email protected]>;tag=8675309
  To: Bob <sips:[email protected]>;tag=0982
  Call-ID: [email protected]
  CSeq: 99 INVITE
  Contact: <sips:[email protected]>;isfocus
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces
  Content-Length: 0
  F7 INVITE Bob -> Alice
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashdyKL
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=23431
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1024 INVITE
  Contact: <sips:[email protected]>;isfocus
  Content-Type: application/sdp
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces, join, gruu
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com
  s=
  c=IN IP4 client.biloxi.example.com
  t=0 0
  m=audio 49172 RTP/AVP 0
  a=rtpmap:0 PCMU/8000
  F8 200 OK Alice -> Bob
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashdyKL
   ;received=192.0.2.113
  From: Bob <sips:[email protected]>;tag=23431
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1024 INVITE
  Contact: <sips:[email protected]>
  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
  F9 ACK Bob -> Alice
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnash3g
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=23431
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1024 ACK
  Content-Length: 0
  F10 200 OK Bob -> Carol
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS chicago.example.com:5061
   ;branch=z9hG4bKnashds7
   ;received=120.
  From: Carol <sips:[email protected]>;tag=8675309
  To: Bob <sips:[email protected]>;tag=0982
  Call-ID: [email protected]
  CSeq: 99 INVITE
  Contact: <sips:[email protected]>;isfocus
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces, join, gruu
  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 48174 RTP/AVP 0
  a=rtpmap:0 PCMU/8000
  F11 ACK OK Carol -> Bob
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS chicago.example.com:5061
   ;branch=z9hG4bKnash4Gf
  Max-Forwards: 70
  From: Carol <sips:[email protected]>;tag=8675309
  To: Bob <sips:[email protected]>;tag=0982
  Call-ID: [email protected]
  CSeq: 99 ACK
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Supported: replaces, join
  Content-Length:0

2.12. Find-Me

         Alice           Proxy           User   User   User   User
                                          B1     B2     B3     B4
         |                |              |      |      |      |
         |    INVITE F1   |              |      |      |      |
         |--------------->|   INVITE F2  |      |      |      |
         |                |------------->|      |      |      |
         |(100 Trying) F3 |              |      |      |      |
         |<---------------|180 Ringing F4|      |      |      |
         |                |<-------------|      |      |      |
         | 180 Ringing F5 |              |      |      |      |
         |<---------------|              |      |      |      |
         |                |    Timeout   |      |      |      |
         |                |              |      |      |      |
         |                |   CANCEL F6  |      |      |      |
         |                |------------->|      |      |      |
         |                |   200 OK F7  |      |      |      |
         |                |<-------------|      |      |      |
         |                |     487 F8   |      |      |      |
         |                |<-------------|      |      |      |
         |                |     ACK F9   |      |      |      |
         |                |------------->|      |      |      |
         |                |     INVITE F10      |      |      |
         |                |-------------------->|      |      |
         |                |480 Not Logged In F11|      |      |
         |                |<--------------------|      |      |
         |                |              ACK F12|      |      |
         |                |-------------------->|      |      |
         |                |          INVITE F13        |      |
         |                |--------------------------->|      |
         |                |      486 Busy Here F14     |      |
         |                |<---------------------------|      |
         |                |            ACK F15         |      |
         |                |--------------------------->|      |
         |                |              INVITE F16           |
         |                |---------------------------------->|
         |                |            180 Ringing F17        |
         |     180 F18    |<----------------------------------|
         |<---------------|               200 OK F19          |
         |   200 OK F20   |<----------------------------------|
         |<---------------|                                   |
         |     ACK F21    |                                   |
         |--------------->|                 ACK F22           |
         |                |---------------------------------->|
         |               Both way RTP Established             |
         |<==================================================>|
         |                |                  BYE F23          |
         |     BYE F24    |<----------------------------------|
         |<---------------|                                   |
         |    200 OK F25  |                                   |
         |--------------->|                 200 OK F26        |
         |                |---------------------------------->|
         |                |                                   |

Alice's call to Bob will result in an attempt to locate Bob by calling locations from a list of contacts. The location to answer the call becomes the active set; no other sets may join the call.

While this flow shows a sequential search, the search could be accomplished using parallel forking.

Message Details

  F1 INVITE Alice -> Proxy
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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 INVITE Proxy -> B1
  INVITE sips:[email protected] 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  F3 (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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Content-Length: 0
  F4 180 Ringing B1 -> 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content-Length: 0
  F5 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content-Length: 0
  /* B1 rings until a configurable timer in the proxy
     expires.  The proxy then sends Cancel and proceeds down
     the list of routes. */
  F6 CANCEL Proxy -> B1
  CANCEL sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.1
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 CANCEL
  Content-Length: 0
  F7 200 OK B1 -> Proxy
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.1
   ;received=192.0.2.54
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 1 CANCEL
  Content-Length: 0
  F8 487 Request Terminated B1 -> Proxy
  SIP/2.0 487 Request Terminated
  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
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Content-Length: 0
  F9 ACK Proxy -> B1
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.1
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=765432
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  F10 INVITE Proxy -> B2
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.2
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  F11 480 Not Logged In B2 -> Proxy
  SIP/2.0 480 Not Logged In
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.2
   ;received=192.0.2.54
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314756
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Content-Length: 0
  F12 ACK Proxy -> B2
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.2
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=314756
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  F13 INVITE Proxy -> B3
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.3
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  F14 486 Busy Here B3 -> Proxy
  SIP/2.0 486 Busy Here
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.3
   ;received=192.0.2.54
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7654321
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Content-Length: 0
  F15 ACK Proxy -> B3
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.3
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7654321
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  F16 INVITE Proxy -> B4
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.4
  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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  F17 180 Ringing B4 -> Proxy
  SIP/2.0 180 Ringing
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.4
   ;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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7137136
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content-Length: 0
  F18 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7137136
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content-Length: 0
  F19 200 OK B4 -> Proxy
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83749.4
   ;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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7137136
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844527 IN IP4 client4.biloxi.example.com
  s=
  c=IN IP4 client4.biloxi.example.com
  t=0 0
  m=audio 3456 RTP/AVP 0
  a=rtpmap:0 PCMU/8000
  F20 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:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7137136
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=bob 2890844527 2890844527 IN IP4 client4.biloxi.example.com
  s=
  c=IN IP4 client4.biloxi.example.com
  t=0 0
  m=audio 3456 RTP/AVP 0
  a=rtpmap:0 PCMU/8000
  F21 ACK Alice -> Proxy
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7137136
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  F22 ACK Proxy -> B4
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK8374
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf
   ;received=192.0.2.103
  Max-Forwards: 69
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7137136
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  /* RTP streams are established between Alice and B4. */
  /* User B4 hangs up with Alice. */
  F23 BYE B4 -> Proxy
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client4.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7
  Route: <sips:ss1.example.com;lr>
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=7137136
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 BYE
  Content-Length: 0
  F24 BYE Proxy -> Alice
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83754
  Via: SIP/2.0/TLS client4.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7
   ;received=192.0.2.105
  Max-Forwards: 69
  From: Bob <sips:[email protected]>;tag=7137136
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 BYE
  Content-Length: 0
  F25 200 OK Alice -> Proxy
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS ss1.example.com:5061
   ;branch=z9hG4bK83754
   ;received=192.0.2.54
  Via: SIP/2.0/TLS client4.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7
   ;received=192.0.2.105
  From: Bob <sips:[email protected]>;tag=7137136
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 BYE
  Content-Length: 0
  F26 200 OK Proxy -> B4
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client4.biloxi.example.com:5061
   ;branch=z9hG4bKnashds7
   ;received=192.0.2.105
  From: Bob <sips:[email protected]>;tag=7137136
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 1 BYE
  Content-Length: 0

2.13. Call Management (Incoming Call Screening)

                                                  Announcement
       Alice           Proxy            Bob           Server
         |                |              |              |
         |    INVITE F1   |              |              |
         |------------------------------>|              |
         | 305 Use Proxy F2              |              |
         |<------------------------------|              |
         |     ACK F3     |              |              |
         |------------------------------>|              |
         |    INVITE F4   |              |              |
         |--------------->|              |              |
         | 407 Proxy Authentication F5   |              |
         |<---------------|              |              |
         |     ACK F6     |              |              |
         |--------------->|              |              |
         |    INVITE F7   |              |              |
         |--------------->|              |              |
         | 403 Screening Failure (Terminating) Error-Info: URI F8
         |<---------------|              |              |
         |     ACK F9     |              |              |
         |--------------->|              |              |
         |    INVITE F10  |              |              |
         |--------------------------------------------->|
         |    200 OK F11  |              |              |
         |--------------------------------------------->|
         |     ACK F12    |                             |
         |--------------------------------------------->|
         |          Announcement Played to Caller       |
         |<=============================================|
         |                                    BYE F13   |
         |<---------------------------------------------|
         |     200 OK F14                               |
         |--------------------------------------------->|
         |                                              |
         |                                              |
         |                                              |

Bob has an incoming call screening list; Alice is included on the list of addresses from which Bob will not accept calls. Alice attempts to call Bob. Messages F1, F2, and F3 are included to show that Bob does not accept INVITEs that have not been screened by the proxy.

Note that call screening cannot be done using the From header -- instead some form of authentication credentials must be used.

The screening proxy inserts an announcement URI in an Error-Info header field, which Alice accesses by sending an INVITE to listen to the Announcement. The Announcement Server uses the automaton and rendering feature tags in F12 and F13 to indicate that it is a media server only capable of playing announcements.

Message Details

  F1 INVITE Alice -> Bob
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  /* Bob only accepts INVITEs that have been screened
     by the proxy. */
  F2 305 Use Proxy Bob -> Alice
  SIP/2.0 305 Use Proxy
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=342123
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:ss1.example.com>
  Content-Length: 0
  F3 ACK Alice -> Bob
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=342123
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  /* A retries the call through the proxy. */
  F4 INVITE Alice -> Proxy 1
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf0
  Max-Forwards: 70
  Route: <sips:ss1.example.com>
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 2 INVITE
  Contact: <sips:[email protected]>
  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
  /* Proxy 1 challenges Alice for authentication. */
  F5 407 Proxy Authentication Required Proxy 1 -> Alice
  SIP/2.0 407 Proxy Authentication Required
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf0
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7886765
  Call-ID: [email protected]
  CSeq: 2 INVITE
  Proxy-Authenticate: Digest realm="example.com",
     nonce="ea9c8e88df84f1cec4341ae6cbe5a359",
     qop="auth", nc=00000001, cnonce="0a4f113b",
     opaque="", stale=FALSE, algorithm=MD5
  Content-Length: 0
  F6 ACK Alice -> Proxy 1
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf0
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=7886765
  Call-ID: [email protected]
  CSeq: 2 ACK
  Content-Length: 0
  /* Alice responds by sending an INVITE with authentication
     credentials in it. */
  F7 INVITE Alice -> Proxy 1
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf2
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 3 INVITE
  Contact: <sips:[email protected]>
  Proxy-Authorization: Digest username="alice",
     realm="example.com", qop=auth,
     nc=00000001, cnonce="4gr84543ft2",
     nonce="ae9137be1c87d175c2dd63302a0d6e0a",
     opaque="", uri="sips:[email protected]",
     response="bbaec39f943bdcb3620d90afc548a45c"
  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
  F8 403 Screening Failure (Terminating) Proxy 1 -> Alice
  SIP/2.0 403 Screening Failure (Terminating)
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf2
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=ffe254
  Call-ID: [email protected]
  CSeq: 3 INVITE
  Error-Info: <sips:[email protected]>
  Content-Length: 0
  F9 ACK Alice -> Proxy 1
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf2
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=ffe254
  Call-ID: [email protected]
  Proxy-Authorization: Digest username="alice",
   realm="example.com", nonce="ae9137be1c87d175c2dd63302a0d6e0a",
   opaque="", uri="sips:[email protected]",
   response="bbaec39f943bdcb3620d90afc548a45c"
  CSeq: 3 ACK
  Content-Length: 0
  /* To hear the recording, Alice connects to the Error-Info URI. */
  F10 INVITE Alice -> Proxy 1
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bfj
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 4 INVITE
  Contact: <sips:[email protected]>
  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

F11 200 OK Announcement Server -> Proxy 1

  SIP/2.0 200 OK
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bfj
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=234934
  Call-ID: [email protected]
  CSeq: 4 INVITE
  Contact: <sips:ms.biloxi.example.com>
   ;automaton;+sip.rendering="no"
  Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
  Content-Type: application/sdp
  Content-Length: ...
  v=0
  o=annc 2890844543 2890844543 IN IP4 announce.biloxi.example.com
  s=
  c=IN IP4 announce.biloxi.example.com
  t=0 0
  m=audio 49174 RTP/AVP 0
  a=rtpmap:0 PCMU/8000

F12 ACK Alice -> Announcement Server

  ACK sips:ms.biloxi.example.com SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74b32
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=234934
  Call-ID: [email protected]
  CSeq: 4 ACK
  Content-Length: 0
  /* Announcement Server plays announcement then disconnects. */
  F13 BYE Announcement Server -> Alice
  BYE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS announcement.example.com:5061
   ;branch=z9hG4bK74bKS
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=234934
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2334 BYE
  Content-Length: 0
  F14 200 OK Alice -> Announcement Server
  SIP/2.0 200 OK
  Via: SIP/2.0/TLS announcement.example.com:5061
   ;branch=z9hG4bK74bKS
   ;received=192.0.2.103
  From: Bob <sips:[email protected]>;tag=234934
  To: Alice <sips:[email protected]>;tag=1234567
  Call-ID: [email protected]
  CSeq: 2334 BYE
  Content-Length: 0

2.14. Call Management (Outgoing Call Screening)

       Alice            Proxy           Bob
         |                |              |
         |    INVITE F1   |              |
         |--------------->|              |
         | 407 Proxy Authentication F2   |
         |<---------------|              |
         |     ACK F3     |              |
         |--------------->|              |
         |    INVITE F4   |              |
         |--------------->|              |
         | 403 Screening Failure (Originating) F5
         |<---------------|              |
         |     ACK F6     |              |
         |--------------->|              |
         |                |              |

Alice has an outgoing call screening list; Bob is included on the list of addresses to which Alice will not be able to place a call. Alice attempts to call Bob.

Alice could establish a session to listen to the announcement in the Error-Info header field.

Message Details

  F1 INVITE Alice -> Proxy 1
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  /* Proxy 1 challenges Alice for authentication. */
  F2 407 Proxy Authentication Required Proxy 1 -> Alice
  SIP/2.0 407 Proxy Authentication Required
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=90210
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Proxy-Authenticate: Digest realm="example.com",
   nonce="ea9c8e88df84f1cec4341ae6cbe5a359",
   qop="auth", nc=00000001, cnonce="0a4f113b",
   opaque="", stale=FALSE, algorithm=MD5
  Content-Length: 0
  F3 ACK Alice -> Proxy 1
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74bf9
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=90210
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  /* Alice responds be sending an INVITE with authentication
     credentials in it. */
  F4 INVITE Alice -> Proxy 1
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74b4
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 2 INVITE
  Contact: <sips:[email protected]>
  Proxy-Authorization: Digest username="alice", realm="example.com",
   nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="",
   uri="sips:[email protected]",
   response="b9d2e5bcdec9f69ab2a9b44f270285a6"
  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 403 Screening Failure (Originating) Proxy 1 -> Alice
  SIP/2.0 403 Screening Failure (Originating)
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74b4
   ;received=192.0.2.103
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=18017
  Call-ID: [email protected]
  CSeq: 2 INVITE
  Error-Info: <sips:[email protected]>
  Content-Length: 0
  F6 ACK Alice -> Proxy 1
  ACK sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.atlanta.example.com:5061
   ;branch=z9hG4bK74b4
  Max-Forwards: 70
  From: Alice <sips:[email protected]>;tag=1234567
  To: Bob <sips:[email protected]>;tag=18017
  Call-ID: [email protected]
  CSeq: 2 ACK
  Proxy-Authorization: Digest username="alice", realm="example.com",
   nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="",
   uri="sips:[email protected]",
   response="b9d2e5bcdec9f69ab2a9b44f270285a6"
  Content-Length: 0

2.15. Call Park

       Alice           Bob        Park Server       Carol
         |              |              |              |
         |   INVITE F1  |              |              |
         |------------->|              |              |
         |180 Ringing F2|              |              |
         |<-------------|              |              |
         |  200 OK F3   |              |              |
         |<-------------|              |              |
         |    ACK F4    |              |              |
         |------------->|              |              |
         |  RTP Media   |              |              |
         |<============>|              |              |
         |      Bob Parks Call         |              |
         |              |   REFER Refer-To: A F5      |
         |              |------------->|              |
         |              |    202 F6    |              |
         |              |<-------------|              |
         |              |   NOTIFY F7  |              |
         |              |<-------------|              |
         |              |    200 F8    |              |
         |              |------------->|              |
         |  INVITE F9 Replaces: B      |              |
         |<----------------------------|              |
         |          200 OK F10         |              |
         |---------------------------->|              |
         |           ACK F11           |              |
         |<----------------------------|              |
         |           RTP Music         |              |
         |<===========================>|              |
         |     BYE F12  |              |              |
         |------------->|  NOTIFY F14  |              |
         |  200 OK F13  |<-------------|              |
         |<-------------|  200 OK F15  |              |
         |              |------------->|              |
         |              |   Carol picks up the call   |
         |              |              |              |
         |              |              | SUBSCRIBE F16|
         |              |              |<-------------|
         |              |              |  200 OK F17  |
         |              |              |------------->|
         |              |              |  NOTIFY F18  |
         |              |              |------------->|
         |              |              |  200 OK F19  |
         |              |              |<-------------|
         |           INVITE Replaces: Park Server F20 |
         |<-------------------------------------------|
         |              |              |   200 F21    |
         |------------------------------------------->|
         |              |              |    ACK F22   |
         |<-------------------------------------------|
         |                  RTP Media                 |
         |<==========================================>|
         |           BYE F23           |              |
         |---------------------------->|              |
         |          200 OK F24         |              |
         |<----------------------------|              |
         |       No more RTP Music     |              |

In this example, Alice calls Bob. Bob then parks the call at the Park Server by sending a REFER to the Park Server. The server sends an INVITE to Alice, which replaces the session between Alice and Bob. The Park Server utilizes the automaton, rendering, and byeless feature tags in F9 to indicate its capabilities to Alice. The call is accepted by Alice and causes Alice to send a BYE to Bob. Bob receives notification of the successful park, and also receives the dialog identifiers in the application/sip body of the NOTIFY response.

Carol wishes to retrieve the call, so she sends an INVITE containing the dialog identifiers to Alice, which replaces the session with the Park Server. Alice accepts the call and sends a BYE to the Park Server. Carol obtains the dialog identifiers from a NOTIFY from the Park Server.

Note that this call flow is a special case of call transfer.

Note also that this flow could also be used for Music on Hold.

Message Details

F1 INVITE Alice -> Bob

INVITE sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.alice.example.com:5061

;branch=z9hG4bKnashds7

Max-Forwards: 70 From: Alice <sips:[email protected]>;tag=1234567 To: Bob <sips:[email protected]> Call-ID: [email protected] CSeq: 1 INVITE Contact: <sips:[email protected];gr> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, 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=z9hG4bKnashds7
;received=192.0.2.105

From: Alice <sips:[email protected]>;tag=1234567 To: Bob <sips:[email protected]>;tag=314159 Call-ID: [email protected] CSeq: 1 INVITE Contact: <sips:[email protected]> Content-Length: 0

F3 200 OK Bob -> Alice

SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061

;branch=z9hG4bKnashds7
;received=192.0.2.105

From: Alice <sips:[email protected]>;tag=1234567 To: Bob <sips:[email protected]>;tag=314159 Call-ID: [email protected] CSeq: 1 INVITE Contact: <sips:[email protected]> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY 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:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061

;branch=z9hG4bKnashds7

Max-Forwards: 70 From: Alice <sips:[email protected]>;tag=1234567 To: Bob <sips:[email protected]>;tag=314159 Call-ID: [email protected] CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Content-Length: 0

/* Bob REFERs Park Server to establish session with Alice,

  which replaces the established session between Alice and Bob.
  Note that there is no session established between Bob
  and the Park Server. */

F5 REFER Bob -> Park Server

REFER sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061

;branch=z9hG4bKnashds9

Max-Forwards: 70 From: Bob <sips:[email protected]>;tag=02134 To: Park Server <sips:[email protected]> Call-ID: [email protected] CSeq: 1 REFER

<allOneLine>

Refer-To: <sips:[email protected];gr?Replaces= 12345601%40atlanta.example.com%3Bfrom-tag%3D314159 %3Bto-tag%3D1234567&Require=replaces>

</allOneLine>

Referred-By: <sips:[email protected]> Contact: <sips:[email protected]> Content-Length: 0

F6 202 Accepted Park Server -> Bob

SIP/2.0 202 Accepted Via: SIP/2.0/TLS client.biloxi.example.com:5061

;branch=z9hG4bKnashds9
;received=192.0.2.105

From: Bob <sips:[email protected]>;tag=02134 To: Park Server <sips:[email protected]>;tag=56323

Call-ID: [email protected] Contact: <sips:[email protected]> CSeq: 1 REFER Content-Length: 0

F7 NOTIFY Park Server -> Bob

NOTIFY sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS server.example.com:5061

;branch=z9hG4bK74bT6

To: Bob <sips:[email protected]>;tag=02134 Max-Forwards: 70 From: Park Server <sips:[email protected]>;tag=56323 Call-ID: [email protected] CSeq: 1 NOTIFY Event: refer Contact: <sips:[email protected]> Subscription-State: active;expires=60 Content-Type: message/sipfrag Content-Length: ...

SIP/2.0 100 Trying

F8 200 OK Bob -> Park Server

SIP/2.0 200 OK Via: SIP/2.0/TLS server.example.com:5061

;branch=z9hG4bK74bT6
;received=192.0.2.103

To: Bob <sips:[email protected]>;tag=02134 From: Park Server <sips:[email protected]>;tag=56323 Call-ID: [email protected] CSeq: 1 NOTIFY Content-Length: 0

/* Park Server places call to Alice to replace session

  between Alice and Bob. */

F9 INVITE Park Server -> Alice

INVITE sips:[email protected];gr SIP/2.0 Via: SIP/2.0/TLS server.example.com:5061

;branch=z9hG4bK74rf

Max-Forwards: 70 From: <sips:[email protected]>;tag=0111

To: <sips:[email protected];gr> Call-ID: [email protected] CSeq: 1 INVITE Referred-By: <sips:[email protected]> Contact: <sips:[email protected]>;automaton

   ;+sip.byeless;+sip.rendering="no"

Require: replaces Replaces: [email protected]

;from-tag=314159;to-tag=1234567

Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ...

v=0 o=ParkServer 2890844576 2890844576 IN IP4 Park.server.example.com s= c=IN IP4 server.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000

F10 200 OK Alice -> Park Server

SIP/2.0 200 OK Via: SIP/2.0/TLS server.example.com:5061

;branch=z9hG4bK74rf
;received=192.0.2.103

From: <sips:[email protected]>;tag=0111 To: <sips:[email protected];gr>;tag=098594 Call-ID: [email protected] CSeq: 1 INVITE Contact: <sips:[email protected];gr> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, 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 a=recvonly

F11 ACK Park Server -> Alice

ACK sips:[email protected];gr SIP/2.0 Via: SIP/2.0/TLS server.example.com:5061

;branch=z9hG4bK7rfF

Max-Forwards: 70 From: <sips:[email protected]>;tag=0111 To: <sips:[email protected];gr>;tag=098594 Call-ID: [email protected] CSeq: 1 ACK Content-Length: 0

F12 BYE Alice -> Bob

BYE sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061

;branch=z9hG4bKnashds7

Max-Forwards: 70 From: Alice <sips:[email protected]>;tag=1234567 To: Bob <sips:[email protected]>;tag=314159 Call-ID: [email protected] CSeq: 2 BYE Content-Length: 0

F13 200 OK Bob -> Alice

SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061

;branch=z9hG4bKnashds7
;received=192.0.2.105

From: Alice <sips:[email protected]>;tag=1234567 To: Bob <sips:[email protected]>;tag=314159 Call-ID: [email protected] CSeq: 2 BYE Content-Length: 0

/* Park Server reports success back to Bob by returning

  a 200 OK response.  Bob obtains the dialog identifiers
  from the headers included in the response. */

F14 NOTIFY Park Server -> Bob

NOTIFY sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS server.example.com:5061

;branch=z9hG4bK74bf9

To: Bob <sips:[email protected]>;tag=02134 Max-Forwards: 70 From: Park Server <sips:[email protected]>;tag=56323 Call-ID: [email protected] CSeq: 2 NOTIFY Event: refer Subscription-State: terminated;reason=noresource Contact: <sips:[email protected]>;automaton

   ;+sip.byeless;+sip.rendering="no"

Content-Type: message/sipfrag Content-Length: ...

SIP/2.0 200 OK Via: SIP/2.0/TLS server.example.com:5061

;branch=z9hG4bK74rf
;received=192.0.2.103

From: <sips:[email protected]>;tag=0111 To: <sips:[email protected];gr>;tag=098594 Call-ID: [email protected] CSeq: 1 INVITE Contact: <sips:[email protected];gr>

F15 200 OK Bob -> Park Server

SIP/2.0 200 OK Via: SIP/2.0/TLS server.example.com:5061

;branch=z9hG4bK74bf9
;received=192.0.2.103

To: Bob <sips:[email protected]>;tag=02134 From: Park Server <sips:[email protected]>;tag=56323 Call-ID: [email protected] CSeq: 2 NOTIFY Content-Length: 0

/* Alice is now parked at the Park Server. */

/* Carol picks up the call by sending an INVITE to A, which

  replaces the existing session with the Park Server.
  Carol needs to know the dialog information to construct
  the Replaces header. */

F16 SUBSCRIBE Carol -> Park Server

SUBSCRIBE sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.chicago.example.com:5061

;branch=z9hG4bK74b232

Max-Forwards: 70 From: Carol <sips:[email protected]>;tag=158x93461 To: <sips:[email protected]> Call-ID: 2d6485356dfaj34dsf CSeq: 1 SUBSCRIBE Contact: <sips:[email protected]> Event: dialog Expires: 0 Accept: application/dialog-info+xml Content-Length: 0

F17 200 OK Park Server -> Carol

SIP/2.0 200 OK Via: SIP/2.0/TLS client.chicago.example.com:5061

;branch=z9hG4bK74b232
;received=192.0.2.105

From: Carol <sips:[email protected]>;tag=158x93461 To: <sips:[email protected]>;tag=3213j Call-ID: 2d6485356dfaj34dsf CSeq: 1 SUBSCRIBE Contact: <sips:[email protected]>;automaton

   ;+sip.byeless;+sip.rendering="no"

Content-Length: 0

F18 NOTIFY Park Server -> Carol

NOTIFY sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS server.example.com:5061

;branch=z9hG4bK74b8skd

Max-Forwards: 70 To: Carol <sips:[email protected]>;tag=158x93461 From: <sips:[email protected]>;tag=3213j Call-ID: 2d6485356dfaj34dsf CSeq: 1 NOTIFY Contact: <sips:[email protected]>;automaton

   ;+sip.byeless;+sip.rendering="no"

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:[email protected]">
  <dialog id="439920143524"
     call-id="[email protected]"
     local-tag="0111" remote-tag="098594" direction="initiator">
    <duration>1</duration>
    <local>
       <target>sips:[email protected]</target>
    </local>
    <remote>
      <target>sips:[email protected];gr</target>
    </remote>
    <state>confirmed</state>
  </dialog>
</dialog-info>

F19 200 OK Carol -> Park Server

SIP/2.0 200 OK Via: SIP/2.0/TLS server.example.com:5061

;branch=z9hG4bK74b8skd
;received=192.0.2.103

To: Carol <sips:[email protected]>;tag=158x93461 From: <sips:[email protected]>;tag=3213j Call-ID: 2d6485356dfaj34dsf CSeq: 1 NOTIFY Contact: <sips:[email protected]> Content-Length: 0

F20 INVITE Carol -> Alice

INVITE sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.chicago.example.com:5061

;branch=z9hG4bK74bQ2

Max-Forwards: 70 From: Carol <sips:[email protected]>;tag=5893461 To: Alice <sips:[email protected]> Call-ID: [email protected] CSeq: 1 INVITE Contact: <sips:[email protected]> Require: replaces Replaces: [email protected]

;to-tag=098594;from-tag=0111

Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,

SUBSCRIBE, NOTIFY

Supported: replaces 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

F21 200 OK Alice -> Carol

SIP/2.0 200 OK Via: SIP/2.0/TLS client.chicago.example.com:5061

;branch=z9hG4bK74bQ2
;received=192.0.2.105

From: Carol <sips:[email protected]>;tag=5893461 To: Alice <sips:[email protected]>;tag=222 Call-ID: [email protected] CSeq: 1 INVITE Contact: <sips:[email protected];gr> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces, gruu Content-Type: application/sdp Content-Length: ...

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

F22 ACK Carol -> Alice

ACK sips:[email protected];gr SIP/2.0 Via: SIP/2.0/TLS client.chicago.example.com:5061

;branch=z9hG4bK74bJ0

Max-Forwards: 70 From: Carol <sips:[email protected]>;tag=5893461 To: Alice <sips:[email protected]>;tag=222 Call-ID: [email protected] CSeq: 1 ACK Content-Length: 0

/* A replaces the session to the Park Server with the new

  session with C and generates a BYE to disconnect the
  Park Server. */

F23 BYE Alice -> Park Server

BYE sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061

;branch=z9hG4bK74b4N

Max-Forwards: 70 From: Alice <sips:[email protected]>;tag=098594 To: <sips:[email protected]>;tag=0111 Call-ID: [email protected] CSeq: 1 BYE Content-Length: 0

F24 200 OK Park Server -> Alice

SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061

;branch=z9hG4bK74b4N
;received=192.0.2.103

From: Alice <sips:[email protected]>;tag=098594 To: <sips:[email protected]>;tag=0111 Call-ID: [email protected] CSeq: 1 BYE Content-Length: 0

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.

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:[email protected] SIP/2.0
 Via: SIP/2.0/TLS client.atlanta.example.com:5061
branch=z9hG4bK74bf9
 Max-Forwards: 70
 From: Alice <sips:[email protected]>;tag=1234567
 To: Bob <sips:[email protected]>
 Call-ID: [email protected]
 CSeq: 1 INVITE
 Contact: <sips:[email protected];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:[email protected]>;tag=1234567
 To: Bob <sips:[email protected]>;tag=3145678
 Call-ID: [email protected]
 CSeq: 1 INVITE
 Contact: <sips:[email protected]>
 Content-Length: 0
 /* Bill decides to pick up the call. */
 F3 SUBSCRIBE  Bill -> Bob
 SUBSCRIBE sips:[email protected] SIP/2.0
 Via: SIP/2.0/TLS pc.biloxi.example.com:5061
branch=z9hG4bK74bf
 Max-Forwards: 70
 From: Bill <sips:[email protected]>;tag=8675309
 To: Bob <sips:[email protected]>
 Call-ID: [email protected]
 CSeq: 1 SUBSCRIBE
 Contact: <sips:[email protected]>
 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:[email protected]>;tag=8675309
 To: Bob <sips:[email protected]>;tag=31451098
 Call-ID: [email protected]
 CSeq: 1 SUBSCRIBE
 Content-Length: 0
 F5 NOTIFY  Bob -> Bill
 NOTIFY sips:[email protected] SIP/2.0
 Via: SIP/2.0/TLS client.biloxi.example.com:5061
branch=z9hG4bK74br
 Max-Forwards: 70
 From: Bob <sips:[email protected]>;tag=31451098
 To: Bill <sips:[email protected]>;tag=8675309
 Call-ID: [email protected]
 CSeq: 1 NOTIFY
 Contact: <sips:[email protected]>
 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:[email protected]">
 <dialog id="94992014524" call-id="[email protected]"
     local-tag="3145678" remote-tag="1234567" direction="recipient">
   <duration>1</duration>
   <local>
     <identity display="Bob">sips:[email protected]</identity>
     <target>sips:[email protected]</target>
   </local>
   <remote>
     <identity display="Alice">sips:[email protected]
                                                     </identity>
     <target>sips:[email protected];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:[email protected]>;tag=31451098
 To: Bill <sips:[email protected]>;tag=8675309
 Call-ID: [email protected]
 CSeq: 1 NOTIFY
 Contact: <sips:[email protected]>
 Content-Length: 0
 F7 INVITE  Bill -> Alice
 INVITE sips:[email protected];gr SIP/2.0
 Via: SIP/2.0/TLS pc.biloxi.example.com:5061
branch=z9hG4bK74HH
 Max-Forwards: 70
 From: Bill <sips:[email protected]>;tag=8675310
 To: Alice <sips:[email protected]>
 Call-ID: [email protected]
 CSeq: 1 INVITE
 Require: replaces
 Replaces: [email protected]
from-tag=314578;to-tag=1234567;early-only
 Contact: <sips:[email protected]>
 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:[email protected]>;tag=8675310
 To: Alice <sips:[email protected]>;tag=131256
 Call-ID: [email protected]
 CSeq: 1 INVITE
 Contact: <sips:[email protected];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. */
 F9 CANCEL Alice -> Bob
 CANCEL sips:[email protected] SIP/2.0
 Via: SIP/2.0/TLS client.atlanta.example.com:5061
branch=z9hG4bK74bf9
 Max-Forwards: 70
 From: Alice <sips:[email protected]>;tag=1234567
 To: Bob <sips:[email protected]>
 Call-ID: [email protected]
 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:[email protected]>;tag=1234567
 To: Bob <sips:[email protected]>;tag=3145678
 Call-ID: [email protected]
 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:[email protected]>;tag=1234567
 To: Bob <sips:[email protected]>;tag=3145678
 Call-ID: [email protected]
 CSeq: 1 INVITE
 Content-Length: 0
 F12 ACK Alice -> Bob
 ACK sips:[email protected] SIP/2.0
 Via: SIP/2.0/TLS client.atlanta.example.com:5061
branch=z9hG4bK83749.1
 Max-Forwards: 70
 From: Alice <sips:[email protected]>;tag=1234567
 To: Bob <sips:[email protected]>;tag=3145678
 Call-ID: [email protected]
 CSeq: 1 ACK
 Content-Length: 0
 F13 ACK  Bill -> Alice
 ACK sips:[email protected];gr SIP/2.0
 Via: SIP/2.0/TLS pc.biloxi.example.com:5061
branch=z9hG4bK7435
 Max-Forwards: 70
 From: Bill <sips:[email protected]>;tag=8675310
 To: Alice <sips:[email protected]>;tag=131256
 Call-ID: [email protected]
 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:[email protected] SIP/2.0
 Via: SIP/2.0/TLS client.atlanta.example.com:5061
branch=z9hG4bK74bf2
 Max-Forwards: 70
 To: Bill <sips:[email protected]>;tag=8675310
 From: Alice <sips:[email protected]>;tag=131256
 Call-ID: [email protected]
 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:[email protected]>;tag=8675310
 From: Alice <sips:[email protected]>;tag=131256
 Call-ID: [email protected]
 CSeq:  1 BYE
 Content-Length: 0

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   |
         |--------------->|
         |                |

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:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061

;branch=z9hG4bK74bf9

Max-Forwards: 70 From: Alice <sips:[email protected]>;tag=1234567 To: Bob <sips:[email protected]> Call-ID: [email protected] CSeq: 1 INVITE Contact: <sips:[email protected]> 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:[email protected]>;tag=1234567 To: Bob <sips:[email protected]>;tag=982039i4 Call-ID: [email protected] CSeq: 1 INVITE Content-Length: 0

F3 ACK Alice -> Bob

ACK sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061

;branch=z9hG4bK74bf9

Max-Forwards: 70 From: Alice <sips:[email protected]>;tag=1234567 To: Bob <sips:[email protected]>;tag=982039i4 Call-ID: [email protected] CSeq: 1 ACK Content-Length: 0

F4 SUBSCRIBE Alice -> Bob

SUBSCRIBE sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061

;branch=z9hG4bK74b8G

Max-Forwards: 70 From: Alice <sips:[email protected]>;tag=837348234 To: Bob <sips:[email protected]> Call-ID: [email protected] CSeq: 1 SUBSCRIBE Contact: sips:[email protected] 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:[email protected]>;tag=837348234 To: Bob <sips:[email protected]>;tag=341123 Call-ID: [email protected] Expires: 60 CSeq: 1 SUBSCRIBE Contact: sips:[email protected] Content-Length: 0

F6 NOTIFY Bob -> Alice

NOTIFY sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061

;branch=z9hG4bK74bn2

Max-Forwards: 70 From: Bob <sips:[email protected]>;tag=341123 To: Alice <sips:[email protected]>;tag=837348234 Call-ID: [email protected] CSeq: 1 NOTIFY Contact: <sips:[email protected]> 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:[email protected]">
  <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:[email protected]>;tag=341123 To: Alice <sips:[email protected]>;tag=837348234 Call-ID: [email protected] CSeq: 1 NOTIFY Content-Length: 0

/* Bob is now available. */

F8 NOTIFY Bob -> Alice

NOTIFY sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061

;branch=z9hG4bK74bVi

Max-Forwards: 70 From: Bob <sips:[email protected]>;tag=341123

To: Alice <sips:[email protected]>;tag=837348234 Call-ID: [email protected] CSeq: 2 NOTIFY Event: dialog Subscription-State: active;expires=27 Contact: <sips:[email protected]> 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:[email protected]">
  <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:[email protected]>;tag=341123 To: Alice <sips:[email protected]>;tag=837348234 Call-ID: [email protected] CSeq: 2 NOTIFY Content-Length: 0

F10 INVITE Alice -> Bob

INVITE sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061

;branch=z9hG4bK74bfq

Max-Forwards: 70 From: Alice <sips:[email protected]>;tag=f23fkg14k To: Bob <sips:[email protected]> Call-ID: [email protected] CSeq: 1 INVITE Contact: <sips:[email protected]> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ...

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:[email protected]>;tag=f23fkg14k To: Bob <sips:[email protected]>;tag=23431 Call-ID: [email protected] CSeq: 1 INVITE Contact: <sips:[email protected]> 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:[email protected]>;tag=f23fkg14k To: Bob <sips:[email protected]>;tag=23431 Call-ID: [email protected] CSeq: 1 INVITE Contact: <sips:[email protected]> 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

F13 ACK Alice -> Bob

ACK sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061

;branch=z9hG4bK74bLBJ

Max-Forwards: 70 From: Alice <sips:[email protected]>;tag=f23fkg14k To: Bob <sips:[email protected]>;tag=23431 Call-ID: [email protected] CSeq: 1 ACK Content-Length: 0

F14 NOTIFY Bob -> Alice

NOTIFY sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061

;branch=z9hG4bK4bnd2

Max-Forwards: 70 From: Bob <sips:[email protected]>;tag=341123 To: Alice <sips:[email protected]>;tag=837348234 Call-ID: [email protected] CSeq: 3 NOTIFY Contact: <sips:[email protected]> 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:[email protected]">
  <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:[email protected]>;tag=341123 To: Alice <sips:[email protected]>;tag=837348234

Call-ID: [email protected] CSeq: 3 NOTIFY Content-Length: 0

/* Alice terminates the subscription. */

F16 SUBSCRIBE Alice -> Bob

SUBSCRIBE sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061

;branch=z9hG4bK474b8

Max-Forwards: 70 From: Alice <sips:[email protected]>;tag=837348234 To: Alice <sips:[email protected]>;tag=837348234 Call-ID: [email protected] CSeq: 2 SUBSCRIBE Contact: sips:[email protected] 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:[email protected]>;tag=837348234 To: Bob <sips:[email protected]>;tag=341123 Call-ID: [email protected] Expires: 0 CSeq: 2 SUBSCRIBE Contact: sips:[email protected] Content-Length: 0

F18 NOTIFY Bob -> Alice

NOTIFY sips:[email protected] SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061

;branch=z9hG4bKb5n2j

Max-Forwards: 70 From: Bob <sips:[email protected]>;tag=341123 To: Alice <sips:[email protected]>;tag=837348234 Call-ID: [email protected]

CSeq: 4 NOTIFY Contact: <sips:[email protected]> 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:[email protected]">
  <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:[email protected]>;tag=341123 To: Alice <sips:[email protected]>;tag=837348234 Call-ID: [email protected] CSeq: 4 NOTIFY Content-Length: 0

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:[email protected] 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:[email protected]>
  Call-ID: 1234560183434
  CSeq: 1 REFER
  Refer-To: <sips:[email protected]>
  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:[email protected]>;tag=314159
  Call-ID: 1234560183434
  Contact: <sips:[email protected]>
  CSeq: 1 REFER
  Refer-Sub: false
  Content-Length: 0
  F3 INVITE Bob -> Carol
  INVITE sips:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashdK9
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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
  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:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=928287
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=928287
  Call-ID: [email protected]
  CSeq: 1 INVITE
  Contact: <sips:[email protected]>
  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:[email protected] SIP/2.0
  Via: SIP/2.0/TLS client.biloxi.example.com:5061
   ;branch=z9hG4bKnashd43
  Max-Forwards: 70
  From: Bob <sips:[email protected]>;tag=8675309
  To: Carol <sips:[email protected]>;tag=928287
  Call-ID: [email protected]
  CSeq: 1 ACK
  Content-Length: 0
  /* Bob and Carol now have established a session. */

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.

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

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.

References

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.

RFC4579 Johnston, A. and O. Levin, "Session Initiation Protocol

            (SIP) Call Control - Conferencing for User Agents",
            BCP 119, RFC 4579, August 2006.

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.

Authors' Addresses

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

EMail: [email protected]

Robert J. Sparks Tekelec

EMail: [email protected]

Chris Cunningham Cisco Systems

EMail: [email protected]

Steve Donovan Cisco Systems

EMail: [email protected]

Kevin Summers Sonus Plano, TX 75093

EMail: [email protected]

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 [email protected].