SIPPING Working Group A. Johnston, Ed. Internet-Draft Avaya Intended status: Best Current R. Sparks Practice Estacado Systems Expires: August 22, 2008 C. Cunningham S. Donovan Cisco Systems K. Summers Prodea Systems February 19, 2008 Session Initiation Protocol Service Examples draft-ietf-sipping-service-examples-14 Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on August 22, 2008. Copyright Notice Copyright (C) The IETF Trust (2008). Abstract This document gives examples of Session Initiation Protocol (SIP) services. This covers most features offered in so-called IP Centrex Johnston, et al. Expires August 22, 2008 [Page 1] Internet-Draft SIP Service Examples February 2008 offerings from local exchange carriers and PBX (Private Branch Exchange) features. Most of the services shown in this document are implemented in the SIP User Agents, although some require the assistance of a SIP Proxy. Some require some extensions to SIP including the REFER, SUBSCRIBE, and NOTIFY methods and the Replaces and Join header fields. These features are not intended to be an exhaustive set, but rather show implementations of common features likely to be implemented on SIP IP telephones in a business environment. Table of Contents 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Service Examples . . . . . . . . . . . . . . . . . . . . . . 4 2.1. Call Hold . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2. Consultation Hold . . . . . . . . . . . . . . . . . . . . 17 2.3. Music On Hold . . . . . . . . . . . . . . . . . . . . . . 35 2.4. Transfer - Unattended . . . . . . . . . . . . . . . . . . 48 2.5. Transfer - Attended . . . . . . . . . . . . . . . . . . . 55 2.6. Transfer - Instant Messaging . . . . . . . . . . . . . . 69 2.7. Call Forwarding Unconditional . . . . . . . . . . . . . . 75 2.8. Call Forwarding - Busy . . . . . . . . . . . . . . . . . 81 2.9. Call Forwarding - No Answer . . . . . . . . . . . . . . . 89 2.10. 3-way Conference - Third Party is Added . . . . . . . . . 98 2.11. 3-way Conference - Third Party Joins . . . . . . . . . . 104 2.12. Find-Me . . . . . . . . . . . . . . . . . . . . . . . . . 109 2.13. Call Management (Incoming Call Screening) . . . . . . . . 121 2.14. Call Management (Outgoing Call Screening) . . . . . . . . 128 2.15. Call Park . . . . . . . . . . . . . . . . . . . . . . . . 131 2.16. Call Pickup . . . . . . . . . . . . . . . . . . . . . . . 143 2.17. Automatic Redial . . . . . . . . . . . . . . . . . . . . 149 2.18. Click to Dial . . . . . . . . . . . . . . . . . . . . . . 158 3. Security Considerations . . . . . . . . . . . . . . . . . . . 161 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 162 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 162 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 162 6.1. Normative References . . . . . . . . . . . . . . . . . . 162 6.2. Informative References . . . . . . . . . . . . . . . . . 163 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 164 Intellectual Property and Copyright Statements . . . . . . . . . 165 Johnston, et al. Expires August 22, 2008 [Page 2] Internet-Draft SIP Service Examples February 2008 1. Overview This document provides example 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 3-way Call Incoming Call Screening Find-Me Call Pickup Call Park Outgoing Call Screening Automatic Redial Click to Dial Note that the Single Line Extension call flow has been removed from this document and will be covered in a separate document. The call flows shown in this document were developed in the design of a SIP IP communications network. They represent an example set of so-called IP Centrex services or PBX services. It is the hope of the authors that this document will be useful for SIP implementers, designers, and protocol researchers alike and will help further the goal of a standard implementation of RFC 3261 [1] and some of its extensions. These flows represent carefully checked and working group reviewed scenarios of SIP service examples as a companion to the specifications. These call flows are based on the current version 2.0 of SIP in RFC 3261 [1] with SDP usage described in RFC 3264 [4] Other RFCs also form part of the SIP standard and are used and referenced in these call flows. The SIP specification and the other referenced documents are definitive as far as protocol issues are concerned. Also, these flows do not represent the only way to implement these services - other approaches such as 3pcc (Third Party Call Control) [15] or Back-to-Back User Agents (B2BUA) may be more appropriate in some circumstances. The peer-to-peer design and principles of these service examples are described in the Multiparty Framework document [13]. These flows assume the functionality described in the SIP Call Flow Examples document [14], which explores basic SIP behavior. Some of the scenarios described herein make use of the SIP method extension REFER [2] and the SIP header extension Replaces [3], and the SIP Johnston, et al. Expires August 22, 2008 [Page 3] Internet-Draft SIP Service Examples February 2008 header extension Join [7]. The SIP Events document [5] describes the use of SUBSCRIBE and NOTIFY while the SIP Dialog Event Package [6] document describes the dialog event package. Some examples make use of the GRUU (Globally Routable User Agent URI) [16] extension. These flows were prepared assuming a network of proxies, registrars, and other SIP servers. The use of Secure SIP URIs (sips) is shown throughout this document, implying TLS transport on each hop with assumed certificate validation. However, other security approaches can be used. The use of Digest authentication is shown in some examples. The emphasis in these call flows is the SIP signaling exchange. As a result, only very simple SDP offer/answer exchanges are shown with audio media. These flows apply equally well for other media and multi-media sessions. For more advanced examples of SDP offer/answer exchanges, refer to [17]. 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 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. Lines longer than 72 characters are handled using the convention defined in Section 2.1 of RFC 4475 [18]. Comments in the message details are shown in the following form: /* Comments. */ 2. Service Examples 2.1. Call Hold Johnston, et al. Expires August 22, 2008 [Page 4] Internet-Draft SIP Service Examples February 2008 Alice Proxy Bob | | | | INVITE F1 | | |--------------->| | | | INVITE F2 | |(100 Trying) F3 |------------->| |<---------------| | | |180 Ringing F4| | 180 Ringing F5 |<-------------| |<---------------| | | | 200 OK F6 | | 200 OK F7 |<-------------| |<---------------| | | ACK F8 | | |--------------->| ACK F9 | | |------------->| | Both way RTP Established | |<=============================>| | |INVITE(hold) F10 |INVITE(hold) F11|<-------------| |<---------------| | | 200 OK F12 | | |--------------->| 200 OK F13 | | |------------->| | | ACK F14 | | ACK F15 |<-------------| |<---------------| | | No RTP Sent! | | | INVITE F16 | | INVITE F17 |<-------------| |<---------------| | | 200 OK F18 | | |--------------->| 200 OK F19 | | |------------->| | | ACK F20 | | ACK F21 |<-------------| |<---------------| | | Both way RTP Established | |<=============================>| | BYE F22 | | |--------------->| BYE F23 | | |------------->| | | 200 OK F24 | | 200 OK F25 |<-------------| |<---------------| | | | | In this scenario, Alice calls Bob, then Bob places the call on hold. Johnston, et al. Expires August 22, 2008 [Page 5] Internet-Draft SIP Service Examples February 2008 Bob then takes the call off hold, then Alice hangs up the call. Note that hold is unidirectional in nature. However, a UA that places the other party on hold will generally also stop sending media, resulting in no media exchange between the UAs. Older UAs may set the connection address to 0.0.0.0 when initiating hold. However, this behavior has been deprecated in favor of using the a=sendonly SDP attribute. Also note the use of the rendering feature tag defined in RFC 4235 [6] used in F10 and F11 to indicate in that Bob's UA is no longer rendering media to Bob, i.e. that Bob has placed the call on hold. Message Details F1 INVITE Alice -> Proxy 1 INVITE sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Call-ID: 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=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 INVITE Proxy 1 -> Bob INVITE sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Johnston, et al. Expires August 22, 2008 [Page 6] Internet-Draft SIP Service Examples February 2008 Record-Route: Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob Call-ID: 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=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F3 (100 Trying) Proxy 1 -> Alice SIP/2.0 100 Trying Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob Call-ID: 12345601@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F4 180 Ringing Bob -> Proxy 1 SIP/2.0 180 Ringing Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 1 INVITE Johnston, et al. Expires August 22, 2008 [Page 7] Internet-Draft SIP Service Examples February 2008 Contact: Content Length:0 F5 180 Ringing Proxy 1 -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 1 INVITE Contact: Content Length: 0 F6 200 OK Bob -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 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=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Johnston, et al. Expires August 22, 2008 [Page 8] Internet-Draft SIP Service Examples February 2008 F7 200 OK Proxy 1 -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 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=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 ACK Alice -> Proxy 1 ACK sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf92 Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 F9 ACK Proxy 1 -> Bob ACK sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK837492.1 Via: SIP/2.0/TLS client.atlanta.example.com:5061 Johnston, et al. Expires August 22, 2008 [Page 9] Internet-Draft SIP Service Examples February 2008 ;branch=z9hG4bK74bf92 ;received=192.0.2.103 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 /* Bob places Alice on hold. Note that the version is incremented in the o= field of the SDP */ F10 INVITE Bob -> Proxy 1 INVITE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 Route: Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 1 INVITE Contact: ;+sip.rendering="no" Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly F11 INVITE Proxy 1 -> Alice INVITE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 Johnston, et al. Expires August 22, 2008 [Page 10] Internet-Draft SIP Service Examples February 2008 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.105 Record-Route: Max-Forwards: 69 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 1 INVITE Contact: ;+sip.rendering="no" Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly /* Alice replies to hold */ F12 200 OK Alice -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.105 Record-Route: From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 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 Johnston, et al. Expires August 22, 2008 [Page 11] Internet-Draft SIP Service Examples February 2008 o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly F13 200 OK Proxy 1 -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.105 Record-Route: From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 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=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly F14 ACK Bob -> Proxy 1 ACK sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds72 Route: Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Johnston, et al. Expires August 22, 2008 [Page 12] Internet-Draft SIP Service Examples February 2008 Supported: replaces Content-Length: 0 F15 ACK Proxy 1 -> Alice ACK sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds72 ;received=192.0.2.105 Max-Forwards: 69 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 /* Bob takes the call off hold */ F16 INVITE Bob -> Proxy 1 INVITE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds73 Route: Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 2 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844529 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Johnston, et al. Expires August 22, 2008 [Page 13] Internet-Draft SIP Service Examples February 2008 F17 INVITE Proxy 1 -> Alice INVITE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK837493.1 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds73 ;received=192.0.2.105 Record-Route: Max-Forwards: 69 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 2 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844529 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F18 200 OK Alice -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK837493.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds73 ;received=192.0.2.105 Record-Route: From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 2 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... Johnston, et al. Expires August 22, 2008 [Page 14] Internet-Draft SIP Service Examples February 2008 v=0 o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F19 200 OK Proxy 1 -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds73 ;received=192.0.2.105 Record-Route: From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 2 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F20 ACK Bob -> Proxy 1 ACK sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds74 Route: Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 2 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Johnston, et al. Expires August 22, 2008 [Page 15] Internet-Draft SIP Service Examples February 2008 Content-Length: 0 F21 ACK Proxy 1 -> Alice ACK sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK837494.1 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds74 ;received=192.0.2.105 Max-Forwards: 69 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 2 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 /* RTP Media stream re-established. Alice disconnects. */ F22 BYE Alice -> Proxy 1 BYE sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf97 Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F23 BYE Proxy 1 -> Bob BYE sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK837497.1 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf97 ;received=192.0.2.103 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=314159 Johnston, et al. Expires August 22, 2008 [Page 16] Internet-Draft SIP Service Examples February 2008 Call-ID: 12345601@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F24 200 OK Bob -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK837497.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf97 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F25 200 OK Proxy 1 -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf97 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 2 BYE Content-Length: 0 2.2. Consultation Hold Alice Proxy Bob Carol | | | | | INVITE F1 | | | |--------------->| INVITE F2 | | | |------------->| | |(100 Trying) F3 | | | |<---------------|180 Ringing F4| | | |<-------------| | | 180 Ringing F5 | | | |<---------------| 200 OK F6 | | | |<-------------| | | 200 OK F7 | | | |<---------------| | | Johnston, et al. Expires August 22, 2008 [Page 17] Internet-Draft SIP Service Examples February 2008 | ACK F8 | | | |--------------->| ACK F9 | | | |------------->| | | Both way RTP Established | | |<=============================>| | | |INVITE(hold) F10 | |INVITE(hold) F11|<-------------| | |<---------------| | | | 200 OK F12 | | | |--------------->| 200 OK F13 | | | |------------->| | | | ACK F14 | | | |<-------------| | | ACK F15 | | | |<---------------| | | | No RTP Sent! | | | | INVITE F16 | | | |<-------------| | | | | INVITE F17 | | |--------------------------------->| | |(100 Trying) F18 | | |------------->| | | | | 180 Ringing F19 | | |<---------------------------------| | | 180 Ringing F20 | | |------------->| | | | | 200 OK F21 | | |<---------------------------------| | | 200 OK F22 | | | |------------->| | | | ACK F23 | | | |<-------------| | | | | ACK F24 | | |--------------------------------->| | | Both way RTP Established | | | |<=================>| | | BYE F25 | | | |<-------------| | | | | BYE F26 | | |--------------------------------->| | | | 200 OK F27 | | |<---------------------------------| | | 200 OK F28 | | | |------------->| | | | INVITE F29 | | | INVITE F30 |<-------------| | |<---------------| | | | 200 OK F31 | | | Johnston, et al. Expires August 22, 2008 [Page 18] Internet-Draft SIP Service Examples February 2008 |--------------->| 200 OK F32 | | | |------------->| | | | ACK F33 | | | |<-------------| | | ACK F34 | | | |<---------------| | | | Both way RTP Established | | |<=============================>| | | BYE F35 | | | |--------------->| BYE F36 | | | |------------->| | | | 200 OK F37 | | | |<-------------| | | 200 OK F38 | | | |<---------------| | | | | | | In this scenario, Alice calls Bob. Bob places call on hold. Bob calls Carol. Bob then disconnects with Carol, then takes the call with Alice off hold. The call ends when Alice hangs up. Also note the use of the rendering feature tag defined in RFC 4235 [6] used in F10 to indicate in that Bob's UA is no longer rendering media to Bob, i.e. that Bob has placed the call on hold. Message Details F1 INVITE Alice -> Proxy 1 INVITE sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Call-ID: 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=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com Johnston, et al. Expires August 22, 2008 [Page 19] Internet-Draft SIP Service Examples February 2008 t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 INVITE Proxy 1 -> Bob INVITE sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob Call-ID: 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=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F3(100 Trying) Proxy 1 -> Alice SIP/2.0 100 Trying Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F4 180 Ringing Bob -> Proxy 1 Johnston, et al. Expires August 22, 2008 [Page 20] Internet-Draft SIP Service Examples February 2008 SIP/2.0 180 Ringing Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content Length:0 F5 180 Ringing Proxy 1 -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content Length: 0 F6 200 OK Bob -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Johnston, et al. Expires August 22, 2008 [Page 21] Internet-Draft SIP Service Examples February 2008 Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F7 200 OK Proxy 1 -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 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=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 ACK Alice -> Proxy 1 ACK sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf45 Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com Johnston, et al. Expires August 22, 2008 [Page 22] Internet-Draft SIP Service Examples February 2008 CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 F9 ACK Proxy 1 -> Bob ACK sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK837494.1 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf45 ;received=192.0.2.103 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 /* Bob places Alice on hold. */ F10 INVITE Bob -> Proxy 1 INVITE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 Route: Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: ;+sip.rendering="no" Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 Johnston, et al. Expires August 22, 2008 [Page 23] Internet-Draft SIP Service Examples February 2008 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly F11 INVITE Proxy 1 -> Alice INVITE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK837497.1 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.105 Record-Route: Max-Forwards: 69 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: ;+sip.rendering="no" Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly F12 200 OK Alice -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK837497.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.105 Record-Route: From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com Johnston, et al. Expires August 22, 2008 [Page 24] Internet-Draft SIP Service Examples February 2008 CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly F13 200 OK Proxy 1 -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.105 Record-Route: From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 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=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly F14 ACK Bob -> Proxy 1 ACK sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 Johnston, et al. Expires August 22, 2008 [Page 25] Internet-Draft SIP Service Examples February 2008 ;branch=z9hG4bKnashdsg Route: Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 F15 ACK Proxy 1 -> Alice ACK sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK8374.1 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashdsg ;received=192.0.2.105 Max-Forwards: 69 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F16 INVITE Bob -> Proxy 1 INVITE sips:carol@chicago.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds22 Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol Call-ID: 9876543210@biloxi.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=bob 2890844834 2890844834 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com Johnston, et al. Expires August 22, 2008 [Page 26] Internet-Draft SIP Service Examples February 2008 t=0 0 m=audio 50170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F17 INVITE Proxy 1 -> Carol INVITE sips:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749a.1 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds22 ;received=192.0.2.105 Record-Route: Max-Forwards: 69 From: Bob ;tag=8675309 To: Carol Call-ID: 9876543210@biloxi.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=bob 2890844834 2890844834 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 50170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F18 (100 Trying) Proxy 1 -> Bob SIP/2.0 100 Trying Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds22 ;received=192.0.2.105 From: Bob ;tag=8675309 To: Carol Call-ID: 9876543210@biloxi.example.com CSeq: 1 INVITE Content-Length: 0 F19 180 Ringing Carol -> Proxy 1 Johnston, et al. Expires August 22, 2008 [Page 27] Internet-Draft SIP Service Examples February 2008 SIP/2.0 180 Ringing Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749a.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds22 ;received=192.0.2.105 Record-Route: From: Bob ;tag=8675309 To: Carol ;tag=456654 Call-ID: 9876543210@atlanta.example.com CSeq: 1 INVITE Contact: Content Length:0 F20 180 Ringing Proxy 1 -> Bob SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds22 ;received=client.chicago.example.com Record-Route: From: Bob ;tag=8675309 To: Carol ;tag=456654 Call-ID: 9876543210@biloxi.example.com CSeq: 1 INVITE Contact: Content Length: 0 F21 200 OK Carol -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749a.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds22 ;received=192.0.2.105 Record-Route: From: Bob ;tag=8675309 To: Carol ;tag=456654 Call-ID: 9876543210@biloxi.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Johnston, et al. Expires August 22, 2008 [Page 28] Internet-Draft SIP Service Examples February 2008 Content-Type: application/sdp Content-Length: ... v=0 o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com s= c=IN IP4 client.chicago.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F22 200 OK Proxy 1 -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds22 ;received=192.0.2.105 Record-Route: From: Bob ;tag=8675309 To: Carol ;tag=456654 Call-ID: 9876543210@biloxi.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=carol 2890844922 2890844922 IN IP4 client.chicago.example.com s= c=IN IP4 client.chicago.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F23 ACK Bob -> Proxy 1 ACK sips:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds24 Route: Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol ;tag=456654 Call-ID: 9876543210@biloxi.example.com Johnston, et al. Expires August 22, 2008 [Page 29] Internet-Draft SIP Service Examples February 2008 CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 F24 ACK Proxy 1 -> Carol ACK sips:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749b.1 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds24 ;received=192.0.2.105 Max-Forwards: 69 From: Bob ;tag=8675309 To: Carol ;tag=456654 Call-ID: 9876543210@biloxi.example.com CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 F25 BYE Bob -> Proxy 1 BYE sips:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7j Route: Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol ;tag=456654 Call-ID: 9876543210@biloxi.example.com CSeq: 2 BYE Content-Length: 0 F26 BYE Proxy 1 -> Carol BYE sips:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749k.1 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7j ;received=192.0.2.105 Max-Forwards: 69 From: Bob ;tag=8675309 Johnston, et al. Expires August 22, 2008 [Page 30] Internet-Draft SIP Service Examples February 2008 To: Carol ;tag=456654 Call-ID: 9876543210@biloxi.example.com CSeq: 2 BYE Content-Length: 0 F27 200 OK Carol -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749k.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7j ;received=192.0.2.105 From: Bob ;tag=8675309 To: Carol ;tag=456654 Call-ID: 9876543210@biloxi.example.com CSeq: 2 BYE Content-Length: 0 F28 200 OK Proxy 1 -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7j ;received=192.0.2.105 From: Bob ;tag=8675309 To: Carol ;tag=456654 Call-ID: 9876543210@biloxi.example.com CSeq: 2 BYE Content-Length: 0 /* Bob takes the call off hold */ F29 INVITE Bob -> Proxy 1 INVITE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7b Route: Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 2 INVITE Johnston, et al. Expires August 22, 2008 [Page 31] Internet-Draft SIP Service Examples February 2008 Contact: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844529 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F30 INVITE Proxy 1 -> Alice INVITE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749q.1 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7b ;received=192.0.2.105 Record-Route: Max-Forwards: 69 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 2 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844529 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F31 200 OK Alice -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749q.1 ;received=192.0.2.54 Johnston, et al. Expires August 22, 2008 [Page 32] Internet-Draft SIP Service Examples February 2008 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7b ;received=192.0.2.105 Record-Route: From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 2 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F32 200 OK Proxy 1 -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7b ;received=192.0.2.105 Record-Route: From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 2 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Johnston, et al. Expires August 22, 2008 [Page 33] Internet-Draft SIP Service Examples February 2008 F33 ACK Bob -> Proxy 1 ACK sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7d7 Route: Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 2 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 F34 ACK Proxy 1 -> Alice ACK sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK8374.1 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7d7 ;received=192.0.2.105 Max-Forwards: 69 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 2 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 F35 BYE Alice -> Proxy 1 BYE sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf10 Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 Johnston, et al. Expires August 22, 2008 [Page 34] Internet-Draft SIP Service Examples February 2008 F36 BYE Proxy 1 -> Bob BYE sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK8379.1 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf10 ;received=192.0.2.103 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F37 200 OK Bob -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK8379.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf10 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F38 200 OK Proxy 1 -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf10 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 2.3. Music On Hold Alice Bob Music Server Johnston, et al. Expires August 22, 2008 [Page 35] Internet-Draft SIP Service Examples February 2008 | | | | INVITE F1 | | |--------------->| | | 180 Ringing F2 | | |<---------------| | | 200 OK F3 | | |<---------------| | | ACK F4 | | |--------------->| | | RTP | | |<==============>| | | | | | Bob places Alice on hold | | | | | INVITE (hold) F5 | |<---------------| | | 200 OK F6 | | |--------------->| | | ACK F7 | | |<---------------| | | no RTP | | | | | | Bob initiates music on hold | | | | | | REFER Refer-To: A F8 | |------------->| | | 202 F9 | | |<-------------| | | NOTIFY F10 | | |<-------------| | | 200 F11 | | |------------->| | INVITE F12 Replaces: B | |<------------------------------| | 200 OK F13 | |------------------------------>| | ACK F14 | |<------------------------------| | RTP Music | |<==============================| | BYE F15 | | |--------------->| NOTIFY F17 | | 200 OK F16 |<-------------| |<---------------| 200 OK F18 | | |------------->| | | | | The music on hold is complete | | | | Johnston, et al. Expires August 22, 2008 [Page 36] Internet-Draft SIP Service Examples February 2008 | Bob takes Alice off hold | | | | | INVITE Replaces: M F19 | |<---------------| | | 200 OK F20 | | |--------------->| | | ACK F21 | | |<---------------| | | RTP | | |<==============>| | | BYE F22 | |------------------------------>| | 200 OK F23 | |<------------------------------| In this flow, Bob places Alice on hold with music. This is performed by Bob sending a REFER to a Music Server which sends an INVITE with Replaces to Alice. The Music Server then sends RTP music to Alice. Bob picks the call up from hold by sending an INVITE with Replaces to Alice. Note the use of the rendering feature tag defined in RFC 4235 [6] used in F5 to indicate in that Bob's UA is no longer rendering media to Bob, i.e. that Bob has placed the call on hold. Feature tags are also used in F12 with the automaton (defined in RFC 3840 [8]) and byeless feature tags (defined in RFC 4235 [6]) to describe the capabilities of the Music Server. Should Alice not wish to receive music on hold, her UA could refuse F12 and she will remain on hold with Bob, but in silence. Message Details F1 INVITE Alice -> Bob INVITE sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Johnston, et al. Expires August 22, 2008 [Page 37] Internet-Draft SIP Service Examples February 2008 Supported: replaces, gruu Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 180 Ringing Bob -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F3 200 OK Bob -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 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=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 Johnston, et al. Expires August 22, 2008 [Page 38] Internet-Draft SIP Service Examples February 2008 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 ACK Alice -> Bob ACK sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfd Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 /* Bob places Alice on hold */ F5 INVITE Bob -> Alice INVITE sips:a8342043f@atlanta.example.com;gr SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bK874bk To: Alice ;tag=1234567 From: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 712 INVITE Contact: ;+sip.rendering="no" Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly F6 200 OK Alice -> Bob Johnston, et al. Expires August 22, 2008 [Page 39] Internet-Draft SIP Service Examples February 2008 SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bK874bk ;received=192.0.2.105 To: Alice ;tag=1234567 From: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 712 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces, gruu Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly F7 ACK Bob -> Alice ACK sips:a8342043f@atlanta.example.com;gr SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKq874b To: Alice ;tag=1234567 From: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 712 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 /* Bob REFERs Music Server to establish session with Alice which replaces the established session between Alice and Bob. */ F8 REFER Bob -> Music Server REFER sips:music@server.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds9 Max-Forwards: 70 Johnston, et al. Expires August 22, 2008 [Page 40] Internet-Draft SIP Service Examples February 2008 From: Bob ;tag=02134 To: Music Server Call-ID: 4802029847@biloxi.example.com CSeq: 1 REFER Refer-To: Referred-By: Contact: Content-Length: 0 F9 202 Accepted Music Server -> Bob SIP/2.0 202 Accepted Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds9 ;received=192.0.2.105 From: Bob ;tag=02134 To: Music Server ;tag=56323 Call-ID: 4802029847@biloxi.example.com Contact: CSeq: 1 REFER Content-Length: 0 F10 NOTIFY Music Server -> Bob NOTIFY sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS server.example.com:5061 ;branch=z9hG4bK74bT6 To: Bob ;tag=02134 Max-Forwards: 70 From: Music Server ;tag=56323 Call-ID: 4802029847@biloxi.example.com CSeq: 1 NOTIFY Event: refer Subscription-State: active;expires=60 Contact: Content-Type: message/sipfrag Content-Length: ... SIP/2.0 100 Trying F11 200 OK Bob -> Music Server Johnston, et al. Expires August 22, 2008 [Page 41] Internet-Draft SIP Service Examples February 2008 SIP/2.0 200 OK Via: SIP/2.0/TLS server.example.com:5061 ;branch=z9hG4bK74bT6 ;received=192.0.2.103 To: Bob ;tag=02134 From: Music Server ;tag=56323 Call-ID: 4802029847@biloxi.example.com CSeq: 1 NOTIFY Content-Length: 0 /* Music Server places call to Alice to replace session between Alice and Bob. */ F12 INVITE Music Server -> Alice INVITE sips:a8342043f@atlanta.example.com;gr SIP/2.0 Via: SIP/2.0/TLS server.example.com:5061 ;branch=z9hG4bK74rf Max-Forwards: 70 From: ;tag=0111 To: Call-ID: a5-75-34-12-76@server.example.com CSeq: 1 INVITE Referred-By: Contact: ;automaton ;+sip.byeless;+sip.rendering="no" Require: replaces Replaces: 12345600@atlanta.example.com ;from-tag=23431;to-tag=1234567 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=MusicServer 2890844576 2890844576 IN IP4 server.example.com s= c=IN IP4 server.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly F13 200 OK Alice -> Music Server SIP/2.0 200 OK Johnston, et al. Expires August 22, 2008 [Page 42] Internet-Draft SIP Service Examples February 2008 Via: SIP/2.0/TLS server.example.com:5061 ;branch=z9hG4bK74rf ;received=192.0.2.103 From: ;tag=0111 To: ;tag=098594 Call-ID: a5-75-34-12-76@server.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces, gruu Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly F14 ACK Music Server -> Alice ACK sips:a8342043f@atlanta.example.com;gr SIP/2.0 Via: SIP/2.0/TLS server.example.com:5061 ;branch=z9hG4bK7rfF Max-Forwards: 70 From: ;tag=0111 To: ;tag=098594 Call-ID: a5-75-34-12-76@server.example.com CSeq: 1 ACK Content-Length: 0 F15 BYE Alice -> Bob BYE sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 Johnston, et al. Expires August 22, 2008 [Page 43] Internet-Draft SIP Service Examples February 2008 F16 200 OK Bob -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.105 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 /* Music Server reports success back to Bob by returning a 200 OK response. Bob obtains the dialog identifiers from the headers included in the response. */ F17 NOTIFY Music Server -> Bob NOTIFY sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS server.example.com:5061 ;branch=z9hG4bK74bf9 To: Bob ;tag=02134 Max-Forwards: 70 From: Music Server ;tag=56323 Call-ID: 4802029847@biloxi.example.com CSeq: 2 NOTIFY Event: refer Subscription-State: terminated;reason=noresource Contact: Content-Type: message/sipfrag Content-Length: ... SIP/2.0 200 OK Via: SIP/2.0/TLS server.example.com:5061 ;branch=z9hG4bK74rf ;received=192.0.2.103 From: ;tag=0111 To: ;tag=098594 Call-ID: a5-75-34-12-76@server.example.com CSeq: 1 INVITE Contact: F18 200 OK Bob -> Music Server SIP/2.0 200 OK Via: SIP/2.0/TLS server.example.com:5061 Johnston, et al. Expires August 22, 2008 [Page 44] Internet-Draft SIP Service Examples February 2008 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 To: Bob ;tag=02134 From: Music Server ;tag=56323 Call-ID: 4802029847@biloxi.example.com CSeq: 2 NOTIFY Content-Length: 0 /* Alice is now parked at the Music Server */ /* Bob picks up the call by sending an INVITE to Alice who replaces the existing session with the Music Server. */ F19 INVITE Bob -> Alice INVITE sips:a8342043f@atlanta.example.com;gr SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bK74bf9 From: Bob ;tag=4i323pr To: Alice Call-ID: uioewrjk2k2were CSeq: 42121 INVITE Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Replaces: a5-75-34-12-76@server.example.com ;to-tag=098594;from-tag=0111 Contact: Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844631 2890844631 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3458 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendrecv F20 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bK74bf9 Johnston, et al. Expires August 22, 2008 [Page 45] Internet-Draft SIP Service Examples February 2008 ;received=192.0.2.105 From: Bob ;tag=4i323pr To: Alice ;tag=6654323 Call-ID: uioewrjk2k2were CSeq: 42121 INVITE Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Contact: Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844576 2890844576 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendrecv F21 200 ACK Bob -> Alice ACK sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKj974bf9 From: Bob ;tag=4i323pr To: Alice ;tag=6654323 Call-ID: uioewrjk2k2were CSeq: 42121 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Content-Length: 0 F22 BYE Alice -> Music Server BYE sips:music@server.example.com SIP/2.0 Max-Forwards: 70 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74rf To: ;tag=0111 From: ;tag=098594 Call-ID: a5-75-34-12-76@server.example.com CSeq: 15 BYE Content-Length: 0 Johnston, et al. Expires August 22, 2008 [Page 46] Internet-Draft SIP Service Examples February 2008 F23 200 OK Music Server -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74rf ;received=192.0.2.103 To: ;tag=0111 From: ;tag=098594 Call-ID: a5-75-34-12-76@server.example.com CSeq: 15 BYE Content-Length: 0 /* Normal media session between Alice and Bob is resumed */ Johnston, et al. Expires August 22, 2008 [Page 47] Internet-Draft SIP Service Examples February 2008 2.4. Transfer - Unattended Alice Bob Carol | INVITE F1 | | |<-------------------| | | 180 Ringing F2 | | |------------------->| | | 200 OK F3 | | |------------------->| | | ACK F4 | | |<-------------------| | | RTP | | |<==================>| | | | | | Alice performs unattended transfer | | | | | REFER Refer-To:C F5| | |------------------->| | | 202 Accepted F6 | | |<-------------------| | | NOTIFY F7 | | |<-------------------| | | 200 OK F8 | | |------------------->| | | BYE F9 | | |------------------->| | | 200 OK F10 | | |<-------------------| | | No RTP Session | INVITE Referred-By: A F11 | |------------------->| | | 180 Ringing F12 | | |<-------------------| | | 200 OK F13 | | |<-------------------| | | ACK F14 | | |------------------->| | | RTP | | |<==================>| | NOTIFY F15 | | |<-------------------| | | 200 OK F16 | | |------------------->| | | | | In this scenario, Bob calls Alice. Alice then transfers Bob to Carol, then Alice disconnects with Bob. Bob establishes the session to Carol then reports the success back to Alice in the NOTIFY in F15. Johnston, et al. Expires August 22, 2008 [Page 48] Internet-Draft SIP Service Examples February 2008 If the transfer fails, Bob can send a new INVITE back to Alice to re- establish the session. Despite the BYE sent by Alice in F9, the dialog between Alice and Bob still exists until the subscription created by the REFER has terminated (either due to a NOTIFY containing a Subscription-State: terminated;reason=noresource header field, as in F15, or a 481 response to a NOTIFY). For more about call transfer see the transfer [12] document. Message Details F1 INVITE Bob -> Alice INVITE sips:alice@atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Bob ;tag=314159 To: Alice Call-ID: 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=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 180 Ringing Alice -> Bob SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.113 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com Johnston, et al. Expires August 22, 2008 [Page 49] Internet-Draft SIP Service Examples February 2008 CSeq: 1 INVITE Contact: Content-Length: 0 F3 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.113 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 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=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 ACK Bob -> Alice ACK sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds2 Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 /* Session is established between Alice and Bob. */ /* Alice performs unattended transfer of Bob to Carol */ Johnston, et al. Expires August 22, 2008 [Page 50] Internet-Draft SIP Service Examples February 2008 F5 REFER Alice -> Bob REFER sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds8 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 101 REFER Refer-To: Referred-By: Contact: Content-Length: 0 F6 202 Accepted Bob -> Alice SIP/2.0 202 Accepted Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds8 ;received=192.0.2.105 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com Contact: CSeq: 101 REFER Content-Length: 0 F7 NOTIFY Bob -> Alice NOTIFY sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds32 Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 2 NOTIFY Event: refer Subscription-State: active;expires=60 Contact: Content-Type: message/sipfrag Content-Length: ... SIP/2.0 100 Trying Johnston, et al. Expires August 22, 2008 [Page 51] Internet-Draft SIP Service Examples February 2008 F8 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds32 ;received=192.0.2.113 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 2 NOTIFY Content-Length: 0 /* Alice now disconnects with Bob. */ F9 BYE Alice -> Bob BYE sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds43 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 102 BYE Content-Length: 0 F10 200 OK Bob -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds43 ;received=192.0.2.105 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 102 BYE Content-Length: 0 /* Bob attempts the transfer to Carol */ F11 INVITE Bob -> Carol INVITE sips:carol@chicago.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds1 Johnston, et al. Expires August 22, 2008 [Page 52] Internet-Draft SIP Service Examples February 2008 Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol Call-ID: 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=bob 2890844539 2890844539 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3458 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F12 180 Ringing Carol -> Bob SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds1 ;received=192.0.2.113 From: Bob ;tag=8675309 To: Carol ;tag=928287 Call-ID: 7436222@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F13 200 OK Carol -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds1 ;received=192.0.2.113 From: Bob ;tag=8675309 To: Carol ;tag=928287 Call-ID: 7436222@atlanta.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Johnston, et al. Expires August 22, 2008 [Page 53] Internet-Draft SIP Service Examples February 2008 Content-Type: application/sdp Content-Length: ... v=0 o=carol 2890944542 2890844542 IN IP4 client.chicago.example.com s= c=IN IP4 client.chicago.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F14 ACK Bob -> Carol ACK sips:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds9 Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol ;tag=928287 Call-ID: 7436222@atlanta.example.com CSeq: 1 ACK Content-Length: 0 /* Bob and Carol now have established a session. Bob reports success to Alice which Alice probably ignores. */ F15 NOTIFY Bob -> Alice NOTIFY sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds67 Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 3 NOTIFY Event: refer Subscription-State: terminated;reason=noresource Contact: Content-Type: message/sipfrag Content-Length: ... SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds1 ;received=192.0.2.113 Johnston, et al. Expires August 22, 2008 [Page 54] Internet-Draft SIP Service Examples February 2008 From: Bob ;tag=8675309 To: Carol ;tag=928287 Call-ID: 7436222@atlanta.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... F16 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds6 ;received=192.0.2.113 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 3 NOTIFY Content-Length: 0 2.5. Transfer - Attended Alice Bob Carol | | | | INVITE F1 | | |--------------->| | | 180 Ringing F2 | | |<---------------| | | 200 OK F3 | | |<---------------| | | ACK F4 | | |--------------->| | | RTP | | |<==============>| | |INVITE (hold) F5| | |<---------------| | | 200 OK F6 | | |--------------->| | | ACK F7 | | |<---------------| | | No RTP | | | | INVITE F8 | | |------------->| | | 180 Ringing F9 | |<-------------| | | 200 OK F10 | Johnston, et al. Expires August 22, 2008 [Page 55] Internet-Draft SIP Service Examples February 2008 | |<-------------| | | ACK F11 | | |------------->| | | RTP | | |<============>| | |INVITE (hold) F12 | |------------->| | | 200 OK F13 | | |<-------------| | | ACK F14 | | |------------->| | | No RTP | | REFER Refer-To: C F15 | |<---------------| | |202 Accepted F16| | |--------------->| | | NOTIFY F17 | | |--------------->| | | 200 OK F18 | | |<---------------| | | INVITE Replaces: B F19 | |------------------------------>| | 200 OK F20 | |<------------------------------| | ACK F21 | |------------------------------>| | RTP | |<=============================>| | | BYE F22 | | |<-------------| | | 200 OK F23 | | |------------->| | NOTIFY F24 | | |--------------->| | | 200 OK F25 | | |<---------------| | | BYE F26 | | |<---------------| | | 200 OK F27 | | |--------------->| | In this scenario, Alice calls Bob. Bob puts Alice on hold then calls Carol to announce transfer, then places Carol on hold. Bob transfers Alice to Carol which replaces the session between Bob and Carol. Carol then disconnects session with Bob. Alice reports success of transfer to Bob, who then disconnects with Alice. In this example, the Replaces header field [3] is inserted into the Refer-To URI by Johnston, et al. Expires August 22, 2008 [Page 56] Internet-Draft SIP Service Examples February 2008 Bob. Note that the Refer-To URI is the Contact URI returned by Carol in the 200 OK response F10. This ensures that only the correct instance of Carol is reached. The presence of the gr URI parameter in the Contact URI in message F10 indicates that the Contact URI is a GRUU [16] and will be globally routable outside of the dialog. Without knowing the Contact URI is a gruu, Bob must be prepared, if the triggered INVITE had failed, to retry the REFER with a Refer-To URI of the URI used to reach Carol but with a Require: replaces header escaped in the Refer-To header field, as discussed in the transfer [12] document. Message Details F1 INVITE Alice -> Bob INVITE sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Call-ID: 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=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 180 Ringing Bob -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com Johnston, et al. Expires August 22, 2008 [Page 57] Internet-Draft SIP Service Examples February 2008 CSeq: 1 INVITE Contact: Content-Length: 0 F3 200 OK Bob -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 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=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 ACK Alice -> Bob ACK sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 /* Alice and Bob have established a session. Bob puts Alice on Hold */ Johnston, et al. Expires August 22, 2008 [Page 58] Internet-Draft SIP Service Examples February 2008 F5 INVITE Bob -> Alice INVITE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Bob ;tag=23431 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1024 INVITE Contact: ;+sip.rendering="no" Content-Type: application/sdp Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: ... v=0 o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly F6 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.113 From: Bob ;tag=23431 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1024 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 Johnston, et al. Expires August 22, 2008 [Page 59] Internet-Draft SIP Service Examples February 2008 a=rtpmap:0 PCMU/8000 a=recvonly F7 ACK Bob -> Alice ACK sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds3 Max-Forwards: 70 From: Bob ;tag=23431 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1024 ACK Content-Length: 0 /* Bob calls Carol */ F8 INVITE Bob -> Carol INVITE sips:carol@chicago.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnash Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 42 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 28908445834 2890844834 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3458 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F9 180 Ringing Carol -> Bob SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.biloxi.example.com:5061 Johnston, et al. Expires August 22, 2008 [Page 60] Internet-Draft SIP Service Examples February 2008 ;branch=z9hG4bKnash ;received=192.0.2.113 From: Bob ;tag=8675309 To: Carol ;tag=5f35a3 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 42 INVITE Contact: Content-Length: 0 F10 200 OK Carol -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnash ;received=192.0.2.113 From: Bob ;tag=8675309 To: Carol ;tag=5f35a3 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 42 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces, gruu Content-Type: application/sdp Content-Length: ... v=0 o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com s= c=IN IP4 client.chicago.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F11 ACK Bob -> Carol ACK sips:39itp34klkd@chicago.example.com;gr SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashd5 Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol ;tag=5f35a3 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 42 ACK Content-Length: 0 Johnston, et al. Expires August 22, 2008 [Page 61] Internet-Draft SIP Service Examples February 2008 /* Bob puts Carol on hold */ F12 INVITE Bob -> Carol INVITE sips:39itp34klkd@chicago.example.com;gr SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds0 Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol ;tag=5f35a3 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 43 INVITE Contact: ;+sip.rendering="no" Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 289084834 2890844835 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3458 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly F13 200 OK Carol -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds0 ;received=192.0.2.113 From: Bob ;tag=8675309 To: Carol ;tag=5f35a3 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 43 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces, gruu Content-Type: application/sdp Content-Length: ... v=0 o=carol 2890844922 2890844923 IN IP4 client.chicago.example.com s= c=IN IP4 client.chicago.example.com Johnston, et al. Expires August 22, 2008 [Page 62] Internet-Draft SIP Service Examples February 2008 t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly F14 ACK Bob -> Carol ACK sips:39itp34klkd@chicago.example.com;gr SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnash334 Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol ;tag=5f35a3 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 43 ACK Content-Length: 0 /* Bob Transfers Alice to Carol. */ F15 REFER Bob -> Alice REFER sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds2g Max-Forwards: 70 From: Bob ;tag=23431 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1025 REFER Refer-To: Referred-By: Contact: Content-Length: 0 F16 202 Accepted Alice -> Bob SIP/2.0 202 Accepted Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds2g ;received=192.0.2.113 From: Bob ;tag=23431 Johnston, et al. Expires August 22, 2008 [Page 63] Internet-Draft SIP Service Examples February 2008 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com Contact: CSeq: 1025 REFER Content-Length: 0 F17 NOTIFY Alice -> Bob NOTIFY sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfK Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 2 NOTIFY Contact: Event: refer Subscription-State: active;expires=60 Content-Type: message/sipfrag Content-Length: ... SIP/2.0 100 Trying F18 200 OK Bob -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfK ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 2 NOTIFY Content-Length: 0 /* Alice establishes session with Carol which replaces the session between Bob and Carol */ F19 INVITE Alice -> Carol INVITE sips:39itp34klkd@chicago.example.com;gr SIP/2.0 Via: SIP/2.0/TLS chicago.example.com:5061 ;branch=z9hG4bKadfe4ko To: Carol Johnston, et al. Expires August 22, 2008 [Page 64] Internet-Draft SIP Service Examples February 2008 Max-Forwards: 70 From: Alice ;tag=3461 Call-ID: 9435674543@atlanta.example.com CSeq: 1 INVITE Require: replaces Referred-By: Replaces: sdjfdjfskdf@biloxi.example.com ;to-tag=5f35a3;from-tag=8675309 Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844989 2890844989 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 3458 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F20 200 OK Carol -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS chicago.example.com:5061 ;branch=z9hG4bKadfe4ko ;received=192.0.2.103 To: Carol ;tag=ff3a From: Alice ;tag=3461 Call-ID: 9435674543@atlanta.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces, gruu Content-Type: application/sdp Content-Length: ... v=0 o=carol 2890844221 2890844221 IN IP4 client.chicago.example.com s= c=IN IP4 client.chicago.example.com t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Johnston, et al. Expires August 22, 2008 [Page 65] Internet-Draft SIP Service Examples February 2008 F21 ACK Alice -> Carol ACK sips:39itp34klkd@chicago.example.com;gr SIP/2.0 Via: SIP/2.0/TLS chicago.example.com:5061 ;branch=z9hG4bKadfe4kU3 To: Carol ;tag=ff3a Max-Forwards: 70 From: Alice ;tag=3461 Call-ID: 9435674543@atlanta.example.com CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 /* Carol then disconnects from Bob */ F22 BYE Carol -> Bob BYE sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfE To: Bob ;tag=8675309 Max-Forwards: 70 From: Carol ;tag=5f35a3 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 1 BYE Content-Length: 0 F23 200 OK Bob -> Carol SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfE ;received=192.0.2.123 To: Bob ;tag=8675309 From: Carol ;tag=5f35a3 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 1 BYE Content-Length: 0 /* Alice tells Bob that the call has been successfully transferred */ F24 NOTIFY Alice -> Bob Johnston, et al. Expires August 22, 2008 [Page 66] Internet-Draft SIP Service Examples February 2008 NOTIFY sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf2N Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 3 NOTIFY Event: refer Subscription-State: terminated;reason=noresource Contact: Content-Type: message/sipfrag Content-Length: ... SIP/2.0 200 OK Via: SIP/2.0/TLS chicago.example.com:5061 ;branch=z9hG4bKadfe4ko ;received=192.0.2.103 To: Carol ;tag=ff3a From: Alice ;tag=3461 Call-ID: 9435674543@atlanta.example.com CSeq: 1 INVITE Contact: F25 200 OK Bob -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 3 NOTIFY Content-Length: 0 /* Bob disconnects with Alice */ F26 BYE Bob -> Alice BYE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7P Max-Forwards: 70 From: Bob ;tag=23431 To: Alice ;tag=1234567 Johnston, et al. Expires August 22, 2008 [Page 67] Internet-Draft SIP Service Examples February 2008 Call-ID: 12345600@atlanta.example.com CSeq: 1026 BYE Content-Length: 0 F27 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7P ;received=192.0.2.113 From: Bob ;tag=23431 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1026 BYE Content-Length: 0 Johnston, et al. Expires August 22, 2008 [Page 68] Internet-Draft SIP Service Examples February 2008 2.6. Transfer - Instant Messaging Alice Bob Carol | | | | INVITE F1 | | |------------->| | | 180 Ringing F2 | |<-------------| | | 200 OK F3 | | |<-------------| | | ACK F4 | | |------------->| | | Both way RTP Established | |<============>| | | | MESSAGE F5 | | |------------------>| | | 200 OK F6 | | |<------------------| | | | | INVITE Replaces:A-B F7 | |<---------------------------------| | 200 OK F8 | |--------------------------------->| | ACK F9 | |<---------------------------------| | Both way RTP Established | |<================================>| | BYE F10 | | |------------->| | | 200 OK F11 | | |<-------------| | | | In this scenario, Alice and Bob establish a session between them. Bob wants Carol to take the call so sends an Instant Message (IM) to Carol containing Alice's URI and an embedded Replaces header field. If Carol clicks on the URI, Carol's SIP UA sends an INVITE to Alice which replaces the session with Bob. This scenario shows the use of the SIP MESSAGE [10] method to pass the URI. However, another IM protocol or other method could have been used to pass the URI from Bob to Carol. Message Details F1 INVITE Alice -> Bob Johnston, et al. Expires August 22, 2008 [Page 69] Internet-Draft SIP Service Examples February 2008 INVITE sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces, gruu Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 180 Ringing Bob -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=3145678 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F3 200 OK Bob -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=3145678 Call-ID: 12345600@atlanta.example.com Contact: CSeq: 1 INVITE Johnston, et al. Expires August 22, 2008 [Page 70] Internet-Draft SIP Service Examples February 2008 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 ACK Alice -> Bob ACK sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74r Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=3145678 Call-ID: 12345600@atlanta.example.com Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces CSeq: 1 ACK Content-Length: 0 /* Bob IMs Carol */ F5 MESSAGE Bob -> Carol MESSAGE sips:carol@chicago.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnash Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 42 MESSAGE Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE Supported: replaces Content-Type: text/html Content-Length: ... Do you want to take this call from Johnston, et al. Expires August 22, 2008 [Page 71] Internet-Draft SIP Service Examples February 2008 Alice? F6 200 OK Carol -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnash ;received=192.0.2.113 From: Bob ;tag=8675309 To: Carol ;tag=5f35a3 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 42 MESSAGE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE Supported: replaces Content-Length: 0 /* Carol takes the call from Bob */ F7 INVITE Carol -> Alice INVITE sips:a8342043f@atlanta.example.com;gr SIP/2.0 Via: SIP/2.0/TLS pc.biloxi.example.com:5061 ;branch=z9hG4bK74HH Max-Forwards: 70 From: Carol ;tag=8675310 To: Alice Call-ID: 563456212@b2.chicago.example.com CSeq: 1 INVITE Require: replaces Replaces: 12345600@atlanta.example.com ;to-tag=3145678;from-tag=1234567 Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=carol 2890843122 2890843122 IN IP4 client.chicago.example.com s= Johnston, et al. Expires August 22, 2008 [Page 72] Internet-Draft SIP Service Examples February 2008 c=IN IP4 client.chicago.example.com t=0 0 m=audio 5342 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* Alice matches the dialog information in the Replaces header and accepts the INVITE */ F8 200 OK Alice -> Carol SIP/2.0 200 OK Via: SIP/2.0/TLS pc.biloxi.example.com:5061 ;branch=z9hG4bK74HH ;received=192.0.2.114 From: Carol ;tag=8675310 To: Alice ;tag=131256 Call-ID: 563456212@b2.chicago.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces, gruu Content-Type: application/sdp Content-Length: ... v=0 o=alice 289084543 289084543 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F9 ACK Carol -> Alice ACK sips:a8342043f@atlanta.example.com;gr SIP/2.0 Via: SIP/2.0/TLS b2.biloxi.example.com:5061 ;branch=z9hG4bK7435 Max-Forwards: 70 From: Carol ;tag=8675310 To: Alice ;tag=131256 Call-ID: 563456212@b2.chicago.example.com CSeq: 1 ACK Content-Length: 0 /* RTP streams are established between Alice and Carol. Johnston, et al. Expires August 22, 2008 [Page 73] Internet-Draft SIP Service Examples February 2008 Alice Hangs Up with Bob due to the Replaces header field. */ F10 BYE Alice -> Bob BYE sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=3145678 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F11 200 OK Bob -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf ;received=192.0.2.103 From: Alice