(rfc5359)
[ RFC Index | RFC Search | Usenet FAQs | Web FAQs | Documents | Cities ]

Alternate Formats: rfc5359.txt

RFC 5359 - Session Initiation Protocol Service Examples


    Search the Archives
Display RFC by number
    


RFC5359


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.

Table of Contents

   1. Overview ........................................................3
      1.1. Legend for Message Flows ...................................4
   2. Service Examples ................................................6
      2.1. Call Hold ..................................................6
      2.2. Consultation Hold .........................................19
      2.3. Music on Hold .............................................38
      2.4. Transfer - Unattended .....................................50
      2.5. Transfer - Attended .......................................58
      2.6. Transfer - Instant Messaging ..............................71
      2.7. Call Forwarding Unconditional .............................77
      2.8. Call Forwarding - Busy ....................................84
      2.9. Call Forwarding - No Answer ...............................92
      2.10. 3-Way Conference - Third Party Is Added .................101
      2.11. 3-Way Conference - Third Party Joins ....................107
      2.12. Find-Me .................................................113
      2.13. Call Management (Incoming Call Screening) ...............125
      2.14. Call Management (Outgoing Call Screening) ...............132
      2.15. Call Park ...............................................135
      2.16. Call Pickup .............................................147
      2.17. Automatic Redial ........................................154
      2.18. Click to Dial ...........................................163
   3. Security Considerations .......................................166
   4. Acknowledgements ..............................................166
   5. References ....................................................167
      5.1. Normative References .....................................167
      5.2. Informative References ...................................168

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

1.1.  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. */

2.  Service Examples

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

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

      F2 INVITE Proxy 1 -> Bob

      INVITE sips:bob@client.biloxi.example.com SIP/2.0
      Via: SIP/2.0/TLS ss1.example.com:5061
       ;branch=z9hG4bK83749.1
      Via: SIP/2.0/TLS client.atlanta.example.com:5061

       ;branch=z9hG4bK74bf9
       ;received=192.0.2.103
      Record-Route: <sips:ss1.example.com;lr>
      Max-Forwards: 69
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>
      Call-ID: 12345601@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:alice@client.atlanta.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

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

      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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>
      Call-ID: 12345601@atlanta.example.com
      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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159

      Call-ID: 12345601@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345601@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345601@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345601@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      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:bob@client.biloxi.example.com 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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345601@atlanta.example.com
      CSeq: 1 ACK
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Length: 0

      F9 ACK Proxy 1 -> Bob

      ACK sips:bob@client.biloxi.example.com 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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345601@atlanta.example.com
      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:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>;+sip.rendering="no"
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      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:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>;+sip.rendering="no"
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:alice@client.atlanta.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=alice 2890844526 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:alice@client.atlanta.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=alice 2890844526 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:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 1 ACK

      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Length: 0

      F15 ACK Proxy 1 -> Alice

      ACK sips:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      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:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 2 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=bob 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:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 2 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=bob 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 2 INVITE

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

      v=0
      o=alice 2890844526 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 2 INVITE
      Contact: <sips:alice@client.atlanta.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=alice 2890844526 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:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 2 ACK
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Length: 0

      F21 ACK Proxy 1 -> Alice

      ACK sips:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      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:bob@client.biloxi.example.com 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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345601@atlanta.example.com
      CSeq: 2 BYE
      Content-Length: 0

      F23 BYE Proxy 1 -> Bob

      BYE sips:bob@client.biloxi.example.com 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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345601@atlanta.example.com
      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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345601@atlanta.example.com
      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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345601@atlanta.example.com
      CSeq: 2 BYE
      Content-Length: 0

