Internet Engineering Task Force                          Alan Johnston
Internet Draft                                                WorldCom
Document: draft-ietf-sip-service-examples-01.txt draft-ietf-sip-service-examples-02.txt         Robert Sparks
Category: Informational                               Chris Cunningham
March
June 2001                                                Steve Donovan
Expires: September December 2001                                     dynamicsoft
                                                         Kevin Summers
                                                                 Sonus

                          SIP Service Examples

   Status of this Memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026[1].

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that other
   groups may also distribute working documents as Internet-Drafts.
   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time. It is inappropriate to use Internet- Drafts as reference
   material or to cite them other than as "work in progress."
   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt
   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   Abstract

   This informational document gives examples of SIP (Session Initiation
   Protocol) services.  This covers most features offered in so-called
   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 third party call control (3pcc) extensions such as the REFER method. method and Replaces header. These features
   are not intented 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.1Legend
   1.1    Legend for Message Flows ......................................4
   1.2Document History ..............................................4 Flows...................................4
   1.2    Document History...........................................4
   2      IP Telephony Services Features Call Flows..................5
   2.1Call Hold .....................................................5
   2.2Music on Hold/Call Park ......................................15
   2.3Consultation Hold ............................................22
   2.4Unattended Transfer ..........................................36
   2.5Attended Transfer ............................................42
   2.6Call Flows..................6
   2.1    Call Hold..................................................6
   2.2    Consultation Hold.........................................16
   2.3    Music On Hold.............................................30
   2.4    Unattended Transfer.......................................37
   2.5    Attended Transfer.........................................43
   2.6    Call Forwarding Unconditional ................................51
   2.7Call Unconditional.............................54
   2.7    Call Forwarding - Busy .......................................56
   2.8Call Busy....................................59
   2.8    Call Forwarding - No Answer ..................................62
   2.93-way Conference .............................................69 Answer...............................65
   2.9    3-way Conference..........................................72
   2.10   Single Line Extension.....................................69 Extension.....................................72
   2.11   Find-Me...................................................70   Find-Me...................................................73
   2.12   Call Management (Incoming Call Screening).................79 Screening).................82
   2.13   Call Management (Outgoing Call Screening).................83 Screening).................86
   2.14   Call Pickup...............................................86 Park.................................................89
   2.15   Call Pickup...............................................97
   3      References................................................95      References...............................................106
   4      Author's Addresses........................................96 Addresses.......................................107

1  Overview

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

         Call Hold                     Music on Hold/Call Park Hold
         Unattended Transfer           Consultation Hold
         Unconditional Call Forwarding Attended Transfer
         No Answer Call Forwarding     Busy Call Forwarding
         Single-Line Extension         3-way Call
         Incoming Call Screening       Find-Me
         Call Pickup                   Call Park
         Outgoing Call Screening

   It is the hope of the authors that this document will be useful for
   SIP implementors, users, designers, and protocol researchers alike
   and will help further the goal of a standard SIP implementation for
   IP Telephony.  It is envisioned that as changes to the standard and
   additional RFCs are added that this document will reflect those
   changes and represent the current state of a standard SIP IP
   Telephony implementation.

   These flows use SIP as defined by RFC 2543 [2] with some noted
   updates for RFC 2543bis. Note that this document is informational,
   and nothing stated here should be taken as normative.  RFC 2543 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) or Back-to-Back User Agents (B2BUA) may be
   more appropriate in some circumstances.

   These flows assume the functionality described in the SIP Call Flow
   Examples document [2], [3], which explores basic behavior and PSTN
   internetworking. Some of the scenarios described herein make use of
   "SIP Call Control Transfer" [3].
   the SIP method extension REFER [4] and the SIP header extension
   Replaces [5], the SIP header extension Accept-Contact [6], and some
   of the concepts in the 3pcc (third party call control) document [7].

   These flows were prepared assuming a network of proxies, registrars,
   PSTN gateways, and other SIP servers that have a pre-established
   trust relationship with each other, secured through other means than
   SIP. User agents wishing to use the services in this network are
   required to authenticate themselves with an edge proxy using SIP
   Digest. To improve the clarity of this document, authentication of
   User Agents is not explicitly shown in all flows, except where
   authentication directly relates to the service example.

   These flows use SIP as defined by RFC 2543 [4] with some noted
   updates for RFC 2543bis. Note that this document is informational,
   and nothing stated here should be taken as normative.  RFC 2543 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 Back-to-
   Back User Agents (B2BUA) may be more appropriate in some
   circumstances.

   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.

1.1       Legend for Message Flows

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

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

   Messages with parenthesis around 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.
   Comments in the message details are shown in the following form:

          /* Comments. */

1.2       Document History

   The first version of this document was the Internet-Draft
   "draft-sparks-sip-service-examples.txt" October 1999.

   The next version was combined with the SIP Telephony Call Flows
   document into the "draft-ietf-sip-call-flows-00.txt" April 2000.

   This version is based on Section 7 of that document with many of the
   examples extensively rewritten using the REFER method.

1.3       Changes since 00

   - Moddified all REFER flows to include 202 Accepted and NOTIFY
     result message.

   - Removed "Telephony" from title of document.

   - Added note on 2.9 on use of REFER to exit 3-way conference.

   - Modified Music on Hold/Call Park flow (2.2).

   - Modified order of messages in transfers (2.4 and 2.5) to more
     closely resemble PSTN experience.

   - Added Call Pickup flow (2.13).

   - Added editorial notes on usefulness of Replaces header.

2  IP Telephony Services Features Call Flows

   These

1.4       Changes since 01
   - Added Replaces header to flows.

   - Changed handling of call flows show how hold.

   - Added Contact and Referred-By headers and ref parameters to REFER
   messages.

   - Changed some Contacts, Routes, and Request-URIs to IP addresses.

   - Incremented o= line when SDP is updated with hold.

   - Added From tags throughout.

   - Renamed Music On Hold/Call Park to Call Park and added new Music On
   Hold call flow using 3pcc.

2  IP Telephony Services Features Call Flows

   These call flows show how a number of standard telephony features can
   be implemented using SIP.  They are not meant to represent a complete
   set.  Some calls make use of SIP Call Control Extensions[3]. extensions.

2.1       Call Hold

        User A           Proxy          User B
          |                |              |
          |    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 (c=0) F10
          |INVITE (c=0) 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  |<-------------|
          |<---------------|              |
          |                |              |

   User A calls User B, User B places call on hold.  User B then takes
   call off hold.  Note that either party can take the other party off
   of hold. User A hangs up call.  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.

   Message Details

   F1 INVITE A -> Proxy 1

   INVITE sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345601@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F2 INVITE Proxy 1 -> B

   INVITE sip:UserB@there.com sip:UserB@110.111.112.113 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345601@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F3 (100 Trying) Proxy 1 -> A

   SIP/2.0 100 Trying
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345601@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F4 180 Ringing B -> Proxy 1

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 1 INVITE
   Content Length:0

   F5 180 Ringing Proxy 1 -> A

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 1 INVITE
   Content Length: 0

   F6 200 OK B -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F7 200 OK Proxy 1 -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F8 ACK A -> Proxy 1

   ACK sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   Route: <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F9 ACK Proxy 1 -> B

   ACK sip:UserB@there.com sip:UserB@110.111.112.113 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 1 ACK
   Content-Length: 0

   /* User B places User A on hold.  Note that the version is
      incremented in the o= field of the SDP  */

   F10 INVITE B -> Proxy 1

   INVITE sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   Route: <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 2890844528 2890844528 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 0.0.0.0
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F11 INVITE Proxy 1 -> A

   INVITE sip:UserA@here.com sip:UserA@100.101.102.103 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 2890844528 2890844528 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 0.0.0.0
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   /* A replies with normal SDP */

   F12 200 OK A -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 0.0.0.0 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F13 200 OK Proxy 1 -> B

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 0.0.0.0 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000
   F14 ACK B -> Proxy 1

   ACK sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   Route: <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F15 ACK Proxy 1 -> A

   ACK sip:UserA@here.com sip:UserA@100.101.102.103 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 1 ACK
   Content-Length: 0

   /* User B takes the call off hold */

   F16 INVITE B -> Proxy 1

   INVITE sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   Route: <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 2 INVITE
   Contact: LittleGuy <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 2890844529 2890844529 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F17 INVITE Proxy 1 -> A
   INVITE sip:UserA@here.com sip:UserA@100.101.102.103 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 2 INVITE
   Contact: LittleGuy <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 2890844529 2890844529 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F18 200 OK A -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 2 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F19 200 OK Proxy 1 -> B

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 2 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F20 ACK B -> Proxy 1

   ACK sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   Route: <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 2 ACK
   Content-Length: 0

   F21 ACK Proxy 1 -> A

   ACK sip:UserA@here.com sip:UserA@100.101.102.103 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 2 ACK
   Content-Length: 0

   /* RTP Media stream re-established.  User A disconnects. */

   F22 BYE A -> Proxy 1

   BYE sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   Route: <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 2 BYE
   Content-Length: 0
   F23 BYE Proxy 1 -> B

   BYE sip:UserB@there.com sip:UserB@110.111.112.113 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 2 BYE
   Content-Length: 0

   F24 200 OK B -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 2 BYE
   Content-Length: 0

   F25 200 OK Proxy 1 -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 2 BYE
   Content-Length: 0

