[-Internet Engineering Task Force Alan-] {+SIPPING Working Group A.+} Johnston [-Internet Draft-] {+Internet-Draft+} WorldCom [-Document: draft-ietf-sipping-service-examples-03.txt Robert-] {+Expires: August 2, 2003 R.+} Sparks [-Category: Informational Chris-] {+C.+} Cunningham [-November 2002 Steve-] {+S.+} Donovan [-Expires: May 2003-] dynamicsoft [-Kevin-] {+K.+} Summers Sonus {+February 2003+} Session Initiation Protocol Service Examples {+draft-ietf-sipping-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].-] {+RFC2026.+} 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-] {+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-] {+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. {+This Internet-Draft will expire on August 2, 2003. Copyright Notice Copyright (C) The Internet Society (2003). All Rights Reserved.+} Abstract This informational document gives examples of Session Initiation Protocol (SIP) services. This covers most features offered in [-so- called-] {+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 the REFER, SUBSCRIBE, and NOTIFY methods and the {+Johnston, et al. Expires August 2, 2003 [Page 1] Internet-Draft SIP Service Examples February 2003+} Replaces and Join headers. These features are not intended to be an exhaustive set, but rather show implementations of common features likely to be implemented on SIP IP telephones in a business environment. [-Johnston, et al. [Page 1] Internet Draft SIP Service Examples November 2002-] Table of Contents [-1 Overview...................................................3-] {+1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3+} 1.1 Legend for Message [-Flows...................................4 1.2 Document History...........................................4 2 IP Telephony Services Features Call Flows..................8-] {+Flows . . . . . . . . . . . . . . . . . . 4 2. Service Examples . . . . . . . . . . . . . . . . . . . . . . 4+} 2.1 Call [-Hold..................................................8-] {+Hold . . . . . . . . . . . . . . . . . . . . . . . . . 4+} 2.2 Consultation [-Hold.........................................19-] {+Hold . . . . . . . . . . . . . . . . . . . . . 15+} 2.3 Music On [-Hold.............................................34-] {+Hold . . . . . . . . . . . . . . . . . . . . . . . 31+} 2.4 Unattended [-Transfer.......................................41-] {+Transfer . . . . . . . . . . . . . . . . . . . . 38+} 2.5 Attended [-Transfer.........................................48-] {+Transfer . . . . . . . . . . . . . . . . . . . . . 45+} 2.6 Call Forwarding [-Unconditional.............................59-] {+Unconditional . . . . . . . . . . . . . . . 58+} 2.7 Call Forwarding - [-Busy....................................64-] {+Busy . . . . . . . . . . . . . . . . . . . 64+} 2.8 Call Forwarding - No [-Answer...............................71-] {+Answer . . . . . . . . . . . . . . . . 70+} 2.9 3-way Conference [-û-] {+–+} Third Party is [-Added...................79-] {+Added . . . . . . . . . . 79+} 2.10 3-way Conference [-û-] {+–+} Third Party [-Joins......................84-] {+Joins . . . . . . . . . . . . 85+} 2.11 Single Line [-Extension.....................................89-] {+Extension . . . . . . . . . . . . . . . . . . . 90+} 2.12 [-Find-Me..................................................105-] {+Find-Me . . . . . . . . . . . . . . . . . . . . . . . . . . 107+} 2.13 Call Management (Incoming Call [-Screening)................115-] {+Screening) . . . . . . . . . 118+} 2.14 Call Management (Outgoing Call [-Screening)................119-] {+Screening) . . . . . . . . . 122+} 2.15 Call [-Park................................................122-] {+Park . . . . . . . . . . . . . . . . . . . . . . . . . 125+} 2.16 Call [-Pickup..............................................131-] {+Pickup . . . . . . . . . . . . . . . . . . . . . . . . 133+} 2.17 Automatic [-Redial.........................................138 3-] {+Redial . . . . . . . . . . . . . . . . . . . . . . 140 2.18 Click to Dial . . . . . . . . . . . . . . . . . . . . . . . 147 3.+} Security [-Considerations..................................144 4-] {+Considerations . . . . . . . . . . . . . . . . . . 150 4.+} IANA [-Considerations......................................145 5 Acknowledgements.........................................146 6 References...............................................147 7 Author's Addresses.......................................148-] {+Considerations . . . . . . . . . . . . . . . . . . . . 150 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 150 6. Document History . . . . . . . . . . . . . . . . . . . . . . 151 6.1 Changes since -03 . . . . . . . . . . . . . . . . . . . . . 151 Informative References . . . . . . . . . . . . . . . . . . . 151 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 152 Intellectual Property and Copyright Statements . . . . . . . 154+} Johnston, et al. [-Informational-] {+Expires August 2, 2003+} [Page 2] [-Internet Draft-] {+Internet-Draft+} SIP Service Examples [-November 2002 1-] {+February 2003 1.+} Overview This informational document provides call flows detailing a SIP implementation of the following traditional telephony services: Call Hold Music on 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 Automatic Redial {+Click to Dial+} 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 [-3261-] {+2543bis+} [2] and [-SDP usage defined by RFC 3264-] [8]. Note that this document is informational, and nothing stated here should be taken as normative. The SIP specification and the other referenced documents are definitive as far as protocol issues are concerned. Also, these flows do not represent the only way to implement these services - other approaches such as 3pcc (Third Party Call Control) or Back-to-Back User Agents (B2BUA) may be more appropriate in some circumstances. The design and principles of these service examples are described in the the Multiparty Framework document [12]. These flows assume the functionality described in the SIP [-Basic-] Call Flow Examples document [3], which explores basic [-behavior.-] {+behavior and PSTN internetworking.+} Some of the scenarios described herein make use of the SIP method extension REFER [4] and the SIP header extension Replaces [5], the SIP header extension Join [6], and some of the concepts in the 3pcc (third party call control) document [7]. The SIP Events document [11] describes the use of SUBSCRIBE and NOTIFY while the SIP Call Package document [10] describes the dialog event package. 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 {+Johnston, et al. Expires August 2, 2003 [Page 3] Internet-Draft SIP Service Examples February 2003+} 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. [-Johnston, et al. Informational [Page 3] Internet Draft SIP Service Examples November 2002-] 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 to 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. Johnston, et al. Informational [Page 4] Internet Draft SIP-] {+2.+} Service Examples [-November 2002 1.4 Changes to 01 - Added Replaces header to flows. - Changed handling of call 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-] {+2.1+} Call [-Park and added new Music On-] Hold [-call flow using 3pcc. 1.5 Changes to 02 - Changed call hold flows to show sendonly attribute based on [8]. - Removed ref parameter from the Referred-By headers since it is now just a generic paramter in the latest draft [4]. (Note that if the ref parameter stays, additional characters such as "<", "@", and ">" must be escaped.) - Removed tags in CANCEL requests and responses. 1.6 Changes to sipping-00 - Added Max-Forwards - Added branch parm and received param to Vias - Changed Record-Route and Route behavior to show loose routing. - Added Record-Route and Contact to 18x responses - Changed Call Pickup to show Replaces with an early dialog - Changed description of Single Line Extension service - Changed Call Park and Pickup flow to show a different user picking up the call. - Added Allow and Supported headers to REFER and replaces flows. 1.7 Changes to -01-] {+Alice Proxy Bob | | | | INVITE F1 | | |--------------->| | | | INVITE F2 | |(100 Trying) F3 |------------->| |<---------------| | | |180 Ringing F4| | 180 Ringing F5 |<-------------| |<---------------| | | | 200 OK F6 | | 200 OK F7 |<-------------| |<---------------| | | ACK F8 | | |--------------->| ACK F9 |+} Johnston, et al. [-Informational-] {+Expires August 2, 2003+} [Page [-5] Internet Draft-] {+4] Internet-Draft+} SIP Service Examples [-November 2002 - Added SIP Events and dialog event package to Call Pickup flow. - Added Auto Redial call flows - Updated based on new Replaces draft with 481 behavior instead of using Accept-Contact in attended transfer. - Added Single Line Extension call flow. - Added Error-Info in call screening flows. 1.8 Changes to -02 - Added 3-way call flows showing transition from 2 party call. 1.9 Changes to -03 - Fixed owner/version SDP errors in hold SDP. - Add Notification of remote-URI in Call Pickup scenario - Updated 3-way conference flows to show just internal User Agent mixing - Added FQDNs in Contacts and SDP, changed example addresses - Replaced use of Accept-Contact header with Contact URI - Updated for refer-06 changes Johnston, et al. Informational [Page 6] Internet Draft SIP Service Examples November 2002 Johnston, et al. Informational [Page 7] Internet Draft SIP Service Examples November 2002 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 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 |-] {+February 2003+} | |------------->| | Both way RTP Established | |<=============================>| | |INVITE(hold) F10 |INVITE(hold) F11|<-------------| |<---------------| | | 200 OK F12 | | |--------------->| 200 OK F13 | | |------------->| | | ACK F14 | | ACK F15 |<-------------| |<---------------| | | No RTP Sent! | | | INVITE F16 | | INVITE F17 |<-------------| |<---------------| | | 200 OK F18 | | |--------------->| 200 OK F19 | | |------------->| | | ACK F20 | | ACK F21 |<-------------| |<---------------| | | Both way RTP Established | |<=============================>| | BYE F22 | | |--------------->| BYE F23 | | |------------->| | | 200 OK F24 | | 200 OK F25 |<-------------| [-Johnston, et al. Informational [Page 8] Internet Draft SIP Service Examples November 2002-] |<---------------| | | | | [-User A-] {+Alice+} calls [-User B, User B-] {+Bob, then+} places {+the+} call on hold. [-User B-] {+Bob+} then takes call off hold. [-User A-] {+Alice+} 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-] {+Alice+} -> Proxy 1 INVITE [-sip:UserB@there.com-] {+sip:bob@biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy -] {+Bob +} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 5] Internet-Draft SIP Service Examples February 2003+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA-] {+o=alice+} 2890844526 2890844526 IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 INVITE Proxy 1 -> [-B-] {+Bob+} INVITE [-sip:UserB@client.there.com-] {+sip:bob@client.biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 Record-Route: [--] {++} Max-Forwards: 69 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy -] {+Bob +} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-Johnston, et al. Informational [Page 9] Internet Draft SIP Service Examples November 2002 o=UserA-] {+o=alice+} 2890844526 2890844526 IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F3 (100 Trying) Proxy 1 -> [-A-] {+Alice+} SIP/2.0 100 Trying Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy -] {+Bob +} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 INVITE {+Johnston, et al. Expires August 2, 2003 [Page 6] Internet-Draft SIP Service Examples February 2003+} Content-Length: 0 F4 180 Ringing [-B-] {+Bob+} -> Proxy 1 SIP/2.0 180 Ringing Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} ;received=192.0.2.54 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 Record-Route: [--] {++} From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content Length:0 F5 180 Ringing Proxy 1 -> [-A-] {+Alice+} SIP/2.0 180 Ringing Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 Record-Route: [--] {++} From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content Length: 0 F6 200 OK [-B-] {+Bob+} -> Proxy 1 [-Johnston, et al. Informational [Page 10] Internet Draft SIP Service Examples November 2002-] SIP/2.0 200 OK Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} ;received=192.0.2.54 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 Record-Route: [--] {++} From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... {+Johnston, et al. Expires August 2, 2003 [Page 7] Internet-Draft SIP Service Examples February 2003+} v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844527 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F7 200 OK Proxy 1 -> [-A-] {+Alice+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 Record-Route: [--] {++} From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844527 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 ACK [-A-] {+Alice+} -> Proxy 1 ACK [-sip:UserB@client.there.com-] {+sip:bob@client.biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} Route: [--] {++} Max-Forwards: 70 [-Johnston, et al. Informational [Page 11] Internet Draft SIP Service Examples November 2002-] From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 ACK Content-Length: 0 F9 ACK Proxy 1 -> [-B-] {+Bob+} ACK [-sip:UserB@client.there.com-] {+sip:bob@client.biloxi.example.com+} SIP/2.0 {+Johnston, et al. Expires August 2, 2003 [Page 8] Internet-Draft SIP Service Examples February 2003+} Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 Max-Forwards: 69 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 ACK Content-Length: 0 /* [-User B-] {+Bob+} places [-User A-] {+Alice+} on hold. Note that the version is incremented in the o= field of the SDP */ F10 INVITE [-B-] {+Bob+} -> Proxy 1 INVITE [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Route: [--] {++} Max-Forwards: 70 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844528 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly F11 INVITE Proxy 1 -> [-A-] {+Alice+} INVITE [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1 Johnston, et al. Informational [Page 12] Internet Draft SIP Service Examples November 2002-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Record-Route: [--] {++} Max-Forwards: 69 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567 Johnston, et al. Expires August 2, 2003 [Page 9] Internet-Draft SIP Service Examples February 2003+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844528 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly /* A replies [-with normal SDP-] {+to hold+} */ F12 200 OK [-A-] {+Alice+} -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} ;received=192.0.2.54 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Record-Route: [--] {++} From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA 2890844526-] {+o=alice+} 2890844526 {+2890844527+} IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 {+a=recvonly+} F13 200 OK Proxy 1 -> [-B-] {+Bob+} SIP/2.0 200 OK {+Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Johnston, et al. [-Informational-] {+Expires August 2, 2003+} [Page [-13] Internet Draft-] {+10] Internet-Draft+} SIP Service Examples [-November 2002 Via: SIP/2.0/UDP client.there.com:5060;branch=z9hG4bKnashds7-] {+February 2003+} ;received=192.0.2.105 Record-Route: [--] {++} From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA 2890844526-] {+o=alice+} 2890844526 {+2890844527+} IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 {+a=recvonly+} F14 ACK [-B-] {+Bob+} -> Proxy 1 ACK [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Route: [--] {++} Max-Forwards: 70 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 ACK Content-Length: 0 F15 ACK Proxy 1 -> [-A-] {+Alice+} ACK [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Max-Forwards: 69 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 ACK Content-Length: 0 /* [-User B-] {+Bob+} takes the call off hold */ [-F16 INVITE B -> Proxy 1 INVITE sip:UserA@client.here.com SIP/2.0-] Johnston, et al. [-Informational-] {+Expires August 2, 2003+} [Page [-14] Internet Draft-] {+11] Internet-Draft+} SIP Service Examples [-November 2002-] {+February 2003 F16 INVITE Bob -> Proxy 1 INVITE sip:alice@client.atlanta.example.com SIP/2.0+} Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Route: [--] {++} Max-Forwards: 70 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 2 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844529 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F17 INVITE Proxy 1 -> [-A-] {+Alice+} INVITE [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Record-Route: [--] {++} Max-Forwards: 69 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 2 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844529 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 {+Johnston, et al. Expires August 2, 2003 [Page 12] Internet-Draft SIP Service Examples February 2003+} F18 200 OK [-A-] {+Alice+} -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} ;received=192.0.2.54 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 [-Johnston, et al. Informational [Page 15] Internet Draft SIP Service Examples November 2002-] Record-Route: [--] {++} From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 2 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA 2890844526-] {+o=alice+} 2890844526 {+2890844528+} IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F19 200 OK Proxy 1 -> [-B-] {+Bob+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Record-Route: [--] {++} From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 2 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA 2890844526-] {+o=alice+} 2890844526 {+2890844528+} IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 {+Johnston, et al. Expires August 2, 2003 [Page 13] Internet-Draft SIP Service Examples February 2003+} F20 ACK [-B-] {+Bob+} -> Proxy 1 ACK [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Route: [--] {++} Max-Forwards: 70 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 2 ACK Content-Length: 0 [-Johnston, et al. Informational [Page 16] Internet Draft SIP Service Examples November 2002-] F21 ACK Proxy 1 -> [-A-] {+Alice+} ACK [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Max-Forwards: 69 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 2 ACK Content-Length: 0 /* RTP Media stream re-established. [-User A-] {+Alice+} disconnects. */ F22 BYE [-A-] {+Alice+} -> Proxy 1 BYE [-sip:UserB@client.there.com-] {+sip:bob@client.biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} Route: [--] {++} Max-Forwards: 70 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 2 BYE Content-Length: 0 F23 BYE Proxy 1 -> [-B-] {+Bob+} BYE [-sip:UserB@client.there.com-] {+sip:bob@client.biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 {+Johnston, et al. Expires August 2, 2003 [Page 14] Internet-Draft SIP Service Examples February 2003+} Max-Forwards: 69 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 2 BYE Content-Length: 0 F24 200 OK [-B-] {+Bob+} -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} ;received=192.0.2.54 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 [-Johnston, et al. Informational [Page 17] Internet Draft SIP Service Examples November 2002-] From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 2 BYE Content-Length: 0 F25 200 OK Proxy 1 -> [-A-] {+Alice+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 2 BYE Content-Length: 0 [-Johnston, et al. Informational [Page 18] Internet Draft SIP Service Examples November 2002-] 2.2 Consultation Hold [-User A-] {+Alice+} Proxy [-User B User C-] {+Bob Carol+} | | | | | INVITE F1 | | | |--------------->| INVITE F2 | | | |------------->| | |(100 Trying) F3 | | | |<---------------|180 Ringing F4| | | |<-------------| | | 180 Ringing F5 | | | {+Johnston, et al. Expires August 2, 2003 [Page 15] Internet-Draft SIP Service Examples February 2003+} |<---------------| 200 OK F6 | | | |<-------------| | | 200 OK F7 | | | |<---------------| | | | ACK F8 | | | |--------------->| ACK F9 | | | |------------->| | | Both way RTP Established | | |<=============================>| | | |INVITE(hold) F10 | |INVITE(hold) F11|<-------------| | |<---------------| | | | 200 OK F12 | | | |--------------->| 200 OK F13 | | | |------------->| | | | ACK F14 | | | |<-------------| | | ACK F15 | | | |<---------------| | | | No RTP Sent! | | | | INVITE F16 | | | |<-------------| | | | | INVITE F17 | | |--------------------------------->| | |(100 Trying) F18 | | |------------->| | | | | 180 Ringing F19 | | |<---------------------------------| | | 180 Ringing F20 | | |------------->| | | | | 200 OK F21 | | |<---------------------------------| | | 200 OK F22 | | | |------------->| | | | ACK F23 | | | |<-------------| | | | | ACK F24 | | |--------------------------------->| | | Both way RTP Established | [-Johnston, et al. Informational [Page 19] Internet Draft SIP Service Examples November 2002-] | | |<=================>| | | BYE F25 | | | |<-------------| | | | | BYE F26 | | |--------------------------------->| | | | 200 OK F27 | | |<---------------------------------| | | 200 OK F28 | | | |------------->| | {+Johnston, et al. Expires August 2, 2003 [Page 16] Internet-Draft SIP Service Examples February 2003+} | | 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-] {+Alice+} calls [-user B. User B-] {+Bob. Bob+} places call on hold. [-User B-] {+Bob+} calls [-User C. User B-] {+Carol. Bob+} then disconnects with [-C,-] {+Carol,+} then takes the call with [-User A-] {+Alice+} off hold. The call ends [-with B-] {+when Bob+} hangs up. Message Details F1 INVITE [-A-] {+Alice+} -> Proxy 1 INVITE [-sip:UserB@there.com-] {+sip:bob@biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy -] {+Bob +} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA-] {+o=alice+} 2890844526 2890844526 IN IP4 [-client.here.com Johnston, et al. Informational [Page 20] Internet Draft SIP Service Examples November 2002-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 {+Johnston, et al. Expires August 2, 2003 [Page 17] Internet-Draft SIP Service Examples February 2003+} F2 INVITE Proxy 1 -> [-B-] {+Bob+} INVITE [-sip:UserB@client.there.com-] {+sip:bob@client.biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 Record-Route: [--] {++} Max-Forwards: 69 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy -] {+Bob +} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA-] {+o=alice+} 2890844526 2890844526 IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F3(100 Trying) Proxy 1 -> [-A-] {+Alice+} SIP/2.0 100 Trying Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy -] {+Bob +} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Content-Length: 0 F4 180 Ringing [-B-] {+Bob+} -> Proxy 1 SIP/2.0 180 Ringing Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} ;received=192.0.2.54 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 Record-Route: [--] {+ From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com+} Johnston, et al. [-Informational-] {+Expires August 2, 2003+} [Page [-21] Internet Draft-] {+18] Internet-Draft+} SIP Service Examples [-November 2002 From: BigGuy ;tag=1234567 To: LittleGuy ;tag=314159 Call-ID: 12345600@here.com-] {+February 2003+} CSeq: 1 INVITE Contact: [--] {++} Content Length:0 F5 180 Ringing Proxy 1 -> [-A-] {+Alice+} SIP/2.0 180 Ringing Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 Record-Route: [--] {++} From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content Length: 0 F6 200 OK [-B-] {+Bob+} -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} ;received=192.0.2.54 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 Record-Route: [--] {++} From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844527 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F7 200 OK Proxy 1 -> [-A-] {+Alice+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} Johnston, et al. [-Informational-] {+Expires August 2, 2003+} [Page [-22] Internet Draft-] {+19] Internet-Draft+} SIP Service Examples [-November 2002-] {+February 2003 ;received=192.0.2.103+} Record-Route: [--] {++} From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844527 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 ACK [-A-] {+Alice+} -> Proxy 1 ACK [-sip:UserB@client.there.com-] {+sip:bob@client.biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} Route: [--] {++} Max-Forwards: 70 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 ACK Content-Length: 0 F9 ACK Proxy 1 -> [-B-] {+Bob+} ACK [-sip:UserB@client.there.com-] {+sip:bob@client.biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 Max-Forwards: 69 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 ACK Content-Length: 0 /* [-User B-] {+Bob+} places [-User A-] {+Alice+} on hold. */ {+Johnston, et al. Expires August 2, 2003 [Page 20] Internet-Draft SIP Service Examples February 2003+} F10 INVITE [-B-] {+Bob+} -> Proxy 1 INVITE [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Route: [- Johnston, et al. Informational [Page 23] Internet Draft SIP Service Examples November 2002-] {++} Max-Forwards: 70 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844528 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly F11 INVITE Proxy 1 -> [-A-] {+Alice+} INVITE [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Record-Route: [--] {++} Max-Forwards: 69 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844528 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly {+Johnston, et al. Expires August 2, 2003 [Page 21] Internet-Draft SIP Service Examples February 2003+} F12 200 OK [-A-] {+Alice+} -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} ;received=192.0.2.54 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 [-Johnston, et al. Informational [Page 24] Internet Draft SIP Service Examples November 2002-] Record-Route: [--] {++} From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA 2890844526-] {+o=alice+} 2890844526 {+2890844527+} IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 {+a=recvonly+} F13 200 OK Proxy 1 -> [-B-] {+Bob+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Record-Route: [--] {++} From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA 2890844526-] {+o=alice+} 2890844526 {+2890844527+} IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 {+a=recvonly Johnston, et al. Expires August 2, 2003 [Page 22] Internet-Draft SIP Service Examples February 2003+} F14 ACK [-B-] {+Bob+} -> Proxy 1 ACK [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Route: [--] {++} Max-Forwards: 70 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 ACK Content-Length: 0 [-Johnston, et al. Informational [Page 25] Internet Draft SIP Service Examples November 2002-] F15 ACK Proxy 1 -> [-A-] {+Alice+} ACK [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Max-Forwards: 69 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 ACK Content-Length: 0 F16 INVITE [-B-] {+Bob+} -> Proxy 1 INVITE [-sip:UserC@anywhere.com-] {+sip:carol@chicago.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Max-Forwards: 70 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy -] {+Carol +} Call-ID: [-9876543210@there.com-] {+9876543210@biloxi.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844834 2890844834 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 50170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 {+Johnston, et al. Expires August 2, 2003 [Page 23] Internet-Draft SIP Service Examples February 2003+} F17 INVITE Proxy 1 -> [-C-] {+Carol+} INVITE [-sip:UserC@client.anywhere.com-] {+sip:carol@client.chicago.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Record-Route: [--] {++} Max-Forwards: 69 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy -] {+Carol +} Call-ID: [-9876543210@there.com-] {+9876543210@biloxi.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp [-Johnston, et al. Informational [Page 26] Internet Draft SIP Service Examples November 2002-] Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844834 2890844834 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 50170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F18 (100 Trying) Proxy 1 -> [-B-] {+Bob+} SIP/2.0 100 Trying Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy -] {+Carol +} Call-ID: [-9876543210@there.com-] {+9876543210@biloxi.example.com+} CSeq: 1 INVITE Content-Length: 0 F19 180 Ringing [-C-] {+Carol+} -> Proxy 1 SIP/2.0 180 Ringing Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} ;received=192.0.2.54 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Record-Route: [--] {++} From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy ;tag=456654-] {+Carol ;tag=456654+} Call-ID: [-9876543210@here.com-] {+9876543210@atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 24] Internet-Draft SIP Service Examples February 2003+} CSeq: 1 INVITE Contact: [--] {++} Content Length:0 F20 180 Ringing Proxy 1 -> [-B-] {+Bob+} SIP/2.0 180 Ringing Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7 ;received=client.anywhere.com-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=client.chicago.example.com+} Record-Route: [--] {++} From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy ;tag=456654-] {+Carol ;tag=456654+} Call-ID: [-9876543210@there.com-] {+9876543210@biloxi.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content Length: 0 [-Johnston, et al. Informational [Page 27] Internet Draft SIP Service Examples November 2002-] F21 200 OK [-C-] {+Carol+} -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} ;received=192.0.2.54 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Record-Route: [--] {++} From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy ;tag=456654-] {+Carol ;tag=456654+} Call-ID: [-9876543210@there.com-] {+9876543210@biloxi.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserC-] {+o=carol+} 2890844922 2890844922 IN IP4 [-client.anywhere.com-] {+client.chicago.example.com+} s=Session SDP c=IN IP4 [-client.anywhere.com-] {+client.chicago.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F22 200 OK Proxy 1 -> [-B-] {+Bob+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Johnston, et al. Expires August 2, 2003 [Page 25] Internet-Draft SIP Service Examples February 2003+} ;received=192.0.2.105 Record-Route: [--] {++} From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy ;tag=456654-] {+Carol ;tag=456654+} Call-ID: [-9876543210@there.com-] {+9876543210@biloxi.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserC-] {+o=carol+} 2890844922 2890844922 IN IP4 [-client.anywhere.com-] {+client.chicago.example.com+} s=Session SDP c=IN IP4 [-client.anywhere.com-] {+client.chicago.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F23 ACK [-B-] {+Bob+} -> Proxy 1 ACK [-sip:UserC@client.anywhere.com-] {+sip:carol@client.chicago.example.com+} SIP/2.0 [-Johnston, et al. Informational [Page 28] Internet Draft SIP Service Examples November 2002-] Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Route: [--] {++} Max-Forwards: 70 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy ;tag=456654-] {+Carol ;tag=456654+} Call-ID: [-9876543210@there.com-] {+9876543210@biloxi.example.com+} CSeq: 1 ACK Content-Length: 0 F24 ACK Proxy 1 -> [-C-] {+Carol+} ACK [-sip:UserC@client.anywhere.com-] {+sip:carol@client.chicago.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Max-Forwards: 69 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy ;tag=456654-] {+Carol ;tag=456654+} Call-ID: [-9876543210@there.com-] {+9876543210@biloxi.example.com+} CSeq: 1 ACK Content-Length: 0 F25 BYE [-B-] {+Bob+} -> Proxy 1 {+Johnston, et al. Expires August 2, 2003 [Page 26] Internet-Draft SIP Service Examples February 2003+} BYE [-sip:UserC@client.anywhere.com-] {+sip:carol@client.chicago.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Route: [--] {++} Max-Forwards: 70 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy ;tag=456654-] {+Carol ;tag=456654+} Call-ID: [-9876543210@there.com-] {+9876543210@biloxi.example.com+} CSeq: 2 BYE Content-Length: 0 F26 BYE Proxy 1 -> [-C-] {+Carol+} BYE [-sip:UserC@client.anywhere.com-] {+sip:carol@client.chicago.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Max-Forwards: 69 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy ;tag=456654-] {+Carol ;tag=456654+} Call-ID: [-9876543210@there.com-] {+9876543210@biloxi.example.com+} CSeq: 2 BYE Content-Length: 0 F27 200 OK [-C-] {+Carol+} -> Proxy 1 [-Johnston, et al. Informational [Page 29] Internet Draft SIP Service Examples November 2002-] SIP/2.0 200 OK Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} ;received=192.0.2.54 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy ;tag=456654-] {+Carol ;tag=456654+} Call-ID: [-9876543210@there.com-] {+9876543210@biloxi.example.com+} CSeq: 2 BYE Content-Length: 0 F28 200 OK Proxy 1 -> [-B-] {+Bob+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy ;tag=456654-] {+Carol ;tag=456654+} Call-ID: [-9876543210@there.com-] {+9876543210@biloxi.example.com+} CSeq: 2 BYE {+Johnston, et al. Expires August 2, 2003 [Page 27] Internet-Draft SIP Service Examples February 2003+} Content-Length: 0 /* [-User B-] {+Bob+} takes the call off hold */ F29 INVITE [-B-] {+Bob+} -> Proxy 1 INVITE [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Route: [--] {++} Max-Forwards: 70 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 2 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844529 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F30 INVITE Proxy 1 -> [-A Johnston, et al. Informational [Page 30] Internet Draft SIP Service Examples November 2002-] {+Alice+} INVITE [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Record-Route: [--] {++} Max-Forwards: 69 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 2 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844529 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com Johnston, et al. Expires August 2, 2003 [Page 28] Internet-Draft SIP Service Examples February 2003+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F31 200 OK [-A-] {+Alice+} -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} ;received=192.0.2.54 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Record-Route: [--] {++} From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 2 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA 2890844526-] {+o=alice+} 2890844526 {+2890844528+} IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F32 200 OK Proxy 1 -> [-B-] {+Bob+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7 Johnston, et al. Informational [Page 31] Internet Draft SIP Service Examples November 2002-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Record-Route: [--] {++} From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 2 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA 2890844526-] {+o=alice+} 2890844526 {+2890844528+} IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 29] Internet-Draft SIP Service Examples February 2003+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F33 ACK [-B-] {+Bob+} -> Proxy 1 ACK [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Route: [--] {++} Max-Forwards: 70 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 2 ACK Content-Length: 0 F34 ACK Proxy 1 -> [-A-] {+Alice+} ACK [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 Max-Forwards: 69 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 2 ACK Content-Length: 0 F35 BYE [-A-] {+Alice+} -> Proxy 1 BYE [-sip:UserB@client.there.com-] {+sip:bob@client.biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} Route: [--] {++} Max-Forwards: 70 [-Johnston, et al. Informational [Page 32] Internet Draft SIP Service Examples November 2002-] From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 2 BYE Content-Length: 0 F36 BYE Proxy 1 -> [-B-] {+Bob+} BYE [-sip:UserB@client.there.com-] {+sip:bob@client.biloxi.example.com+} SIP/2.0 {+Johnston, et al. Expires August 2, 2003 [Page 30] Internet-Draft SIP Service Examples February 2003+} Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 Max-Forwards: 69 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 2 BYE Content-Length: 0 F37 200 OK [-B-] {+Bob+} -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP [-ss1.wcom.com:5060;branch=z9hG4bK83749.1-] {+ss1.example.com:5060;branch=z9hG4bK83749.1+} ;received=192.0.2.54 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 2 BYE Content-Length: 0 F38 200 OK Proxy 1 -> [-A-] {+Alice+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 2 BYE Content-Length: 0 [-Johnston, et al. Informational [Page 33] Internet Draft SIP Service Examples November 2002-] 2.3 Music On Hold [-User A User B-] {+Alice Bob+} Music Server | | | | INVITE F1 | | |--------------->| | | 180 Ringing F2 | | |<---------------| | | 200 OK F3 | | |<---------------| | {+Johnston, et al. Expires August 2, 2003 [Page 31] Internet-Draft SIP Service Examples February 2003+} | ACK F4 | | |--------------->| | | RTP | | |<==============>| | | | | | B places A on hold with music | | | | | | INVITE no sdp F5 | |------------->| | |200 OK sdpM F6| | |<-------------| |INVITE (hold) F7| | |<---------------| | | 200 OK sdpA F8 | | |--------------->| | | ACK F9 | | |<---------------| | | | ACK sdpA F10 | | |------------->| | RTP | |<==============================| | | | | B Picks up the Call | | | BYE F11 | | |------------->| | | 200 OK F12 | | |<-------------| | INVITE F13 | | |<---------------| | | 200 OK F14 | | |--------------->| | | ACK F15 | | |<---------------| | | 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 [-Johnston, et al. Informational [Page 34] Internet Draft SIP Service Examples November 2002-] 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 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. {+Johnston, et al. Expires August 2, 2003 [Page 32] Internet-Draft SIP Service Examples February 2003+} Message Details F1 INVITE [-A-] {+Alice+} -> [-B-] {+Bob+} INVITE [-sip:UserB@there.com-] {+sip:bob@biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy -] {+Bob +} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA-] {+o=alice+} 2890844526 2890844526 IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 180 Ringing [-B-] {+Bob+} -> [-A-] {+Alice+} SIP/2.0 180 Ringing Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=23431-] {+Bob ;tag=23431+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Length: 0 F3 200 OK [-B-] {+Bob+} -> [-A-] {+Alice+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9 Johnston, et al. Informational [Page 35] Internet Draft SIP Service Examples November 2002-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=23431-] {+Bob ;tag=23431+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {+ Johnston, et al. Expires August 2, 2003 [Page 33] Internet-Draft SIP Service Examples February 2003+} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844527 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 ACK [-A-] {+Alice+} -> [-B-] {+Bob+} ACK [-sip:UserB@client.there.com-] {+sip:bob@client.biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=23431-] {+Bob ;tag=23431+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 ACK Content-Length: 0 /* [-User B-] {+Bob+} places A on hold with music by acting as a B2BUA and sending an INVITE to the Music Server */ F5 INVITE [-B-] {+Bob+} -> Music Server INVITE [-sip:music@server.com-] {+sip:music@server.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Max-Forwards: 70 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: Music [--] {++} Call-ID: [-sdjfdjfskdf@there.com-] {+sdjfdjfskdf@biloxi.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Length: 0 F6 200 OK [-C-] {+Carol+} -> [-B-] {+Bob+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309 To: Music ;tag=90210 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 1 INVITE+} Johnston, et al. [-Informational-] {+Expires August 2, 2003+} [Page [-36] Internet Draft-] {+34] Internet-Draft+} SIP Service Examples [-November 2002 To: Music ;tag=90210 Call-ID: sdjfdjfskdf@there.com CSeq: 1 INVITE-] {+February 2003+} Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 o=MusicServer 2890844576 2890844577 IN IP4 [-music.server.com-] {+music.server.example.com+} s=Session SDP c=IN IP4 [-music.server.com-] {+music.server.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly /* B re-INVITEs A on hold */ F7 INVITE [-B-] {+Bob+} -> [-A-] {+Alice+} INVITE [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Max-Forwards: 70 From: [-LittleGuy ;tag=23431-] {+Bob ;tag=23431+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844528 IN IP4 [-music.server.com-] {+music.server.example.com+} s=Session SDP c=IN IP4 [-music.server.com-] {+music.server.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly [-/* A responds with normal SDP */-] F8 200 OK [-A-] {+Alice+} -> [-B-] {+Bob+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} From: [-LittleGuy ;tag=23431-] {+Bob ;tag=23431+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE {+Contact: +} Johnston, et al. [-Informational-] {+Expires August 2, 2003+} [Page [-37] Internet Draft-] {+35] Internet-Draft+} SIP Service Examples [-November 2002 Contact: -] {+February 2003+} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA 2890844526-] {+o=alice+} 2890844526 {+2890844527+} IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 {+a=recvonly+} F9 ACK [-B-] {+Bob+} -> [-A-] {+Alice+} ACK [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Max-Forwards: 70 From: [-LittleGuy ;tag=23431-] {+Bob ;tag=23431+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 ACK Content-Length: 0 /* B passes SDP of A to the Music Server to allow music to be sent from B to A */ F10 ACK [-B-] {+Bob+} -> Music Server ACK [-sip:music@server.com-] {+sip:music@server.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Max-Forwards: 70 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: Music [-;tag=90210-] {+;tag=90210+} Call-ID: [-sdjfdjfskdf@there.com-] {+sdjfdjfskdf@biloxi.example.com+} CSeq: 1 ACK Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA 2890844526-] {+o=alice+} 2890844526 {+2890844527+} IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 {+a=recvonly Johnston, et al. Expires August 2, 2003 [Page 36] Internet-Draft SIP Service Examples February 2003+} /* RTP music is now sent from the Music Server to A */ /* B picks up the call from the Music Server */ [-Johnston, et al. Informational [Page 38] Internet Draft SIP Service Examples November 2002-] F11 BYE [-B-] {+Bob+} -> Music Server BYE [-sip:music@server.com-] {+sip:music@server.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Max-Forwards: 70 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: Music [-;tag=90210-] {+;tag=90210+} Call-ID: [-sdjfdjfskdf@there.com-] {+sdjfdjfskdf@biloxi.example.com+} CSeq: 2 BYE Content-Length: 0 F12 200 OK Music Server -> [-B-] {+Bob+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: Music [-;tag=90210-] {+;tag=90210+} Call-ID: [-sdjfdjfskdf@there.com-] {+sdjfdjfskdf@biloxi.example.com+} CSeq: 2 BYE Content-Length:0 /* B re-INVITEs taking A off hold */ F13 INVITE [-B-] {+Bob+} -> [-A-] {+Alice+} INVITE [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Max-Forwards: 70 From: [-LittleGuy ;tag=23431-] {+Bob ;tag=23431+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 2 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844529 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 {+Johnston, et al. Expires August 2, 2003 [Page 37] Internet-Draft SIP Service Examples February 2003+} m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F14 200 OK [-A-] {+Alice+} -> [-B-] {+Bob+} SIP/2.0 200 OK [-Johnston, et al. Informational [Page 39] Internet Draft SIP Service Examples November 2002-] Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} From: [-LittleGuy ;tag=23431-] {+Bob ;tag=23431+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 2 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA 2890844526-] {+o=alice+} 2890844526 {+2890844528+} IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F15 ACK [-B-] {+Bob+} -> [-A-] {+Alice+} ACK [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Max-Forwards: 70 From: [-LittleGuy ;tag=23431-] {+Bob ;tag=23431+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 2 ACK Content-Length: 0 /* Normal media session between A and B is resumed */ {+2.4 Unattended Transfer+} Johnston, et al. [-Informational-] {+Expires August 2, 2003+} [Page [-40] Internet Draft-] {+38] Internet-Draft+} SIP Service Examples [-November 2002 2.4 Unattended Transfer User A User B User C-] {+February 2003 Alice Bob Carol+} | INVITE F1 | | |<-------------------| | | 180 Ringing F2 | | |------------------->| | | 200 OK F3 | | |------------------->| | | ACK F4 | | |<-------------------| | | RTP | | |<==================>| | | | | | A performs unattended transfer | | | | | REFER Refer-To:C F5| | |------------------->| | | 202 Accepted F6 | | |<-------------------| | | NOTIFY F7 | | |<-------------------| | | 200 OK F8 | | |------------------->| | | BYE F9 | | |------------------->| | | 200 OK F10 | | |<-------------------| | | No RTP Session | INVITE Referred-By: A F11 | |------------------->| | | 180 Ringing F12 | | |<-------------------| | | 200 OK F13 | | |<-------------------| | | ACK F14 | | |------------------->| | | RTP | | |<==================>| | NOTIFY F14 | | |<-------------------| | | 200 OK F15 | | |------------------->| | | | | [-User B call User A. User A-] {+Bob calls Alice. Alice+} then transfers [-User B-] {+Bob+} to [-User C,-] {+Carol,+} then [-User A-] {+Alice+} disconnects with [-User B. User B-] {+Bob. Bob+} establishes the session to [-C-] {+Carol+} then reports the success back to [-A-] {+Alice+} in the NOTIFY. If the transfer fails, [-User B-] {+Bob+} can send a new INVITE back to [-A-] {+Alice+} to re-establish the session. Johnston, et al. [-Informational-] {+Expires August 2, 2003+} [Page [-41] Internet Draft-] {+39] Internet-Draft+} SIP Service Examples [-November 2002-] {+February 2003+} Note that the BYE could be sent by [-A-] {+Alice+} after the NOTIFY. Also, if [-A-] {+Alice+} has flushed all state information, the NOTIFY may receive a 481 Call Leg Does Not Exist. Message Details F1 INVITE [-B-] {+Bob+} -> [-A-] {+Alice+} INVITE [-sip:UserA@here.com-] {+sip:alice@atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Max-Forwards: 70 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy -] {+Alice +} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844527 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 180 Ringing [-A-] {+Alice+} -> [-B-] {+Bob+} SIP/2.0 180 Ringing Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.113 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Length: 0 F3 200 OK [-A-] {+Alice+} -> [-B-] {+Bob+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.113 [-From: LittleGuy ;tag=314159 To: BigGuy ;tag=1234567-] Johnston, et al. [-Informational-] {+Expires August 2, 2003+} [Page [-42] Internet Draft-] {+40] Internet-Draft+} SIP Service Examples [-November 2002-] {+February 2003 From: Bob ;tag=314159 To: Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA-] {+o=alice+} 2890844526 2890844526 IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 ACK [-B-] {+Bob+} -> [-A-] {+Alice+} ACK [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Max-Forwards: 70 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 1 ACK Content-Length: 0 /* Session is established between [-A-] {+Alice+} and [-B.-] {+Bob.+} */ /* [-A-] {+Alice+} peforms unattended transfer of [-B-] {+Bob+} to [-C-] {+Carol+} */ F5 REFER [-A-] {+Alice+} -> [-B-] {+Bob+} REFER [-sip:UserB@client.there.com-] {+sip:bob@client.biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Max-Forwards: 70 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 2 REFER Refer-To: [--] {++} Referred-By: [--] {++} Contact: [--] {++} Content-Length: 0 {+Johnston, et al. Expires August 2, 2003 [Page 41] Internet-Draft SIP Service Examples February 2003+} F6 202 Accepted [-B-] {+Bob+} -> [-A-] {+Alice+} SIP/2.0 202 Accepted Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7 Johnston, et al. Informational [Page 43] Internet Draft SIP Service Examples November 2002-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.113 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 2 REFER Content-Length: 0 F7 NOTIFY [-B-] {+Bob+} -> [-A-] {+Alice+} NOTIFY [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Max-Forwards: 70 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 2 NOTIFY Event: refer Subscription-State: active;expires=60 Content-Type: message/sipfrag Content-Length: ... SIP/2.0 100 Trying F8 200 OK [-A-] {+Alice+} -> [-B-] {+Bob+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.113 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 2 NOTIFY Content-Length: 0 /* [-A-] {+Alice+} now disconnects with [-B-] {+Bob.+} */ F9 BYE [-A-] {+Alice+} -> [-B-] {+Bob+} BYE [-sip:UserB@client.there.com-] {+sip:bob@client.biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Johnston, et al. Expires August 2, 2003 [Page 42] Internet-Draft SIP Service Examples February 2003+} Max-Forwards: 70 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 3 BYE Content-Length: 0 [-Johnston, et al. Informational [Page 44] Internet Draft SIP Service Examples November 2002-] F10 200 OK [-B-] {+Bob+} -> [-A-] {+Alice+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.105 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 3 BYE Content-Length: 0 /* [-B-] {+Bob+} attempts the transfer to [-C-] {+Carol+} */ F11 INVITE [-B-] {+Bob+} -> [-C-] {+Carol+} INVITE [-sip:UserC@anywhere.com-] {+sip:carol@chicago.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Max-Forwards: 70 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy -] {+Carol +} Call-ID: [-7436222@here.com-] {+7436222@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Referred-By: [--] {++} Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844539 2890844539 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423821 0 m=audio 3458 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F12 180 Ringing [-C-] {+Carol+} -> [-B-] {+Bob Johnston, et al. Expires August 2, 2003 [Page 43] Internet-Draft SIP Service Examples February 2003+} SIP/2.0 180 Ringing Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.113 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy ;tag=928287-] {+Carol ;tag=928287+} Call-ID: [-7436222@here.com-] {+7436222@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Length: 0 [-Johnston, et al. Informational [Page 45] Internet Draft SIP Service Examples November 2002-] F13 200 OK [-C-] {+Carol+} -> [-B-] {+Bob+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.113 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy ;tag=928287-] {+Carol ;tag=928287+} Call-ID: [-7436222@here.com-] {+7436222@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 [-o=UserC-] {+o=carol+} 2890844527 2890844527 IN IP4 [-client.anywhere.com-] {+client.chicago.example.com+} s=Session SDP c=IN IP4 [-client.anywhere.com-] {+client.chicago.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F14 ACK [-B-] {+Bob+} -> [-C-] {+Carol+} ACK [-sip:UserC@client.anywhere.com-] {+sip:carol@client.chicago.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Max-Forwards: 70 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy ;tag=928287-] {+Carol ;tag=928287+} Call-ID: [-7436222@here.com-] {+7436222@atlanta.example.com+} CSeq: 1 ACK Content-Length: 0 /* [-B-] {+Bob+} and [-C-] {+Carol+} now have established a session. [-B-] {+Bob+} reports success to [-A-] {+Alice+} which [-A-] {+Alice+} probably ignores. */ {+Johnston, et al. Expires August 2, 2003 [Page 44] Internet-Draft SIP Service Examples February 2003+} F15 NOTIFY [-B-] {+Bob+} -> [-A-] {+Alice+} NOTIFY [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Max-Forwards: 70 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 3 NOTIFY Event: refer Subscription-State: terminated;reason=noresource Content-Type: message/sipfrag Content-Length: ... [-Johnston, et al. Informational [Page 46] Internet Draft SIP Service Examples November 2002-] SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.113 From: [-LittleGuy ;tag=8675309-] {+Bob ;tag=8675309+} To: [-OtherGuy ;tag=928287-] {+Carol ;tag=928287+} Call-ID: [-7436222@here.com-] {+7436222@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Type: application/sdp Content-Length: ... F16 200 OK [-A-] {+Alice+} -> [-B-] {+Bob+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.113 From: [-LittleGuy ;tag=314159-] {+Bob ;tag=314159+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345601@here.com-] {+12345601@atlanta.example.com+} CSeq: 3 NOTIFY Content-Length: 0 [-Johnston, et al. Informational [Page 47] Internet Draft SIP Service Examples November 2002-] 2.5 Attended Transfer [-User A User B User C-] {+Alice Bob Carol+} | | | | INVITE F1 | | |--------------->| | | 180 Ringing F2 | | |<---------------| | {+Johnston, et al. Expires August 2, 2003 [Page 45] Internet-Draft SIP Service Examples February 2003+} | 200 OK F3 | | |<---------------| | | ACK F4 | | |--------------->| | | RTP | | |<==============>| | |INVITE (hold) F5| | |<---------------| | | 200 OK F6 | | |--------------->| | | ACK F7 | | |<---------------| | | No RTP | | | | INVITE F8 | | |------------->| | | 180 Ringing F9 | |<-------------| | | 200 OK F10 | | |<-------------| | | ACK F11 | | |------------->| | | RTP | | |<============>| | |INVITE (hold) F12 | |------------->| | | 200 OK F13 | | |<-------------| | | ACK F14 | | |------------->| | | No RTP | | REFER Refer-To: C F15 | |<---------------| | |202 Accepted F16| | |--------------->| | | NOTIFY F17 | | |--------------->| | | 200 OK F18 | | |<---------------| | | INVITE Replaces: B F19 | |------------------------------>| | 200 OK F20 | |<------------------------------| | ACK F21 | [-Johnston, et al. Informational [Page 48] Internet Draft SIP Service Examples November 2002-] |------------------------------>| | RTP | |<=============================>| | | BYE F22 | | |<-------------| {+Johnston, et al. Expires August 2, 2003 [Page 46] Internet-Draft SIP Service Examples February 2003+} | | 200 OK F23 | | |------------->| | NOTIFY F24 | | |--------------->| | | 200 OK F25 | | |<---------------| | | BYE F26 | | |<---------------| | | 200 OK F27 | | |--------------->| | [-User A-] {+Alice+} calls [-User B. User B-] {+Bob. Bob+} puts [-User A-] {+Alice+} on hold then calls [-User C-] {+Carol+} to announce transfer, then places [-C-] {+Carol+} on hold. [-User B-] {+Bob+} transfers [-User A-] {+Alice+} to [-User C-] {+Carol+} which replaces the session between [-B-] {+Bob+} and [-C. C-] {+Carol. Carol+} then disconnects session with [-B. A-] {+Bob. Alice+} reports success of transfer to [-B,-] {+Bob,+} who then disconnects with [-A.-] {+Alice.+} In this example, the Replaces header [5] is inserted into the Refer-To URL by [-B.-] {+Bob.+} Note that the Refer-To URI is the Contact URI returned by [-C-] {+Carol+} in the 200 OK response F10. This ensures that only the correct instance of [-User C-] {+Carol+} is reached. If the triggered INVITE had failed, [-B-] {+Bob+} would have retried the REFER with a Refer-To URI of the URI used to reach [-User C-] {+Carol+} but with a Require: replaces header escaped in the Refer-To header field, as discussed in [9]. Message Details F1 INVITE [-A-] {+Alice+} -> [-B-] {+Bob+} INVITE [-sip:UserB@there.com-] {+sip:bob@biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy -] {+Bob +} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 [-o=UserA-] {+o=alice+} 2890844526 2890844526 IN IP4 [-client.here.com-] {+client.atlanta.example.com+} s=Session SDP c=IN IP4 [-client.here.com-] {+client.atlanta.example.com+} t=3034423619 0 {+m=audio 49170 RTP/AVP 0+} Johnston, et al. [-Informational-] {+Expires August 2, 2003+} [Page [-49] Internet Draft-] {+47] Internet-Draft+} SIP Service Examples [-November 2002 m=audio 49170 RTP/AVP 0-] {+February 2003+} a=rtpmap:0 PCMU/8000 F2 180 Ringing [-B-] {+Bob+} -> [-A-] {+Alice+} SIP/2.0 180 Ringing Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=23431-] {+Bob ;tag=23431+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Content-Length: 0 F3 200 OK [-B-] {+Bob+} -> [-A-] {+Alice+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} ;received=192.0.2.103 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=23431-] {+Bob ;tag=23431+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1 INVITE Contact: [--] {++} Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844527 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 ACK [-A-] {+Alice+} -> [-B-] {+Bob+} ACK [-sip:UserB@client.there.com-] {+sip:bob@client.biloxi.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.here.com:5060;branch=z9hG4bK74bf9-] {+client.atlanta.example.com:5060;branch=z9hG4bK74bf9+} Max-Forwards: 70 From: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} To: [-LittleGuy ;tag=23431-] {+Bob ;tag=23431+} Call-ID: [-12345600@here.com CSeq: 1 ACK Content-Length: 0-] {+12345600@atlanta.example.com+} Johnston, et al. [-Informational-] {+Expires August 2, 2003+} [Page [-50] Internet Draft-] {+48] Internet-Draft+} SIP Service Examples [-November 2002 /* User A and User B-] {+February 2003 CSeq: 1 ACK Content-Length: 0 /* Alice and Bob+} have established a session. [-User B-] {+Bob+} puts [-User A-] {+Alice+} on Hold */ F5 INVITE [-B-] {+Bob+} -> [-A-] {+Alice+} INVITE [-sip:UserA@client.here.com-] {+sip:alice@client.atlanta.example.com+} SIP/2.0 Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} Max-Forwards: 70 From: [-LittleGuy ;tag=23431-] {+Bob ;tag=23431+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1024 INVITE Contact: [--] {++} Content-Type: application/sdp Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: ... v=0 [-o=UserB-] {+o=bob+} 2890844527 2890844528 IN IP4 [-client.there.com-] {+client.biloxi.example.com+} s=Session SDP c=IN IP4 [-client.there.com-] {+client.biloxi.example.com+} t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly F6 200 OK [-A-] {+Alice+} -> [-B-] {+Bob+} SIP/2.0 200 OK Via: SIP/2.0/UDP [-client.there.com:5060;branch=z9hG4bKnashds7-] {+client.biloxi.example.com:5060;branch=z9hG4bKnashds7+} ;received=192.0.2.113 From: [-LittleGuy ;tag=23431-] {+Bob ;tag=23431+} To: [-BigGuy ;tag=1234567-] {+Alice ;tag=1234567+} Call-ID: [-12345600@here.com-] {+12345600@atlanta.example.com+} CSeq: 1024 INVITE Contact: [--] {++} Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: .