2.2.  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:bob@biloxi.example.com SIP/2.0
      Via: SIP/2.0/TLS client.atlanta.example.com:5061
       ;branch=z9hG4bK74bf9
      Max-Forwards: 70

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

      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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=bob 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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=bob 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:bob@client.biloxi.example.com 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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 ACK
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Length: 0

      F9 ACK Proxy 1 -> Bob

      ACK sips:bob@client.biloxi.example.com 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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      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:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>;+sip.rendering="no"
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      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:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>;+sip.rendering="no"
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:alice@client.atlanta.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=alice 2890844526 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:bob@biloxi.example.com>;tag=314159

      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:alice@client.atlanta.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=alice 2890844526 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:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 ACK
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Length: 0

      F15 ACK Proxy 1 -> Alice

      ACK sips:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567

      Call-ID: 12345600@atlanta.example.com
      CSeq: 1 ACK
      Content-Length: 0

      F16 INVITE Bob -> Proxy 1

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

      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:carol@client.chicago.example.com 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:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>
      Call-ID: 9876543210@biloxi.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY

      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      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:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>
      Call-ID: 9876543210@biloxi.example.com
      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:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=456654
      Call-ID: 9876543210@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:carol@client.chicago.example.com>
      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:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=456654
      Call-ID: 9876543210@biloxi.example.com
      CSeq: 1 INVITE
      Contact: <sips:carol@client.chicago.example.com>
      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:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=456654
      Call-ID: 9876543210@biloxi.example.com
      CSeq: 1 INVITE
      Contact: <sips:carol@client.chicago.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=carol 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:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=456654

      Call-ID: 9876543210@biloxi.example.com
      CSeq: 1 INVITE
      Contact: <sips:carol@client.chicago.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=carol 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:carol@client.chicago.example.com 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:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=456654
      Call-ID: 9876543210@biloxi.example.com
      CSeq: 1 ACK
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Length: 0

      F24 ACK Proxy 1 -> Carol

      ACK sips:carol@client.chicago.example.com 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:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=456654
      Call-ID: 9876543210@biloxi.example.com
      CSeq: 1 ACK

      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Length: 0

      F25 BYE Bob -> Proxy 1

      BYE sips:carol@client.chicago.example.com 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:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=456654
      Call-ID: 9876543210@biloxi.example.com
      CSeq: 2 BYE
      Content-Length: 0

      F26 BYE Proxy 1 -> Carol

      BYE sips:carol@client.chicago.example.com 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:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=456654
      Call-ID: 9876543210@biloxi.example.com
      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:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=456654

      Call-ID: 9876543210@biloxi.example.com
      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:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=456654
      Call-ID: 9876543210@biloxi.example.com
      CSeq: 2 BYE
      Content-Length: 0

      /* Bob takes the call off hold. */

      F29 INVITE Bob -> Proxy 1

      INVITE sips:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      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:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=bob 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 INVITE
      Contact: <sips:alice@client.atlanta.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=alice 2890844526 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 INVITE
      Contact: <sips:alice@client.atlanta.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=alice 2890844526 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:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 ACK
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces

      Content-Length: 0

      F34 ACK Proxy 1 -> Alice

      ACK sips:alice@client.atlanta.example.com 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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 ACK
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Length: 0

      F35 BYE Alice -> Proxy 1

      BYE sips:bob@client.biloxi.example.com 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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 BYE
      Content-Length: 0

      F36 BYE Proxy 1 -> Bob

      BYE sips:bob@client.biloxi.example.com 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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 BYE
      Content-Length: 0

      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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 BYE
      Content-Length: 0

      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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345600@atlanta.example.com
      CSeq: 2 BYE
      Content-Length: 0