2.2       Music on Hold/Call Park       Consultation Hold

       User A           Proxy          User B   Music/Park Server              User C
          |                |              |                   |
          |    INVITE F1   |              |
          |------------->|              |
          |180 Ringing F2|                   |
          |<-------------|
          |--------------->|   INVITE F2  |                   |  200 OK F3
          |                |------------->|                   |
          |<-------------|
          |(100 Trying) F3 |              |    ACK F4                   |
          |<---------------|180 Ringing F4|                   |
          |------------->|
          |                |<-------------|                   |  RTP Media
          | 180 Ringing F5 |
          |<============>|              |                   |      User B Parks Call
          |<---------------|  200 OK F6   |                   |
          |   REFER Refer-To: A F5                |<-------------|                   |              |------------->|
          |    200 OK F7   |    202 F6              |                   |              |------------->|
          |<---------------|              |  INVITE F7 Referred-By: B                   |
          |<----------------------------|
          |          200 OK     ACK F8     |
          |---------------------------->|              |                   |
          |--------------->|     ACK F9   |
          |<----------------------------|
          |           RTP Music                   |
          |<===========================>|
          |     BYE F10                |------------->|                   |
          |
          |------------->|  NOTIFY     Both way RTP Established  |                   |
          |<=============================>|                   |
          |                |INVITE (c=0) F10                  |
          |INVITE (c=0) F11|<-------------|                   |
          |<---------------|              |                   |
          |    200 OK F12  |              |                   |
          |--------------->|   200 OK F11 F13 |                   |
          |                |------------->|                   |
          |                |     ACK F14  |                   |
          |                |<-------------|                   |
          |    ACK F15     |              |                   |
          |<---------------|              |                   |
          |         No RTP Sent!          |                   |
          |                |   INVITE F16 |                   |
          |                |<-------------|                   |
          |                |              |    INVITE F17     |
          |                |--------------------------------->|
          |                |(100 Trying) F18                  |
          |                |------------->|                   |
          |                |              | 180 Ringing F19   |
          |                |<---------------------------------|
          |                | 180 Ringing F20                  |
          |                |------------->|                   |
          |                |              |    200 OK F13 F21     |
          |                |<---------------------------------|
          |                |   200 OK F22 |                   |
          |                |------------->|                   |   User B picks up the call
          |                |    ACK F23   |                   |
          |                |<-------------|                   |
          |                |              |      ACK F24      |
          |                |--------------------------------->|
          |                |         Both way RTP Established |
          |                |              |<=================>|
          |                |   BYE F25    |                   |
          |                |<-------------|                   |
          |                |              |       BYE F26     |
          |                |--------------------------------->|
          |                |              |    200 OK F27     |
          |                |<---------------------------------|
          |                |   200 OK F28 |                   |
          |                |------------->|                   |
          |                |   INVITE F14 F29 |                   |
          |    INVITE F30  |<-------------|                   |
          |<---------------|              |                   |
          |    200 F15 OK F31  |              |                   |
          |--------------->|   200 OK F32 |                   |
          |                |------------->|                   |
          |                |     ACK F16 F33  |                   |
          |                |<-------------|                   |
          |    ACK F34     |              |                   |
          |<---------------|              |                   |
          |     Both way RTP Media Established  |                   |
          |<============>|
          |<=============================>|                   |
          |    BYE F17 F35     |              |                   |
          |--------------->|    BYE F36   |                   |
          |                |------------->|                   |
          |
          |---------------------------->|                |   200 OK F18 F37 |
          |<----------------------------|                   |       No more RTP Music
          |

   In this example, User A calls User B.  User B then parks the call at
   the Music/Park Server by sending a REFER to the Music/Park Server.

   The server sends an INVITE to A which replaces the session between                |<-------------|                   |
          |  200 OK F38    |              |                   |
          |<---------------|              |                   |
          |                |              |                   |

   User A
   and calls user B.  The  User B places call is accepted by A and causes A to send a BYE to B.
   Note that the Replaces header is needed in this INVITE. on hold.  User B
   receives notification of the successful park, and also receives the
   Call-ID in the application/sip body of the NOTIFY response.  When calls User
   C.  User B wishes to retrieve the call, a new INVITE is sent to A which
   replaces the session then disconnects with C, then takes the Music/Park Server. call with User A accepts the
   off hold.  The call and sends a BYE to the Music/Park Server.  Note that the
   Replaces header is needed in this INVITE as well.  If someone besides
   User ends with B retrieves the call, then this becomes Call Park and Pickup. hangs up.

   Message Details. Details

   F1 INVITE A -> B Proxy 1

   INVITE sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060 here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345601@here.com 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F2 180 Ringing B INVITE Proxy 1 -> A B

   INVITE sip:UserB@110.111.112.113 SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP there.com:5060
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F3 200 OK B -> A

   SIP/2.0 200 OK ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060 here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159 <sip:UserB@there.com>
   Call-ID: 12345601@here.com 12345600@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB@there.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527
   o=UserA 2890844526 2890844526 IN IP4 client.there.com client.here.com
   s=Session SDP
   c=IN IP4 110.111.112.113 100.101.102.103
   t=3034423619 0
   m=audio 3456 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F4 ACK A

   F3(100 Trying) Proxy 1 -> B

   ACK sip:UserB@there.com A

   SIP/2.0 100 Trying
   Via: SIP/2.0/UDP there.com:5060 here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159 <sip:UserB@there.com>
   Call-ID: 12345601@here.com 12345600@here.com
   CSeq: 1 ACK INVITE
   Content-Length: 0

   /* User B REFERs Music Server to establish session with A which
   replaces the established session between A and B */

   F5 REFER

   F4 180 Ringing B -> Music Server

   REFER sip:music@server.com Proxy 1

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP there.com:5060 ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: LittleGuy <sip:UserB@there.com> BigGuy <sip:UserA@here.com>;tag=1234567
   To: Music Server <sip:music@server.com> LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 4802029847@there.com 12345600@here.com
   CSeq: 1 REFER
   Refer-To: <sip:UserA@here.com>
   Referred-By: <sip:UserB@there.com>
   Content-Length: 0

   F6 202 Accepted Music Server INVITE
   Content Length:0

   F5 180 Ringing Proxy 1 -> B A

   SIP/2.0 202 Accepted 180 Ringing
   Via: SIP/2.0/UDP there.com:5060 here.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=56323 BigGuy <sip:UserA@here.com>;tag=1234567
   To: Music Server <sip:music@server.com> LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 4802029847@there.com 12345600@here.com
   CSeq: 1 REFER
   Content-Length: INVITE
   Content Length: 0

   /* Music Server places call to User A to replace session between A
   and

   F6 200 OK B */

   F7 INVITE Music Server -> A

   INVITE sip:UserA@here.com Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP server.com:5060 ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: <sip:music@server.com>
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: a5-75-34-12-76@server.com 12345600@here.com
   CSeq: 1 INVITE
   Referred-By: <sip:UserB@there.com>
   Contact: <sip:music@server.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=MusicServer 2890844526 2890844526
   o=UserB 2890844527 2890844527 IN IP4 music.server.com client.there.com
   s=Session SDP
   c=IN IP4 50.60.70.80 110.111.112.113
   t=3034423619 0
   m=audio 49170 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F8

   F7 200 OK A-> Music Server Proxy 1 -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP server.com:5060 here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: <sip:music@server.com>
   To: BigGuy <sip:UserA@here.com>;tag=098594 <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: a5-75-34-12-76@server.com 12345600@here.com
   CSeq: 1 INVITE
   Contact: <sip:UserA@here.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526
   o=UserB 2890844527 2890844527 IN IP4 client.here.com client.there.com
   s=Session SDP
   c=IN IP4 100.101.102.103 110.111.112.113
   t=3034423619 0
   m=audio 49170 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000
   a=recvonly
   F9

   F8 ACK Music Server -> A -> Proxy 1

   ACK sip:UserA@here.com sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP server.com:5060 here.com:5060
   Route: <sip:UserB@110.111.112.113>
   From: <sip:music@server.com>
   To: BigGuy <sip:UserA@here.com>;tag=098594 <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: a5-75-34-12-76@server.com 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F10 BYE A

   F9 ACK Proxy 1 -> B

   ACK sip:UserB@there.com sip:UserB@110.111.112.113 SIP/2.0
   Via: SIP/2.0/UDP there.com:5060 ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com 12345600@here.com
   CSeq: 2 BYE 1 ACK
   Content-Length: 0

   F11 200 OK

   /* User B -> places User A on hold. */

   F10 INVITE B -> Proxy 1

   INVITE sip:UserA@here.com SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   Route: <sip:UserA@100.101.102.103>
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com 12345600@here.com
   CSeq: 2 BYE 1 INVITE
   Contact: <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844528 2890844528 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 0.0.0.0
   t=3034423619 0

   /*  Music Server reports success back to B by returning all the SIP
   headers in 200 OK response  */

   F12 NOTIFY Music Server
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F11 INVITE Proxy 1 -> B

   NOTIFY sip:UserB@there.com A

   INVITE sip:UserA@100.101.102.103 SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   To: LittleGuy <sip:UserB@there.com>
   From: Music Server <sip:music@server.com>;tag=56323
   Call-ID: 4802029847@there.com
   CSeq: 1 NOTIFY
   Event: refer
   Content-Type: application/sip
   Content-Length: ...

   SIP/2.0 200 OK ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP server.com:5060 there.com:5060
   Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
   From: <sip:music@server.com> LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   Call-ID: a5-75-34-12-76@server.com 12345600@here.com
   CSeq: 1 INVITE
   Contact: <sip:UserA@here.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   F13

   v=0
   o=UserB 2890844528 2890844528 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 0.0.0.0
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F12 200 OK B -> A -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   To: LittleGuy <sip:UserB@there.com>
   From: Music Server <sip:music@server.com>;tag=56323
   Call-ID: 4802029847@there.com
   CSeq: 1 NOTIFY
   Content-Length: 0

   /* User A is now parked at the Music Server */

   /* User B picks up the call by sending an INVITE to A which replaces
   the existing session with the Music/Park Server.  Note that B knows
   the Call-ID of the existing session from the NOTIFY response. */

   F14 INVITE B -> A

   INVITE sip:UserA@there.com SIP/2.0 ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060 there.com:5060
   Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   Call-ID: 6485356@here.com 12345600@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB@there.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527
   o=UserA 2890844526 2890844526 IN IP4 client.there.com client.here.com
   s=Session SDP
   c=IN IP4 110.111.112.113 100.101.102.103
   t=3034423619 0
   m=audio 3456 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F15
   F13 200 OK A Proxy 1 -> B

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060 there.com:5060
   Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   Call-ID: 6485356@here.com 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F16

   F14 ACK B -> A Proxy 1

   ACK sip:UserA@there.com sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060 there.com:5060
   Route: <sip:UserA@100.101.102.103>
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   Call-ID: 6485356@here.com 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   /*

   F15 ACK Proxy 1 -> A replaces the session to the Music Server with the new session
   and generates a BYE to disconnect the Music Server */

   F17 BYE A -> Music Server

   BYE sip:music@server.com

   ACK sip:UserA@100.101.102.103 SIP/2.0
   Via: SIP/2.0/UDP here.com:5060 ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=098594 LittleGuy <sip:UserB@there.com>;tag=314159
   To: <sip:music@server.com> BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: a5-75-34-12-76@server.com 12345600@here.com
   CSeq: 1 BYE ACK
   Content-Length: 0

   F18 200 OK Music Server

   F16 INVITE B -> A Proxy 1

   INVITE sip:UserC@anywhere.com SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060 there.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=098594 LittleGuy <sip:UserB@there.com>;tag=8675309
   To: <sip:music@server.com> OtherGuy <sip:UserC@anywhere.com>
   Call-ID: a5-75-34-12-76@server.com 9876543210@there.com
   CSeq: 1 BYE INVITE
   Contact: <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844526 2890844526 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423619 0

