SIPPING Working Group A. Johnston, Ed. Internet-Draft Avaya Intended status: Informational R. Sparks Expires: April 23, 2007 Estacado Systems C. Cunningham S. Donovan Cisco Systems K. Summers Prodea Systems October 20, 2006 Session Initiation Protocol Service Examples draft-ietf-sipping-service-examples-11 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 April 23, 2007. Copyright Notice Copyright (C) The Internet Society (2006). 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 April 23, 2007 [Page 1] Internet-Draft SIP Service Examples October 2006 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 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. Table of Contents 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Service Examples . . . . . . . . . . . . . . . . . . . . . . 4 2.1. Call Hold . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2. Consultation Hold . . . . . . . . . . . . . . . . . . . . 17 2.3. Music On Hold . . . . . . . . . . . . . . . . . . . . . . 36 2.4. Transfer - Unattended . . . . . . . . . . . . . . . . . . 44 2.5. Transfer - Attended . . . . . . . . . . . . . . . . . . . 51 2.6. Transfer - Instant Messaging . . . . . . . . . . . . . . 64 2.7. Call Forwarding Unconditional . . . . . . . . . . . . . . 70 2.8. Call Forwarding - Busy . . . . . . . . . . . . . . . . . 76 2.9. Call Forwarding - No Answer . . . . . . . . . . . . . . . 84 2.10. 3-way Conference - Third Party is Added . . . . . . . . . 93 2.11. 3-way Conference - Third Party Joins . . . . . . . . . . 99 2.12. Find-Me . . . . . . . . . . . . . . . . . . . . . . . . . 104 2.13. Call Management (Incoming Call Screening) . . . . . . . . 116 2.14. Call Management (Outgoing Call Screening) . . . . . . . . 124 2.15. Call Park . . . . . . . . . . . . . . . . . . . . . . . . 127 2.16. Call Pickup . . . . . . . . . . . . . . . . . . . . . . . 137 2.17. Automatic Redial . . . . . . . . . . . . . . . . . . . . 144 2.18. Click to Dial . . . . . . . . . . . . . . . . . . . . . . 150 3. Security Considerations . . . . . . . . . . . . . . . . . . . 153 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 153 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 153 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 154 6.1. Normative References . . . . . . . . . . . . . . . . . . 154 6.2. Informative References . . . . . . . . . . . . . . . . . 155 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 156 Intellectual Property and Copyright Statements . . . . . . . . . 157 Johnston, et al. Expires April 23, 2007 [Page 2] Internet-Draft SIP Service Examples October 2006 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 [2] 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 [2] with SDP usage described in RFC 3264 [5] Other RFCs also form part of the SIP standard and are used and references 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) [19] 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 [12]. These flows assume the functionality described in the SIP Call Flow Examples document [18], which explores basic SIP behavior. Some of the scenarios described herein make use of the SIP method extension REFER [3] and the SIP header extension Replaces [4], the SIP header Johnston, et al. Expires April 23, 2007 [Page 3] Internet-Draft SIP Service Examples October 2006 extension Join [9], and some of the concepts in the 3pcc (third party call control) [19] document. The SIP Events document [6] describes the use of SUBSCRIBE and NOTIFY while the SIP Dialog Event Package [8] document describes the dialog event package. Some examples make use of the GRUU (Globally Routable User Agent URI) [22] extension. These flows were prepared assuming a network of proxies, registrars, PSTN gateways, 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. 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 [17]. Comments in the message details are shown in the following form: /* Comments. */ 2. Service Examples 2.1. Call Hold Johnston, et al. Expires April 23, 2007 [Page 4] Internet-Draft SIP Service Examples October 2006 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 April 23, 2007 [Page 5] Internet-Draft SIP Service Examples October 2006 Bob then takes call off hold. Alice hangs up 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. 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 Record-Route: Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob Call-ID: 12345601@atlanta.example.com Johnston, et al. Expires April 23, 2007 [Page 6] Internet-Draft SIP Service Examples October 2006 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 Contact: Content Length:0 F5 180 Ringing Proxy 1 -> Alice Johnston, et al. Expires April 23, 2007 [Page 7] Internet-Draft SIP Service Examples October 2006 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 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 Johnston, et al. Expires April 23, 2007 [Page 8] Internet-Draft SIP Service Examples October 2006 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 ;branch=z9hG4bK74bf92 ;received=192.0.2.103 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com Johnston, et al. Expires April 23, 2007 [Page 9] Internet-Draft SIP Service Examples October 2006 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: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly F11 INVITE Proxy 1 -> Alice INVITE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.105 Record-Route: Max-Forwards: 69 From: Bob ;tag=314159 Johnston, et al. Expires April 23, 2007 [Page 10] Internet-Draft SIP Service Examples October 2006 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=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 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 Johnston, et al. Expires April 23, 2007 [Page 11] Internet-Draft SIP Service Examples October 2006 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 Supported: replaces Content-Length: 0 F15 ACK Proxy 1 -> Alice Johnston, et al. Expires April 23, 2007 [Page 12] Internet-Draft SIP Service Examples October 2006 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 F17 INVITE Proxy 1 -> Alice INVITE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 Johnston, et al. Expires April 23, 2007 [Page 13] Internet-Draft SIP Service Examples October 2006 ;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: ... v=0 o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com s= Johnston, et al. Expires April 23, 2007 [Page 14] Internet-Draft SIP Service Examples October 2006 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 Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 15] Internet-Draft SIP Service Examples October 2006 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 Call-ID: 12345601@atlanta.example.com CSeq: 2 BYE Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 16] Internet-Draft SIP Service Examples October 2006 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 | | | |<---------------| | | | ACK F8 | | | |--------------->| ACK F9 | | | |------------->| | | Both way RTP Established | | |<=============================>| | Johnston, et al. Expires April 23, 2007 [Page 17] Internet-Draft SIP Service Examples October 2006 | |INVITE(hold) F10 | |INVITE(hold) F11|<-------------| | |<---------------| | | | 200 OK F12 | | | |--------------->| 200 OK F13 | | | |------------->| | | | ACK F14 | | | |<-------------| | | ACK F15 | | | |<---------------| | | | No RTP Sent! | | | | INVITE F16 | | | |<-------------| | | | | INVITE F17 | | |--------------------------------->| | |(100 Trying) F18 | | |------------->| | | | | 180 Ringing F19 | | |<---------------------------------| | | 180 Ringing F20 | | |------------->| | | | | 200 OK F21 | | |<---------------------------------| | | 200 OK F22 | | | |------------->| | | | ACK F23 | | | |<-------------| | | | | ACK F24 | | |--------------------------------->| | | Both way RTP Established | | | |<=================>| | | BYE F25 | | | |<-------------| | | | | BYE F26 | | |--------------------------------->| | | | 200 OK F27 | | |<---------------------------------| | | 200 OK F28 | | | |------------->| | | | INVITE F29 | | | INVITE F30 |<-------------| | |<---------------| | | | 200 OK F31 | | | |--------------->| 200 OK F32 | | | |------------->| | | | ACK F33 | | | |<-------------| | | ACK F34 | | | Johnston, et al. Expires April 23, 2007 [Page 18] Internet-Draft SIP Service Examples October 2006 |<---------------| | | | 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. 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 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 Johnston, et al. Expires April 23, 2007 [Page 19] Internet-Draft SIP Service Examples October 2006 ;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 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: Johnston, et al. Expires April 23, 2007 [Page 20] Internet-Draft SIP Service Examples October 2006 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 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 April 23, 2007 [Page 21] Internet-Draft SIP Service Examples October 2006 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 CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 F9 ACK Proxy 1 -> Bob Johnston, et al. Expires April 23, 2007 [Page 22] Internet-Draft SIP Service Examples October 2006 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: 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 Johnston, et al. Expires April 23, 2007 [Page 23] Internet-Draft SIP Service Examples October 2006 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: 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 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 April 23, 2007 [Page 24] Internet-Draft SIP Service Examples October 2006 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 ;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 Johnston, et al. Expires April 23, 2007 [Page 25] Internet-Draft SIP Service Examples October 2006 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 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 Johnston, et al. Expires April 23, 2007 [Page 26] Internet-Draft SIP Service Examples October 2006 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 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 Johnston, et al. Expires April 23, 2007 [Page 27] Internet-Draft SIP Service Examples October 2006 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 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 Johnston, et al. Expires April 23, 2007 [Page 28] Internet-Draft SIP Service Examples October 2006 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 CSeq: 1 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 F24 ACK Proxy 1 -> Carol Johnston, et al. Expires April 23, 2007 [Page 29] Internet-Draft SIP Service Examples October 2006 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 To: Carol ;tag=456654 Call-ID: 9876543210@biloxi.example.com CSeq: 2 BYE Content-Length: 0 F27 200 OK Carol -> Proxy 1 Johnston, et al. Expires April 23, 2007 [Page 30] Internet-Draft SIP Service Examples October 2006 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 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 Johnston, et al. Expires April 23, 2007 [Page 31] Internet-Draft SIP Service Examples October 2006 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 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 Johnston, et al. Expires April 23, 2007 [Page 32] Internet-Draft SIP Service Examples October 2006 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 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: Johnston, et al. Expires April 23, 2007 [Page 33] Internet-Draft SIP Service Examples October 2006 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 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 Johnston, et al. Expires April 23, 2007 [Page 34] Internet-Draft SIP Service Examples October 2006 ;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 Johnston, et al. Expires April 23, 2007 [Page 35] Internet-Draft SIP Service Examples October 2006 2.3. Music On Hold Alice Bob Music Server | | | | INVITE F1 | | |--------------->| | | 180 Ringing F2 | | |<---------------| | | 200 OK F3 | | |<---------------| | | ACK F4 | | |--------------->| | | RTP | | |<==============>| | | | | | Bob places Alice on hold with music | | | | | INVITE no sdp F5 | |------------->| | |200 OK sdpM F6| | |<-------------| |INVITE (hold) F7| | |<---------------| | | 200 OK sdpA F8 | | |--------------->| | | ACK F9 | | |<---------------| | | | ACK sdpA F10 | | |------------->| | RTP | |<==============================| | | | | Bob Picks up the Call | | | BYE F11 | | |------------->| | | 200 OK F12 | | |<-------------| | INVITE F13 | | |<---------------| | | 200 OK F14 | | |--------------->| | | ACK F15 | | |<---------------| | | RTP | | |<==============>| | In this flow, Bob places Alice on hold with music. This is performed Johnston, et al. Expires April 23, 2007 [Page 36] Internet-Draft SIP Service Examples October 2006 by Bob acting as a 3pcc (third party call controller) [19] to INVITE a Music Server into the session, which sends RTP music to Alice. Bob picks the call up from hold by sending a BYE to the music server and taking Alice off hold. Note that if Alice responds to the INVITE with hold SDP (a=inactive) in the 200 OK of F8, this call flow will not work properly. The proper response to hold SDP is shown in F8 (a=recvonly). Note also that Alice will receive RTP packets from two different IP addresses during this call flow. Alice could refuse the music by sending a re-INVITE changing the session to a=inactive. 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 Johnston, et al. Expires April 23, 2007 [Page 37] Internet-Draft SIP Service Examples October 2006 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 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 Johnston, et al. Expires April 23, 2007 [Page 38] Internet-Draft SIP Service Examples October 2006 /* Bob places Alice on hold with music by acting as a 3pcc and sending an INVITE to the Music Server */ F5 INVITE Bob -> Music Server INVITE sips:music@server.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Bob ;tag=8675309 To: Music Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 F6 200 OK Music Server -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.105 From: Bob ;tag=8675309 To: Music ;tag=90210 Call-ID: sdjfdjfskdf@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=MusicServer 2890844576 2890844577 IN IP4 music.server.example.com s= c=IN IP4 music.server.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly /* Bob re-INVITEs Alice on hold */ F7 INVITE Bob -> Alice Johnston, et al. Expires April 23, 2007 [Page 39] Internet-Draft SIP Service Examples October 2006 INVITE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf5 To: Alice ;tag=1234567 Max-Forwards: 70 From: 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 2890844528 IN IP4 music.server.example.com s= c=IN IP4 music.server.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly F8 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf5 ;received=192.0.2.105 To: Alice ;tag=1234567 From: 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=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 Johnston, et al. Expires April 23, 2007 [Page 40] Internet-Draft SIP Service Examples October 2006 F9 ACK Bob -> Alice ACK sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfy To: Alice ;tag=1234567 Max-Forwards: 70 From: 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 passes SDP of Alice to the Music Server to allow music to be sent from Bob to Alice */ F10 ACK Bob -> Music Server ACK sips:music@server.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds3 Max-Forwards: 70 From: Bob ;tag=8675309 To: Music ;tag=90210 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 1 ACK 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 /* RTP music is now sent from the Music Server to Alice */ /* Bob picks up the call from the Music Server */ F11 BYE Bob -> Music Server Johnston, et al. Expires April 23, 2007 [Page 41] Internet-Draft SIP Service Examples October 2006 BYE sips:music@server.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds0 Max-Forwards: 70 From: Bob ;tag=8675309 To: Music ;tag=90210 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 2 BYE Content-Length: 0 F12 200 OK Music Server -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds0 ;received=192.0.2.105 From: Bob ;tag=8675309 To: Music ;tag=90210 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 2 BYE Content-Length:0 /* B re-INVITEs taking A off hold */ F13 INVITE Bob -> Alice INVITE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74b To: Alice ;tag=1234567 Max-Forwards: 70 From: Bob ;tag=23431 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 Johnston, et al. Expires April 23, 2007 [Page 42] Internet-Draft SIP Service Examples October 2006 a=rtpmap:0 PCMU/8000 F14 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74b ;received=192.0.2.105 To: Alice ;tag=1234567 From: Bob ;tag=23431 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 F15 ACK Bob -> Alice ACK sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74b5 To: Alice ;tag=1234567 Max-Forwards: 70 From: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 2 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 /* Normal media session between A and B is resumed */ Johnston, et al. Expires April 23, 2007 [Page 43] Internet-Draft SIP Service Examples October 2006 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 April 23, 2007 [Page 44] Internet-Draft SIP Service Examples October 2006 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 [7] 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 April 23, 2007 [Page 45] Internet-Draft SIP Service Examples October 2006 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 April 23, 2007 [Page 46] Internet-Draft SIP Service Examples October 2006 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 Content-Type: message/sipfrag Content-Length: ... SIP/2.0 100 Trying Johnston, et al. Expires April 23, 2007 [Page 47] Internet-Draft SIP Service Examples October 2006 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 April 23, 2007 [Page 48] Internet-Draft SIP Service Examples October 2006 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 April 23, 2007 [Page 49] Internet-Draft SIP Service Examples October 2006 Content-Type: application/sdp Content-Length: ... v=0 o=carol 2890944527 2890844527 IN IP4 client.chicago.example.com s= c=IN IP4 client.chicago.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 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 Content-Type: message/sipfrag Content-Length: ... SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds1 ;received=192.0.2.113 From: Bob ;tag=8675309 Johnston, et al. Expires April 23, 2007 [Page 50] Internet-Draft SIP Service Examples October 2006 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 April 23, 2007 [Page 51] Internet-Draft SIP Service Examples October 2006 | | 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 [4] is inserted into the Refer-To URI by Bob. Note that the Refer-To URI is the Contact URI returned by Carol Johnston, et al. Expires April 23, 2007 [Page 52] Internet-Draft SIP Service Examples October 2006 in the 200 OK response F10. This ensures that only the correct instance of Carol is reached. The presence of the Supported: gruu header field in message F10 indicates that the Contact URI is, in fact, a GRUU [22] 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 [7] 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 CSeq: 1 INVITE Johnston, et al. Expires April 23, 2007 [Page 53] Internet-Draft SIP Service Examples October 2006 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 */ F5 INVITE Bob -> Alice Johnston, et al. Expires April 23, 2007 [Page 54] Internet-Draft SIP Service Examples October 2006 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: 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 a=rtpmap:0 PCMU/8000 a=recvonly Johnston, et al. Expires April 23, 2007 [Page 55] Internet-Draft SIP Service Examples October 2006 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 ;branch=z9hG4bKnash ;received=192.0.2.113 From: Bob ;tag=8675309 To: Carol ;tag=5f35a3 Johnston, et al. Expires April 23, 2007 [Page 56] Internet-Draft SIP Service Examples October 2006 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 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 /* Bob puts Carol on hold */ F12 INVITE Bob -> Carol Johnston, et al. Expires April 23, 2007 [Page 57] Internet-Draft SIP Service Examples October 2006 INVITE sips:39itp34klkd@chicago.example.com 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: 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 t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly Johnston, et al. Expires April 23, 2007 [Page 58] Internet-Draft SIP Service Examples October 2006 F14 ACK Bob -> Carol ACK sips:39itp34klkd@chicago.example.com 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 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com Contact: CSeq: 1025 REFER Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 59] Internet-Draft SIP Service Examples October 2006 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 SIP/2.0 Via: SIP/2.0/TLS chicago.example.com:5061 ;branch=z9hG4bKadfe4ko To: Carol 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 Johnston, et al. Expires April 23, 2007 [Page 60] Internet-Draft SIP Service Examples October 2006 ;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 F21 ACK Alice -> Carol ACK sips:39itp34klkd@chicago.example.com SIP/2.0 Via: SIP/2.0/TLS chicago.example.com:5061 ;branch=z9hG4bKadfe4kU3 To: Carol ;tag=ff3a Max-Forwards: 70 Johnston, et al. Expires April 23, 2007 [Page 61] Internet-Draft SIP Service Examples October 2006 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 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 Johnston, et al. Expires April 23, 2007 [Page 62] Internet-Draft SIP Service Examples October 2006 CSeq: 3 NOTIFY Event: refer Subscription-State: terminated;reason=noresource 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 Call-ID: 12345600@atlanta.example.com CSeq: 1026 BYE Content-Length: 0 F27 200 OK Alice -> Bob SIP/2.0 200 OK Johnston, et al. Expires April 23, 2007 [Page 63] Internet-Draft SIP Service Examples October 2006 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 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. Johnston, et al. Expires April 23, 2007 [Page 64] Internet-Draft SIP Service Examples October 2006 This scenario shows the use of the SIP MESSAGE [15] method to pass the URI. However, another IM protocol or other method could have been used to pass the URI from Bob to Carol. Message Details F1 INVITE Alice -> Bob INVITE sips: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 Johnston, et al. Expires April 23, 2007 [Page 65] Internet-Draft SIP Service Examples October 2006 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 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 Johnston, et al. Expires April 23, 2007 [Page 66] Internet-Draft SIP Service Examples October 2006 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 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;gruu 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 Johnston, et al. Expires April 23, 2007 [Page 67] Internet-Draft SIP Service Examples October 2006 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= 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;gruu SIP/2.0 Via: SIP/2.0/TLS b2.biloxi.example.com:5061 ;branch=z9hG4bK7435 Johnston, et al. Expires April 23, 2007 [Page 68] Internet-Draft SIP Service Examples October 2006 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. 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 ;tag=1234567 To: Bob ;tag=3145678 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 69] Internet-Draft SIP Service Examples October 2006 2.7. Call Forwarding Unconditional Alice Proxy Gateway | | | | INVITE F1 | | |--------------->| | |(100 Trying) F2 | | |<---------------| | | (181 Call Is Being Forwarded) F3 |<---------------| INVITE F4 | | |------------->| | |180 Ringing F5| | 180 Ringing F6 |<-------------| |<---------------| 200 OK F7 | | 200 OK F8 |<-------------| |<---------------| | | ACK F9 | | |--------------->| ACK F10 | | |------------->| | Both way RTP Established | |<=============================>| | BYE F11 | | |--------------->| BYE F12 | | |------------->| | | 200 OK F13 | | 200 OK F14 |<-------------| |<---------------| | | | | Bob wants all calls forwarded to the PSTN (which is just another URI to the proxy server). Alice calls Bob. The proxy server rewrites the Request URI, and forwards the INVITE to a Gateway. Details of messaging behind the Gateway are not shown. Note that the 181 Call is Being Forwarded response does not have a To tag added as the proxy does not wish to establish an early dialog with Alice. Strictly speaking, the proxy is behaving as a User Agent in this case as a proxy can not generate non-100 provisional responses. Note also that forwarding could be accomplished using a redirect (302 Moved Temporarily response). Message Details F1 INVITE Alice -> Proxy Johnston, et al. Expires April 23, 2007 [Page 70] Internet-Draft SIP Service Examples October 2006 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 Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 (100 Trying) Proxy -> Alice SIP/2.0 100 Trying Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F3 (181 Call is Being Forwarded) Proxy -> Alice SIP/2.0 181 Call is Being Forwarded Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=9214d Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 71] Internet-Draft SIP Service Examples October 2006 /* Proxy forwards call by rewriting Request-URI */ F4 INVITE Proxy -> Gateway INVITE sips:+19727293660@gw1.example.com;user=phone SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: 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 Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F5 180 Ringing Gateway -> Proxy SIP/2.0 180 Ringing Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content Length:0 Johnston, et al. Expires April 23, 2007 [Page 72] Internet-Draft SIP Service Examples October 2006 F6 180 Ringing Proxy -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content Length: 0 F7 200 OK Gateway -> Proxy SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: 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 Content-Type: application/sdp Content-Length: ... v=0 o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.example.com s= c=IN IP4 gatewayone.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 200 OK Proxy -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 Johnston, et al. Expires April 23, 2007 [Page 73] Internet-Draft SIP Service Examples October 2006 ;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 Content-Type: application/sdp Content-Length: ... v=0 o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.example.com s= c=IN IP4 gatewayone.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F9 ACK Alice -> Proxy ACK sips:+19727293660@gw1.example.com;user=phone SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf31 Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F10 ACK Proxy -> Gateway ACK sips:+19727293660@gw1.example.com;user=phone SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749ws.1 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf31 ;received=192.0.2.103 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 74] Internet-Draft SIP Service Examples October 2006 F11 BYE Alice -> Proxy BYE sips:+19727293660@gw1.example.com;user=phone SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfJe Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F12 BYE Proxy -> Gateway BYE sips:+19727293660@gw1.example.com;user=phone SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749G1 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfJe ;received=192.0.2.103 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F13 200 OK Gateway -> Proxy SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749G1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfJe ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F14 200 OK Proxy -> Alice Johnston, et al. Expires April 23, 2007 [Page 75] Internet-Draft SIP Service Examples October 2006 SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfJe ;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.8. Call Forwarding - Busy Alice Proxy User B1 User B2 | | | | | INVITE F1 | | | |--------------->| INVITE F2 | | | |------------->| | |(100 Trying) F3 | | | |<---------------| 486 Busy F4 | | | |<-------------| | | | ACK F5 | | | |------------->| | |(181 Call is Being Forwarded) F6 | |<---------------| | INVITE F7 | | |--------------------------------->| | | | 180 Ringing F8 | | |<---------------------------------| | 180 Ringing F9 | | | |<---------------| | 200 OK F10 | | |<---------------------------------| | 200 OK F11 | | | |<---------------| | | | ACK F12 | | | |--------------->| | ACK F13 | | |--------------------------------->| | Both way RTP Established | |<=================================================>| | BYE F14 | | | |--------------->| | BYE F15 | | |--------------------------------->| | | | 200 OK F16 | | 200 OK F17 |<---------------------------------| |<---------------| | | | | | | Bob wants calls to B1 forwarded to B2 if B1 is busy (this information is known to the proxy). Alice calls B1, B1 is busy, the proxy server Johnston, et al. Expires April 23, 2007 [Page 76] Internet-Draft SIP Service Examples October 2006 places call to B2. Message Details F1 INVITE Alice -> Proxy 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 Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 INVITE Proxy -> B1 INVITE sips: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 Content-Type: application/sdp Content-Length: ... Johnston, et al. Expires April 23, 2007 [Page 77] Internet-Draft SIP Service Examples October 2006 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F3 (100 Trying) Proxy -> Alice SIP/2.0 100 Trying Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F4 486 Busy Here B1 -> Proxy SIP/2.0 486 Busy Here Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F5 ACK Proxy -> B1 ACK sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Johnston, et al. Expires April 23, 2007 [Page 78] Internet-Draft SIP Service Examples October 2006 Content-Length: 0 F6 (181 Call is Being Forwarded) Proxy -> Alice SIP/2.0 181 Call is Being Forwarded Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=9214d Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 /* The proxy now forwards the call to B2 */ F7 INVITE Proxy -> B2 INVITE sips:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.2 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: 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 Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 180 Ringing B2 -> Proxy Johnston, et al. Expires April 23, 2007 [Page 79] Internet-Draft SIP Service Examples October 2006 SIP/2.0 180 Ringing Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.2 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F9 180 Ringing Proxy -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F10 200 OK B2 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.2 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Content-Type: application/sdp Johnston, et al. Expires April 23, 2007 [Page 80] Internet-Draft SIP Service Examples October 2006 Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com s= c=IN IP4 client2.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F11 200 OK Proxy -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com s= c=IN IP4 client2.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F12 ACK Alice -> Proxy ACK sips:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfX Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 81] Internet-Draft SIP Service Examples October 2006 F13 ACK Proxy -> B2 ACK sips:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83731 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfX ;received=192.0.2.103 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 /* RTP streams are established between A and B2 */ /* Alice eventually hangs up with User B2. */ F14 BYE Alice -> Proxy BYE sips:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bW4 Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F15 BYE Proxy -> B2 BYE sips:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK837493 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bW4 ;received=192.0.2.103 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 82] Internet-Draft SIP Service Examples October 2006 F16 200 OK B2 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK837493 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bW4 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F17 200 OK Proxy -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bW4 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 83] Internet-Draft SIP Service Examples October 2006 2.9. Call Forwarding - No Answer Alice Proxy User B1 User B2 | | | | | INVITE F1 | | | |--------------->| INVITE F2 | | |(100 Trying) F3 |------------->| | |<---------------|180 Ringing F4| | | 180 Ringing F5 |<-------------| | |<---------------| | | | Request Timeout | | | | | | | CANCEL F6 | | | |------------->| | | | 200 OK F7 | | | |<-------------| | | | 487 F8 | | | |<-------------| | | | ACK F9 | | | |------------->| | |(181 Call is Being Forwarded) F10 | |<---------------| | INVITE F11 | | |--------------------------------->| | | | 180 Ringing F12 | | 180 Ringing F13|<---------------------------------| |<---------------| | 200 OK F14 | | |<---------------------------------| | 200 OK F15 | | | |<---------------| | | | ACK F16 | | | |--------------->| | ACK F17 | | |--------------------------------->| | Both way RTP Established | |<=================================================>| | BYE F18 | | | |--------------->| | BYE F19 | | |--------------------------------->| | | | 200 OK F20 | | 200 OK F21 |<---------------------------------| |<---------------| | | | | | | Bob wants calls to B1 forwarded to B2 if B1 is not answered (information is known to the proxy server). Alice calls B1 and no one answers. The proxy server then places the call to B2. Message Details Johnston, et al. Expires April 23, 2007 [Page 84] Internet-Draft SIP Service Examples October 2006 F1 INVITE Alice -> Proxy 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 Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 INVITE Proxy -> B1 INVITE sips: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 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 Johnston, et al. Expires April 23, 2007 [Page 85] Internet-Draft SIP Service Examples October 2006 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F3 (100 Trying) Proxy -> Alice SIP/2.0 100 Trying Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F4 180 Ringing B1 -> Proxy SIP/2.0 180 Ringing Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=3145678 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F5 180 Ringing Proxy -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=3145678 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 86] Internet-Draft SIP Service Examples October 2006 /* B1 rings until a configurable timer expires in the Proxy. The Proxy sends Cancel and proceeds down the list of routes. */ F6 CANCEL Proxy -> B1 CANCEL sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=3145678 Call-ID: 12345600@atlanta.example.com CSeq: 1 CANCEL Content-Length: 0 F7 200 OK B1 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 ;received=192.0.2.54 From: Alice ;tag=1234567 To: Bob ;tag=329d823 Call-ID: 12345600@atlanta.example.com CSeq: 1 CANCEL Content-Length: 0 F8 487 Request Terminated B1 -> Proxy SIP/2.0 487 Request Terminated Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=3145678 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F9 ACK Proxy -> B1 ACK sips:bob@client.biloxi.example.com SIP/2.0 Johnston, et al. Expires April 23, 2007 [Page 87] Internet-Draft SIP Service Examples October 2006 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=3145678 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F10 (181 Call is Being Forwarded) Proxy -> Alice SIP/2.0 181 Call is Being Forwarded Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=9214d Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F11 INVITE Proxy -> B2 INVITE sips:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.2 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: 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 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 Johnston, et al. Expires April 23, 2007 [Page 88] Internet-Draft SIP Service Examples October 2006 a=rtpmap:0 PCMU/8000 F12 180 Ringing B2 -> Proxy SIP/2.0 180 Ringing Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.2 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F13 180 Proxy -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F14 200 OK B2 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.2 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=765432 Johnston, et al. Expires April 23, 2007 [Page 89] Internet-Draft SIP Service Examples October 2006 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com s= c=IN IP4 client2.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F15 200 OK Proxy -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com s= c=IN IP4 client2.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F16 ACK Alice -> Proxy ACK sips:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf3 Route: Max-Forwards: 70 Johnston, et al. Expires April 23, 2007 [Page 90] Internet-Draft SIP Service Examples October 2006 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F17 ACK Proxy -> B2 ACK sips:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK8374.1 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf3 ;received=192.0.2.103 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 /* RTP streams are established between A and B2. Alice Hangs Up with User B2. */ F18 BYE Alice -> Proxy BYE sips:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74b3f Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F19 BYE Proxy -> B2 BYE sips:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK837.1 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74b3f ;received=192.0.2.103 Johnston, et al. Expires April 23, 2007 [Page 91] Internet-Draft SIP Service Examples October 2006 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F20 200 OK B2 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK837.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74b3f ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F21 200 OK Proxy -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74b3f ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 92] Internet-Draft SIP Service Examples October 2006 2.10. 3-way Conference - Third Party is Added Alice Bob Carol | INVITE F1 | | |--------------->| | | 180 Ringing F2 | | |<---------------| | | 200 OK F3 | | |<---------------| | | ACK F4 | | |--------------->| | | RTP | | |<==============>| | | INVITE F5 | | |<---------------| | | 200 OK F6 | | |--------------->| | | ACK F7 | | |<---------------| INVITE F8 | | |------------->| | | 180 F9 | | |<-------------| | | 200 OK F10 | | |<-------------| | | ACK F11 | | |------------->| | | RTP | | |<============>| In this scenario, Alice and Bob are in a 2-party call (session) when Bob wishes to add Carol into the conversation. Bob is capable of media mixing in a 3-party call. Bob first sends a re-INVITE to Alice changing Contact URIs to one that indicates Bob's mixer and acts like a focus. As a result, Bob includes the "isfocus" feature tag [10] as described in [11]. Bob then INVITEs Carol using the same Contact URI. Note that Bob could wait to re-INVITE Alice until after Carol has answered. Bob could also put Alice on hold before calling Carol Message Details F1 INVITE Alice -> Bob INVITE sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 Max-Forwards: 70 Johnston, et al. Expires April 23, 2007 [Page 93] Internet-Draft SIP Service Examples October 2006 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 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, gruu Content-Type: application/sdp Johnston, et al. Expires April 23, 2007 [Page 94] Internet-Draft SIP Service Examples October 2006 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:b54gh42f5@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfL Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 /* Alice and Bob have established a session. Bob re-INVITEs changing Contact URIs */ F5 INVITE Bob -> Alice INVITE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds Max-Forwards: 70 From: Bob ;tag=23431 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1024 INVITE Contact: ;isfocus Content-Type: application/sdp Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces, gruu Content-Length: ... v=0 o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 Johnston, et al. Expires April 23, 2007 [Page 95] Internet-Draft SIP Service Examples October 2006 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F6 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.113 From: Bob ;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 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F7 ACK Bob -> Alice ACK sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnash3G 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 Johnston, et al. Expires April 23, 2007 [Page 96] Internet-Draft SIP Service Examples October 2006 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashJfd Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 42 INVITE Contact: ;isfocus Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces, gruu Content-Type: application/sdp Content-Length: ... v=0 o=bob 28908445834 2890844834 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 48174 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F9 180 Ringing Carol -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashJfd ;received=192.0.2.113 From: Bob ;tag=8675309 To: Carol ;tag=341313 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 42 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 F10 200 OK Carol -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashJfd ;received=192.0.2.113 From: Bob ;tag=8675309 To: Carol ;tag=341313 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 42 INVITE Johnston, et al. Expires April 23, 2007 [Page 97] Internet-Draft SIP Service Examples October 2006 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 F11 ACK Bob -> Carol ACK sips:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnash431 Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol ;tag=341313 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 42 ACK Content-Length: 0 /* User B's mixer know mixes media from both A and C to create the 3-way conference. */ Johnston, et al. Expires April 23, 2007 [Page 98] Internet-Draft SIP Service Examples October 2006 2.11. 3-way Conference - Third Party Joins Alice Bob Carol | INVITE F1 | | |--------------->| | | 180 Ringing F2 | | |<---------------| | | 200 OK F3 | | |<---------------| | | ACK F4 | | |--------------->| | | RTP | | |<==============>| INVITE Join:A-B F5 | |<-------------| | | 180 F6 | | |------------->| | INVITE F7 | | |<---------------| | | 200 OK F8 | | |--------------->| | | ACK F9 | | |<---------------| | | | 200 OK F10 | | |------------->| | | ACK F11 | | |<-------------| | | RTP | | |<============>| In this scenario, Alice and Bob are in a 2 party call and Carol wishes to join resulting in a three party call. Carol could have learned Bob's dialog identifier using some non-SIP means, or possibly from a NOTIFY with the dialog package sent by Bob. Carol sends an INVITE to Bob containing a Join header identifying the dialog between Alice and Bob. Bob re-INVITEs Alice to switch to focus mode and includes the "isfocus" feature tag [10] as described in [11]. Bob then accepts the INVITE from Carol, resulting in the 3-way call. 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 Johnston, et al. Expires April 23, 2007 [Page 99] Internet-Draft SIP Service Examples October 2006 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 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, join, gruu Content-Type: application/sdp Johnston, et al. Expires April 23, 2007 [Page 100] Internet-Draft SIP Service Examples October 2006 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:b54gh42f5@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf6 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 /* Alice and Bob have established a session. Carol requests to join the session */ F5 INVITE Carol -> Bob INVITE sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS chicago.example.com:5061 ;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Carol ;tag=8675309 To: Bob Call-ID: 452k499sk@chicago.example.com CSeq: 99 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces, join Join: 12345600@atlanta.example.com;from-tag=1234567;to-tag=23431 Content-Type: application/sdp Content-Length: ... v=0 o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com s= c=IN IP4 client.chicago.example.com Johnston, et al. Expires April 23, 2007 [Page 101] Internet-Draft SIP Service Examples October 2006 t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F6 180 Ringing Bob -> Carol SIP/2.0 200 OK Via: SIP/2.0/TLS chicago.example.com:5061 ;branch=z9hG4bKnashds7 ;received=120. From: Carol ;tag=8675309 To: Bob ;tag=0982 Call-ID: 452k499sk@chicago.example.com CSeq: 99 INVITE Contact: ;isfocus Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 F7 INVITE Bob -> Alice INVITE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashdyKL Max-Forwards: 70 From: Bob ;tag=23431 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1024 INVITE Contact: ;isfocus Content-Type: application/sdp Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces, join, gruu Content-Length: ... v=0 o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 200 OK Alice -> Bob Johnston, et al. Expires April 23, 2007 [Page 102] Internet-Draft SIP Service Examples October 2006 SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashdyKL ;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 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F9 ACK Bob -> Alice ACK sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnash3g Max-Forwards: 70 From: Bob ;tag=23431 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1024 ACK Content-Length: 0 F10 200 OK Bob -> Carol SIP/2.0 200 OK Via: SIP/2.0/TLS chicago.example.com:5061 ;branch=z9hG4bKnashds7 ;received=120. From: Carol ;tag=8675309 To: Bob ;tag=0982 Call-ID: 452k499sk@chicago.example.com CSeq: 99 INVITE Contact: ;isfocus Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Johnston, et al. Expires April 23, 2007 [Page 103] Internet-Draft SIP Service Examples October 2006 Supported: replaces, join, gruu Content-Type: application/sdp Content-Length: ... v=0 o=bob 28908445834 2890844834 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 48174 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F11 ACK OK Carol -> Bob ACK sips:bob-Mixer@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS chicago.example.com:5061 ;branch=z9hG4bKnash4Gf Max-Forwards: 70 From: Carol ;tag=8675309 To: Bob ;tag=0982 Call-ID: 452k499sk@chicago.example.com CSeq: 99 ACK Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces, join Content-Length:0 2.12. Find-Me Alice Proxy User User User User B1 B2 B3 B4 | | | | | | | INVITE F1 | | | | | |--------------->| INVITE F2 | | | | | |------------->| | | | |(100 Trying) F3 | | | | | |<---------------|180 Ringing F4| | | | | |<-------------| | | | | 180 Ringing F5 | | | | | |<---------------| | | | | | | Timeout | | | | | | | | | | | | CANCEL F6 | | | | | |------------->| | | | | | 200 OK F7 | | | | Johnston, et al. Expires April 23, 2007 [Page 104] Internet-Draft SIP Service Examples October 2006 | |<-------------| | | | | | 487 F8 | | | | | |<-------------| | | | | | ACK F9 | | | | | |------------->| | | | | | INVITE F10 | | | | |-------------------->| | | | |480 Not Logged In F11| | | | |<--------------------| | | | | ACK F12| | | | |-------------------->| | | | | INVITE F13 | | | |--------------------------->| | | | 486 Busy Here F14 | | | |<---------------------------| | | | ACK F15 | | | |--------------------------->| | | | INVITE F16 | | |---------------------------------->| | | 180 Ringing F17 | | 180 F18 |<----------------------------------| |<---------------| 200 OK F19 | | 200 OK F20 |<----------------------------------| |<---------------| | | ACK F21 | | |--------------->| ACK F22 | | |---------------------------------->| | Both way RTP Established | |<==================================================>| | | BYE F23 | | BYE F24 |<----------------------------------| |<---------------| | | 200 OK F25 | | |--------------->| 200 OK F26 | | |---------------------------------->| | | | Alice's call to Bob will result in an attempt to locate that user by calling locations from a list of contacts. The location to answer the call becomes the active set, no other sets may join the call. While this flow shows a sequential search, the search could be accomplished using parallel forking, as in the previous example. Message Details F1 INVITE Alice -> Proxy Johnston, et al. Expires April 23, 2007 [Page 105] Internet-Draft SIP Service Examples October 2006 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: Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t= 0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 INVITE Proxy -> B1 INVITE sips: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: 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 Johnston, et al. Expires April 23, 2007 [Page 106] Internet-Draft SIP Service Examples October 2006 F3 (100 Trying) Proxy -> Alice SIP/2.0 100 Trying Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F4 180 Ringing B1 -> Proxy SIP/2.0 180 Ringing Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F5 180 Ringing Proxy -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 /* B1 rings until a configurable timer in the Proxy expires. The Proxy then sends Cancel and proceeds down Johnston, et al. Expires April 23, 2007 [Page 107] Internet-Draft SIP Service Examples October 2006 the list of routes. */ F6 CANCEL Proxy -> B1 CANCEL sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 CANCEL Content-Length: 0 F7 200 OK B1 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 ;received=192.0.2.54 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 1 CANCEL Content-Length: 0 F8 487 Request Terminated B1 -> Proxy SIP/2.0 487 Request Terminated Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F9 ACK Proxy -> B1 ACK sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 Johnston, et al. Expires April 23, 2007 [Page 108] Internet-Draft SIP Service Examples October 2006 ;branch=z9hG4bK83749.1 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F10 INVITE Proxy -> B2 INVITE sips:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.2 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F11 480 Not Logged In B2 -> Proxy SIP/2.0 480 Not Logged In Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.2 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=314756 Call-ID: 12345600@atlanta.example.com Johnston, et al. Expires April 23, 2007 [Page 109] Internet-Draft SIP Service Examples October 2006 CSeq: 1 INVITE Content-Length: 0 F12 ACK Proxy -> B2 ACK sips:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.2 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314756 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F13 INVITE Proxy -> B3 INVITE sips:bob@client3.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.3 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F14 486 Busy Here B3 -> Proxy SIP/2.0 486 Busy Here Via: SIP/2.0/TLS ss1.example.com:5061 Johnston, et al. Expires April 23, 2007 [Page 110] Internet-Draft SIP Service Examples October 2006 ;branch=z9hG4bK83749.3 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F15 ACK Proxy -> B3 ACK sips:bob@client3.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83765 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F16 INVITE Proxy -> B4 INVITE sips:bob@client4.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.4 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: 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 Johnston, et al. Expires April 23, 2007 [Page 111] Internet-Draft SIP Service Examples October 2006 a=rtpmap:0 PCMU/8000 F17 180 Ringing B4 -> Proxy SIP/2.0 180 Ringing Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.4 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=7137136 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F18 180 Ringing Proxy -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=7137136 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F19 200 OK B4 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83749.4 ;received=192.0.2.54 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=7137136 Johnston, et al. Expires April 23, 2007 [Page 112] Internet-Draft SIP Service Examples October 2006 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client4.biloxi.example.com s= c=IN IP4 client4.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F20 200 OK Proxy -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=7137136 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client4.biloxi.example.com s= c=IN IP4 client4.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F21 ACK Alice -> Proxy ACK sips:bob@client4.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=7137136 Johnston, et al. Expires April 23, 2007 [Page 113] Internet-Draft SIP Service Examples October 2006 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F22 ACK Proxy -> B4 ACK sips:bob@client4.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK8374 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf ;received=192.0.2.103 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=7137136 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 /* RTP streams are established between A and B4*/ /* User B4 Hangs Up with User A. */ F23 BYE B4 -> Proxy BYE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client4.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 Route: Max-Forwards: 70 From: Bob ;tag=7137136 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1 BYE Content-Length: 0 F24 BYE Proxy -> Alice BYE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83754 Via: SIP/2.0/TLS client4.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.105 Max-Forwards: 69 Johnston, et al. Expires April 23, 2007 [Page 114] Internet-Draft SIP Service Examples October 2006 From: Bob ;tag=7137136 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1 BYE Content-Length: 0 F25 200 OK Alice -> Proxy SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83754 ;received=192.0.2.54 Via: SIP/2.0/TLS client4.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.105 From: Bob ;tag=7137136 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1 BYE Content-Length: 0 F26 200 OK Proxy -> B4 SIP/2.0 200 OK Via: SIP/2.0/TLS client4.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.105 From: Bob ;tag=7137136 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1 BYE Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 115] Internet-Draft SIP Service Examples October 2006 2.13. Call Management (Incoming Call Screening) Announcement Alice Proxy Bob Server | | | | | INVITE F1 | | | |------------------------------>| | | 305 Use Proxy F2 | | |<------------------------------| | | ACK F3 | | | |------------------------------>| | | INVITE F4 | | | |--------------->| | | | 407 Proxy Authorization F5 | | |<---------------| | | | ACK F6 | | | |--------------->| | | | INVITE F7 | | | |--------------->| | | | 403 Screening Failure (Terminating) Error-Info: URI F8 |<---------------| | | | ACK F9 | | | |--------------->| | | | INVITE F10 | | | |--------------->| INVITE F11 | | |---------------------------->| | | 200 OK F12 | | 200 OK F13 |<----------------------------| |<---------------| | | ACK F14 | | |--------------------------------------------->| | Announcement Played to Caller | |<============================================>| | BYE F15 | |<---------------------------------------------| | 200 OK F16 | |--------------------------------------------->| | | | | | | Bob has an incoming call screening list, Alice is included on the list of addresses Bob will not accept calls from. Alice attempts to call Bob. Messages F1, F2, and F3 are included to show that Bob does not accept INVITEs that have not been screened by the proxy. Note that call screening can not be done using the From header - Johnston, et al. Expires April 23, 2007 [Page 116] Internet-Draft SIP Service Examples October 2006 instead some form of authentication credentials must be used. The screening proxy inserts an announcement URI in an Error-Info header field which Alice accesses by sending an INVITE to listen to the Announcement. 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 Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* Bob only accepts INVITEs that have been screened by the proxy */ F2 305 Use Proxy Bob -> Alice SIP/2.0 305 Use Proxy Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=342123 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 117] Internet-Draft SIP Service Examples October 2006 F3 ACK Alice -> Bob ACK 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 ;tag=342123 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 /* A retries the call through the proxy */ F4 INVITE Alice -> Proxy 1 INVITE sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf0 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 2 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* Proxy 1 challenges Alice for authentication */ F5 407 Proxy Authorization Required Proxy 1 -> Alice SIP/2.0 407 Proxy Authorization Required Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf0 ;received=192.0.2.103 From: Alice ;tag=1234567 Johnston, et al. Expires April 23, 2007 [Page 118] Internet-Draft SIP Service Examples October 2006 To: Bob ;tag=7886765 Call-ID: 12345600@atlanta.example.com CSeq: 2 INVITE Proxy-Authenticate: Digest realm="example.com", nonce="ea9c8e88df84f1cec4341ae6cbe5a359", opaque="", stale=FALSE, qop="auth", algorithm=MD5 Content-Length: 0 F6 ACK Alice -> Proxy 1 ACK sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf0 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=7886765 Call-ID: 12345600@atlanta.example.com CSeq: 2 ACK Content-Length: 0 /* Alice responds by sending an INVITE with authentication credentials in it. */ F7 INVITE Alice -> Proxy 1 INVITE sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf2 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 3 INVITE Contact: Proxy-Authorization: Digest username="alice", realm="example.com", qop="auth", nc=00000001, cnonce="4gr84543ft2", nonce="ae9137be1c87d175c2dd63302a0d6e0a", opaque="", uri="sips:bob@biloxi.example.com", response="bbaec39f943bdcb3620d90afc548a45c" Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com Johnston, et al. Expires April 23, 2007 [Page 119] Internet-Draft SIP Service Examples October 2006 s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 403 Screening Failure (Terminating) Proxy 1 -> Alice SIP/2.0 403 Screening Failure (Terminating) Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf2 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=ffe254 Call-ID: 12345600@atlanta.example.com CSeq: 3 INVITE Error-Info: Content-Length: 0 F9 ACK Alice -> Proxy 1 ACK sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf2 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=ffe254 Call-ID: 12345600@atlanta.example.com Proxy-Authorization: Digest username="alice", realm="example.com", nonce="ae9137be1c87d175c2dd63302a0d6e0a", opaque="", uri="sips:bob@biloxi.example.com", response="bbaec39f943bdcb3620d90afc548a45c" CSeq: 3 ACK Content-Length: 0 /* To hear the recording, Alice connects to the Error-Info URI */ F10 INVITE Alice -> Proxy 1 INVITE sips:screen-fail-term-ann@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfj Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Johnston, et al. Expires April 23, 2007 [Page 120] Internet-Draft SIP Service Examples October 2006 Call-ID: 12345600@atlanta.example.com CSeq: 4 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F11 INVITE Proxy 1 -> Announcement Server INVITE sips:s-f-term-ann@announce.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83743 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfj ;received=192.0.2.103 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 4 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F12 200 OK Announcement Server -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/TLS ss1.example.com:5061 ;branch=z9hG4bK83743 Johnston, et al. Expires April 23, 2007 [Page 121] Internet-Draft SIP Service Examples October 2006 ;received=192.0.2.100 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfj ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=234934 Call-ID: 12345600@atlanta.example.com CSeq: 4 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Content-Type: application/sdp Content-Length: ... v=0 o=annc 2890844543 2890844543 IN IP4 announce.biloxi.example.com s= c=IN IP4 announce.biloxi.example.com t=0 0 m=audio 49174 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F13 200 OK Proxy 1 -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfj ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=234934 Call-ID: 12345600@atlanta.example.com CSeq: 4 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Content-Type: application/sdp Content-Length: ... v=0 o=annc 2890844543 2890844543 IN IP4 announce.biloxi.example.com s= c=IN IP4 announce.biloxi.example.com t=0 0 m=audio 49174 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F14 ACK Alice -> Announcement Server Johnston, et al. Expires April 23, 2007 [Page 122] Internet-Draft SIP Service Examples October 2006 ACK sips:announce.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74b32 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=234934 Call-ID: 12345600@atlanta.example.com CSeq: 4 ACK Content-Length: 0 /* Announcement Server plays announcement then disconnects */ F15 BYE Announcement Server -> Alice BYE sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS announcement.example.com:5061 ;branch=z9hG4bK74bKS Max-Forwards: 70 From: Bob ;tag=234934 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 2334 BYE Content-Length: 0 F16 200 OK Alice -> Announcement Server SIP/2.0 200 OK Via: SIP/2.0/TLS announcement.example.com:5061 ;branch=z9hG4bK74bKS ;received=192.0.2.103 From: Bob ;tag=234934 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 2334 BYE Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 123] Internet-Draft SIP Service Examples October 2006 2.14. Call Management (Outgoing Call Screening) Alice Proxy Bob | | | | INVITE F1 | | |--------------->| | | 407 Proxy Authorization F2 | |<---------------| | | ACK F3 | | |--------------->| | | INVITE F4 | | |--------------->| | | 403 Screening Failure (Originating) F5 |<---------------| | | ACK F6 | | |--------------->| | | | | Alice has an outgoing call screening list, Bob is included on the list of addresses Alice will not be able to place a call to. Alice attempts to call Bob. Alice could establish a session to listen to the announcement in the Error-Info header field. Message Details F1 INVITE Alice -> Proxy 1 INVITE sips: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 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 April 23, 2007 [Page 124] Internet-Draft SIP Service Examples October 2006 t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* Proxy 1 challenges Alice for authentication */ F2 407 Proxy Authorization Required Proxy 1 -> Alice SIP/2.0 407 Proxy Authorization Required Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=90210 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Proxy-Authenticate: Digest realm="example.com", nonce="ea9c8e88df84f1cec4341ae6cbe5a359", opaque="", stale=FALSE, algorithm=MD5 Content-Length: 0 F3 ACK Alice -> Proxy 1 ACK 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 ;tag=90210 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 /* Alice responds be sending an INVITE with authentication credentials in it. */ F4 INVITE Alice -> Proxy 1 INVITE sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74b4 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com Johnston, et al. Expires April 23, 2007 [Page 125] Internet-Draft SIP Service Examples October 2006 CSeq: 2 INVITE Contact: Proxy-Authorization: Digest username="alice", realm="example.com", nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="", uri="sips:bob@biloxi.example.com", response="b9d2e5bcdec9f69ab2a9b44f270285a6" Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F5 403 Screening Failure (Originating) Proxy 1 -> Alice SIP/2.0 403 Screening Failure (Originating) Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74b4 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=18017 Call-ID: 12345600@atlanta.example.com CSeq: 2 INVITE Error-Info: Content-Length: 0 F6 ACK Alice -> Proxy 1 ACK sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74b4 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=18017 Call-ID: 12345600@atlanta.example.com CSeq: 2 ACK Proxy-Authorization: Digest username="alice", realm="example.com", nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="", uri="sips:bob@biloxi.example.com", response="b9d2e5bcdec9f69ab2a9b44f270285a6" Johnston, et al. Expires April 23, 2007 [Page 126] Internet-Draft SIP Service Examples October 2006 Content-Length: 0 2.15. Call Park Alice Bob Park Server Carol | | | | | INVITE F1 | | | |------------->| | | |180 Ringing F2| | | |<-------------| | | | 200 OK F3 | | | |<-------------| | | | ACK F4 | | | |------------->| | | | RTP Media | | | |<============>| | | | Bob Parks Call | | | | REFER Refer-To: A F5 | | |------------->| | | | 202 F6 | | | |<-------------| | | | NOTIFY F7 | | | |<-------------| | | | 200 F8 | | | |------------->| | | INVITE F9 Replaces: B | | |<----------------------------| | | 200 OK F10 | | |---------------------------->| | | ACK F11 | | |<----------------------------| | | RTP Music | | |<===========================>| | | BYE F12 | | | |------------->| NOTIFY F14 | | | 200 OK F13 |<-------------| | |<-------------| 200 OK F15 | | | |------------->| | | | Carol picks up the call | | | | | | INVITE Replaces: Park Server F16 | |<-------------------------------------------| | | | 200 F17 | |------------------------------------------->| | | | ACK F18 | |<-------------------------------------------| | RTP Media | Johnston, et al. Expires April 23, 2007 [Page 127] Internet-Draft SIP Service Examples October 2006 |<==========================================>| | BYE F19 | | |---------------------------->| | | 200 OK F20 | | |<----------------------------| | | No more RTP Music | | In this example, Alice calls Bob. Bob then parks the call at the Park Server by sending a REFER to the Park Server. The server sends an INVITE to Alice which replaces the session between Alice and Bob. The call is accepted by Alice and causes Alice to send a BYE to Bob. Bob receives notification of the successful park, and also receives the dialog identifiers in the application/sip body of the NOTIFY response. Carol wishes to retrieve the call, so she sends an INVITE containing the dialog identifiers to Alice which replaces the session with the Park Server. Alice accepts the call and sends a BYE to the Park Server. Note that Carol needs the dialog identifiers to carry out this sequence. This example assumes that Carol obtains them from Bob, who obtained them from a NOTIFY from the Park Server. If the Park Server did not return the dialog identifiers (Call-ID, To and From tags) in the NOTIFY, Carol could send a SUBSCRIBE to retrieve this information. Note that this call flow is a special case of call transfer. Note also that this flow could also be used for Music on Hold. Message Details. F1 INVITE Alice -> Bob INVITE sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.alice.example.com:5061 ;branch=z9hG4bKnashds7 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, SUBSCRIBE, NOTIFY Supported: replaces, gruu Content-Type: application/sdp Content-Length: ... Johnston, et al. Expires April 23, 2007 [Page 128] Internet-Draft SIP Service Examples October 2006 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 180 Ringing Bob -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.105 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@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=z9hG4bKnashds7 ;received=192.0.2.105 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, SUBSCRIBE, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Johnston, et al. Expires April 23, 2007 [Page 129] Internet-Draft SIP Service Examples October 2006 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=z9hG4bKnashds7 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, SUBSCRIBE, NOTIFY Supported: replaces Content-Length: 0 /* Bob REFERs Park Server to establish session with A which replaces the established session between A and B. Note that there is no session established between B and the Park Server. */ F5 REFER Bob -> Park Server REFER sips:park@server.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds9 Max-Forwards: 70 From: Bob ;tag=02134 To: Park Server Call-ID: 4802029847@biloxi.example.com CSeq: 1 REFER Refer-To: Referred-By: Contact: Content-Length: 0 F6 202 Accepted Park Server -> Bob SIP/2.0 202 Accepted Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds9 ;received=192.0.2.105 From: Bob ;tag=02134 To: Park Server ;tag=56323 Johnston, et al. Expires April 23, 2007 [Page 130] Internet-Draft SIP Service Examples October 2006 Call-ID: 4802029847@biloxi.example.com Contact: CSeq: 1 REFER Content-Length: 0 F7 NOTIFY Park 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: Park Server ;tag=56323 Call-ID: 4802029847@biloxi.example.com CSeq: 1 NOTIFY Event: refer Subscription-State: active;expires=60 Content-Type: message/sipfrag Content-Length: ... SIP/2.0 100 Trying F8 200 OK Bob -> Park Server SIP/2.0 200 OK Via: SIP/2.0/TLS server.example.com:5061 ;branch=z9hG4bK74bT6 ;received=192.0.2.103 To: Bob ;tag=02134 From: Park Server ;tag=56323 Call-ID: 4802029847@biloxi.example.com CSeq: 1 NOTIFY Content-Length: 0 /* Park Server places call to Alice to replace session between Alice and Bob. */ F9 INVITE Park Server -> Alice INVITE sips:a8342043f@atlanta.example.com;gruu SIP/2.0 Via: SIP/2.0/TLS server.example.com:5061 ;branch=z9hG4bK74rf Max-Forwards: 70 From: ;tag=0111 To: Johnston, et al. Expires April 23, 2007 [Page 131] Internet-Draft SIP Service Examples October 2006 Call-ID: a5-75-34-12-76@server.example.com CSeq: 1 INVITE Referred-By: Contact: Require: replaces Replaces: 12345601@atlanta.example.com ;from-tag=314159;to-tag=1234567 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=ParkServer 2890844576 2890844576 IN IP4 Park.server.example.com s= c=IN IP4 music.server.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F10 200 OK Alice -> Park Server SIP/2.0 200 OK Via: SIP/2.0/TLS server.example.com:5061 ;branch=z9hG4bK74rf ;received=192.0.2.103 From: ;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 F11 ACK Park Server -> Alice Johnston, et al. Expires April 23, 2007 [Page 132] Internet-Draft SIP Service Examples October 2006 ACK sips:a8342043f@atlanta.example.com;gruu 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 F12 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=314159 Call-ID: 12345601@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F13 200 OK Bob -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.105 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 2 BYE Content-Length: 0 /* Park Server reports success back to B by returning a 200 OK response. Bob obtains the dialog identifiers from the headers included in the response. */ F14 NOTIFY Park Server -> Bob NOTIFY sips: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 Johnston, et al. Expires April 23, 2007 [Page 133] Internet-Draft SIP Service Examples October 2006 From: Park Server ;tag=56323 Call-ID: 4802029847@biloxi.example.com CSeq: 2 NOTIFY Event: refer Subscription-State: terminated;reason=noresource 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: F15 200 OK Bob -> Park Server SIP/2.0 200 OK Via: SIP/2.0/TLS server.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 To: Bob ;tag=02134 From: Park Server ;tag=56323 Call-ID: 4802029847@biloxi.example.com CSeq: 2 NOTIFY Content-Length: 0 /* Alice is now parked at the Park Server */ /* Carol picks up the call by sending an INVITE to A which replaces the existing session with the Park/Park Server. Carol needs to know the dialog information to construct the Replaces header. */ F16 INVITE Carol -> Alice INVITE sips:alice@atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.chicago.example.com:5061 ;branch=z9hG4bK74bQ2 Max-Forwards: 70 From: Carol ;tag=5893461 To: Alice Call-ID: 6485356@chicago.example.com Johnston, et al. Expires April 23, 2007 [Page 134] Internet-Draft SIP Service Examples October 2006 CSeq: 1 INVITE Contact: Require: replaces Replaces: a5-75-34-12-76@server.example.com ;to-tag=098594;from-tag=0111 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com s= c=IN IP4 client.chicago.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F17 200 OK Alice -> Carol SIP/2.0 200 OK Via: SIP/2.0/TLS client.chicago.example.com:5061 ;branch=z9hG4bK74bQ2 ;received=192.0.2.105 From: Carol ;tag=5893461 To: Alice ;tag=222 Call-ID: 6485356@chicago.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 2890844527 2890844527 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F18 ACK Carol -> Alice ACK sips:a8342043f@atlanta.example.com;gruu SIP/2.0 Johnston, et al. Expires April 23, 2007 [Page 135] Internet-Draft SIP Service Examples October 2006 Via: SIP/2.0/TLS client.chicago.example.com:5061 ;branch=z9hG4bK74bJ0 Max-Forwards: 70 From: Carol ;tag=5893461 To: Alice ;tag=222 Call-ID: 6485356@chicago.example.com CSeq: 1 ACK Content-Length: 0 /* A replaces the session to the Park Server with the new session with C and generates a BYE to disconnect the Park Server. */ F19 BYE Alice -> Park Server BYE sips:park@server.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74b4N Max-Forwards: 70 From: Alice ;tag=098594 To: ;tag=0111 Call-ID: a5-75-34-12-76@server.example.com CSeq: 1 BYE Content-Length: 0 F20 200 OK Park Server -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74b4N ;received=192.0.2.103 From: Alice ;tag=098594 To: ;tag=0111 Call-ID: a5-75-34-12-76@server.example.com CSeq: 1 BYE Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 136] Internet-Draft SIP Service Examples October 2006 2.16. Call Pickup Alice Bob Bill | | | | INVITE F1 | | |------------->| | |180 Ringing F2| | |<-------------| | | | SUBSCRIBE F3 | | |<------------------| | | 200 OK F4 | | |------------------>| | | NOTIFY F5 | | |------------------>| | | 200 OK F6 | | |<------------------| | INVITE Replaces:Bob F7 | |<---------------------------------| | | 200 OK F8 | |--------------------------------->| | CANCEL F9 | | |------------->| | | 200 OK F10 | | |<-------------| | | 487 F11 | | |<-------------| | | ACK F12 | | |------------->| | | ACK F13 | |<---------------------------------| | | | Two way RTP Established | |<================================>| | BYE F14 | |--------------------------------->| | 200 OK F15 | |<---------------------------------| | | Bob and Bill are part of a work group at example.com that can pick up each other's calls. Alice calls Bob who does not answer. Bill wishes to pick up the call and sends a SUBSCRIBE to Bob to retrieve the dialog information. Bill then generates an INVITE with a Replaces to Alice. Alice answers the INVITE and sends a CANCEL to stop Bob's phone ringing. Note that the relative order of the 487/ ACK sequence (F11/F12) and the 200 OK to the CANCEL (F10) is not deterministic. Johnston, et al. Expires April 23, 2007 [Page 137] Internet-Draft SIP Service Examples October 2006 This call flow shows the use of the "early-only" parameter [4] in the Replaces header field of F7. This parameter prevents Alice from accepting the INVITE if Bob has already accepted the INVITE. If Bill had wished to "take" the call from Bob regardless of whether he had answered, the parameter would not have been present in F7. Also note that the subscription between Bob and Carol could have been established prior to Alice's call. Message Details F1 INVITE Alice -> Bob INVITE sips: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: Johnston, et al. Expires April 23, 2007 [Page 138] Internet-Draft SIP Service Examples October 2006 Content-Length: 0 /* Bill decides to pick up the call. */ F3 SUBSCRIBE Bill -> Bob SUBSCRIBE sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS pc.biloxi.example.com:5061 ;branch=z9hG4bK74bf Max-Forwards: 70 From: Bill ;tag=8675309 To: Bob Call-ID: rt4353gs2egg@pc.biloxi.example.com CSeq: 1 SUBSCRIBE Contact: Event: dialog Subscription-State: active;expires=0 Accept: application/dialog-info+xml Content-Length: 0 F4 200 OK Bob -> Bill SIP/2.0 200 OK Via: SIP/2.0/TLS pc.biloxi.example.com:5061 ;branch=z9hG4bK74bf ;received=192.0.2.114 Max-Forwards: 70 From: Bill ;tag=8675309 To: Bob ;tag=31451098 Call-ID: rt4353gs2egg@pc.biloxi.example.com CSeq: 1 SUBSCRIBE Content-Length: 0 F5 NOTIFY Bob -> Bill NOTIFY sips:bill@pc.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bK74br Max-Forwards: 70 From: Bob ;tag=31451098 To: Bill ;tag=8675309 Call-ID: rt4353gs2egg@pc.biloxi.example.com CSeq: 1 NOTIFY Contact: Event: dialog Johnston, et al. Expires April 23, 2007 [Page 139] Internet-Draft SIP Service Examples October 2006 Subscription-State: terminated;reason=timeout Content-Type: application/dialog-info+xml Content-Length: ... 1 sips:bob@biloxi.example.com sips:bob@client.biloxi.example.com sips:alice@atlanta.example.com sips:a8342043@atlanta.example.com early F6 200 OK Bill -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bK74br ;received=192.0.2.105 From: Bob ;tag=31451098 To: Bill ;tag=8675309 Call-ID: rt4353gs2egg@pc.biloxi.example.com CSeq: 1 NOTIFY Contact: Content-Length: 0 F7 INVITE Bill -> Alice INVITE sips:a8342043f@atlanta.example.com;gruu SIP/2.0 Via: SIP/2.0/TLS pc.biloxi.example.com:5061 ;branch=z9hG4bK74HH Max-Forwards: 70 From: Bill ;tag=8675310 To: Alice Call-ID: 563456212@b2.biloxi.example.com CSeq: 1 INVITE Require: replaces Johnston, et al. Expires April 23, 2007 [Page 140] Internet-Draft SIP Service Examples October 2006 Replaces: 12345600@atlanta.example.com ;from-tag=314578;to-tag=1234567;early-only Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bill 2890843122 2890843122 IN IP4 pc.biloxi.example.com s= c=IN IP4 pc.biloxi.example.com t=0 0 m=audio 5342 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* Alice matches the dialog information in the Replaces header and accepts the INVITE. */ F8 200 OK Alice -> Bill SIP/2.0 200 OK Via: SIP/2.0/TLS pc.biloxi.example.com:5061 ;branch=z9hG4bK74HH ;received=192.0.2.114 From: Bill ;tag=8675310 To: Alice ;tag=131256 Call-ID: 563456212@b2.biloxi.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 /* Alice stops Bob's phone from ringing by sending a CANCEL */ F9 CANCEL Alice -> Bob Johnston, et al. Expires April 23, 2007 [Page 141] Internet-Draft SIP Service Examples October 2006 CANCEL 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 CANCEL Content-Length: 0 F10 200 OK Bob -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=3145678 Call-ID: 12345600@atlanta.example.com CSeq: 1 CANCEL Content-Length: 0 F11 487 Request Terminated Bob -> Alice SIP/2.0 487 Request Terminated Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=3145678 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F12 ACK Alice -> Bob ACK sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK83749.1 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=3145678 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 142] Internet-Draft SIP Service Examples October 2006 F13 ACK Bill -> Alice ACK sips:a8342043f@atlanta.example.com;gruu SIP/2.0 Via: SIP/2.0/TLS pc.biloxi.example.com:5061 ;branch=z9hG4bK7435 Max-Forwards: 70 From: Bill ;tag=8675310 To: Alice ;tag=131256 Call-ID: 563456212@b2.biloxi.example.com CSeq: 1 ACK Content-Length: 0 /* RTP streams are established between Alice and Bill. Later, Alice Hangs Up with Bob. */ F14 BYE Alice -> Bill BYE sips:bill@pc.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf2 Max-Forwards: 70 To: Bill ;tag=8675310 From: Alice ;tag=131256 Call-ID: 563456212@b2.biloxi.example.com CSeq: 1 BYE Content-Length: 0 F15 200 OK Bill -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf2 ;received=192.0.2.105 To: Bill ;tag=8675310 From: Alice ;tag=131256 Call-ID: 563456212@b2.biloxi.example.com CSeq: 1 BYE Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 143] Internet-Draft SIP Service Examples October 2006 2.17. Automatic Redial Alice Bob | | | INVITE F1 | |--------------->| |486 Busy Here F2| |<---------------| Bob is busy | ACK F3 | |--------------->| | SUBSCRIBE F4 | |--------------->| | 200 OK F5 | |<---------------| | NOTIFY F6 | |<---------------| | 200 OK F7 | |--------------->| | | | NOTIFY F8 | Bob is now available |<---------------| | 200 OK F9 | |--------------->| | | | INVITE F10 | |--------------->| Session setup successfully | 180 Ringing F11| |<---------------| | 200 OK F12 | |<---------------| | ACK F13 | |--------------->| | Media Session | |<==============>| | | Bob is initially busy when Alice calls. Alice subscribes to User B's call state using a SUBSCRIBE F4. Bob sends a NOTIFY F8 when Bob is available. Alice is alerted, then Alice sends an INVITE to B to establish the session. Message Details F1 INVITE Alice -> Bob INVITE sips:bob@biloxi.example.com SIP/2.0 Johnston, et al. Expires April 23, 2007 [Page 144] Internet-Draft SIP Service Examples October 2006 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, SUBSCRIBE, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 486 Busy Here SIP/2.0 486 Busy Here Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bf9 From: Alice ;tag=1234567 To: Bob ;tag=982039i4 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F3 ACK Alice -> Bob ACK 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 ;tag=982039i4 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F4 SUBSCRIBE Alice -> Bob Johnston, et al. Expires April 23, 2007 [Page 145] Internet-Draft SIP Service Examples October 2006 SUBSCRIBE sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74b8G Max-Forwards: 70 From: Alice ;tag=837348234 To: Bob Call-ID: 4524526232@atlanta.example.com CSeq: 1 SUBSCRIBE Contact: sip:alice@client.atlanta.example.com Event: dialog Accept: application/dialog-info+xml Content-Length: 0 F5 200 OK Bob -> Alice SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74b8G From: Alice ;tag=837348234 To: Bob ;tag=341123 Call-ID: 4524526232@atlanta.example.com Expires: 60 CSeq: 1 SUBSCRIBE Contact: sip:bob@client.biloxi.example.com Content-Length: 0 F6 NOTIFY Bob -> Alice NOTIFY sips:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bn2 Max-Forwards: 70 From: Bob ;tag=341123 To: Alice ;tag=837348234 Call-ID: 4524526232@atlanta.example.com CSeq: 1 NOTIFY Contact: Event: dialog Subscription-State: active;expires=59 Content-Type: application/dialog-info+xml Content-Length: ... Johnston, et al. Expires April 23, 2007 [Page 146] Internet-Draft SIP Service Examples October 2006 1 confirmed F7 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bn2 From: Bob ;tag=341123 To: Alice ;tag=837348234 Call-ID: 4524526232@atlanta.example.com CSeq: 1 NOTIFY Content-Length: 0 /* Bob is now available and Bob terminates the subscription. */ F8 NOTIFY Bob -> Alice NOTIFY sips:alice@atlanta.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bVi Max-Forwards: 70 From: Bob ;tag=341123 To: Alice ;tag=837348234 Call-ID: 4524526232@atlanta.example.com CSeq: 2 NOTIFY Event: dialog Subscription-State: terminiated;reason=noresource Content-Type: application/dialog-info+xml Content-Length: ... terminated F9 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 Johnston, et al. Expires April 23, 2007 [Page 147] Internet-Draft SIP Service Examples October 2006 ;branch=z9hG4bK74bVi From: Bob ;tag=341123 To: Alice ;tag=837348234 Call-ID: 4524526232@atlanta.example.com CSeq: 2 NOTIFY Content-Length: 0 F10 INVITE Alice -> Bob INVITE sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfq Max-Forwards: 70 From: Alice ;tag=f23fkg14k To: Bob Call-ID: aoij4i9okitr@atlanta.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844826 2890844826 IN IP4 client.atlanta.example.com s= c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F11 180 Ringing Bob -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfq ;received=192.0.2.103 From: Alice ;tag=f23fkg14k To: Bob ;tag=23431 Call-ID: aoij4i9okitr@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F12 200 OK Bob -> Alice Johnston, et al. Expires April 23, 2007 [Page 148] Internet-Draft SIP Service Examples October 2006 SIP/2.0 200 OK Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bfq ;received=192.0.2.103 From: Alice ;tag=f23fkg14k To: Bob ;tag=23431 Call-ID: aoij4i9okitr@atlanta.example.com CSeq: 1 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890854527 2890854527 IN IP4 client.biloxi.example.com s= c=IN IP4 client.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F13 ACK Alice -> Bob ACK sips:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS client.atlanta.example.com:5061 ;branch=z9hG4bK74bLBJ Max-Forwards: 70 From: Alice ;tag=f23fkg14k To: Bob ;tag=23431 Call-ID: aoij4i9okitr@atlanta.example.com CSeq: 1 ACK Content-Length: 0 Johnston, et al. Expires April 23, 2007 [Page 149] Internet-Draft SIP Service Examples October 2006 2.18. Click to Dial Bob's PC Bob Carol | REFER Refer-To:Carol F1 | |------------------->| | | 202 Accepted F2 | | |<-------------------| | | | INVITE F3 | | |------------------->| | | 180 Ringing F4 | | |<-------------------| | | 200 OK F5 | | |<-------------------| | | ACK F6 | | |------------------->| | | RTP | | |<==================>| | | | In this example, while browsing the web on his PC, Bob clicks on Carol's SIP URI intending to establish a session with Carol. Bob's web browser passes the SIP URI to the SIP client on Bob's PC. The PC client is configured with the URI of Bob's SIP phone. A REFER is sent to the SIP phone which results in the establishment of the session between Bob and Carol. Note that Bob's PC requests that no REFER dialog be established by the use of the Refer-Sub: false header field [16]. This flow is preferable to the 3pcc flow because the end-to-end SIP signaling is not interrupted by the 3pcc controller, and because Bob's experience of the call will not be marred by the lack of ringback tone or possible clipping. Suitable authorization of the REFER and explicit authorization of the triggered INVITE by Bob is necessary. Message Details /* Bob's PC SIP Client sends a REFER to Bob's SIP phone */ F1 REFER PC -> Bob REFER sips:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/TLS pc.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 Max-Forwards: 70 Johnston, et al. Expires April 23, 2007 [Page 150] Internet-Draft SIP Service Examples October 2006 From: ;tag=1234567 To: Bob Call-ID: 1234560183434 CSeq: 1 REFER Refer-To: Refer-Sub: false Contact: Content-Length: 0 F2 202 Accepted Bob -> PC SIP/2.0 202 Accepted Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashds7 ;received=192.0.2.103 From: ;tag=1234567 To: Bob ;tag=314159 Call-ID: 1234560183434 Contact: CSeq: 1 REFER Refer-Sub: false Content-Length: 0 F3 INVITE Bob -> Carol INVITE sips:carol@chicago.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashdK9 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 Johnston, et al. Expires April 23, 2007 [Page 151] Internet-Draft SIP Service Examples October 2006 a=rtpmap:0 PCMU/8000 F4 180 Ringing Carol -> Bob SIP/2.0 180 Ringing Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashdK9 ;received=192.0.2.113 From: Bob ;tag=8675309 To: Carol ;tag=928287 Call-ID: 7436222@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F5 200 OK Carol -> Bob SIP/2.0 200 OK Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashdK9 ;received=192.0.2.113 From: Bob ;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 Content-Type: application/sdp Content-Length: ... v=0 o=carol 2890844527 2890844527 IN IP4 client.chicago.example.com s= c=IN IP4 client.chicago.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F6 ACK Bob -> Carol ACK sips:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/TLS client.biloxi.example.com:5061 ;branch=z9hG4bKnashd43 Max-Forwards: 70 Johnston, et al. Expires April 23, 2007 [Page 152] Internet-Draft SIP Service Examples October 2006 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. */ 3. Security Considerations Since many of the examples in this document involve SIP call control, either peer-to-peer or 3pcc, the security considerations in the Multiparty Framework document [12] apply. Many of the services shown in this document rely on a particular user agent being part of a group. Members of a group could be, for example, employees within a particular department, a set of home phone extensions, members of a call center, etc. As such, user agents which are part of the group permit other group members special privileges and features. For example, while a user agent may not in general allow another user agent to learn detailed dialog information, this information might be shared with another group member in order to facilitate a service such as call pickup. Group members must be authenticated using normal SIP means such as certificates or shared secrets. The service examples in this document make extensive use of the SIP call control primitives REFER, Replaces, Join, and the dialog package. The security considerations associated with each of these extensions apply to the scenarios in this document. 4. IANA Considerations None. 5. Acknowledgements The authors would like to thank the following reviewers of the document for their detailed comments and corrections: Vijay Gurbani, John Elwell, Joel Repiquet, Nagesh Kumar, Chandra Ravipati, Eric Burger, Jeroen Bemmel, Miguel Garcia, and Dale Worley. The Transfer - Instant Messaging call flow is based on the "IM-a- call" call flow by Jonathan Rosenberg and Henning Schulzrinne. The Johnston, et al. Expires April 23, 2007 [Page 153] Internet-Draft SIP Service Examples October 2006 Automatic Call Back call flow is based on a call flow by Adam Roach. The authors wish to thank the following individuals for their assistance and review of this call flows document: Joel Repiquet, Aki Neimi, Rohan Mahy, Jonathan Rosenberg, Hemant Agrawal, Henry Sinnreich, Dean Willis, David Devanatham, Joe Pizzimenti, Matt Cannon, John Hearty, the whole MCI WorldCom IPOP Design team, Scott Orton, Greg Osterhout, Pat Sollee, Doug Weisenberg, Danny Mistry, Steve McKinnon, and Denise Ingram, Denise Caballero, Tom Redman, Ilya Slain, Pat Sollee, John Truetken, and others from MCI WorldCom, 3Com, Cisco, Lucent and Nortel. 6. References 6.1. Normative References [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [2] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002. [3] Sparks, R., "The Session Initiation Protocol (SIP) Refer Method", RFC 3515, April 2003. [4] Mahy, R., Biggs, B., and R. Dean, "The Session Initiation Protocol (SIP) "Replaces" Header", RFC 3891, September 2004. [5] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002. [6] Roach, A., "Session Initiation Protocol (SIP)-Specific Event Notification", RFC 3265, June 2002. [7] Sparks, R., "Session Initiation Protocol Call Control - Transfer", draft-ietf-sipping-cc-transfer-07 (work in progress), October 2006. [8] Rosenberg, J., Schulzrinne, H., and R. Mahy, "An INVITE- Initiated Dialog Event Package for the Session Initiation Protocol (SIP)", RFC 4235, November 2005. [9] Mahy, R. and D. Petrie, "The Session Initiation Protocol (SIP) "Join" Header", RFC 3911, October 2004. [10] Rosenberg, J., Schulzrinne, H., and P. Kyzivat, "Indicating User Agent Capabilities in the Session Initiation Protocol Johnston, et al. Expires April 23, 2007 [Page 154] Internet-Draft SIP Service Examples October 2006 (SIP)", RFC 3840, August 2004. [11] Johnston, A. and O. Levin, "Session Initiation Protocol (SIP) Call Control - Conferencing for User Agents", BCP 119, RFC 4579, August 2006. [12] Mahy, R., "A Call Control and Multi-party usage framework for the Session Initiation Protocol (SIP)", draft-ietf-sipping-cc-framework-06 (work in progress), March 2006. [13] Campbell, B. and R. Sparks, "Control of Service Context using SIP Request-URI", RFC 3087, April 2001. [14] Sparks, R., "Internet Media Type message/sipfrag", RFC 3420, November 2002. [15] Campbell, B., Rosenberg, J., Schulzrinne, H., Huitema, C., and D. Gurle, "Session Initiation Protocol (SIP) Extension for Instant Messaging", RFC 3428, December 2002. [16] Levin, O., "Suppression of Session Initiation Protocol (SIP) REFER Method Implicit Subscription", RFC 4488, May 2006. [17] Sparks, R., Hawrylyshen, A., Johnston, A., Rosenberg, J., and H. Schulzrinne, "Session Initiation Protocol (SIP) Torture Test Messages", RFC 4475, May 2006. 6.2. Informative References [18] Johnston, A., Donovan, S., Sparks, R., Cunningham, C., and K. Summers, "Session Initiation Protocol (SIP) Basic Call Flow Examples", BCP 75, RFC 3665, December 2003. [19] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. Camarillo, "Best Current Practices for Third Party Call Control (3pcc) in the Session Initiation Protocol (SIP)", BCP 85, RFC 3725, April 2004. [20] Rosenberg, J., Schulzrinne, H., and O. Levin, "A Session Initiation Protocol (SIP) Event Package for Conference State", RFC 4575, August 2006. [21] Rosenberg, J., "A Session Initiation Protocol (SIP) Event Package for Registrations", RFC 3680, March 2004. [22] Rosenberg, J., "Obtaining and Using Globally Routable User Agent (UA) URIs (GRUU) in the Session Initiation Protocol Johnston, et al. Expires April 23, 2007 [Page 155] Internet-Draft SIP Service Examples October 2006 (SIP)", draft-ietf-sip-gruu-10 (work in progress), August 2006. Authors' Addresses Alan Johnston (editor) Avaya St. Louis, MO 63124 Email: alan@sipstation.com Robert J. Sparks Estacado Systems Email: RjS@estacado.net Chris Cunningham Cisco Systems Steve Donovan Cisco Systems Email: srd@cisco.com Kevin Summers Prodea Systems Plano, TX 75093 Email: kevin.summers@prodeasystems.com Johnston, et al. Expires April 23, 2007 [Page 156] Internet-Draft SIP Service Examples October 2006 Full Copyright Statement Copyright (C) The Internet Society (2006). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). Johnston, et al. Expires April 23, 2007 [Page 157]