2.3.  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:bob@biloxi.example.com SIP/2.0
     Via: SIP/2.0/TLS client.atlanta.example.com:5061
      ;branch=z9hG4bK74bf9
     Max-Forwards: 70
     From: Alice <sips:alice@atlanta.example.com>;tag=1234567
     To: Bob <sips:bob@biloxi.example.com>
     Call-ID: 12345600@atlanta.example.com
     CSeq: 1 INVITE
     Contact: <sips:a8342043f@atlanta.example.com;gr>
     Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY

     Supported: replaces, gruu
     Content-Type: application/sdp
     Content-Length: ...

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

     F2 180 Ringing Bob -> Alice

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

     F3 200 OK Bob -> Alice

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

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

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

     F4 ACK Alice -> Bob

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

     /* Bob places Alice on hold. */

     F5 INVITE Bob -> Alice

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

     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:alice@atlanta.example.com>;tag=1234567
     From: Bob <sips:bob@biloxi.example.com>;tag=23431
     Call-ID: 12345600@atlanta.example.com
     CSeq: 712 INVITE
     Contact: <sips:a8342043f@atlanta.example.com;gr>
     Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
     Supported: replaces, gruu
     Content-Type: application/sdp
     Content-Length: ...

     v=0
     o=alice 2890844526 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:a8342043f@atlanta.example.com;gr SIP/2.0
     Via: SIP/2.0/TLS client.biloxi.example.com:5061
      ;branch=z9hG4bKq874b
     To: Alice <sips:alice@atlanta.example.com>;tag=1234567
     From: Bob <sips:bob@biloxi.example.com>;tag=23431
     Call-ID: 12345600@atlanta.example.com
     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:music@server.example.com SIP/2.0
     Via: SIP/2.0/TLS client.biloxi.example.com:5061
      ;branch=z9hG4bKnashds9

     Max-Forwards: 70
     From: Bob <sips:bob@biloxi.example.com>;tag=02134
     To: Music Server <sips:music@server.example.com>
     Call-ID: 4802029847@biloxi.example.com
     CSeq: 1 REFER
   <allOneLine>
     Refer-To: <sips:a8342043f@atlanta.example.com;gr?Replaces=
     12345600%40atlanta.example.com%3Bfrom-tag%3D23431
     %3Bto-tag%3D1234567&Require=replaces>
   </allOneLine>
     Referred-By: <sips:bob@biloxi.example.com>
     Contact: <sips:bob@client.biloxi.example.com>
     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:bob@biloxi.example.com>;tag=02134
     To: Music Server <sips:music@server.example.com>;tag=56323
     Call-ID: 4802029847@biloxi.example.com
     Contact: <sips:music@server.example.com>
     CSeq: 1 REFER
     Content-Length: 0

     F10 NOTIFY Music Server -> Bob

     NOTIFY sips:bob@client.biloxi.example.com SIP/2.0
     Via: SIP/2.0/TLS server.example.com:5061
      ;branch=z9hG4bK74bT6
     To: Bob <sips:bob@biloxi.example.com>;tag=02134
     Max-Forwards: 70
     From: Music Server <sips:music@server.example.com>;tag=56323
     Call-ID: 4802029847@biloxi.example.com
     CSeq: 1 NOTIFY
     Event: refer
     Subscription-State: active;expires=60
     Contact: <sips:music@server.example.com>
     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:bob@biloxi.example.com>;tag=02134
     From: Music Server <sips:music@server.example.com>;tag=56323
     Call-ID: 4802029847@biloxi.example.com
     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:a8342043f@atlanta.example.com;gr SIP/2.0
     Via: SIP/2.0/TLS server.example.com:5061
      ;branch=z9hG4bK74rf
     Max-Forwards: 70
     From: <sips:music@server.example.com>;tag=0111
     To: <sips:a8342043f@atlanta.example.com;gr>
     Call-ID: a5-75-34-12-76@server.example.com
     CSeq: 1 INVITE
     Referred-By: <sips:bob@biloxi.example.com>
     Contact: <sips:music@server.example.com>;automaton
      ;+sip.byeless;+sip.rendering="no"
     Require: replaces
     Replaces: 12345600@atlanta.example.com
      ;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:music@server.example.com>;tag=0111
     To: <sips:a8342043f@atlanta.example.com;gr>;tag=098594
     Call-ID: a5-75-34-12-76@server.example.com
     CSeq: 1 INVITE
     Contact: <sips:a8342043f@atlanta.example.com;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:a8342043f@atlanta.example.com;gr SIP/2.0
     Via: SIP/2.0/TLS server.example.com:5061
      ;branch=z9hG4bK7rfF
     Max-Forwards: 70
     From: <sips:music@server.example.com>;tag=0111
     To: <sips:a8342043f@atlanta.example.com;gr>;tag=098594
     Call-ID: a5-75-34-12-76@server.example.com
     CSeq: 1 ACK
     Content-Length: 0

     F15 BYE Alice -> Bob

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

     CSeq: 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:alice@atlanta.example.com>;tag=1234567
     To: Bob <sips:bob@biloxi.example.com>;tag=23431
     Call-ID: 12345600@atlanta.example.com
     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:bob@client.biloxi.example.com SIP/2.0
     Via: SIP/2.0/TLS server.example.com:5061
      ;branch=z9hG4bK74bf9
     To: Bob <sips:bob@biloxi.example.com>;tag=02134
     Max-Forwards: 70
     From: Music Server <sips:music@server.example.com>;tag=56323
     Call-ID: 4802029847@biloxi.example.com
     CSeq: 2 NOTIFY
     Event: refer
     Subscription-State: terminated;reason=noresource
     Contact: <sips:music@server.example.com>
     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:music@server.example.com>;tag=0111
     To: <sips:a8342043f@atlanta.example.com;gr>;tag=098594
     Call-ID: a5-75-34-12-76@server.example.com
     CSeq: 1 INVITE
     Contact: <sips:a8342043f@atlanta.example.com;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:bob@biloxi.example.com>;tag=02134
     From: Music Server <sips:music@server.example.com>;tag=56323
     Call-ID: 4802029847@biloxi.example.com
     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:a8342043f@atlanta.example.com;gr SIP/2.0
     Via: SIP/2.0/TLS client.biloxi.example.com:5061
      ;branch=z9hG4bK74bf9
     From: Bob <sips:bob@biloxi.example.com>;tag=4i323pr
     To: Alice <sips:a8342043f@atlanta.example.com;gr>
     Call-ID: uioewrjk2k2were
     CSeq: 42121 INVITE
     Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
      SUBSCRIBE, NOTIFY
     Replaces: a5-75-34-12-76@server.example.com
      ;to-tag=098594;from-tag=0111
     Contact: <sips:bob@client.biloxi.example.com>
     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:bob@biloxi.example.com>;tag=4i323pr
     To: Alice <sips:a8342043f@atlanta.example.com;gr>;tag=6654323
     Call-ID: uioewrjk2k2were
     CSeq: 42121 INVITE
     Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
      SUBSCRIBE, NOTIFY
     Contact: <sips:alice@client.atlanta.example.com>
     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:alice@client.atlanta.example.com SIP/2.0
     Via: SIP/2.0/TLS client.biloxi.example.com:5061
      ;branch=z9hG4bKj974bf9
     From: Bob <sips:bob@biloxi.example.com>;tag=4i323pr
     To: Alice <sips:a8342043f@atlanta.example.com;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:music@server.example.com SIP/2.0
     Max-Forwards: 70
     Via: SIP/2.0/TLS client.atlanta.example.com:5061
      ;branch=z9hG4bK74rf

     To: <sips:music@server.example.com>;tag=0111
     From: <sips:a8342043f@atlanta.example.com;gr>;tag=098594
     Call-ID: a5-75-34-12-76@server.example.com
     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:music@server.example.com>;tag=0111
     From: <sips:a8342043f@atlanta.example.com;gr>;tag=098594
     Call-ID: a5-75-34-12-76@server.example.com
     CSeq: 15 BYE
     Content-Length: 0

     /* Normal media session between Alice and Bob is resumed. */

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

      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:bob@biloxi.example.com>;tag=314159

      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:alice@client.atlanta.example.com>
      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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:alice@client.atlanta.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

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

      F4 ACK Bob -> Alice

      ACK sips:alice@client.atlanta.example.com SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds2
      Max-Forwards: 70
      From: Bob <sips:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      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:bob@client.biloxi.example.com SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds8
      Max-Forwards: 70
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345601@atlanta.example.com
      CSeq: 101 REFER
      Refer-To: <sips:carol@chicago.example.com>
      Referred-By: <alice@atlanta.example.com>
      Contact: <sips:alice@client.atlanta.example.com>
      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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345601@atlanta.example.com
      Contact: <sips:bob@client.biloxi.example.com>
      CSeq: 101 REFER
      Content-Length: 0

      F7 NOTIFY Bob -> Alice

      NOTIFY sips:alice@client.atlanta.example.com SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds32
      Max-Forwards: 70
      From: Bob <sips:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 2 NOTIFY
      Event: refer
      Subscription-State: active;expires=60
      Contact: <sips:bob@client.biloxi.example.com>
      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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 2 NOTIFY
      Content-Length: 0

      /* Alice now disconnects with Bob. */

      F9 BYE Alice -> Bob

      BYE sips:bob@client.biloxi.example.com SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds43
      Max-Forwards: 70
      From: Alice <sips:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345601@atlanta.example.com
      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:alice@atlanta.example.com>;tag=1234567
      To: Bob <sips:bob@biloxi.example.com>;tag=314159
      Call-ID: 12345601@atlanta.example.com
      CSeq: 102 BYE
      Content-Length: 0

      /* Bob attempts the transfer to Carol. */

      F11 INVITE Bob -> Carol

      INVITE sips:carol@chicago.example.com SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds1
      Max-Forwards: 70
      From: Bob <sips:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>
      Call-ID: 7436222@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:bob@client.biloxi.example.com>
      Referred-By: <alice@atlanta.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

      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:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=928287
      Call-ID: 7436222@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:carol@client.chicago.example.com>
      Content-Length: 0

      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:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=928287

      Call-ID: 7436222@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:carol@client.chicago.example.com>
      Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
      Supported: replaces
      Content-Type: application/sdp
      Content-Length: ...

      v=0
      o=carol 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:carol@client.chicago.example.com SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds9
      Max-Forwards: 70
      From: Bob <sips:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=928287
      Call-ID: 7436222@atlanta.example.com
      CSeq: 1 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:alice@client.atlanta.example.com SIP/2.0
      Via: SIP/2.0/TLS client.biloxi.example.com:5061
       ;branch=z9hG4bKnashds67
      Max-Forwards: 70
      From: Bob <sips:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 3 NOTIFY
      Event: refer
      Subscription-State: terminated;reason=noresource
      Contact: <sips:bob@client.biloxi.example.com>
      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:bob@biloxi.example.com>;tag=8675309
      To: Carol <sips:carol@chicago.example.com>;tag=928287
      Call-ID: 7436222@atlanta.example.com
      CSeq: 1 INVITE
      Contact: <sips:carol@client.chicago.example.com>
      Content-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:bob@biloxi.example.com>;tag=314159
      To: Alice <sips:alice@atlanta.example.com>;tag=1234567
      Call-ID: 12345601@atlanta.example.com
      CSeq: 3 NOTIFY
      Content-Length: 0

2.5.  Transfer - Attended

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

             |            200 OK F20         |
             |<------------------------------|
             |             ACK F21           |
             |------------------------------>|
             |               RTP             |
             |<=============================>|
             |                |    BYE F22   |
             |                |<-------------|
             |                |  200 OK F23  |
             |                |------------->|
             |   NOTIFY F24   |              |
             |--------------->|              |
             |   200 OK F25   |              |
             |<---------------|              |
             |    BYE F26     |              |
             |<---------------|              |
             |   200 OK F27   |              |
             |--------------->|              |

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

   Message Details

      F1 INVITE Alice -> Bob

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

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

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

      F2 180 Ringing Bob -> Alice

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

      F3 200 OK Bob -> Alice

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

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

      F4 ACK Alice -> Bob

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

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

      F5 INVITE Bob -> Alice

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

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

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

      F6 200 OK Alice -> Bob

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

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

      F7 ACK Bob -> Alice

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

      /* Bob calls Carol. */

      F8 INVITE Bob -> Carol

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

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

      F9 180 Ringing Carol -> Bob

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

      F10 200 OK Carol -> Bob

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

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

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

      F11 ACK Bob -> Carol

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

      /* Bob puts Carol on hold. */

      F12 INVITE Bob -> Carol

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