2.3       Consultation Hold

       User A
   m=audio 50170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F17 INVITE Proxy          User B              User 1 -> C
          |                |              |                   |
          |

   INVITE F1   |              |                   |
          |--------------->| sip:UserC@120.121.122.123 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserC@anywhere.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>
   Call-ID: 9876543210@there.com
   CSeq: 1 INVITE F2  |                   |
          |                |------------->|                   |
          |(100
   Contact: <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844526 2890844526 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423619 0
   m=audio 50170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F18 (100 Trying) F3 |              |                   |
          |<---------------|180 Proxy 1 -> B

   SIP/2.0 100 Trying
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>
   Call-ID: 9876543210@there.com
   CSeq: 1 INVITE
   Content-Length: 0

   F19 180 Ringing F4|                   |
          |                |<-------------|                   |
          | C -> Proxy 1
   SIP/2.0 180 Ringing F5 |              |                   |
          |<---------------|  200 OK F6   |                   |
          |                |<-------------|                   |
          |    200 OK F7   |              |                   |
          |<---------------|              |                   |
          |     ACK F8     |              |                   |
          |--------------->|     ACK F9   |                   |
          |                |------------->|                   |
          |     Both way RTP Established  |                   |
          |<=============================>|                   |
          |                |INVITE (c=0) F10                  |
          |INVITE (c=0) F11|<-------------|                   |
          |<---------------|              |                   |
          |    200 OK F12  |              |                   |
          |--------------->|   200 OK F13 |                   |
          |                |------------->|                   |
          |                |     ACK F14  |                   |
          |                |<-------------|                   |
          |    ACK F15     |              |                   |
          |<---------------|              |                   |
          |         No RTP Sent!          |                   |
          |                |   INVITE F16 |                   |
          |                |<-------------|                   |
          |                |              |
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 9876543210@here.com
   CSeq: 1 INVITE F17     |
          |                |--------------------------------->|
          |                |(100 Trying) F18                  |
          |                |------------->|                   |
          |                |              |
   Content Length:0

   F20 180 Ringing F19   |
          |                |<---------------------------------|
          |                | Proxy 1 -> B

   SIP/2.0 180 Ringing F20                  |
          |                |------------->|                   |
          |                |              |
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 9876543210@there.com
   CSeq: 1 INVITE
   Content Length: 0

   F21 200 OK F21     |
          |                |<---------------------------------|
          |                | C -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserC@anywhere.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 9876543210@there.com
   CSeq: 1 INVITE
   Contact: <sip:UserC@120.121.122.123>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserC 2890844527 2890844527 IN IP4 client.anywhere.com
   s=Session SDP
   c=IN IP4 120.121.122.123
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F22 |                   |
          |                |------------->|                   |
          |                |    ACK F23   |                   |
          |                |<-------------|                   |
          |                |              |      ACK F24      |
          |                |--------------------------------->|
          |                |         Both way RTP Established |
          |                |              |<=================>|
          |                |   BYE F25    |                   |
          |                |<-------------|                   |
          |                |              |       BYE F26     |
          |                |--------------------------------->|
          |                |              | 200 OK F27     |
          |                |<---------------------------------|
          |                | Proxy 1 -> B

   SIP/2.0 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    |              |                   |
          |<---------------|              |                   |
          |                |              |                   |

   User A calls user B.  User B places call on hold.  User B calls User
   C.  User B then disconnects with C, then takes the call with User A
   off hold.  The call ends with B hangs up.

   Message Details

   F1 INVITE A -> Proxy 1

   INVITE sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060 there.com:5060
   Record-Route: <sip:UserC@anywhere.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 12345600@here.com 9876543210@there.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserC@120.121.122.123>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526
   o=UserC 2890844527 2890844527 IN IP4 client.here.com client.anywhere.com
   s=Session SDP
   c=IN IP4 100.101.102.103 120.121.122.123
   t=3034423619 0
   m=audio 49170 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F2 INVITE

   F23 ACK B -> Proxy 1 -> B

   INVITE sip:UserB@there.com

   ACK sip:UserC@anywhere.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> there.com:5060
   Route: <sip:UserC@120.121.122.123>
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 12345600@here.com 9876543210@there.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com>
   Content-Type: application/sdp ACK
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F3(100 Trying)

   F24 ACK Proxy 1 -> A C

   ACK sip:UserC@120.121.122.123 SIP/2.0 100 Trying
   Via: SIP/2.0/UDP here.com:5060 ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 12345600@here.com 9876543210@there.com
   CSeq: 1 INVITE ACK
   Content-Length: 0

   F4 180 Ringing

   F25 BYE B -> Proxy 1

   BYE sip:UserC@anywhere.com SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060 there.com:5060
   Route: <sip:UserC@120.121.122.123>
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com>;tag=314159 <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 12345600@here.com 9876543210@there.com
   CSeq: 1 INVITE
   Content Length:0
   F5 180 Ringing 2 BYE
   Content-Length: 0
   F26 BYE Proxy 1 -> A C

   BYE sip:UserC@120.121.122.123 SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP here.com:5060 ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com>;tag=314159 <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 12345600@here.com 9876543210@there.com
   CSeq: 1 INVITE
   Content Length: 2 BYE
   Content-Length: 0

   F6

   F27 200 OK B C -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> there.com:5060
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com>;tag=314159 <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 12345600@here.com 9876543210@there.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB@there.com>
   Content-Type: application/sdp 2 BYE
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F7

   F28 200 OK Proxy 1 -> A B

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB@there.com>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F8 ACK A -> Proxy 1

   ACK sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   Route: <sip:UserB@there.com> there.com:5060
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F9 ACK Proxy 1 -> B

   ACK sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserB@there.com>;tag=8675309
   To: LittleGuy <sip:UserB@there.com>;tag=314159 OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 12345600@here.com 9876543210@there.com
   CSeq: 1 ACK 2 BYE
   Content-Length: 0

   /* User B places User A on hold. takes the call off hold */

   F10

   F29 INVITE B -> Proxy 1

   INVITE sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   Route: <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345600@here.com
   CSeq: 1 2 INVITE
   Contact: LittleGuy <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 2890844529 2890844529 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 0.0.0.0 110.111.112.113
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F11

   F30 INVITE Proxy 1 -> A

   INVITE sip:UserA@here.com sip:UserA@100.101.102.103 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345600@here.com
   CSeq: 1 2 INVITE
   Contact: LittleGuy <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 2890844529 2890844529 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 0.0.0.0 110.111.112.113
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F12

   F31 200 OK A -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345600@here.com
   CSeq: 1 2 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 0.0.0.0 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F13

   F32 200 OK Proxy 1 -> B

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345600@here.com
   CSeq: 1 2 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 0.0.0.0 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F14

   F33 ACK B -> Proxy 1

   ACK sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   Route: <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345600@here.com
   CSeq: 1 2 ACK
   Content-Length: 0

   F15

   F34 ACK Proxy 1 -> A

   ACK sip:UserA@here.com sip:UserA@100.101.102.103 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345600@here.com
   CSeq: 1 2 ACK
   Content-Length: 0

   F16 INVITE B

   F35 BYE A -> Proxy 1

   INVITE sip:UserC@anywhere.com
   BYE sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060 here.com:5060
   Route: <sip:UserB@110.111.112.113>
   From: LittleGuy <sip:UserB@there.com> BigGuy <sip:UserA@here.com>;tag=1234567
   To: OtherGuy <sip:UserC@anywhere.com>
   Call-ID: 9876543210@there.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB@there.com>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844526 2890844526 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423619 0
   m=audio 50170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F17 INVITE Proxy 1 -> C

   INVITE sip:UserC@anywhere.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserC@anywhere.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com>
   To: OtherGuy <sip:UserC@anywhere.com> <sip:UserB@there.com>;tag=314159
   Call-ID: 9876543210@there.com 12345600@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB@there.com>
   Content-Type: application/sdp 2 BYE
   Content-Length: ...

   v=0
   o=UserB 2890844526 2890844526 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423619 0
   m=audio 50170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F18 (100 Trying)

   F36 BYE Proxy 1 -> B

   BYE sip:UserB@110.111.112.113 SIP/2.0 100 Trying
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>
   To: OtherGuy <sip:UserC@anywhere.com>
   Call-ID: 9876543210@there.com
   CSeq: 1 INVITE
   Content-Length: 0

   F19 180 Ringing C -> Proxy 1
   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060 here.com:5060
   From: LittleGuy <sip:UserB@there.com> BigGuy <sip:UserA@here.com>;tag=1234567
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 9876543210@here.com
   CSeq: 1 INVITE
   Content Length:0

   F20 180 Ringing Proxy 1 -> B

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654 <sip:UserB@there.com>;tag=314159
   Call-ID: 9876543210@there.com 12345600@here.com
   CSeq: 1 INVITE
   Content Length: 2 BYE
   Content-Length: 0

   F21

   F37 200 OK C B -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserC@anywhere.com;maddr=ss1.wcom.com> here.com:5060
   From: LittleGuy <sip:UserB@there.com> BigGuy <sip:UserA@here.com>;tag=1234567
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654 LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 9876543210@there.com 12345600@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserC@anywhere.com>
   Content-Type: application/sdp 2 BYE
   Content-Length: ...

   v=0
   o=UserC 2890844527 2890844527 IN IP4 client.anywhere.com
   s=Session SDP
   c=IN IP4 120.121.122.123
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F22

   F38 200 OK Proxy 1 -> B A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserC@anywhere.com;maddr=ss1.wcom.com> here.com:5060
   From: LittleGuy <sip:UserB@there.com> BigGuy <sip:UserA@here.com>;tag=1234567
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654 LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 9876543210@there.com
   CSeq: 1 INVITE
   Contact: OtherGuy <sip:UserC@anywhere.com>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserC 2890844527 2890844527 IN IP4 client.anywhere.com
   s=Session SDP
   c=IN IP4 120.121.122.123
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F23 ACK B -> Proxy 1

   ACK sip:UserC@anywhere.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   Route: <sip:UserC@anywhere.com>
   From: LittleGuy <sip:UserB@there.com>
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 9876543210@there.com
   CSeq: 1 ACK
   Content-Length: 0

   F24 ACK Proxy 1 -> C

   ACK sip:UserC@anywhere.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 9876543210@there.com
   CSeq: 1 ACK
   Content-Length: 0

   F25 BYE B -> Proxy 1

   BYE sip:UserC@anywhere.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   Route: <sip:UserC@anywhere.com>
   From: LittleGuy <sip:UserB@there.com>
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 9876543210@there.com
   CSeq: 2 BYE
   Content-Length: 0
   F26 BYE Proxy 1 -> C

   BYE sip:UserC@anywhere.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 9876543210@there.com
   CSeq: 2 BYE
   Content-Length: 0

   F27 200 OK C -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 9876543210@there.com 12345600@here.com
   CSeq: 2 BYE
   Content-Length: 0

   F28 200 OK Proxy 1 ->

2.3       Music On Hold

         User A          User B

   SIP/2.0     Music Server
          |                |              |
          |    INVITE F1   |              |
          |--------------->|              |
          |(100 Trying) F2 |              |
          |<---------------|              |
          | 180 Ringing F3 |              |
          |<---------------|              |
          |    200 OK
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>
   To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
   Call-ID: 9876543210@there.com
   CSeq: 2 BYE
   Content-Length: 0

   /* User F4   |              |
          |<---------------|              |
          |     ACK F5     |              |
          |--------------->|              |
          |       RTP      |              |
          |<==============>|              |
          |                |              |
          | B takes the call off places A on hold */

   F29 with music |
          |                |              |
          |                | INVITE no sdp F6
          |                |------------->|
          |                |200 OK sdpM F7|
          |                |<-------------|
          |  INVITE c=0 F7 |              |
          |<---------------|              |
          | 200 OK sdpA F9 |              |
          |--------------->|              |
          |     ACK F10    |              |
          |<---------------|              |
          |                | ACK sdpA F11 |
          |                |------------->|
          |               RTP             |
          |<==============================|
          |                |              |
          |    B Picks up the Call        |
          |                |    BYE F12   |
          |                |------------->|
          |                | 200 OK F13   |
          |                |<-------------|
          |    INVITE F14  |              |
          |<---------------|              |
          |    200 OK F15  |              |
          |--------------->|              |
          |     ACK F16    |              |
          |<---------------|              |
          |       RTP      |              |
          |<==============>|              |
   In this flow,B places A on hold with music. This is performed by B
   acting as a B2BUA (Back-to-Back User Agent) using 3pcc (third party
   call control) [7] to INVITE a Music Server into the session, which
   sends RTP music to A.  B picks the call up from hold by sending a BYE
   to the music server and taking A off of hold.

   Note that if A responds to the INVITE with hold SDP (c=0) with hold
   SDP in the 200 OK, this call flow will not work properly.

   Note also that A will receive RTP packets from two different IP
   addresses during this call flow.

   Message Details

   F1 INVITE A -> Proxy 1 B

   INVITE sip:UserA@here.com sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   Route: <sip:UserA@here.com> here.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 2 1 INVITE
   Contact: LittleGuy <sip:UserB@there.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527
   o=UserA 2890844526 2890844526 IN IP4 client.there.com client.here.com
   s=Session SDP
   c=IN IP4 110.111.112.113 100.101.102.103
   t=3034423619 0
   m=audio 3456 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F30 INVITE Proxy 1

   F2 (100 Trying B -> A

   INVITE sip:UserA@here.com A)

   SIP/2.0 100 Trying
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com> here.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 2 1 INVITE
   Contact: LittleGuy <sip:UserB@there.com>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 0

   F3 180 Ringing B -> A

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=23431
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F4 200 OK B -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=23431
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F31 200 OK

   F5 ACK A -> Proxy B

   ACK sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=23431
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   /* User B places A on hold with music by acting as a B2BUA and
   sending an INVITE to the Music Server  */

   F6 INVITE B -> Music Server

   INVITE sip:music@server.com SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=8675309
   To: Music <sip:music@server.com>
   Call-ID: sdjfdjfskdf@there.com
   CSeq: 1 INVITE
   Contact: <sip:UserB@110.111.112.113>
   Content-Length: 0

   F7 200 OK C -> B

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com>;tag=314159 <sip:UserB@there.com>;tag=8675309
   To: Music <sip:music@server.com>;tag=90210
   Call-ID: sdjfdjfskdf@there.com
   CSeq: 1 INVITE
   Contact: <sip:music@server.com>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=MusicServer 2890844576 2890844576 IN IP4 music.server.com
   s=Session SDP
   c=IN IP4 50.60.70.80
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   /* B re-INVITEs A on hold */

   F8 INVITE B -> A

   INVITE sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   From: LittleGuy <sip:UserB@there.com>;tag=23431
   Call-ID: 12345600@here.com
   CSeq: 2 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526
   o=UserB 2890844528 2890844528 IN IP4 client.here.com client.there.com
   s=Session SDP
   c=IN IP4 100.101.102.103 0.0.0.0
   t=3034423619 0
   m=audio 49170 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F32

   /* A responds with normal SDP */

   F9 200 OK Proxy 1 A -> B
   SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
   From: LittleGuy <sip:UserB@there.com>;tag=314159 here.com:5060
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   From: LittleGuy <sip:UserB@there.com>;tag=23431
   Call-ID: 12345600@here.com
   CSeq: 2 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserB@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F33

   F10 ACK B -> Proxy 1 A

   ACK sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   Route: <sip:UserA@here.com>
   From: LittleGuy <sip:UserB@there.com>;tag=314159 here.com:5060
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   From: LittleGuy <sip:UserB@there.com>;tag=23431
   Call-ID: 12345600@here.com
   CSeq: 2 1 ACK
   Content-Length: 0

   F34 ACK Proxy 1 -> A

   ACK sip:UserA@here.com

   /* B passes SDP of A to the Music Server to allow music to be sent
   from B to A */

   F11 ACK B -> Music Server

   ACK sip:music@server.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=314159 <sip:UserB@there.com>;tag=8675309
   To: BigGuy <sip:UserA@here.com>;tag=1234567 Music <sip:music@server.com>;tag=90210
   Call-ID: 12345600@here.com sdjfdjfskdf@there.com
   CSeq: 2 1 ACK
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0

   F35 BYE
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   /* RTP music is now sent from the Music Server to A */

   /* B picks up the call from the Music Server */

   F12 BYE B -> Proxy 1 Music Server

   BYE sip:UserB@there.com sip:music@server.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   Route: <sip:UserB@there.com> there.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159 <sip:UserB@there.com>;tag=8675309
   To: Music <sip:music@server.com>;tag=90210
   Call-ID: 12345600@here.com sdjfdjfskdf@there.com
   CSeq: 2 BYE
   Content-Length: 0

   F36 BYE Proxy 1

   F13 200 OK Music Server -> B

   BYE sip:UserB@there.com

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=8675309
   To: Music <sip:music@server.com>;tag=90210
   Call-ID: sdjfdjfskdf@there.com
   CSeq: 2 BYE
   Content-Length:0

   /* B re-INVITEs taking A off hold */

   F14 INVITE B -> A

   INVITE sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   From:
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   To:
   From: LittleGuy <sip:UserB@there.com>;tag=314159 <sip:UserB@there.com>;tag=23431
   Call-ID: 12345600@here.com
   CSeq: 2 BYE INVITE
   Contact: <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423619 0

   F37
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000
   F15 200 OK B A -> Proxy 1 B

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From:
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   To:
   From: LittleGuy <sip:UserB@there.com>;tag=314159 <sip:UserB@there.com>;tag=23431
   Call-ID: 12345600@here.com
   CSeq: 2 BYE INVITE
   Contact: <sip:UserB@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0

   F38 200 OK Proxy 1
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F16 ACK B -> A

   ACK sip:UserB@there.com SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   From:
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   To:
   From: LittleGuy <sip:UserB@there.com>;tag=314159 <sip:UserB@there.com>;tag=23431
   Call-ID: 12345600@here.com
   CSeq: 2 BYE ACK
   Content-Length: 0

   /* Normal media session between A and B is resumed */

2.4 Unattended Transfer

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

   User B call User A.  User A then transfers User B to User C, then
   User A disconnects with User B.  User B establishes the session to C
   then reports the success  back to A in the NOTIFY.  If the transfer
   fails, User B can send a new INVITE back to A to re-establish the
   session.

   Message Details

   F1 INVITE B -> A

   INVITE sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060

   Note that the BYE could be sent by A after the NOTIFY.  Also, if A
   has flushed all state information, the NOTIFY may receive a 481 Call
   Leg Does Not Exist.

   Message Details

   F1 INVITE B -> A

   INVITE sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>
   Call-ID: 12345601@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F2 180 Ringing A -> B

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=314159 <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F3 200 OK A -> B

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com>;tag=314159 <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F4 ACK B -> A

   ACK sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 1 ACK
   Content-Length: 0

   /* Session is established between A and B. */

   /* A peforms unattended transfer of B to C */

   F5 REFER A -> B

   REFER sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 2 REFER
   Refer-To: <sip:UserC@anywhere.com>
   Referred-By: <UserA@here.com> <UserA@here.com>;ref=<sip:UserC@anywhere.com>
   Contact: <sip:UserA@100.101.102.103>
   Content-Length: 0

   F6 202 Accepted B -> A

   SIP/2.0 202 Accepted
   Via: SIP/2.0/UDP there.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 2 REFER
   Content-Length: 0

   /* A now disconnects with B */
   F7 BYE A -> B

   BYE sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 3 BYE
   Content-Length: 0

   F8 200 OK B -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 3 BYE
   Content-Length: 0

   /* B attempts the transfer to C */

   F9 INVITE B -> C

   INVITE sip:UserC@anywhere.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>
   Call-ID: 7436222@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   Referred-By: <UserA@here.com>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844539 2890844539 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423821 0
   m=audio 3458 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F10 180 Ringing C -> B

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=928287
   Call-ID: 7436222@here.com
   CSeq: 1 INVITE

   F11 200 OK C -> B

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=928287
   Call-ID: 7436222@here.com
   CSeq: 1 INVITE
   Contact: OtherGuy <sip:UserC@anywhere.com> <sip:UserC@120.121.122.123>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserC 2890844527 2890844527 IN IP4 client.anywhere.com
   s=Session SDP
   c=IN IP4 120.121.122.123
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F12 ACK B -> C

   ACK sip:UserC@anywhere.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=928287
   Call-ID: 7436222@here.com
   CSeq: 1 ACK
   Content-Length: 0

   /* B and C now have established a session.  B reports success to A
   which A probably ignores. */

   F13 NOTIFY B -> A

   NOTIFY sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 1 2 NOTIFY
   Event: refer
   Content-Type: application/sip
   Content-Length: ...

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=928287
   Call-ID: 7436222@here.com
   CSeq: 1 INVITE
   Contact: OtherGuy <sip:UserC@anywhere.com> <sip:UserC@120.121.122.123>
   Content-Type: application/sdp
   Content-Length: ...

   F14 200 OK A -> B

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=314159
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com
   CSeq: 1 2 NOTIFY
   Content-Length: 0

2.5       Attended Transfer

         User A          User B        User C
          |                |              |
          |    INVITE F1   |              |
          |--------------->|              |
          |(100 Trying) F2 |              |
          |<---------------|              |
          | 180 Ringing F3 |              |
          |<---------------|              |
          |    200 OK F4   |              |
          |<---------------|              |
          |     ACK F5     |              |
          |--------------->|              |
          |       RTP      |              |
          |<==============>|              |
          |  INVITE c=0 F6 |              |
          |<---------------|              |
          |    200 OK F7   |              |
          |--------------->|              |
          |     ACK F8     |              |
          |<---------------|              |
          |     No RTP Sent!     |              |
          |                |  INVITE F9   |
          |                |------------->|
          |                |(100 Trying) F10
          |                |<-------------|
          |                | 180 Ringing F11
          |                |<-------------|
          |                | 200 OK F12   |
          |                |<-------------|
          |                |    ACK F13   |
          |                |------------->|
          |                |     RTP      |
          |                |<============>|
          |                |INVITE c=0 F14|
          |                |------------->|
          |                | 200 OK F15   |
          |                |<-------------|
          |                |    ACK F16   |
          |                |------------->|
          |                |     No RTP   |
          | REFER Refer-To: A F14 C F17         |                |------------->|
          |<---------------|              |
          |202 Accepted F15 F18|              |
          |--------------->|              |                |<-------------|
          |     INVITE Referred-By: Replaces: B F16 F19    |
          |<------------------------------|
          |------------------------------>|
          |            200 OK F17 F20         |
          |------------------------------>|
          |<------------------------------|
          |             ACK F18 F21           |
          |<------------------------------|
          |------------------------------>|
          |               RTP             |
          |<=============================>|
          |                |    BYE F19 F22   |
          |
          |--------------->|                |<-------------|
          |                |  200 OK F20   |              |
          |<---------------| F23  |
          |                |------------->|
          |   NOTIFY F21 F24   |              |                |<-------------|
          |--------------->|              |
          |   200 OK F22 F25   |              |                |------------->|
          |<---------------|              |
          |    BYE F23 F26     |              |                |------------->|
          |<---------------|              |
          |   200 OK F24 F27   |              |                |<-------------|
          |--------------->|              |

   User A calls User B.  User B puts User A on hold then calls User C to
   announce transfer. transfer, then places C on hold.  User B transfers User C A to
   User A C which replaces the session between A and B. B and C.  C then
   disconnects session with A. C B. A reports success of transfer to B B, who
   then disconnects with C.

   Note: A.  In this example, the Replaces header would be very useful in this example. [5] is
   inserted into the Refer-To URL by B.  The Accept-Contact header [6]
   is also used to ensure that the triggered INVITE reaches the same
   instance of the User C.

   Message Details

   F1 INVITE A -> B

   INVITE sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000
   F2 (100 Trying B -> A)

   SIP/2.0 100 Trying
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F3 180 Ringing B -> A

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=23431
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F4 200 OK B -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=23431
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F5 ACK A -> B

   ACK sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=23431
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   /* User A and User B have established a session.  User B puts User A
   on Hold */

   F6 INVITE B -> A

   INVITE sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=23431
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345600@here.com
   CSeq: 1024 INVITE
   Contact: BigGuy <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 2890844528 2890844528 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 0.0.0.0
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F7 200 OK A -> B

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=23431
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345600@here.com
   CSeq: 1024 INVITE
   Contact: LittleGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 0.0.0.0 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F8 ACK B -> A

   ACK sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=23431
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345600@here.com
   CSeq: 1024 ACK
   Content-Length: 0

   /* User B calls User C  */

   F9 INVITE B -> C

   INVITE sip:UserC@anywhere.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>
   Call-ID: sdjfdjfskdf@there.com
   CSeq: 42 INVITE
   Contact: BigGuy <sip:UserB@there.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844528 2890844528 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423645 0
   m=audio 3458 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F10 (100 Trying C -> B)

   SIP/2.0 100 Trying
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>
   Call-ID: sdjfdjfskdf@there.com
   CSeq: 42 INVITE
   Content-Length: 0

   F11 180 Ringing C -> B

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3
   Call-ID: sdjfdjfskdf@there.com
   CSeq: 42 INVITE
   Content-Length: 0
   F12 200 OK C -> B

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3
   Call-ID: sdjfdjfskdf@there.com
   CSeq: 42 INVITE
   Contact: OtherGuy <sip:UserC@anywhere.com> <sip:UserC@120.121.122.123>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserC 2890844527 2890844527 IN IP4 client.anywhere.com
   s=Session SDP
   c=IN IP4 120.121.122.123
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F13 ACK B -> C

   ACK sip:UserC@anywhere.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3
   Call-ID: sdjfdjfskdf@there.com
   CSeq: 42 ACK
   Content-Length: 0

   /* User B Transfers puts User C to User A on hold */

   F14 REFER INVITE B -> C

   REFER

   INVITE sip:UserC@anywhere.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3
   Call-ID: sdjfdjfskdf@there.com
   CSeq: 43 INVITE
   Contact: <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844529 2890844529 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 0.0.0.0
   t=3034423645 0
   m=audio 3458 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F15 200 OK C -> B

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3
   Call-ID: sdjfdjfskdf@there.com
   CSeq: 43 INVITE
   Contact: <sip:UserC@120.121.122.123>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserC 2890844527 2890844527 IN IP4 client.anywhere.com
   s=Session SDP
   c=IN IP4 120.121.122.123
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F16 ACK B -> C

   ACK sip:UserC@anywhere.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=8675309
   To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3
   Call-ID: sdjfdjfskdf@there.com
   CSeq: 43 ACK
   Content-Length: 0

   /* User B Transfers User A to User C.  */

   F17 REFER B -> A

   REFER sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=23431
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345678900@here.com
   CSeq: 1025 REFER
   Refer-To: <sip:UserB@here.com?Accept-Contact=sip:UserB@here.com;
    only=true> <sip:UserC@anywhere.com?Replaces=
    sdjfdjfskdf@there.com%3Bto-tag%3D5f35a3%3Bfrom-tag%3D8675309&Accept-
    Contact=%3Csip%3AUserC@120.121.122.123%3C%3Bonly%3Dtrue>
   Referred-By: <sip:UserB@there.com> <sip:UserB@there.com>;ref=
    <sip:UserC@anywhere.com?Replaces=
    sdjfdjfskdf@there.com%3Bto-tag%3D5f35a3%3Bfrom-tag%3D8675309&Accept-
    Contact=%3Csip%3AUserC@120.121.122.123%3C%3Bonly%3Dtrue>
   Contact: <sip:UserB@110.111.112.113>
   Content-Length: 0

   F15

   F18 202 Accepted A -> B

   SIP/2.0 202 Accepted
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=1234567
   To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3 BigGuy <sip:UserA@here.com>;tag=23431
   Call-ID: sdjfdjfskdf@there.com 12345678900@here.com
   CSeq: 43 1025 REFER
   Content-Length: 0

   /* User C A establishes session with User A C which replaces the session
   between User A B and User B C */

   F16

   F19 INVITE C -> A -> C

   INVITE sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP anywhere.com:5060
   From:
   To: OtherGuy <sip:UserC@anywhere.com>
   To:
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=3461
   Call-ID: 9435674543@anywhere.com 9435674543@here.com
   CSeq: 1 INVITE
   Referred-By: <sip:UserB@there.com> <sip:UserB@there.com>;
    ref=<sip:UserC@anywhere.com?Replaces=
    sdjfdjfskdf@there.com%3Bto-tag%3D5f35a3%3Bfrom-tag%3D8675309&Accept-
    Contact=%3Csip%3AUserC@120.121.122.123%3C%3Bonly%3Dtrue>
   Accept-Contact: sip:UserB@here.com;only=true <sip:UserC@120.121.122.123>;only=true
   Replaces: 12345600@here.com;to-tag=23431;from-tag=8675309
   Contact: OtherGuy <sip:UserC@anywhere.com> <sip:UserC@120.121.122.123>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserC 2890844529 2890844529 IN IP4 client.anywhere.com
   s=Session SDP
   c=IN IP4 120.121.122.123
   t=3034423643 0
   m=audio 3458 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F17

   F20 200 OK A -> C -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP anywhere.com:5060
   From: OtherGuy <sip:UserC@anywhere.com>
   To: OtherGuy <sip:UserC@anywhere.com>;tag=ff3a
   From: BigGuy <sip:UserA@here.com>;tag=ff3a <sip:UserA@here.com>;tag=3461
   Call-ID: 9435674543@anywhere.com 9435674543@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844538 2890844538 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423452 0
   m=audio 49172 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F18

   F21 ACK C -> A -> C

   ACK sip:UserC@anywhere.com SIP/2.0
   Via: SIP/2.0/UDP anywhere.com:5060
   From: OtherGuy <sip:UserC@anywhere.com>
   To: OtherGuy <sip:UserC@anywhere.com>;tag=ff3a
   From: BigGuy <sip:UserA@here.com>;tag=ff3a <sip:UserA@here.com>;tag=3461
   Call-ID: 9435674543@anywhere.com 9435674543@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   /* User A C then disconnects from User B */

   F19

   F22 BYE A C -> B

   BYE sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=23431
   To: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   From: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3
   Call-ID: 12345600@here.com sdjfdjfskdf@there.com
   CSeq: 2 1 BYE
   Content-Length: 0

   F20

   F23 200 OK B -> A C

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=23431
   To: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=8675309
   From: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3
   Call-ID: 12345600@here.com sdjfdjfskdf@there.com
   CSeq: 2 1 BYE
   Content-Length: 0
   /* User C A tells User B that the call has been successfully
   transferred */

   F21

   F24 NOTIFY C A -> B

   NOTIFY sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   ToLittleGuy <sip:UserB@there.com>
   From: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3 BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=23431
   Call-ID: sdjfdjfskdf@there.com 12345678900@here.com
   CSeq: 1 2 NOTIFY
   Content-Type: application/sdp
   Content-Length: ...

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP anywhere.com:5060
   From: OtherGuy <sip:UserC@anywhere.com> <sip:UserC@anywhere.com>;tag=ff3a
   To: BigGuy <sip:UserA@here.com>;tag=ff3a <sip:UserA@here.com>;tag=3461
   Call-ID: 9435674543@anywhere.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com>
   Content-Type: application/sdp
   Content-Length: ...

   F22 <sip:UserA@100.101.102.103>

   F25 200 OK B -> C

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   ToLittleGuy <sip:UserB@there.com>
   To: LittleGuy <sip:UserB@there.com>;tag=1234567
   From: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3
   Call-ID: sdjfdjfskdf@there.com 12345678900@here.com
   CSeq: 1 2 NOTIFY
   Content-Length: 0

   /* User B disconnects with User C A */

   F23

   F26 BYE B -> C A

   BYE sip:UserC@anywhere.com sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060 there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=23431
   To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3 BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345600@here.com 12345678900@here.com
   CSeq: 44 1026 BYE
   Content-Length: 0

   F24

   F27 200 OK C A -> B
   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060 there.com:5060
   From: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=23431
   To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3 BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345601@here.com 12345678900@here.com
   CSeq: 44 1026 BYE
   Content-Length: 0

2.6       Call Forwarding Unconditional

         User A           Proxy          Gateway
          |                |              |
          |    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   |
          |<=============================>|
          |     BYE F10    |              |
          |--------------->|   BYE F11    |
          |                |------------->|
          |                |   200 OK F12 |
          |    200 OK F13  |<-------------|
          |<---------------|              |
          |                |              |

   User B wants all calls forwarded to the PSTN.  User A calls User B.
   The Proxy server rewrites the request URI, and forwards the INVITE to
   a Gateway.  Details of messaging behind the Gateway are not shown.

   Message Details

   F1 INVITE A -> Proxy

   INVITE sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

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

   F2 INVITE Proxy -> Gateway

   INVITE sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F3 (100 Trying) Proxy -> A

   SIP/2.0 100 Trying
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F4 180 Ringing Gateway -> Proxy

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content Length:0
   F5 180 Ringing Proxy -> A

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content Length: 0

   F6 200 OK Gateway -> Proxy

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: <sip:+19727293660@gw1.wcom.com;user=phone>
   Content-Type: application/sdp
   Content-Length: ...

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

   F7 200 OK Proxy -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: <sip:+19727293660@gw1.wcom.com;user=phone>
   Content-Type: application/sdp
   Content-Length: ...

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

   F8 ACK A -> Proxy

   ACK sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   Route: <sip:+19727293660@gw1.wcom.com;user=phone>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F9 ACK Proxy -> Gateway

   ACK sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F10 BYE A -> Proxy 1

   BYE sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   Route: <sip:+19727293660@gw1.wcom.com;user=phone>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345600@here.com
   CSeq: 2 BYE
   Content-Length: 0

   F11 BYE Proxy 1 -> Gateway

   BYE sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345600@here.com
   CSeq: 2 BYE
   Content-Length: 0

   F12 200 OK Gateway -> Proxy 1

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345600@here.com
   CSeq: 2 BYE
   Content-Length: 0

   F13 200 OK Proxy 1 -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345600@here.com
   CSeq:  2 BYE
   Content-Length: 0

2.7       Call Forwarding - Busy

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

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

   Message Details

   F1 INVITE A -> Proxy

   INVITE sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=0 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F2 INVITE Proxy -> B1

   INVITE sip:UserB1@there.com sip:UserB@110.111.112.113 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=0 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F3 (100 Trying) Proxy -> A

   SIP/2.0 100 Trying
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F4 486 Busy Here B1 -> Proxy

   SIP/2.0 486 Busy Here
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F5 ACK Proxy -> B1

   ACK sip:UserB1@there.com sip:UserB@110.111.112.113 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   /* The proxy now forwards the call to B2 */

   F6 INVITE Proxy -> B2

   INVITE sip:UserB2@there.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=0 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F7 180 Ringing B2 -> Proxy

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7654321
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F8 180 Ringing Proxy -> A

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7654321
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F9 200 OK B2 -> Proxy

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7654321
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB2@there.com> <sip:UserB2@110.111.112.114>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client2.there.com
   s=Session SDP
   c=IN IP4 110.111.112.114
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F10 200 OK Proxy -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7654321
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB2@there.com> <sip:UserB2@110.111.112.114>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client2.there.com
   s=Session SDP
   c=IN IP4 110.111.112.114
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F11 ACK A -> Proxy

   ACK sip:UserB2@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   Route: <sip:UserB2@there.com> <sip:UserB2@110.111.112.114>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7654321
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F12 ACK Proxy -> B2

   ACK sip:UserB2@there.com sip:UserB2@110.111.112.114 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7654321
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   /* RTP streams are established between A and B2 */

   /* User A eventually hangs up with User B2. */

   F13 BYE A -> Proxy

   BYE sip:UserB2@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   Route: <sip:UserB2@there.com> <sip:UserB2@110.111.112.114>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7654321
   Call-ID: 12345600@here.com
   CSeq: 2 BYE
   Content-Length: 0

   F14 BYE Proxy -> B2
   BYE sip:UserB2@there.com sip:UserB2@110.111.112.114 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7654321
   Call-ID: 12345600@here.com
   CSeq: 2 BYE
   Content-Length: 0

   F15 200 OK B2 -> Proxy

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7654321
   Call-ID: 12345600@here.com
   CSeq: 2 BYE
   Content-Length: 0

   F16 200 OK Proxy -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7654321
   Call-ID: 12345600@here.com
   CSeq:  2 BYE
   Content-Length: 0

2.8       Call Forwarding - No Answer

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

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

   Message Details

   F1 INVITE A -> Proxy
   INVITE sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=0 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F2 INVITE Proxy -> B1

   INVITE sip:UserB1@there.com sip:UserB1@110.111.112.113 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=0 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F3 (100 Trying) Proxy -> A

   SIP/2.0 100 Trying
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0
   F4 180 Ringing B1 -> Proxy

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=3145678
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F5 180 Ringing Proxy -> A

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=3145678
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   /* B1 rings until a configurable timer expires in the Proxy. The
   Proxy sends Cancel and proceeds down the list of routes. */

   F6 CANCEL Proxy -> B1

   CANCEL sip:UserB1@there.com sip:UserB1@110.111.112.113 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 CANCEL
   Content-Length: 0

   F7 200 OK B1 -> Proxy

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 CANCEL
   Content-Length: 0

   F8 487 Request Cancelled Terminated B1 -> Proxy
   SIP/2.0 487 Request Cancelled Terminated
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=3145678
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F9 ACK Proxy -> B1

   ACK sip:UserB1@there.com sip:UserB@110.111.112.113 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=3145678
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F10 INVITE Proxy -> B2

   INVITE sip:UserB4@there.com sip:UserB4@110.111.112.114 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=0 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F11 180 Ringing B2 -> Proxy

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F12 180 Proxy -> A

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F13 200 OK B2 -> Proxy

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB2@there.com> <sip:UserB2@110.111.112.114>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client2.there.com
   s=Session SDP
   c=IN IP4 110.111.112.114
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F14 200 OK Proxy -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB2@there.com> <sip:UserB2@110.111.112.114>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client2.there.com
   s=Session SDP
   c=IN IP4 110.111.112.114
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F15 ACK A -> Proxy

   ACK sip:UserB2@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   Route: <sip:UserB2@there.com> <sip:UserB@110.111.112.114>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F16 ACK Proxy -> B2

   ACK sip:UserB2@there.com sip:UserB2@110.111.112.114 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   /* RTP streams are established between A and B2.  User A Hangs Up
   with User B2. */

   F17 BYE A -> Proxy

   BYE sip:UserB2@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   Route: <sip:UserB2@there.com> <sip:UserB@110.111.112.114>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 2 BYE
   Content-Length: 0

   F18 BYE Proxy -> B2
   BYE sip:UserB2@there.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 2 BYE
   Content-Length: 0

   F19 200 OK B2 -> Proxy

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 2 BYE
   Content-Length: 0

   F20 200 OK Proxy -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq:  2 BYE
   Content-Length: 0

2.9  3-way Conference

   User A calls User B, User B then invites user C to a 3-way call. User
   B will mix the audio streams (act as the conference bridge).  If user
   B drops out of the call then the entire call is dropped.  This is not
   a fully meshed conference, and does not make use of the concepts in
   the call control draft.

   The signaling for this scenario is as follows:  User A calls User B,
   this establishes the call between A and B.  User B calls User C, this
   establishes the call between B and C.  User B will mix the audio
   streams, sending media originating at A to C, and media originating
   at C to A.  There is no SIP signaling relationship between User A and
   User C.

   The REFER method with the Replaces header could be used by User B to
   drop out of the call without disconnecting A and C.

2.10
    Single Line Extension

   Single Line Extension (Sequential, First Wins implementation), a call
   will ring several extensions in sequence.  The extension to answer
   the call becomes the active set, no other sets may join the call.

   The signaling is described in Section 2.11 of this document.  It is
   anticipated that Single Line Extension will be associated with help
   desk/call center applications rather then individual users.  The
   signaling for this implementation of Single Line Extension and Find-
   Me is the same, the difference may be in the provisioning of the
   service.

   Note that the call flows for a Home Extension have not yet been
   designed.

2.11
    Find-Me

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

   A call to a user will attempt to locate that user by calling
   locations from a list of contacts.  The  location to answer the call
   becomes the active set, no other sets may join the call.

   It is anticipated that the Find-me feature will be associated with
   individual users.  The signaling for the implementation of Single
   Line Extension and Find-Me is the same, the difference may be in the
   provisioning of the service.

   Message Details

   F1 INVITE A -> A -> Proxy

   INVITE sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t= 0 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F2 INVITE Proxy -> B1

   INVITE sip:UserB@110.111.112.113 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t= 0 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F3 (100 Trying) Proxy -> A

   SIP/2.0 100 Trying
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F4 180 Ringing B1 -> Proxy

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F5 180 Ringing Proxy -> A

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   /* B1 rings for until a configurable timer in the Proxy expires. The
   Proxy then sends Cancel and proceeds down the list of routes. */

   F6 CANCEL Proxy -> B1

   CANCEL sip:UserB@110.111.112.113 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 CANCEL
   Content-Length: 0

   F7 200 OK B1 -> Proxy

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 CANCEL
   Content-Length: 0

   F8 487 Request Terminated B1 -> Proxy

   SIP/2.0 487 Request Terminated
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F9 ACK Proxy -> B1

   ACK sip:UserB@110.111.112.113 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F10 INVITE Proxy -> B2

   INVITE sip:UserB2@110.111.112.114 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=0 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F11 480 Not Logged In B2 -> Proxy

   SIP/2.0 480 Not Logged In
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314756
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F12 ACK Proxy -> B2

   ACK sip:UserB2@110.111.112.114 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314756
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F13 INVITE Proxy -> B3

   INVITE sip:UserB@there.com sip:UserB3@110.111.112.115 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.3
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t= 0
   t=0 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F2

   F14 486 Busy Here B3 -> Proxy

   SIP/2.0 486 Busy Here
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.3
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7654321
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F15 ACK Proxy -> B1 B3

   ACK sip:UserB3@110.111.112.115 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.3
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7654321
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F16 INVITE Proxy -> B4

   INVITE sip:UserB1@there.com sip:UserB4@110.111.112.116 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 ss1.wcom.com:5060;branch=83749.4
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t= 0
   t=0 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F3 (100 Trying) Proxy

   F17 180 Ringing B4 -> A Proxy

   SIP/2.0 100 Trying 180 Ringing
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.4
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=7137136
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F4

   F18 180 Ringing B1 B4 -> Proxy

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7137136
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F19 200 OK B4 -> Proxy

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.4
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=7137136
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: <sip:UserB4@110.111.112.116>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client4.there.com
   s=Session SDP
   c=IN IP4 110.111.112.116
   t=0 0

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

   F20 200 OK Proxy -> A
   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7137136
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: <sip:UserB4@110.111.112.113.116>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client4.there.com
   s=Session SDP
   c=IN IP4 110.111.112.116
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F21 ACK A -> Proxy

   ACK sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   Route: <sip:UserB4@110.111.112.116>
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7137136
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F22 ACK Proxy -> A B4

   ACK sip:UserB4@110.111.112.116 SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=7137136
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE ACK
   Content-Length: 0

   /* B1 rings for until a configurable timer in the Proxy expires. The
   Proxy then sends Cancel RTP streams are established between A and proceeds down the list of routes. B4*/

   /* User B4 Hangs Up with User A. */

   F6 CANCEL Proxy

   F23 BYE B4 -> B1

   CANCEL sip:UserB1@there.com Proxy

   BYE sip:UserA@here.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 there.com:5060
   Route: <sip:UserA@100.101.102.103>
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=7137136
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345600@here.com
   CSeq: 1 CANCEL BYE
   Content-Length: 0

   F7 200 OK B1 ->

   F24 BYE Proxy -> A

   BYE sip:UserA@100.101.102.103 SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=7137136
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345600@here.com
   CSeq: 1 CANCEL BYE
   Content-Length: 0

   F8 487 Request Cancelled B1

   F25 200 OK A -> Proxy

   SIP/2.0 487 Request Cancelled 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060 there.com:5060
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=7137136
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE BYE
   Content-Length: 0

   F9 ACK

   F26 200 OK Proxy -> B1

   ACK sip:UserB1@there.com B4

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 there.com:5060
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=7137136
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345600@here.com
   CSeq: 1 ACK BYE
   Content-Length: 0

   F10

2.12
    Call Management (Incoming Call Screening)

         User A           Proxy          User B
          |                |              |
          |    INVITE F1   |              |
          |------------------------------>|
          | 305 Use Proxy F2              |
          |<------------------------------|
          |     ACK F3     |              |
          |------------------------------>|
          |    INVITE F4   |              |
          |--------------->|              |
          | 407 Proxy Authorization F5    |
          |<---------------|              |
          |     ACK F6     |              |
          |--------------->|              |
          |    INVITE F7   |              |
          |--------------->|              |
          | 403 Screening Failure (Terminating) F8
          |<---------------|              |
          |     ACK F9     |              |
          |--------------->|              |
          |                |              |

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

   Message Details

   F1 INVITE Proxy A -> B2 B

   INVITE sip:UserB2@there.com sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=0
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F11 480 Not Logged In B2 ->

   /* User B only accepts INVITEs that have been screened by the proxy
   */

   F2 305 Use Proxy B -> A

   SIP/2.0 480 Not Logged In
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 305 Use Proxy
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314756 <sip:UserB@there.com>;tag=342123
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: <sip:ss1.wcom.com>
   Content-Length: 0

   F12

   F3 ACK Proxy A -> B2 B

   ACK sip:UserB2@there.com sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314756 <sip:UserB@there.com>;tag=342123
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F13

   /* A retries the call through the proxy */

   F4 INVITE Proxy A -> B3 Proxy 1

   INVITE sip:UserB3@there.com sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.3
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 2 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=0
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F14 486 Busy Here B3 ->
   /* Proxy 1 challenges User A for authentication */

   F5 407 Proxy Authorization Required Proxy 1 -> A

   SIP/2.0 486 Busy Here 407 Proxy Authorization Required
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.3 here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7654321 <sip:UserB@there.com>;tag=7886765
   Call-ID: 12345600@here.com
   CSeq: 1 2 INVITE
   Proxy-Authenticate: Digest realm="MCI WorldCom SIP",
    domain="sip:ss1.wcom.com", nonce="ea9c8e88df84f1cec4341ae6cbe5a359",
    opaque="", stale=FALSE, algorithm=MD5
   Content-Length: 0

   F15

   F6 ACK Proxy A -> B3 Proxy 1

   ACK sip:UserB3@there.com sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.3 here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7654321 <sip:UserB@there.com>;tag=7886765
   Call-ID: 12345600@here.com
   CSeq: 1 2 ACK
   Content-Length: 0

   F16

   /* User A responds by sending an INVITE Proxy with authentication
   credentials in it.  */

   F7 INVITE A -> B4 Proxy 1

   INVITE sip:UserB4@there.com sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.4
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 3 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Proxy-Authorization: DIGEST username="UserA",
    realm="MCI WorldCom SIP", nonce="ae9137be1c87d175c2dd63302a0d6e0a",
    opaque="", uri="sip:ss1.wcom.com",
    response="bbaec39f943bdcb3620d90afc548a45c"
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=0
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F17 180 Ringing B4 ->

   F8 403 Screening Failure (Terminating) Proxy

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.4 1 -> A

   SIP/2.0 403 Screening Failure (Terminating)
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7137136 <sip:UserB@there.com>;tag=ffe254
   Call-ID: 12345600@here.com
   CSeq: 1 3 INVITE
   Content-Length: 0

   F18 180 Ringing B4

   F9 ACK A -> Proxy 1

   ACK sip:UserB@there.com SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7137136 <sip:UserB@there.com>;tag=ffe254
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE 3 ACK
   Content-Length: 0

   F19 200 OK B4

2.13
    Call Management (Outgoing Call Screening)

         User A           Proxy          User B
          |                |              |
          |    INVITE F1   |              |
          |--------------->|              |
          | 407 Proxy Authorization F2    |
          |<---------------|              |
          |     ACK F3     |              |
          |--------------->|              |
          |    INVITE F4   |              |
          |--------------->|              |
          | 403 Screening Failure (Originating) F5
          |<---------------|              |
          |     ACK F6     |              |
          |--------------->|              |
          |                |              |

   User A has an outgoing call screening list, User B is included on the
   list of addresses User A will not be able to place a call to.  User A
   attempts to call user B.

   Message Details

   F1 INVITE A -> Proxy 1

   INVITE sip:UserB@there.com SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.4
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7137136 <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB4@there.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527
   o=UserA 2890844526 2890844526 IN IP4 client4.there.com client.here.com
   s=Session SDP
   c=IN IP4 110.111.112.116
   t=0 100.101.102.103
   t=3034423619 0
   m=audio 3456 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F20 200 OK

   /* Proxy 1 challenges User A for authentication */

   F2 407 Proxy Authorization Required Proxy 1 -> A
   SIP/2.0 200 OK 407 Proxy Authorization Required
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7137136 <sip:UserB@there.com>;tag=90210
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB4@there.com>
   Content-Type: application/sdp
   Proxy-Authenticate: Digest realm="MCI WorldCom SIP",
    domain="sip:ss1.wcom.com", nonce="ea9c8e88df84f1cec4341ae6cbe5a359",
    opaque="", stale=FALSE, algorithm=MD5
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client4.there.com
   s=Session SDP
   c=IN IP4 110.111.112.116
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F21

   F3 ACK A -> Proxy

   ACK sip:UserB4@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   Route: <UserB4@there.com>
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com>;tag=7137136
   Call-ID: 12345600@here.com
   CSeq: 1

   ACK
   Content-Length: 0

   F22 ACK Proxy -> B4

   ACK sip:UserB4@there.com sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=7137136 <sip:UserB@there.com>;tag=90210
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   /* RTP streams are established between A and B4*/

   /* User B4 Hangs Up A responds be sending an INVITE with User A. authentication
   credentials in it.  */

   F23 BYE B4

   F4 INVITE A -> Proxy

   BYE sip:UserA@here.com 1

   INVITE sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   Route: <sip:UserA@here.com> here.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=7137136
   To: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 BYE 2 INVITE
   Contact: <sip:UserA@100.101.102.103>
   Proxy-Authorization: DIGEST username="UserA", realm="MCI WorldCom
    SIP", nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="",
    uri="sip:ss1.wcom.com", response="b9d2e5bcdec9f69ab2a9b44f270285a6"
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0

   F24 BYE
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F5 403 Screening Failure (Originating) Proxy 1 -> A

   BYE sip:UserA@here.com
   SIP/2.0 403 Screening Failure (Originating)
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060 here.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=7137136
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=18017
   Call-ID: 12345600@here.com
   CSeq: 1 BYE 2 INVITE
   Content-Length: 0

   F25 200 OK

   F6 ACK A -> Proxy

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=7137136
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   Call-ID: 12345600@here.com
   CSeq: 1 BYE
   Content-Length: 0

   F26 200 OK Proxy -> B4

   ACK sip:UserB@there.com SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060 here.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=7137136
   To: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=18017
   Call-ID: 12345600@here.com
   CSeq: 1 BYE 2 ACK
   Content-Length: 0

2.12
    Call Management (Incoming

2.14
          Call Screening) Park

         User A           Proxy         User B     Park Server
          |              |              |
          |   INVITE F1  |              |
          |------------->|              |
          |180 Ringing F2|              |
          |<-------------|              |
          |  200 OK F3   |              |
          |<-------------|              |
          |    ACK F4    |              |
          |------------->|              |
          |  RTP Media   |              |
          |<============>|              |
          |      User B Parks Call      |
          |              |   REFER Refer-To: A F5
          |              |------------->|
          |              |    202 F6    |
          |              |<-------------|
          |  INVITE F7 Referred-By: B   |
          |<----------------------------|
          |          200 OK F8          |
          |---------------------------->|
          |           ACK F9            |
          |<----------------------------|
          |           RTP Music         |
          |<===========================>|
          |     BYE F10  |    INVITE F1              |
          |------------->|  NOTIFY F12  |
          |------------------------------>|
          | 305 Use Proxy F2  200 OK F11  |<-------------|
          |<-------------|  200 OK F13  |
          |<------------------------------|
          |     ACK F3              |------------->|
          |   User B picks up the call  |
          |------------------------------>|
          |    INVITE F4              |              |
          |--------------->|
          |   INVITE F14 | 407 Proxy Authorization F5              |
          |<---------------|
          |<-------------|              |
          |     ACK F6   200 F15    |              |
          |--------------->|
          |------------->|              |
          |    INVITE F7    ACK F16   |              |
          |--------------->|
          |<-------------|              |
          | 403 Screening Failure (Terminating) F8
          |<---------------|  RTP Media   |              |     ACK F9
          |<============>|              |
          |
          |--------------->|           BYE F17           |
          |---------------------------->|
          |          200 OK F18         |
          |<----------------------------|
          |       No more RTP Music     |

   In this example, User A calls User B.  User B has an incoming then parks the call screening list, User at
   the Park Server by sending a REFER to the Park Server.  The server
   sends an INVITE to A which replaces the session between A and B.  The
   call is included on accepted by A and causes A to send a BYE to B. User B
   receives notification of the
   list successful park, and also receives the
   Call-ID in the application/sip body of addresses the NOTIFY response.  When
   User B will not accept calls from. wishes to retrieve the call, a new INVITE is sent to A which
   replaces the session with the Park Server.  User A attempts
   to accepts the call user B.  Messages F1, F2,
   and F3 are included sends a BYE to show that the Park Server. If someone besides User B does not accept INVITEs that have not been screened by
   retrieves the
   proxy. call, then this becomes Call Park and Pickup.

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

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

   Message Details Details.

   F1 INVITE A -> B

   INVITE sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060 there.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com 12345601@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   /* User B only accepts INVITEs that have been screened by the proxy
   */

   F2 305 Use Proxy 180 Ringing B -> A

   SIP/2.0 305 Use Proxy 180 Ringing
   Via: SIP/2.0/UDP here.com:5060 there.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=342123 <sip:UserB@there.com>;tag=314159
   Call-ID: 12345600@here.com 12345601@here.com
   CSeq: 1 INVITE
   Contact: <sip:ss1.wcom.com>
   Content-Length: 0

   F3 ACK A -> 200 OK B

   ACK sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com>;tag=342123
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   /* A retries the call through the proxy */

   F4 INVITE A -> Proxy 1

   INVITE sip:UserB@there.com A
   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060 there.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=314159
   Call-ID: 12345600@here.com 12345601@here.com
   CSeq: 2 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserB@110.111.112.113>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526
   o=UserB 2890844527 2890844527 IN IP4 client.here.com client.there.com
   s=Session SDP
   c=IN IP4 100.101.102.103 110.111.112.113
   t=3034423619 0
   m=audio 49170 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000
   /* Proxy

   F4 ACK A -> B

   ACK sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP there.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 1 challenges ACK
   Content-Length: 0

   /* User B REFERs Park Server to establish session with A for authentication which
   replaces the established session between A and B.  Note that there is
   no session established between B and the Park Server. */

   F5 407 Proxy Authorization Required Proxy 1 REFER B -> A Park Server

   REFER sip:park@server.com SIP/2.0 407 Proxy Authorization Required
   Via: SIP/2.0/UDP here.com:5060 there.com:5060
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com>;tag=7886765 <sip:UserB@there.com>;tag=02134
   To: Park Server <sip:park@server.com>
   Call-ID: 12345600@here.com 4802029847@there.com
   CSeq: 2 INVITE
   Proxy-Authenticate: Digest realm="MCI WorldCom SIP",
    domain="sip:ss1.wcom.com", nonce="ea9c8e88df84f1cec4341ae6cbe5a359",
    opaque="", stale=FALSE, algorithm=MD5 1 REFER
   Refer-To: <sip:UserA@here.com?Replaces=
    12345601@here.com%3Bfrom-tag%3D314159%3Bto-tag%3D1234567&Accept-
    Contact=%3Csip%3AUserA@100.101.102.103%3C%3Bonly%3Dtrue>
   Referred-By: <sip:UserB@there.com>
    ;ref=<sip:UserA@here.com?Replaces=
    12345601@here.com%3Bfrom-tag%3D314159%3Bto-tag%3D1234567&Accept-
    Contact=%3Csip%3AUserA@100.101.102.103%3C%3Bonly%3Dtrue>
   Contact: <sip:UserB@110.111.112.113>
   Content-Length: 0
   F6 ACK A 202 Accepted Park Server -> Proxy B

   SIP/2.0 202 Accepted
   Via: SIP/2.0/UDP there.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=02134
   To: Park Server <sip:park@server.com>;tag=56323
   Call-ID: 4802029847@there.com
   CSeq: 1

   ACK sip:UserB@there.com REFER
   Content-Length: 0

   /* Park Server places call to User A to replace session between A and
   B */

   F7 INVITE Park Server -> A

   INVITE sip:UserA@100.101.102.103 SIP/2.0
   Via: SIP/2.0/UDP here.com:5060 server.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:park@server.com>;tag=0111
   To: LittleGuy <sip:UserB@there.com>;tag=7886765 <sip:UserA@100.101.102.103>
   Call-ID: 12345600@here.com a5-75-34-12-76@server.com
   CSeq: 2 ACK
   Content-Length: 0

   /* User A responds by sending an INVITE with authentication
   credentials in it.  */

   F7 INVITE A -> Proxy 1 INVITE sip:UserB@there.com
   Referred-By: <sip:UserB@there.com>
    ;ref=<sip:UserA@100.101.102.103?Replaces=12345601@here.com%3Bfrom-
   tag%3D314159%3Bto-tag%3D1234567>
   Contact: <sip:park@server.com>
   Replaces: 12345601@here.com;from-tag=314159;to-tag=1234567
   Accept-Contact: <sip:UserA@100.101.102.103>;only=true
   Content-Type: application/sdp
   Content-Length: ...

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

   F8 200 OK A-> Park Server

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060 server.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:park@server.com>;tag=0111
   To: LittleGuy <sip:UserB@there.com> BigGuy <sip:UserA@100.101.102.103>;tag=098594
   Call-ID: 12345600@here.com a5-75-34-12-76@server.com
   CSeq: 3 1 INVITE
   Contact: BigGuy <sip:UserA@here.com>
   Proxy-Authorization: DIGEST username="UserA",
    realm="MCI WorldCom SIP", nonce="ae9137be1c87d175c2dd63302a0d6e0a",
    opaque="", uri="sip:ss1.wcom.com",
    response="bbaec39f943bdcb3620d90afc548a45c" <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F8 403 Screening Failure (Terminating) Proxy 1
   a=recvonly

   F9 ACK Park Server -> A

   ACK sip:UserA@100.101.102.103 SIP/2.0 403 Screening Failure (Terminating)
   Via: SIP/2.0/UDP here.com:5060 server.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:park@server.com>;tag=0111
   To: LittleGuy <sip:UserB@there.com>;tag=ffe254 BigGuy <sip:UserA@100.101.102.103>;tag=098594
   Call-ID: 12345600@here.com a5-75-34-12-76@server.com
   CSeq: 3 INVITE 1 ACK
   Content-Length: 0

   F9 ACK

   F10 BYE A -> Proxy 1 B

   ACK sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060 there.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=ffe254 <sip:UserB@there.com>;tag=314159
   Call-ID: 12345600@here.com 12345601@here.com
   CSeq: 3 ACK 2 BYE
   Content-Length: 0

2.13
    Call Management (Outgoing Call Screening)

         User A           Proxy          User B
          |                |              |
          |    INVITE F1   |              |
          |--------------->|              |
          | 407 Proxy Authorization F2    |
          |<---------------|              |
          |     ACK F3     |              |
          |--------------->|              |
          |    INVITE F4   |              |
          |--------------->|              |
          | 403 Screening Failure (Originating) F5
          |<---------------|              |
          |     ACK F6     |              |
          |--------------->|              |
          |                |              |

   User A has an outgoing call screening list, User

   F11 200 OK B is included on the
   list of addresses User A will not be able to place a call to.  User -> A
   attempts

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP there.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=314159
   Call-ID: 12345601@here.com
   CSeq: 2 BYE
   Content-Length: 0

   /*  Park Server reports success back to call user B.

   Message Details

   F1 INVITE A B by returning all the SIP
   headers in 200 OK response  */

   F12 NOTIFY Park Server -> Proxy 1

   INVITE B
   NOTIFY sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=02134
   From: Park Server <sip:park@server.com>;tag=56323
   Call-ID: 12345600@here.com 4802029847@there.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> NOTIFY
   Event: refer
   Content-Type: application/sdp application/sip
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   /* Proxy 1 challenges User A for authentication */

   F2 407 Proxy Authorization Required Proxy 1 -> A

   SIP/2.0 407 Proxy Authorization Required 200 OK
   Via: SIP/2.0/UDP here.com:5060 server.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:park@server.com>;tag=0111
   To: LittleGuy <sip:UserB@there.com>;tag=90210 BigGuy <sip:UserA@100.101.102.103>;tag=098594
   Call-ID: 12345600@here.com a5-75-34-12-76@server.com
   CSeq: 1 INVITE
   Proxy-Authenticate: Digest realm="MCI WorldCom SIP",
    domain="sip:ss1.wcom.com", nonce="ea9c8e88df84f1cec4341ae6cbe5a359",
    opaque="", stale=FALSE, algorithm=MD5
   Content-Length: 0

   F3 ACK A
   Contact: <sip:UserA@100.101.102.103>

   F13 200 OK B -> Proxy 1

   ACK sip:UserB@there.com Park Server

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com>;tag=90210 <sip:UserB@there.com>;tag=02134
   From: Park Server <sip:park@server.com>;tag=56323
   Call-ID: 12345600@here.com 4802029847@there.com
   CSeq: 1 ACK NOTIFY
   Content-Length: 0

   /* User A responds be is now parked at the Park Server */

   /* User B picks up the call by sending an INVITE to A which replaces
   the existing session with authentication
   credentials in it. the Park/Park Server.  Note that B knows
   the Call-ID of the existing session from the NOTIFY response. */

   F4

   /* Another UA besides B can pickup the call as long as it can
   construct the appropriate Replaces header. */

   F14 INVITE A B -> Proxy A

   INVITE sip:UserA@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   From: LittleGuy <sip:UserB@there.com>;tag=5893461
   To: BigGuy <sip:UserA@here.com>
   Call-ID: 6485356@here.com
   CSeq: 1 INVITE sip:UserB@there.com
   Contact: <sip:UserB@110.111.112.113>
   Replaces: a5-75-34-12-76@server.com;from-tag=098594;to-tag=0111
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844528 2890844528 IN IP4 client.there.com
   s=Session SDP
   c=IN IP4 110.111.112.113
   t=3034423619 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F15 200 OK A -> B

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com> <sip:UserB@there.com>;tag=5893461
   To: BigGuy <sip:UserA@here.com>;tag=222
   Call-ID: 12345600@here.com 6485356@here.com
   CSeq: 2 1 INVITE
   Contact: BigGuy <sip:UserA@here.com>
   Proxy-Authorization: DIGEST username="UserA", realm="MCI WorldCom
    SIP", nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="",
    uri="sip:ss1.wcom.com", response="b9d2e5bcdec9f69ab2a9b44f270285a6" <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 2890844527 2890844527 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=3034423619 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F5 403 Screening Failure (Originating) Proxy 1

   F16 ACK B -> A

   ACK sip:UserA@there.com SIP/2.0 403 Screening Failure (Originating)
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com>;tag=18017 <sip:UserB@there.com>;tag=5893461
   To: BigGuy <sip:UserA@here.com>;tag=222
   Call-ID: 12345600@here.com 6485356@here.com
   CSeq: 2 INVITE 1 ACK
   Content-Length: 0

   F6 ACK

   /* A replaces the session to the Park Server with the new session and
   generates a BYE to disconnect the Park Server */

   F17 BYE A -> Proxy Park Server

   BYE sip:park@server.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>;tag=098594
   To: <sip:park@server.com>;tag=0111
   Call-ID: a5-75-34-12-76@server.com
   CSeq: 1

   ACK sip:UserB@there.com BYE
   Content-Length: 0

   F18 200 OK Park Server -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=098594
   To: LittleGuy <sip:UserB@there.com>;tag=18017 <sip:park@server.com>;tag=0111
   Call-ID: 12345600@here.com a5-75-34-12-76@server.com
   CSeq: 2 ACK 1 BYE
   Content-Length: 0

2.14

2.15
    Call Pickup

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

   User B1 and B2 are part of a work group that can pick up each others
   calls. User A calls B1 who does not answer.  User B2 wishes to pick
   up the call and sends a REGISTER with Expires:0 to the proxy which
   recognizes this as a call pickup not a register based on the Request-
   URI.  The proxy server then forks the INVITE by sending it to B2 who
   answers.  The proxy then cancels the B1 fork of the INVITE.

   Message Details
   F1 INVITE A -> Proxy

   INVITE sip:UserB@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=0 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F2 INVITE Proxy -> B1

   INVITE sip:UserB1@there.com sip:UserB1@110.111.112.113 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=0 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F3 (100 Trying) Proxy -> A

   SIP/2.0 100 Trying
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F4 180 Ringing B1 -> Proxy

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=3145678
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F5 180 Ringing Proxy -> A

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=3145678
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   /* User B2 decides to pick up the call */

   F6 REGISTER  B2 -> Proxy

   REGISTER sip:pickupgroup37.ss1.wcom.com SIP/2.0
   Via: SIP/2.0/UDP b2.there.com:5060
   From: LittleGuy <sip:UserB2@there.com> <sip:UserB2@there.com>;tag=8675309
   To: LittleGuy <sip:UserB2@there.com>
   Call-ID: 563456212@b2.there.com
   CSeq: 1 REGISTER
   Contact: BigGuy <sip:UserB2@there.com> <sip:UserB2@110.111.112.114>
   Expires: 0
   Content-Length: 0

   F7 200 OK  Proxy -> B2

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP b2.there.com:5060
   From: LittleGuy <sip:UserB2@there.com> <sip:UserB2@there.com>;tag=8675309
   To: LittleGuy <sip:UserB2@there.com> <sip:UserB2@there.com>;tag=2913
   Call-ID: 563456212@b2.there.com
   CSeq: 1 REGISTER
   Contact: BigGuy <sip:UserB2@there.com> <sip:UserB2@110.111.112.114>
   Expires: 0
   Content-Length: 0

   /* Proxy recognizes the REGISTER directed at pickgroup37.ss1.wcom.com
   as being a call pickup attempt for the pending INVITE to B1.  The
   proxy then forks the INVITE and sends it to B2. */

   F8 INVITE Proxy -> B2

   INVITE sip:UserB2@there.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: BigGuy <sip:UserA@here.com> <sip:UserA@100.101.102.103>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserA 2890844526 2890844526 IN IP4 client.here.com
   s=Session SDP
   c=IN IP4 100.101.102.103
   t=0 0
   m=audio 49170 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F9 180 Ringing B2 -> Proxy

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F10 180 Proxy -> A

   SIP/2.0 180 Ringing
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F11 200 OK B2 -> Proxy

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB2@there.com> <sip:UserB2@110.111.112.114>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client2.there.com
   s=Session SDP
   c=IN IP4 110.111.112.114
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   F12 200 OK Proxy -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Contact: LittleGuy <sip:UserB2@there.com> <sip:UserB2@110.111.112.114>
   Content-Type: application/sdp
   Content-Length: ...

   v=0
   o=UserB 2890844527 2890844527 IN IP4 client2.there.com
   s=Session SDP
   c=IN IP4 110.111.112.114
   t=0 0
   m=audio 3456 RTP/AVP 0
   a=rtpmap:0 PCMU/8000

   /* The Proxy detects the answer by B2 and cancels the B1 branch */

   F13 CANCEL Proxy -> B1
   CANCEL sip:UserB1@there.com sip:UserB1@110.111.112.113 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 CANCEL
   Content-Length: 0

   F14 200 OK B1 -> Proxy

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>
   Call-ID: 12345600@here.com
   CSeq: 1 CANCEL
   Content-Length: 0

   F15 ACK A -> Proxy

   ACK sip:UserB2@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   Route: <sip:UserB2@there.com> <sip:UserB@110.111.112.114>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F16 ACK Proxy -> B2

   ACK sip:UserB2@there.com sip:UserB2@110.111.112.114 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com>
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   F17 487 Request Cancelled Terminated B1 -> Proxy

   SIP/2.0 487 Request Cancelled Terminated
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=3145678
   Call-ID: 12345600@here.com
   CSeq: 1 INVITE
   Content-Length: 0

   F18 ACK Proxy -> B1

   ACK sip:UserB1@there.com sip:UserB1@110.111.112.113 SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=3145678
   Call-ID: 12345600@here.com
   CSeq: 1 ACK
   Content-Length: 0

   /* RTP streams are established between A and B2.  User A Hangs Up
   with User B2. */

   F19 BYE A -> Proxy

   BYE sip:UserB2@there.com SIP/2.0
   Via: SIP/2.0/UDP here.com:5060
   Route: <sip:UserB2@there.com> <sip:UserB@110.111.112.114>
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 2 BYE
   Content-Length: 0

   F20 BYE Proxy -> B2

   BYE sip:UserB2@there.com SIP/2.0
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 2 BYE
   Content-Length: 0

   F21 200 OK B2 -> Proxy

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq: 2 BYE
   Content-Length: 0

   F22 200 OK Proxy -> A

   SIP/2.0 200 OK
   Via: SIP/2.0/UDP here.com:5060
   From: BigGuy <sip:UserA@here.com> <sip:UserA@here.com>;tag=1234567
   To: LittleGuy <sip:UserB@there.com>;tag=123456 <sip:UserB@there.com>;tag=765432
   Call-ID: 12345600@here.com
   CSeq:  2 BYE
   Content-Length: 0
   Acknowledgements

   The authors wish to thank the following individuals for their
   assistance and review of this call flows document: Rohan Mahey,
   Jonathan Rosenberg, Hemant Agrawal, Henry Sinnreich, Dean Willis,
   David Devanatham, Joe Pizzimenti,  Matt Cannon, John Hearty, the
   whole MCI WorldCom IPOP Design team, Scott Orton, Greg Osterhout, Pat
   Sollee, Doug Weisenberg, Danny Mistry, Steve McKinnon, and Denise
   Ingram, Denise Caballero, Tom Redman, Ilya Slain, Pat Sollee, John
   Truetken, and others from MCI WorldCom, 3Com, Cisco, Lucent and
   Nortel.

3  References

   [1] S. Bradner, "The Internet Standards Process -- Revision 3", BCP
       9, RFC 2026, October 1996.

   [2] M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg, "SIP:
       Session Initiation Protocol", RFC 2543, March 1999.

   [3] A. Johnston, S. Donovan, R. Sparks, C. Cunningham, D. Willis, J.
       Rosenberg, and H. Schulzrinne, "SIP Call Flow Examples", Internet
       Draft, Internet Engineering Task Force, March June 2001, Work in
       Progress.

   [3]

   [4] R. Sparks, "SIP Call Control Transfer", Internet Draft,
       Internet Engineering Task Force, February 2001,
       Work in Progress.

   [4] M. Handley,

   [5] B. Biggs and R. Dean, "The SIP Replaces header," Internet Draft,
       Internet Engineering Task Force, November 2000,
       Work in Progress.

   [6] H. Schulzrinne, E. Schooler, Schulzrinne and J. Rosenberg, "SIP:
       Session Initiation Protocol", RFC 2543, "SIP Caller Preferences and
       Callee Capabilities," Internet Engineering Task Force, June 2001,
       Work in Progress.

   [7] J. Rosenberg, J. Peterson, H. Schulzrinne, and G. Camarillo,
       "Third Party Call Control in SIP," Internet Engineering Task
       Force, March 1999. 2001, Work in Progress.

4  Author's Addresses

   Alan Johnston               Email: alan.johnston@wcom.com
                               sip:alan@digitalari.com
                               sip:alan.johnston@siptest.wcom.com

   Robert Sparks               Email: rsparks@dynamicsoft.com

   Chris Cunningham            Email: ccunningham@dynamicsoft.com

   Steve Donovan               Email: sdonovan@dynamicsoft.com

   Kevin Summers               Email: kevin.summers@sonusnet.com

   Copyright Notice

   "Copyright (C) The Internet Society 2001. All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works. However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.