SIPPING Working Group A. Johnston Internet-Draft WorldCom Expires: August 2, 2003 R. Sparks C. Cunningham S. Donovan dynamicsoft K. Summers Sonus February 2003 Session Initiation Protocol Service Examples draft-ietf-sipping-service-examples Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http:// www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on August 2, 2003. Copyright Notice Copyright (C) The Internet Society (2003). All Rights Reserved. Abstract This informational document gives examples of Session Initiation Protocol (SIP) services. This covers most features offered in so-called Centrex offerings from local exchange carriers and PBX (Private Branch Exchange) features. Most of the services shown in this document are implemented in the SIP User Agents, although some require the assistance of a SIP Proxy. Some require some extensions to SIP including the REFER, SUBSCRIBE, and NOTIFY methods and the Johnston, et al. Expires August 2, 2003 [Page 1] Internet-Draft SIP Service Examples February 2003 Replaces and Join headers. These features are not intended to be an exhaustive set, but rather show implementations of common features likely to be implemented on SIP IP telephones in a business environment. Table of Contents 1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1 Legend for Message Flows . . . . . . . . . . . . . . . . . . 4 2. Service Examples . . . . . . . . . . . . . . . . . . . . . . 4 2.1 Call Hold . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Consultation Hold . . . . . . . . . . . . . . . . . . . . . 15 2.3 Music On Hold . . . . . . . . . . . . . . . . . . . . . . . 31 2.4 Unattended Transfer . . . . . . . . . . . . . . . . . . . . 38 2.5 Attended Transfer . . . . . . . . . . . . . . . . . . . . . 45 2.6 Call Forwarding Unconditional . . . . . . . . . . . . . . . 58 2.7 Call Forwarding - Busy . . . . . . . . . . . . . . . . . . . 64 2.8 Call Forwarding - No Answer . . . . . . . . . . . . . . . . 70 2.9 3-way Conference – Third Party is Added . . . . . . . . . . 79 2.10 3-way Conference – Third Party Joins . . . . . . . . . . . . 85 2.11 Single Line Extension . . . . . . . . . . . . . . . . . . . 90 2.12 Find-Me . . . . . . . . . . . . . . . . . . . . . . . . . . 107 2.13 Call Management (Incoming Call Screening) . . . . . . . . . 118 2.14 Call Management (Outgoing Call Screening) . . . . . . . . . 122 2.15 Call Park . . . . . . . . . . . . . . . . . . . . . . . . . 125 2.16 Call Pickup . . . . . . . . . . . . . . . . . . . . . . . . 133 2.17 Automatic Redial . . . . . . . . . . . . . . . . . . . . . . 140 2.18 Click to Dial . . . . . . . . . . . . . . . . . . . . . . . 147 3. Security Considerations . . . . . . . . . . . . . . . . . . 150 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . 150 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 150 6. Document History . . . . . . . . . . . . . . . . . . . . . . 151 6.1 Changes since -03 . . . . . . . . . . . . . . . . . . . . . 151 Informative References . . . . . . . . . . . . . . . . . . . 151 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 152 Intellectual Property and Copyright Statements . . . . . . . 154 Johnston, et al. Expires August 2, 2003 [Page 2] Internet-Draft SIP Service Examples February 2003 1. Overview This informational document provides call flows detailing a SIP implementation of the following traditional telephony services: Call Hold Music on Hold Unattended Transfer Consultation Hold Unconditional Call Forwarding Attended Transfer No Answer Call Forwarding Busy Call Forwarding Single-Line Extension 3-way Call Incoming Call Screening Find-Me Call Pickup Call Park Outgoing Call Screening Automatic Redial Click to Dial It is the hope of the authors that this document will be useful for SIP implementors, users, designers, and protocol researchers alike and will help further the goal of a standard SIP implementation for IP Telephony. It is envisioned that as changes to the standard and additional RFCs are added that this document will reflect those changes and represent the current state of a standard SIP IP Telephony implementation. These flows use SIP as defined by RFC 2543bis [2] and [8]. Note that this document is informational, and nothing stated here should be taken as normative. The SIP specification and the other referenced documents are definitive as far as protocol issues are concerned. Also, these flows do not represent the only way to implement these services - other approaches such as 3pcc (Third Party Call Control) or Back-to-Back User Agents (B2BUA) may be more appropriate in some circumstances. The design and principles of these service examples are described in the the Multiparty Framework document [12]. These flows assume the functionality described in the SIP Call Flow Examples document [3], which explores basic behavior and PSTN internetworking. Some of the scenarios described herein make use of the SIP method extension REFER [4] and the SIP header extension Replaces [5], the SIP header extension Join [6], and some of the concepts in the 3pcc (third party call control) document [7]. The SIP Events document [11] describes the use of SUBSCRIBE and NOTIFY while the SIP Call Package document [10] describes the dialog event package. These flows were prepared assuming a network of proxies, registrars, PSTN gateways, and other SIP servers that have a pre-established trust relationship with each other, secured through other means than SIP. User agents wishing to use the services in this network are Johnston, et al. Expires August 2, 2003 [Page 3] Internet-Draft SIP Service Examples February 2003 required to authenticate themselves with an edge proxy using SIP Digest. To improve the clarity of this document, authentication of User Agents is not explicitly shown in all flows, except where authentication directly relates to the service example. Each call flow is presented with a textual description of the scenario, a message flow diagram showing the messages exchanged between separate network elements, and the detailed contents of each message shown in the diagram. 1.1 Legend for Message Flows Dashed lines (---) represent control messages that are mandatory to the call scenario. These control messages can be SIP or PSTN signaling. Double dashed lines (===) represent media paths between network elements. Messages with parenthesis around name represent optional control messages. Messages are identified in the Figures as F1, F2, etc. This references the message details in the table that follows the Figure. Comments in the message details are shown in the following form: /* Comments. */ 2. Service Examples 2.1 Call Hold Alice Proxy Bob | | | | INVITE F1 | | |--------------->| | | | INVITE F2 | |(100 Trying) F3 |------------->| |<---------------| | | |180 Ringing F4| | 180 Ringing F5 |<-------------| |<---------------| | | | 200 OK F6 | | 200 OK F7 |<-------------| |<---------------| | | ACK F8 | | |--------------->| ACK F9 | Johnston, et al. Expires August 2, 2003 [Page 4] Internet-Draft SIP Service Examples February 2003 | |------------->| | Both way RTP Established | |<=============================>| | |INVITE(hold) F10 |INVITE(hold) F11|<-------------| |<---------------| | | 200 OK F12 | | |--------------->| 200 OK F13 | | |------------->| | | ACK F14 | | ACK F15 |<-------------| |<---------------| | | No RTP Sent! | | | INVITE F16 | | INVITE F17 |<-------------| |<---------------| | | 200 OK F18 | | |--------------->| 200 OK F19 | | |------------->| | | ACK F20 | | ACK F21 |<-------------| |<---------------| | | Both way RTP Established | |<=============================>| | BYE F22 | | |--------------->| BYE F23 | | |------------->| | | 200 OK F24 | | 200 OK F25 |<-------------| |<---------------| | | | | Alice calls Bob, then places the call on hold. Bob then takes call off hold. Alice hangs up call. Hold is unidirectional in nature. However, a UA that places the other party on hold will generally also stop sending media, resulting in no media exchange between the UAs. Message Details F1 INVITE Alice -> Proxy 1 INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Call-ID: 12345601@atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 5] Internet-Draft SIP Service Examples February 2003 CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 INVITE Proxy 1 -> Bob INVITE sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob Call-ID: 12345601@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=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob Call-ID: 12345601@atlanta.example.com CSeq: 1 INVITE Johnston, et al. Expires August 2, 2003 [Page 6] Internet-Draft SIP Service Examples February 2003 Content-Length: 0 F4 180 Ringing Bob -> Proxy 1 SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.atlanta.example.com:5060;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/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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-Type: application/sdp Content-Length: ... Johnston, et al. Expires August 2, 2003 [Page 7] Internet-Draft SIP Service Examples February 2003 v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;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-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 ACK Alice -> Proxy 1 ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F9 ACK Proxy 1 -> Bob ACK sip:bob@client.biloxi.example.com SIP/2.0 Johnston, et al. Expires August 2, 2003 [Page 8] Internet-Draft SIP Service Examples February 2003 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 1 ACK 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 sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Route: Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly F11 INVITE Proxy 1 -> Alice INVITE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.105 Record-Route: Max-Forwards: 69 From: Bob ;tag=314159 To: Alice ;tag=1234567 Johnston, et al. Expires August 2, 2003 [Page 9] Internet-Draft SIP Service Examples February 2003 Call-ID: 12345601@atlanta.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly /* A replies to hold */ F12 200 OK Alice -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.biloxi.example.com:5060;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: Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly F13 200 OK Proxy 1 -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Johnston, et al. Expires August 2, 2003 [Page 10] Internet-Draft SIP Service Examples February 2003 ;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: Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly F14 ACK Bob -> Proxy 1 ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Route: Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F15 ACK Proxy 1 -> Alice ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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 Content-Length: 0 /* Bob takes the call off hold */ Johnston, et al. Expires August 2, 2003 [Page 11] Internet-Draft SIP Service Examples February 2003 F16 INVITE Bob -> Proxy 1 INVITE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Route: Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@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=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F17 INVITE Proxy 1 -> Alice INVITE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.105 Record-Route: Max-Forwards: 69 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 2 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844529 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Johnston, et al. Expires August 2, 2003 [Page 12] Internet-Draft SIP Service Examples February 2003 F18 200 OK Alice -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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: Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 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/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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: Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Johnston, et al. Expires August 2, 2003 [Page 13] Internet-Draft SIP Service Examples February 2003 F20 ACK Bob -> Proxy 1 ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Route: Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 2 ACK Content-Length: 0 F21 ACK Proxy 1 -> Alice ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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 Content-Length: 0 /* RTP Media stream re-established. Alice disconnects. */ F22 BYE Alice -> Proxy 1 BYE sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 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 sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 Johnston, et al. Expires August 2, 2003 [Page 14] Internet-Draft SIP Service Examples February 2003 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F24 200 OK Bob -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 | | | Johnston, et al. Expires August 2, 2003 [Page 15] Internet-Draft SIP Service Examples February 2003 |<---------------| 200 OK F6 | | | |<-------------| | | 200 OK F7 | | | |<---------------| | | | ACK F8 | | | |--------------->| ACK F9 | | | |------------->| | | Both way RTP Established | | |<=============================>| | | |INVITE(hold) F10 | |INVITE(hold) F11|<-------------| | |<---------------| | | | 200 OK F12 | | | |--------------->| 200 OK F13 | | | |------------->| | | | ACK F14 | | | |<-------------| | | ACK F15 | | | |<---------------| | | | No RTP Sent! | | | | INVITE F16 | | | |<-------------| | | | | INVITE F17 | | |--------------------------------->| | |(100 Trying) F18 | | |------------->| | | | | 180 Ringing F19 | | |<---------------------------------| | | 180 Ringing F20 | | |------------->| | | | | 200 OK F21 | | |<---------------------------------| | | 200 OK F22 | | | |------------->| | | | ACK F23 | | | |<-------------| | | | | ACK F24 | | |--------------------------------->| | | Both way RTP Established | | | |<=================>| | | BYE F25 | | | |<-------------| | | | | BYE F26 | | |--------------------------------->| | | | 200 OK F27 | | |<---------------------------------| | | 200 OK F28 | | | |------------->| | Johnston, et al. Expires August 2, 2003 [Page 16] Internet-Draft SIP Service Examples February 2003 | | INVITE F29 | | | INVITE F30 |<-------------| | |<---------------| | | | 200 OK F31 | | | |--------------->| 200 OK F32 | | | |------------->| | | | ACK F33 | | | |<-------------| | | ACK F34 | | | |<---------------| | | | Both way RTP Established | | |<=============================>| | | BYE F35 | | | |--------------->| BYE F36 | | | |------------->| | | | 200 OK F37 | | | |<-------------| | | 200 OK F38 | | | |<---------------| | | | | | | 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 Bob hangs up. Message Details F1 INVITE Alice -> Proxy 1 INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Johnston, et al. Expires August 2, 2003 [Page 17] Internet-Draft SIP Service Examples February 2003 F2 INVITE Proxy 1 -> Bob INVITE sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;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/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 18] Internet-Draft SIP Service Examples February 2003 CSeq: 1 INVITE Contact: Content Length:0 F5 180 Ringing Proxy 1 -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content Length: 0 F6 200 OK Bob -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Johnston, et al. Expires August 2, 2003 [Page 19] Internet-Draft SIP Service Examples February 2003 ;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-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 ACK Alice -> Proxy 1 ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F9 ACK Proxy 1 -> Bob ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 /* Bob places Alice on hold. */ Johnston, et al. Expires August 2, 2003 [Page 20] Internet-Draft SIP Service Examples February 2003 F10 INVITE Bob -> Proxy 1 INVITE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Route: Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly F11 INVITE Proxy 1 -> Alice INVITE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.biloxi.example.com:5060;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: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly Johnston, et al. Expires August 2, 2003 [Page 21] Internet-Draft SIP Service Examples February 2003 F12 200 OK Alice -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.biloxi.example.com:5060;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: Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly F13 200 OK Proxy 1 -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;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: Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly Johnston, et al. Expires August 2, 2003 [Page 22] Internet-Draft SIP Service Examples February 2003 F14 ACK Bob -> Proxy 1 ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Route: Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F15 ACK Proxy 1 -> Alice ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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 sip:carol@chicago.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol Call-ID: 9876543210@biloxi.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844834 2890844834 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 50170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Johnston, et al. Expires August 2, 2003 [Page 23] Internet-Draft SIP Service Examples February 2003 F17 INVITE Proxy 1 -> Carol INVITE sip:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844834 2890844834 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 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/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.105 Record-Route: From: Bob ;tag=8675309 To: Carol ;tag=456654 Call-ID: 9876543210@atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 24] Internet-Draft SIP Service Examples February 2003 CSeq: 1 INVITE Contact: Content Length:0 F20 180 Ringing Proxy 1 -> Bob SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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: Content-Type: application/sdp Content-Length: ... v=0 o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com s=Session SDP c=IN IP4 client.chicago.example.com t=3034423619 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/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Johnston, et al. Expires August 2, 2003 [Page 25] Internet-Draft SIP Service Examples February 2003 ;received=192.0.2.105 Record-Route: From: Bob ;tag=8675309 To: Carol ;tag=456654 Call-ID: 9876543210@biloxi.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com s=Session SDP c=IN IP4 client.chicago.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F23 ACK Bob -> Proxy 1 ACK sip:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Route: Max-Forwards: 70 From: Bob ;tag=8675309 To: Carol ;tag=456654 Call-ID: 9876543210@biloxi.example.com CSeq: 1 ACK Content-Length: 0 F24 ACK Proxy 1 -> Carol ACK sip:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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 Content-Length: 0 F25 BYE Bob -> Proxy 1 Johnston, et al. Expires August 2, 2003 [Page 26] Internet-Draft SIP Service Examples February 2003 BYE sip:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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 sip:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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 SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.105 From: Bob ;tag=8675309 To: Carol ;tag=456654 Call-ID: 9876543210@biloxi.example.com CSeq: 2 BYE Johnston, et al. Expires August 2, 2003 [Page 27] Internet-Draft SIP Service Examples February 2003 Content-Length: 0 /* Bob takes the call off hold */ F29 INVITE Bob -> Proxy 1 INVITE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F30 INVITE Proxy 1 -> Alice INVITE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.biloxi.example.com:5060;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: 2 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844529 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com Johnston, et al. Expires August 2, 2003 [Page 28] Internet-Draft SIP Service Examples February 2003 t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F31 200 OK Alice -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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: Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 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/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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: Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 29] Internet-Draft SIP Service Examples February 2003 t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F33 ACK Bob -> Proxy 1 ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Route: Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 2 ACK Content-Length: 0 F34 ACK Proxy 1 -> Alice ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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 Content-Length: 0 F35 BYE Alice -> Proxy 1 BYE sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 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 sip:bob@client.biloxi.example.com SIP/2.0 Johnston, et al. Expires August 2, 2003 [Page 30] Internet-Draft SIP Service Examples February 2003 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 2.3 Music On Hold Alice Bob Music Server | | | | INVITE F1 | | |--------------->| | | 180 Ringing F2 | | |<---------------| | | 200 OK F3 | | |<---------------| | Johnston, et al. Expires August 2, 2003 [Page 31] Internet-Draft SIP Service Examples February 2003 | ACK F4 | | |--------------->| | | RTP | | |<==============>| | | | | | B places A on hold with music | | | | | | INVITE no sdp F5 | |------------->| | |200 OK sdpM F6| | |<-------------| |INVITE (hold) F7| | |<---------------| | | 200 OK sdpA F8 | | |--------------->| | | ACK F9 | | |<---------------| | | | ACK sdpA F10 | | |------------->| | RTP | |<==============================| | | | | B Picks up the Call | | | BYE F11 | | |------------->| | | 200 OK F12 | | |<-------------| | INVITE F13 | | |<---------------| | | 200 OK F14 | | |--------------->| | | ACK F15 | | |<---------------| | | RTP | | |<==============>| | In this flow,B places A on hold with music. This is performed by B acting as a B2BUA (Back-to-Back User Agent) using 3pcc (third party call control) [7] to INVITE a Music Server into the session, which sends RTP music to A. B picks the call up from hold by sending a BYE to the music server and taking A off of hold. Note that if A responds to the INVITE with hold SDP with hold SDP in the 200 OK, this call flow will not work properly. Note also that A will receive RTP packets from two different IP addresses during this call flow. Johnston, et al. Expires August 2, 2003 [Page 32] Internet-Draft SIP Service Examples February 2003 Message Details F1 INVITE Alice -> Bob INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;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/UDP client.atlanta.example.com:5060;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: Johnston, et al. Expires August 2, 2003 [Page 33] Internet-Draft SIP Service Examples February 2003 Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 ACK Alice -> Bob ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 /* Bob places A on hold with music by acting as a B2BUA and sending an INVITE to the Music Server */ F5 INVITE Bob -> Music Server INVITE sip:music@server.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Bob ;tag=8675309 To: Music Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F6 200 OK Carol -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.105 From: Bob ;tag=8675309 To: Music ;tag=90210 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 1 INVITE Johnston, et al. Expires August 2, 2003 [Page 34] Internet-Draft SIP Service Examples February 2003 Contact: Content-Type: application/sdp Content-Length: ... v=0 o=MusicServer 2890844576 2890844577 IN IP4 music.server.example.com s=Session SDP c=IN IP4 music.server.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly /* B re-INVITEs A on hold */ F7 INVITE Bob -> Alice INVITE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 To: Alice ;tag=1234567 Max-Forwards: 70 From: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844528 IN IP4 music.server.example.com s=Session SDP c=IN IP4 music.server.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 To: Alice ;tag=1234567 From: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Johnston, et al. Expires August 2, 2003 [Page 35] Internet-Draft SIP Service Examples February 2003 Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly F9 ACK Bob -> Alice ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 To: Alice ;tag=1234567 Max-Forwards: 70 From: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 /* B passes SDP of A to the Music Server to allow music to be sent from B to A */ F10 ACK Bob -> Music Server ACK sip:music@server.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Bob ;tag=8675309 To: Music ;tag=90210 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 1 ACK Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly Johnston, et al. Expires August 2, 2003 [Page 36] Internet-Draft SIP Service Examples February 2003 /* RTP music is now sent from the Music Server to A */ /* B picks up the call from the Music Server */ F11 BYE Bob -> Music Server BYE sip:music@server.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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 sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 To: Alice ;tag=1234567 Max-Forwards: 70 From: Bob ;tag=23431 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=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 Johnston, et al. Expires August 2, 2003 [Page 37] Internet-Draft SIP Service Examples February 2003 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F14 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 To: Alice ;tag=1234567 From: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 2 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F15 ACK Bob -> Alice ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 To: Alice ;tag=1234567 Max-Forwards: 70 From: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com CSeq: 2 ACK Content-Length: 0 /* Normal media session between A and B is resumed */ 2.4 Unattended Transfer Johnston, et al. Expires August 2, 2003 [Page 38] Internet-Draft SIP Service Examples February 2003 Alice Bob Carol | INVITE F1 | | |<-------------------| | | 180 Ringing F2 | | |------------------->| | | 200 OK F3 | | |------------------->| | | ACK F4 | | |<-------------------| | | RTP | | |<==================>| | | | | | A performs unattended transfer | | | | | REFER Refer-To:C F5| | |------------------->| | | 202 Accepted F6 | | |<-------------------| | | NOTIFY F7 | | |<-------------------| | | 200 OK F8 | | |------------------->| | | BYE F9 | | |------------------->| | | 200 OK F10 | | |<-------------------| | | No RTP Session | INVITE Referred-By: A F11 | |------------------->| | | 180 Ringing F12 | | |<-------------------| | | 200 OK F13 | | |<-------------------| | | ACK F14 | | |------------------->| | | RTP | | |<==================>| | NOTIFY F14 | | |<-------------------| | | 200 OK F15 | | |------------------->| | | | | 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. If the transfer fails, Bob can send a new INVITE back to Alice to re-establish the session. Johnston, et al. Expires August 2, 2003 [Page 39] Internet-Draft SIP Service Examples February 2003 Note that the BYE could be sent by Alice after the NOTIFY. Also, if Alice has flushed all state information, the NOTIFY may receive a 481 Call Leg Does Not Exist. Message Details F1 INVITE Bob -> Alice INVITE sip:alice@atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;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=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 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/UDP client.biloxi.example.com:5060;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: Content-Length: 0 F3 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.113 Johnston, et al. Expires August 2, 2003 [Page 40] Internet-Draft SIP Service Examples February 2003 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=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 ACK Bob -> Alice ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Bob ;tag=314159 To: Alice ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 1 ACK Content-Length: 0 /* Session is established between Alice and Bob. */ /* Alice peforms unattended transfer of Bob to Carol */ F5 REFER Alice -> Bob REFER sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 2 REFER Refer-To: Referred-By: Contact: Content-Length: 0 Johnston, et al. Expires August 2, 2003 [Page 41] Internet-Draft SIP Service Examples February 2003 F6 202 Accepted Bob -> Alice SIP/2.0 202 Accepted Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.113 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 2 REFER Content-Length: 0 F7 NOTIFY Bob -> Alice NOTIFY sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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 F8 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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 sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Johnston, et al. Expires August 2, 2003 [Page 42] Internet-Draft SIP Service Examples February 2003 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 3 BYE Content-Length: 0 F10 200 OK Bob -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.105 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 3 BYE Content-Length: 0 /* Bob attempts the transfer to Carol */ F11 INVITE Bob -> Carol INVITE sip:carol@chicago.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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=Session SDP c=IN IP4 client.biloxi.example.com t=3034423821 0 m=audio 3458 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F12 180 Ringing Carol -> Bob Johnston, et al. Expires August 2, 2003 [Page 43] Internet-Draft SIP Service Examples February 2003 SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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=Session SDP c=IN IP4 client.chicago.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F14 ACK Bob -> Carol ACK sip:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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. */ Johnston, et al. Expires August 2, 2003 [Page 44] Internet-Draft SIP Service Examples February 2003 F15 NOTIFY Bob -> Alice NOTIFY sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.113 From: Bob ;tag=8675309 To: Carol ;tag=928287 Call-ID: 7436222@atlanta.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... F16 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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 Attended Transfer Alice Bob Carol | | | | INVITE F1 | | |--------------->| | | 180 Ringing F2 | | |<---------------| | Johnston, et al. Expires August 2, 2003 [Page 45] Internet-Draft SIP Service Examples February 2003 | 200 OK F3 | | |<---------------| | | ACK F4 | | |--------------->| | | RTP | | |<==============>| | |INVITE (hold) F5| | |<---------------| | | 200 OK F6 | | |--------------->| | | ACK F7 | | |<---------------| | | No RTP | | | | INVITE F8 | | |------------->| | | 180 Ringing F9 | |<-------------| | | 200 OK F10 | | |<-------------| | | ACK F11 | | |------------->| | | RTP | | |<============>| | |INVITE (hold) F12 | |------------->| | | 200 OK F13 | | |<-------------| | | ACK F14 | | |------------->| | | No RTP | | REFER Refer-To: C F15 | |<---------------| | |202 Accepted F16| | |--------------->| | | NOTIFY F17 | | |--------------->| | | 200 OK F18 | | |<---------------| | | INVITE Replaces: B F19 | |------------------------------>| | 200 OK F20 | |<------------------------------| | ACK F21 | |------------------------------>| | RTP | |<=============================>| | | BYE F22 | | |<-------------| Johnston, et al. Expires August 2, 2003 [Page 46] Internet-Draft SIP Service Examples February 2003 | | 200 OK F23 | | |------------->| | NOTIFY F24 | | |--------------->| | | 200 OK F25 | | |<---------------| | | BYE F26 | | |<---------------| | | 200 OK F27 | | |--------------->| | 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 [5] is inserted into the Refer-To URL by Bob. Note that the Refer-To URI is the Contact URI returned by Carol in the 200 OK response F10. This ensures that only the correct instance of Carol is reached. If the triggered INVITE had failed, Bob would have retried 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 [9]. Message Details F1 INVITE Alice -> Bob INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 Johnston, et al. Expires August 2, 2003 [Page 47] Internet-Draft SIP Service Examples February 2003 a=rtpmap:0 PCMU/8000 F2 180 Ringing Bob -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.atlanta.example.com:5060;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/UDP client.atlanta.example.com:5060;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=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 ACK Alice -> Bob ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345600@atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 48] Internet-Draft SIP Service Examples February 2003 CSeq: 1 ACK Content-Length: 0 /* Alice and Bob have established a session. Bob puts Alice on Hold */ F5 INVITE Bob -> Alice INVITE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;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=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 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/UDP client.biloxi.example.com:5060;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 Johnston, et al. Expires August 2, 2003 [Page 49] Internet-Draft SIP Service Examples February 2003 s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly F7 ACK Bob -> Alice ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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 sip:carol@chicago.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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=Session SDP c=IN IP4 client.biloxi.example.com t=3034423645 0 m=audio 3458 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F9 180 Ringing Carol -> Bob Johnston, et al. Expires August 2, 2003 [Page 50] Internet-Draft SIP Service Examples February 2003 SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.113 From: Bob ;tag=8675309 To: Carol ;tag=5f35a3 Call-ID: sdjfdjfskdf@biloxi.example.com CSeq: 42 INVITE Contact: Content-Length: 0 F10 200 OK Carol -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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 Content-Type: application/sdp Content-Length: ... v=0 o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com s=Session SDP c=IN IP4 client.chicago.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F11 ACK Bob -> Carol ACK sip:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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 */ Johnston, et al. Expires August 2, 2003 [Page 51] Internet-Draft SIP Service Examples February 2003 F12 INVITE Bob -> Carol INVITE sip:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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=Session SDP c=IN IP4 client.biloxi.example.com t=3034423645 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/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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 Content-Type: application/sdp Content-Length: ... v=0 o=carol 2890844922 2890844923 IN IP4 client.chicago.example.com s=Session SDP c=IN IP4 client.chicago.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly Johnston, et al. Expires August 2, 2003 [Page 52] Internet-Draft SIP Service Examples February 2003 F14 ACK Bob -> Carol ACK sip:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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 sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Bob ;tag=23431 To: Alice ;tag=1234567 Call-ID: 12345678900@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/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.113 From: Bob ;tag=1234567 To: Alice ;tag=23431 Call-ID: 12345678900@atlanta.example.com CSeq: 1025 REFER Content-Length: 0 F17 NOTIFY Alice -> Bob NOTIFY sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 Johnston, et al. Expires August 2, 2003 [Page 53] Internet-Draft SIP Service Examples February 2003 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345678900@atlanta.example.com CSeq: 2 NOTIFY Event: refer Subscription-State: active;expires=60 Content-Type: message/sipfrag Content-Length: ... SIP/2.0 100 Trying F18 200 OK Bob -> Carol SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 To: Bob ;tag=1234567 From: Carol ;tag=5f35a3 Call-ID: 12345678900@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 sip:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/UDP chicago.example.com:5060;branch=z9hG4bKadfe4ko To: Carol Max-Forwards: 70 From: Alice ;tag=3461 Call-ID: 9435674543@atlanta.example.com CSeq: 1 INVITE Referred-By: Replaces: 12345600@atlanta.example.com;to-tag=23431;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=Session SDP c=IN IP4 client.atlanta.example.com t=3034423643 0 Johnston, et al. Expires August 2, 2003 [Page 54] Internet-Draft SIP Service Examples February 2003 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/UDP chicago.example.com:5060;branch=z9hG4bKadfe4ko ;received=192.0.2.123 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 Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844221 2890844221 IN IP4 client.chicago.example.com s=Session SDP c=IN IP4 client.chicago.example.com t=3034423452 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F21 ACK Alice -> Carol ACK sip:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/UDP chicago.example.com:5060;branch=z9hG4bKadfe4ko To: Carol ;tag=ff3a Max-Forwards: 70 From: Alice ;tag=3461 Call-ID: 9435674543@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 /* Carol then disconnects from Bob */ F22 BYE Carol -> Bob BYE sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 To: Bob ;tag=8675309 Max-Forwards: 70 Johnston, et al. Expires August 2, 2003 [Page 55] Internet-Draft SIP Service Examples February 2003 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/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 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 sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=23431 Call-ID: 12345678900@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/UDP chicago.example.com:5060;branch=z9hG4bKadfe4ko ;received=192.0.2.123 From: Carol ;tag=ff3a To: Alice ;tag=3461 Call-ID: 9435674543@chicago.example.com CSeq: 1 INVITE Contact: F25 200 OK Bob -> Carol Johnston, et al. Expires August 2, 2003 [Page 56] Internet-Draft SIP Service Examples February 2003 SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 To: Bob ;tag=1234567 From: Carol ;tag=5f35a3 Call-ID: 12345678900@atlanta.example.com CSeq: 3 NOTIFY Content-Length: 0 /* Bob disconnects with Alice */ F26 BYE Bob -> Alice BYE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Bob ;tag=23431 To: Alice ;tag=1234567 Call-ID: 12345678900@atlanta.example.com CSeq: 1026 BYE Content-Length: 0 F27 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.113 From: Bob ;tag=23431 To: Alice ;tag=1234567 Call-ID: 12345678900@atlanta.example.com CSeq: 1026 BYE Content-Length: 0 Johnston, et al. Expires August 2, 2003 [Page 57] Internet-Draft SIP Service Examples February 2003 2.6 Call Forwarding Unconditional Alice Proxy Gateway | | | | INVITE F1 | | |--------------->| INVITE F2 | |(100 Trying) F3 |------------->| |<---------------|180 Ringing F4| | 180 Ringing F5 |<-------------| |<---------------| 200 OK F6 | | 200 OK F7 |<-------------| |<---------------| | | ACK F8 | | |--------------->| ACK F9 | | |------------->| | Both way RTP Established | |<=============================>| | BYE F10 | | |--------------->| BYE F11 | | |------------->| | | 200 OK F12 | | 200 OK F13 |<-------------| |<---------------| | | | | Bob wants all calls forwarded to the PSTN. 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. Message Details F1 INVITE Alice -> Proxy INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 Johnston, et al. Expires August 2, 2003 [Page 58] Internet-Draft SIP Service Examples February 2003 s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* Proxy forwards call by rewriting Request-URI */ F2 INVITE Proxy -> Gateway INVITE sip:+19727293660@gw1.example.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;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 Gateway -> Proxy Johnston, et al. Expires August 2, 2003 [Page 59] Internet-Draft SIP Service Examples February 2003 SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content Length:0 F5 180 Ringing Proxy -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content Length: 0 F6 200 OK Gateway -> Proxy SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.example.com s=Session SDP Johnston, et al. Expires August 2, 2003 [Page 60] Internet-Draft SIP Service Examples February 2003 c=IN IP4 gatewayone.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F7 200 OK Proxy -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.example.com s=Session SDP c=IN IP4 gatewayone.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 ACK Alice -> Proxy ACK sip:+19727293660@gw1.example.com;user=phone SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F9 ACK Proxy -> Gateway ACK sip:+19727293660@gw1.example.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 Johnston, et al. Expires August 2, 2003 [Page 61] Internet-Draft SIP Service Examples February 2003 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F10 BYE Alice -> Proxy 1 BYE sip:+19727293660@gw1.example.com;user=phone SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F11 BYE Proxy 1 -> Gateway BYE sip:+19727293660@gw1.example.com;user=phone SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 F12 200 OK Gateway -> Proxy 1 SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 August 2, 2003 [Page 62] Internet-Draft SIP Service Examples February 2003 F13 200 OK Proxy 1 -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 August 2, 2003 [Page 63] Internet-Draft SIP Service Examples February 2003 2.7 Call Forwarding - Busy Alice Proxy User B1 User B2 | | | | | INVITE F1 | | | |--------------->| INVITE F2 | | | |------------->| | |(100 Trying) F3 | | | |<---------------| 486 Busy F4 | | | |<-------------| | | | ACK F5 | | | |------------->| | | | | INVITE F6 | | |--------------------------------->| | | | 180 Ringing F7 | | |<---------------------------------| | 180 Ringing F8 | | | |<---------------| | 200 OK F9 | | |<---------------------------------| | 200 OK F10 | | | |<---------------| | | | ACK F11 | | | |--------------->| | ACK F12 | | |--------------------------------->| | Both way RTP Established | |<=================================================>| | BYE F13 | | | |--------------->| | BYE F14 | | |--------------------------------->| | | | 200 OK F15 | | 200 OK F16 |<---------------------------------| |<---------------| | | | | | | 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 places call to B2. Message Details F1 INVITE Alice -> Proxy INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 Johnston, et al. Expires August 2, 2003 [Page 64] Internet-Draft SIP Service Examples February 2003 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=Session SDP c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 INVITE Proxy -> Bob1 INVITE sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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=Session SDP 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/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob Johnston, et al. Expires August 2, 2003 [Page 65] Internet-Draft SIP Service Examples February 2003 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/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 -> Bob1 ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;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 /* The proxy now forwards the call to B2 */ F6 INVITE Proxy -> Bob2 INVITE sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.2 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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: ... Johnston, et al. Expires August 2, 2003 [Page 66] Internet-Draft SIP Service Examples February 2003 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F7 180 Ringing B2 -> Proxy SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.2 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 F8 180 Ringing Proxy -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 200 OK B2 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.2 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 Johnston, et al. Expires August 2, 2003 [Page 67] Internet-Draft SIP Service Examples February 2003 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com s=Session SDP c=IN IP4 client2.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F10 200 OK Proxy -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;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-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com s=Session SDP c=IN IP4 client2.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F11 ACK Alice -> Proxy ACK sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 68] Internet-Draft SIP Service Examples February 2003 CSeq: 1 ACK Content-Length: 0 F12 ACK Proxy -> Bob2 ACK sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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. */ F13 BYE Alice -> Proxy BYE sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F14 BYE Proxy -> Bob2 BYE sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 August 2, 2003 [Page 69] Internet-Draft SIP Service Examples February 2003 F15 200 OK B2 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 F16 200 OK Proxy -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 2.8 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 | | | |------------->| | Johnston, et al. Expires August 2, 2003 [Page 70] Internet-Draft SIP Service Examples February 2003 | | | INVITE F10 | | |--------------------------------->| | | | 180 Ringing F11 | | 180 Ringing F12|<---------------------------------| |<---------------| | 200 OK F13 | | |<---------------------------------| | 200 OK F14 | | | |<---------------| | | | ACK F15 | | | |--------------->| | ACK F16 | | |--------------------------------->| | Both way RTP Established | |<=================================================>| | BYE F17 | | | |--------------->| | BYE F18 | | |--------------------------------->| | | | 200 OK F19 | | 200 OK F20 |<---------------------------------| |<---------------| | | | | | | 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 F1 INVITE Alice -> Proxy INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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=Session SDP c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Johnston, et al. Expires August 2, 2003 [Page 71] Internet-Draft SIP Service Examples February 2003 F2 INVITE Proxy -> Bob1 INVITE sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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=Session SDP 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/UDP client.atlanta.example.com:5060;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/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=3145678 Call-ID: 12345600@atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 72] Internet-Draft SIP Service Examples February 2003 CSeq: 1 INVITE Contact: Content-Length: 0 F5 180 Ringing Proxy -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 /* B1 rings until a configurable timer expires in the Proxy. The Proxy sends Cancel and proceeds down the list of routes. */ F6 CANCEL Proxy -> Bob1 CANCEL sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;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/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 From: Alice To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 CANCEL Content-Length: 0 F8 487 Request Terminated B1 -> Proxy Johnston, et al. Expires August 2, 2003 [Page 73] Internet-Draft SIP Service Examples February 2003 SIP/2.0 487 Request Terminated Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 -> Bob1 ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;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 INVITE Proxy -> Bob2 INVITE sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.2 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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=Session SDP c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Johnston, et al. Expires August 2, 2003 [Page 74] Internet-Draft SIP Service Examples February 2003 F11 180 Ringing B2 -> Proxy SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.2 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 F12 180 Proxy -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 200 OK B2 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.2 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com Johnston, et al. Expires August 2, 2003 [Page 75] Internet-Draft SIP Service Examples February 2003 s=Session SDP c=IN IP4 client2.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F14 200 OK Proxy -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;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-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com s=Session SDP c=IN IP4 client2.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F15 ACK Alice -> Proxy ACK sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F16 ACK Proxy -> Bob2 ACK sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Johnston, et al. Expires August 2, 2003 [Page 76] Internet-Draft SIP Service Examples February 2003 ;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. */ F17 BYE Alice -> Proxy BYE sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F18 BYE Proxy -> Bob2 BYE sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 Max-Forwards: 69 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 2 BYE Content-Length: 0 F19 200 OK B2 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 77] Internet-Draft SIP Service Examples February 2003 CSeq: 2 BYE Content-Length: 0 F20 200 OK Proxy -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 August 2, 2003 [Page 78] Internet-Draft SIP Service Examples February 2003 2.9 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 A's mixer. B then INVITEs Carol using the same Contact URI. Message Details F1 INVITE Alice -> Bob INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 79] Internet-Draft SIP Service Examples February 2003 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=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;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/UDP client.atlanta.example.com:5060;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=Session SDP c=IN IP4 client.biloxi.example.com Johnston, et al. Expires August 2, 2003 [Page 80] Internet-Draft SIP Service Examples February 2003 t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 ACK Alice -> Bob ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 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 sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;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=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=sendonly F6 200 OK Alice -> Bob SIP/2.0 200 OK Johnston, et al. Expires August 2, 2003 [Page 81] Internet-Draft SIP Service Examples February 2003 Via: SIP/2.0/UDP client.biloxi.example.com:5060;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=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly F7 ACK Bob -> Alice ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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 sip:carol@chicago.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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 Johnston, et al. Expires August 2, 2003 [Page 82] Internet-Draft SIP Service Examples February 2003 Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 28908445834 2890844834 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423645 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/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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-Type: application/sdp Content-Length: ... v=0 o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com s=Session SDP c=IN IP4 client.chicago.example.com Johnston, et al. Expires August 2, 2003 [Page 83] Internet-Draft SIP Service Examples February 2003 t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F11 ACK Bob -> Carol ACK sip:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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 August 2, 2003 [Page 84] Internet-Draft SIP Service Examples February 2003 2.10 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 conference URI 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 Bob's mixer then accepts the INVITE from Carol, resulting in the 3-way call. Message Details F1 INVITE Alice -> Bob INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Johnston, et al. Expires August 2, 2003 [Page 85] Internet-Draft SIP Service Examples February 2003 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=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;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/UDP client.atlanta.example.com:5060;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 Content-Type: application/sdp Content-Length: ... Johnston, et al. Expires August 2, 2003 [Page 86] Internet-Draft SIP Service Examples February 2003 v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 ACK Alice -> Bob ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 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 sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP chicago.example.com:5060;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=Session SDP c=IN IP4 client.chicago.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Johnston, et al. Expires August 2, 2003 [Page 87] Internet-Draft SIP Service Examples February 2003 F6 180 Ringing Carol -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP chicago.example.com:5060;branch=z9hG4bKnashds7 ;received=120. From: Carol ;tag=8675309 To: Bob ;tag=0982 Call-ID: 452k499sk@chicago.example.com CSeq: 99 INVITE Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Length: 0 F7 INVITE Bob -> Alice INVITE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;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=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.113 From: Bob ;tag=23431 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 88] Internet-Draft SIP Service Examples February 2003 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=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F9 ACK Bob -> Alice ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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/UDP chicago.example.com:5060;branch=z9hG4bKnashds7 ;received=120. From: Carol ;tag=8675309 To: Bob ;tag=0982 Call-ID: 452k499sk@chicago.example.com CSeq: 99 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=Session SDP c=IN IP4 client.biloxi.example.com t=3034423645 0 m=audio 48174 RTP/AVP 0 Johnston, et al. Expires August 2, 2003 [Page 89] Internet-Draft SIP Service Examples February 2003 a=rtpmap:0 PCMU/8000 F11 ACK OK Bob -> Carol ACK sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP chicago.example.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Carol ;tag=8675309 To: Bob ;tag=0982 Call-ID: 452k499sk@chicago.example.com CSeq: 99 ACK Content-Length:0 2.11 Single Line Extension Alice Forking Proxy User User User B1 B2 B3 | | | | | | INVITE F1 | | | | |--------------->| INVITE F2 | | | | |------------->| | | | | INVITE F3 | | | |-------------------->| | | | INVITE F4 | | | |--------------------------->| | 100 Trying F5 | | | | |<---------------|180 Ringing F6| | | | |<-------------| | | | 180 Ringing F7 | | | | |<---------------| | | | | | 480 Not Logged In F8| | | |<--------------------| | | | ACK F9 | | | |-------------------->| | | | 180 Ringing F10 | | 180 F11 |<---------------------------| |<---------------| 200 OK F12 | | 200 OK F13 |<---------------------------| |<---------------| | | | | | CANCEL 14 | | | | |------------->| | | | | 200 OK F15 | | | | |<-------------| | | | | 487 F16 | | | Johnston, et al. Expires August 2, 2003 [Page 90] Internet-Draft SIP Service Examples February 2003 | |<-------------| | | | | ACK F17 | | | | |------------->| | | | ACK F18 | | | | |--------------->| ACK F19 | | | |--------------------------->| | Both way RTP Established | |<===========================================>| | | NOTIFY F20 | | |<---------------------------| | | NOTIFY F21 | | | | |------------->| | | | | NOTIFY F22 | | | |-------------------->| | | | NOTIFY F23 | | | |--------------------------->| | | 200 OK F24 | | | | |<-------------| | | | | 200 OK F25 | | |--------------------------->| | | 200 OK F26 | | | |<--------------------| | | | 482 Loop Detected F27 | | |<---------------------------| | | | | User B2 wants to join the call | | | | | | INVITE Join:A-B3 F28 | | |<--------------------| | | | INVITE Join: A-B3 F29 | | |------------->| | | | | INVITE Join: A-B3 F30 | | |-------------------->| | | | INVITE Join: A-B3 F31 | |--------------------------->| | | 100 Trying F32 | | | |-------------------->| | | | 481 Dialog Does Not Exist F33 | |<-------------| | | | | ACK F34 | | | | |------------->| | | | | 482 Loop Detected F35 | | |<--------------------| | | | ACK F36 | | | |-------------------->| | | | 200 OK F37 | | |<---------------------------| Johnston, et al. Expires August 2, 2003 [Page 91] Internet-Draft SIP Service Examples February 2003 | | 200 OK F38 | | | |-------------------->| | | | |ACK F39 | | |----->| | | Both way RTP Established | | |<====>| B3 mixes RTP | | | | In Single Line Extension a call will ring several extensions at the same time (forking). The extension to answer the call becomes the active set. If other extensions pick up, the call becomes a conference call. In this flow, Alice calls Bob which results in the INVITE being forked to three devices, B1, B2, and B3. B3 answers the call and is connected to A. B3 sends a NOTIFY containing the dialog information to B, which is forked to B1 and B2. B2 wishes to join the call and sends an INVITE with a Join header field to B to request this. This INVITE is forked and is accepted by B3 who then performs the mixing function. Note that if B3 is not capable of mixing the media, B3 would transfer both Alice and B2 to a conferencing bridge which would perform the mixing. The use of SUBSCRIBE and NOTIFY is defined in [11] while the dialog Event package is defined in [10]. Message Details F1 INVITE Alice -> Proxy INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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=Session SDP c=IN IP4 client.atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 92] Internet-Draft SIP Service Examples February 2003 t= 0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 INVITE Proxy -> Bob1 INVITE sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 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=Session SDP c=IN IP4 client.atlanta.example.com t= 0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F3 INVITE Proxy -> Bob2 INVITE sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.2 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 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=Session SDP c=IN IP4 client.atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 93] Internet-Draft SIP Service Examples February 2003 t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 INVITE Proxy -> Bob3 INVITE sip:bob@client3.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.3 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 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=Session SDP c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F5 100 Trying Proxy -> Alice SIP/2.0 100 Trying Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 F6 180 Ringing B1 -> Proxy SIP/2.0 180 Ringing Johnston, et al. Expires August 2, 2003 [Page 94] Internet-Draft SIP Service Examples February 2003 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F7 180 Ringing Proxy -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=765432 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F8 480 Not Logged In B2 -> Proxy SIP/2.0 480 Not Logged In Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.2 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=314756 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F9 ACK Proxy -> Bob2 ACK sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.2 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314756 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Johnston, et al. Expires August 2, 2003 [Page 95] Internet-Draft SIP Service Examples February 2003 Content-Length: 0 F10 180 Ringing B3 -> Proxy SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss1.example.com:5060;branch=83749.3 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=7137136 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F11 180 Ringing B3 -> Proxy SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=7137136 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Contact: Content-Length: 0 F12 200 OK B3 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=83749.3 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 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 client3.biloxi.example.com Johnston, et al. Expires August 2, 2003 [Page 96] Internet-Draft SIP Service Examples February 2003 s=Session SDP c=IN IP4 client3.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F13 200 OK Proxy -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 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 client3.biloxi.example.com s=Session SDP c=IN IP4 client3.biloxi.example.com t=0 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 /* Forking Proxy cancels pending branch B1 */ F14 CANCEL Proxy -> Bob1 CANCEL sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 CANCEL Content-Length: 0 F15 200 OK B1 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Johnston, et al. Expires August 2, 2003 [Page 97] Internet-Draft SIP Service Examples February 2003 From: Alice To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 CANCEL Content-Length: 0 F16 487 Request Terminated B1 -> Proxy SIP/2.0 487 Request Terminated Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 F17 ACK Proxy -> Bob1 ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;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 F18 ACK Alice -> Proxy ACK sip:bob@client3.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=7137136 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 F19 ACK Proxy -> Bob3 ACK sip:bob@client3.biloxi.example.com SIP/2.0 Johnston, et al. Expires August 2, 2003 [Page 98] Internet-Draft SIP Service Examples February 2003 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.3 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 B3*/ /* User B3 sends a NOTIFY to the group with established dialog information. */ F20 NOTIFY B3 -> Proxy NOTIFY sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk Max-Forwards: 70 From: Bob ;tag=w2Hu8sj To: Bob Call-ID: 8458999275@biloxi.example.com CSeq: 1 NOTIFY Event: dialog Subscription-State: active;expires=3600 Content-Type: application/dialog-info+xml Content-Length: ... confirmed F21 NOTIFY Proxy -> Bob1 NOTIFY sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK4558a.1 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk ;received=192.0.2.115 Max-Forwards: 69 From: Bob ;tag=w2Hu8sj To: Bob Johnston, et al. Expires August 2, 2003 [Page 99] Internet-Draft SIP Service Examples February 2003 Call-ID: 8458999275@biloxi.example.com CSeq: 1 NOTIFY Event: dialog Subscription-State: active;expires=3600 Content-Type: application/dialog-info+xml Content-Length: ... confirmed F22 Proxy -> Bob2 NOTIFY sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK4558a.2 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk ;received=192.0.2.115 Max-Forwards: 69 From: Bob ;tag=w2Hu8sj To: Bob Call-ID: 8458999275@biloxi.example.com CSeq: 1 NOTIFY Event: dialog Subscription-State: active;expires=3600 Content-Type: application/dialog-info+xml Content-Length: ... confirmed F23 NOTIFY Proxy-> Bob3 NOTIFY sip:bob@client3.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK4558a.3 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk Johnston, et al. Expires August 2, 2003 [Page 100] Internet-Draft SIP Service Examples February 2003 ;received=192.0.2.115 Max-Forwards: 69 From: Bob ;tag=w2Hu8sj To: Bob Call-ID: 8458999275@biloxi.example.com CSeq: 1 NOTIFY Event: dialog Subscription-State: active;expires=3600 Content-Type: application/dialog-info+xml Content-Length: ... confirmed F24 200 OK B1 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK4558a.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk ;received=192.0.2.115 From: Bob ;tag=w2Hu8sj To: Bob Call-ID: 8458999275@biloxi.example.com CSeq: 1 NOTIFY Content-Length: 0 F25 200 OK Proxy -> Bob3 SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk ;received=192.0.2.115 From: Bob ;tag=w2Hu8sj To: Bob Call-ID: 8458999275@biloxi.example.com CSeq: 1 NOTIFY Content-Length: 0 F26 200 OK B2 -> Proxy Johnston, et al. Expires August 2, 2003 [Page 101] Internet-Draft SIP Service Examples February 2003 SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK4558a.2 ;received=192.0.2.54 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk ;received=192.0.2.115 From: Bob ;tag=w2Hu8sj To: Bob Call-ID: 8458999275@biloxi.example.com CSeq: 1 NOTIFY Content-Length: 0 F27 200 OK B3 -> Proxy SIP/2.0 482 Loop Detected Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK4558a.3 ;received=192.0.2.54 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk ;received=192.0.2.115 From: Bob ;tag=w2Hu8sj To: Bob Call-ID: 8458999275@biloxi.example.com CSeq: 1 NOTIFY Content-Length: 0 /* User B2 decided to join the call. */ F28 INVITE B2 -> Proxy INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk Max-Forwards: 70 From: Bob ;tag=4524524312 To: Bob Call-ID: 524251233@biloxi.example.com CSeq: 1 INVITE Contact: Join: 12345600@atlanta.example.com;to-tag=765432;from-tag=1234567 Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com s=Session SDP c=IN IP4 client2.biloxi.example.com t=0 0 Johnston, et al. Expires August 2, 2003 [Page 102] Internet-Draft SIP Service Examples February 2003 m=audio 3458 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F29 INVITE Proxy -> Bob1 INVITE sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK4558a.1 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk ;received=192.0.2.114 Max-Forwards: 69 From: Bob ;tag=4524524312 To: Bob Call-ID: 524251233@biloxi.example.com CSeq: 1 INVITE Contact: Join: 12345600@atlanta.example.com;to-tag=765432;from-tag=1234567 Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com s=Session SDP c=IN IP4 client2.biloxi.example.com t=0 0 m=audio 3458 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F30 INVITE Proxy -> Bob2 INVITE sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK4558a.2 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk ;received=192.0.2.114 Max-Forwards: 69 From: Bob ;tag=4524524312 To: Bob Call-ID: 524251233@biloxi.example.com CSeq: 1 INVITE Contact: Join: 12345600@atlanta.example.com;to-tag=765432;from-tag=1234567 Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com s=Session SDP Johnston, et al. Expires August 2, 2003 [Page 103] Internet-Draft SIP Service Examples February 2003 c=IN IP4 client2.biloxi.example.com t=0 0 m=audio 3458 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F31 INVITE Proxy -> Bob1 INVITE sip:bob@client3.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK4558a.3 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk ;received=192.0.2.114 Max-Forwards: 69 From: Bob ;tag=4524524312 To: Bob Call-ID: 524251233@biloxi.example.com CSeq: 1 INVITE Contact: Join: 12345600@atlanta.example.com;to-tag=765432;from-tag=1234567 Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com s=Session SDP c=IN IP4 client2.biloxi.example.com t=0 0 m=audio 3458 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F32 100 Trying Proxy -> Bob2 SIP/2.0 100 Trying Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk ;received=192.0.2.114 From: Bob ;tag=4524524312 To: Bob Call-ID: 524251233@biloxi.example.com CSeq: 1 INVITE Content-Length: 0 /* B1 does not have an established dialog, so it returns a 481 */ F33 481 Dialog Does Not Exist B1 -> Proxy Johnston, et al. Expires August 2, 2003 [Page 104] Internet-Draft SIP Service Examples February 2003 SIP/2.0 481 Dialog Does Not Exist Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK4558a.3 ;received=192.0.2.54 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk ;received=192.0.2.114 From: Bob ;tag=4524524312 To: Bob ;tag=68324lk42jd Call-ID: 524251233@biloxi.example.com CSeq: 1 INVITE Content-Length: 0 F34 ACK Proxy -> Bob1 ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK4558a.3 From: Bob ;tag=4524524312 To: Bob ;tag=68324lk42jd Call-ID: 524251233@biloxi.example.com CSeq: 1 ACK Content-Length: 0 F35 482 Loop Detected B2 -> Proxy SIP/2.0 482 Loop Detected Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK4558a.2 ;received=192.0.2.54 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk ;received=192.0.2.114 From: Bob ;tag=4524524312 To: Bob ;tag=134lkwe Call-ID: 524251233@biloxi.example.com CSeq: 1 INVITE Content-Length: 0 F36 ACK Proxy -> Bob2 ACK sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK4558a.2 From: Bob ;tag=4524524312 To: Bob ;tag=134lkwe Call-ID: 524251233@biloxi.example.com CSeq: 1 ACK Content-Length: 0 Johnston, et al. Expires August 2, 2003 [Page 105] Internet-Draft SIP Service Examples February 2003 /* B3 has an existing dialog and agrees to mix B2 into the session. */ F37 200 OK User B3 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK4558a.3 ;received=192.0.2.54 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk ;received=192.0.2.114 From: Bob ;tag=4524524312 To: Bob ;tag=3891908734 Call-ID: 524251233@biloxi.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client3.biloxi.example.com s=Session SDP c=IN IP4 client3.biloxi.example.com t=0 0 m=audio 3460 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F38 200 OK User B3 -> Proxy SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk ;received=192.0.2.114 Max-Forwards: 69 From: Bob ;tag=4524524312 To: Bob ;tag=3891908734 Call-ID: 524251233@biloxi.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client3.biloxi.example.com s=Session SDP c=IN IP4 client3.biloxi.example.com t=0 0 m=audio 3460 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Johnston, et al. Expires August 2, 2003 [Page 106] Internet-Draft SIP Service Examples February 2003 F39 ACK B2 -> Bob3 ACK sip:bob@client3.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKq0qwli6ewlk Max-Forwards: 69 From: Bob ;tag=4524524312 To: Bob ;tag=3891908734 Call-ID: 524251233@biloxi.example.com CSeq: 1 ACK 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 | | | | | |<-------------| | | | | | 487 F8 | | | | | |<-------------| | | | | | ACK F9 | | | | | |------------->| | | | | | INVITE F10 | | | | |-------------------->| | | | |480 Not Logged In F11| | | | |<--------------------| | | | | ACK F12| | | | |-------------------->| | | | | INVITE F13 | | | |--------------------------->| | | | 486 Busy Here F14 | | | |<---------------------------| | | | ACK F15 | | | |--------------------------->| | Johnston, et al. Expires August 2, 2003 [Page 107] Internet-Draft SIP Service Examples February 2003 | | 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 INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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=Session SDP c=IN IP4 client.atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 108] Internet-Draft SIP Service Examples February 2003 t= 0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 INVITE Proxy -> Bob1 INVITE sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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=Session SDP 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/UDP client.atlanta.example.com:5060;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/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Johnston, et al. Expires August 2, 2003 [Page 109] Internet-Draft SIP Service Examples February 2003 ;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/UDP client.atlanta.example.com:5060;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 for until a configurable timer in the Proxy expires. The Proxy then sends Cancel and proceeds down the list of routes. */ F6 CANCEL Proxy -> Bob1 CANCEL sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;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/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 From: Alice To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 CANCEL Johnston, et al. Expires August 2, 2003 [Page 110] Internet-Draft SIP Service Examples February 2003 Content-Length: 0 F8 487 Request Terminated B1 -> Proxy SIP/2.0 487 Request Terminated Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 -> Bob1 ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;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 -> Bob2 INVITE sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.2 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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=Session SDP Johnston, et al. Expires August 2, 2003 [Page 111] Internet-Draft SIP Service Examples February 2003 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/UDP ss1.example.com:5060;branch=z9hG4bK83749.2 ;received=192.0.2.54 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=314756 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F12 ACK Proxy -> Bob2 ACK sip:bob@client2.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;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 -> Bob3 INVITE sip:bob@client3.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.3 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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: ... Johnston, et al. Expires August 2, 2003 [Page 112] Internet-Draft SIP Service Examples February 2003 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=Session SDP 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/UDP ss1.example.com:5060;branch=z9hG4bK83749.3 ;received=192.0.2.54 From: Alice ;tag=1234567 To: Bob ;tag=7654321 Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Content-Length: 0 F15 ACK Proxy -> Bob3 ACK sip:bob@client3.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.3 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 -> Bob4 INVITE sip:bob@client4.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=83749.4 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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: ... Johnston, et al. Expires August 2, 2003 [Page 113] Internet-Draft SIP Service Examples February 2003 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F17 180 Ringing B4 -> Proxy SIP/2.0 180 Ringing Via: SIP/2.0/UDP ss1.example.com:5060;branch=83749.4 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 B4 -> Proxy SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.atlanta.example.com:5060;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/UDP ss1.example.com:5060;branch=83749.4 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 Record-Route: From: Alice ;tag=1234567 To: Bob ;tag=7137136 Call-ID: 12345600@atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 114] Internet-Draft SIP Service Examples February 2003 CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client4.biloxi.example.com s=Session SDP 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/UDP client.atlanta.example.com:5060;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=Session SDP 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 sip:bob@client4.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Route: Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=7137136 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Johnston, et al. Expires August 2, 2003 [Page 115] Internet-Draft SIP Service Examples February 2003 Content-Length: 0 F22 ACK Proxy -> Bob4 ACK sip:bob@client4.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;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 sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.105 Max-Forwards: 69 From: Bob ;tag=7137136 To: Alice ;tag=1234567 Call-ID: 12345600@atlanta.example.com CSeq: 1 BYE Content-Length: 0 Johnston, et al. Expires August 2, 2003 [Page 116] Internet-Draft SIP Service Examples February 2003 F25 200 OK Alice -> Proxy SIP/2.0 200 OK Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 ;received=192.0.2.54 Via: SIP/2.0/UDP client.biloxi.example.com:5060;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 -> Bob4 SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;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 August 2, 2003 [Page 117] Internet-Draft SIP Service Examples February 2003 2.13 Call Management (Incoming Call Screening) Alice Proxy Bob | | | | INVITE F1 | | |------------------------------>| | 305 Use Proxy F2 | |<------------------------------| | ACK F3 | | |------------------------------>| | INVITE F4 | | |--------------->| | | 407 Proxy Authorization F5 | |<---------------| | | ACK F6 | | |--------------->| | | INVITE F7 | | |--------------->| | | 403 Screening Failure (Terminating) F8 |<---------------| | | ACK F9 | | |--------------->| | | | | 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 user B. 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 – instead some form of authentication credentials must be used. Message Details F1 INVITE Alice -> Bob INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 INVITE Johnston, et al. Expires August 2, 2003 [Page 118] Internet-Draft SIP Service Examples February 2003 Contact: Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;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 F3 ACK Alice -> Bob ACK sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 Johnston, et al. Expires August 2, 2003 [Page 119] Internet-Draft SIP Service Examples February 2003 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 2 INVITE Contact: Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob ;tag=7886765 Call-ID: 12345600@atlanta.example.com CSeq: 2 INVITE Proxy-Authenticate: Digest realm="example.com", domain="sip:ss1.example.com", nonce="ea9c8e88df84f1cec4341ae6cbe5a359", opaque="", stale=FALSE, algorithm=MD5 Content-Length: 0 F6 ACK Alice -> Proxy 1 ACK sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 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. */ Johnston, et al. Expires August 2, 2003 [Page 120] Internet-Draft SIP Service Examples February 2003 F7 INVITE Alice -> Proxy 1 INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 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", nonce="ae9137be1c87d175c2dd63302a0d6e0a", opaque="", uri="sip:bob@biloxi.example.com", response="bbaec39f943bdcb3620d90afc548a45c" Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=ffe254 Call-ID: 12345600@atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 121] Internet-Draft SIP Service Examples February 2003 Proxy-Authorization: Digest username="alice", realm="example.com", nonce="ae9137be1c87d175c2dd63302a0d6e0a", opaque="", uri="sip:bob@biloxi.example.com", response="bbaec39f943bdcb3620d90afc548a45c" CSeq: 3 ACK Content-Length: 0 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. Message Details F1 INVITE Alice -> Proxy 1 INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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: ... Johnston, et al. Expires August 2, 2003 [Page 122] Internet-Draft SIP Service Examples February 2003 v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;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", domain="sip:ss1.example.com", nonce="ea9c8e88df84f1cec4341ae6cbe5a359", opaque="", stale=FALSE, algorithm=MD5 Content-Length: 0 F3 ACK Alice -> Proxy 1 ACK sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Johnston, et al. Expires August 2, 2003 [Page 123] Internet-Draft SIP Service Examples February 2003 Call-ID: 12345600@atlanta.example.com CSeq: 2 INVITE Contact: Proxy-Authorization: Digest username="alice", realm="example.com", nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="", uri="sip:bob@biloxi.example.com", response="b9d2e5bcdec9f69ab2a9b44f270285a6" Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 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="sip:bob@biloxi.example.com", response="b9d2e5bcdec9f69ab2a9b44f270285a6" Content-Length: 0 Johnston, et al. Expires August 2, 2003 [Page 124] Internet-Draft SIP Service Examples February 2003 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 | |<==========================================>| | BYE F19 | | Johnston, et al. Expires August 2, 2003 [Page 125] Internet-Draft SIP Service Examples February 2003 |---------------------------->| | | 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 Call-ID in the application/sip body of the NOTIFY response. Carol wishes to retrieve the call, a new INVITE is sent to Alice which replaces the session with the Park Server. Alice accepts the call and sends a BYE to the Park Server. Note that 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 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 sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Call-ID: 12345601@atlanta.example.com CSeq: 1 INVITE Contact: Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Johnston, et al. Expires August 2, 2003 [Page 126] Internet-Draft SIP Service Examples February 2003 F2 180 Ringing Bob -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.biloxi.example.com:5060;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/UDP client.biloxi.example.com:5060;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-Type: application/sdp Content-Length: ... v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F4 ACK Alice -> Bob ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 1 ACK 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. */ Johnston, et al. Expires August 2, 2003 [Page 127] Internet-Draft SIP Service Examples February 2003 F5 REFER Bob -> Park Server REFER sip:park@server.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.105 From: Bob ;tag=02134 To: Park Server ;tag=56323 Call-ID: 4802029847@biloxi.example.com CSeq: 1 REFER Content-Length: 0 F7 NOTIFY Park Server -> Bob NOTIFY sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 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 Johnston, et al. Expires August 2, 2003 [Page 128] Internet-Draft SIP Service Examples February 2003 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP server.example.com:5060 Max-Forwards: 70 From: ;tag=0111 To: Call-ID: a5-75-34-12-76@server.example.com CSeq: 1 INVITE Referred-By: Contact: Replaces: 12345601@atlanta.example.com;from-tag=314159;to-tag=1234567 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Content-Type: application/sdp Content-Length: ... v=0 o=ParkServer 2890844576 2890844576 IN IP4 Park.server.example.com s=Session SDP c=IN IP4 music.server.example.com t=3034423619 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/UDP music.server.example.com:5060 From: ;tag=0111 To: Alice ;tag=098594 Call-ID: a5-75-34-12-76@server.example.com CSeq: 1 INVITE Contact: Supported: replaces Content-Type: application/sdp Johnston, et al. Expires August 2, 2003 [Page 129] Internet-Draft SIP Service Examples February 2003 Content-Length: ... v=0 o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 a=recvonly F11 ACK Park Server -> Alice ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP music.server.example.com:5060 Max-Forwards: 70 From: ;tag=0111 To: Alice ;tag=098594 Call-ID: a5-75-34-12-76@server.example.com CSeq: 1 ACK Content-Length: 0 F12 BYE Alice -> Bob ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;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/UDP client.biloxi.example.com:5060;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 Johnston, et al. Expires August 2, 2003 [Page 130] Internet-Draft SIP Service Examples February 2003 /* Park Server reports success back to B by returning all the SIP headers in 200 OK response */ F14 NOTIFY Park Server -> Bob NOTIFY sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 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: terminated;reason=noresource Content-Type: message/sipfrag Content-Length: ... SIP/2.0 200 OK Via: SIP/2.0/UDP music.server.example.com:5060 From: ;tag=0111 To: Alice ;tag=098594 Call-ID: a5-75-34-12-76@server.example.com CSeq: 2 INVITE Contact: F15 200 OK Bob -> Park Server SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 sip:alice@atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP chicago.example.com:5060;branch=z9hG4bK74bf9 Johnston, et al. Expires August 2, 2003 [Page 131] Internet-Draft SIP Service Examples February 2003 Max-Forwards: 70 From: Carol ;tag=5893461 To: Alice Call-ID: 6485356@chicago.example.com CSeq: 1 INVITE Contact: Replaces: a5-75-34-12-76@server.example.com;from-tag=098594;to-tag=0111 Content-Type: application/sdp Content-Length: ... v=0 o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com s=Session SDP c=IN IP4 client.chicago.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.105 From: Carol ;tag=5893461 To: Alice ;tag=222 Call-ID: 6485356@chicago.example.com CSeq: 1 INVITE Contact: Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=alice 2890844527 2890844527 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F18 ACK Carol -> Alice ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 Johnston, et al. Expires August 2, 2003 [Page 132] Internet-Draft SIP Service Examples February 2003 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 sip:park@server.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 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/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 2.16 Call Pickup Alice Bob Carol | | | | INVITE F1 | | |------------->| | |180 Ringing F2| | |<-------------| | | | SUBSCRIBE F3 | | |<------------------| | | 200 OK F4 | | |------------------>| | | NOTIFY F5 | Johnston, et al. Expires August 2, 2003 [Page 133] Internet-Draft SIP Service Examples February 2003 | |------------------>| | | 200 OK F6 | | |<------------------| | INVITE Replaces:Bob F7 | |<---------------------------------| | | 200 OK F8 | |--------------------------------->| | CANCEL F9 | | |------------->| | | 200 OK F10 | | |<-------------| | | 487 F11 | | |<-------------| | | ACK F12 | | |------------->| | | ACK F13 | |<---------------------------------| | | NOTIFY F14 | | |------------------>| | | 481 F15 | | |<------------------| | | | Both way RTP Established | |<================================>| | BYE F16 | |--------------------------------->| | 200 OK F17 | |<---------------------------------| | | Bob and Carol are part of a work group at example.com that can pick up each others calls. Alice calls Bob who does not answer. Carol wishes to pick up the call and sends a SUBSCRIBE to B to retrieve the dialog information. Carol 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 order of the CANCEL/ACK sequence in F11 through F20 is not significant. Message Details F1 INVITE Alice -> Bob INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com Johnston, et al. Expires August 2, 2003 [Page 134] Internet-Draft SIP Service Examples February 2003 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=Session SDP c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F2 180 Ringing B1 -> Alice SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 /* Carol decides to pick up the call */ F3 SUBSCRIBE Carol -> Bob SUBSCRIBE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP pc.biloxi.example.com:5060;branch=z9hG4bK74bf Max-Forwards: 70 From: Carol ;tag=8675309 To: Bob Call-ID: rt4353gs2egg@pc.biloxi.example.com CSeq: 1 INVITE Contact: Event: dialog Subscription-State: active;expires=3600 Accept: application/dialog-info+xml Content-Length: 0 Johnston, et al. Expires August 2, 2003 [Page 135] Internet-Draft SIP Service Examples February 2003 F4 200 OK Bob -> Carol SIP/2.0 200 OK Via: SIP/2.0/UDP pc.biloxi.example.com:5060;branch=z9hG4bK74bf ;received=192.0.2.114 Max-Forwards: 70 From: Carol ;tag=8675309 To: Bob ;tag=31451098 Call-ID: rt4353gs2egg@pc.biloxi.example.com CSeq: 1 INVITE Content-Length: 0 F5 NOTIFY Bob -> Carol NOTIFY sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP Bob.biloxi.example.com:5060;branch=z9hG4bK74bf Max-Forwards: 70 From: Bob ;tag=31451098 To: Carol ;tag=8675309 Call-ID: rt4353gs2egg@pc.biloxi.example.com CSeq: 1 NOTIFY Contact: Event: dialog Subscription-State: active;expires=3600 Content-Type: application/dialog-info+xml Content-Length: ... early F6 200 OK Carol -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP Bob.biloxi.example.com:5060;branch=z9hG4bK74bf From: Bob ;tag=31451098 To: Carol ;tag=8675309 Call-ID: rt4353gs2egg@pc.biloxi.example.com CSeq: 1 NOTIFY Contact: Content-Length: 0 Johnston, et al. Expires August 2, 2003 [Page 136] Internet-Draft SIP Service Examples February 2003 F7 INVITE Carol -> Alice INVITE sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP pc.biloxi.example.com:5060;branch=z9hG4bK74bf Max-Forwards: 70 From: Carol ;tag=8675309 To: Alice Call-ID: 563456212@b2.biloxi.example.com CSeq: 1 INVITE Replaces: 12345600@atlanta.example.com;to-tag=314578;from-tag=1234567 Contact: Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: ... v=0 o=bob 2890843122 2890843122 IN IP4 pc.biloxi.example.com s=Session SDP c=IN IP4 client2.biloxi.example.com t=3034423619 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/UDP pc.biloxi.example.com:5060;branch=z9hG4bK74bf ;received=192.0.2.114 From: Carol ;tag=8675309 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 Content-Type: application/sdp Content-Length: ... v=0 o=alice 289084543 289084543 IN IP4 client.atlanta.example.com s=Session SDP c=IN IP4 client.atlanta.example.com t=0 0 m=audio 49172 RTP/AVP 0 Johnston, et al. Expires August 2, 2003 [Page 137] Internet-Draft SIP Service Examples February 2003 a=rtpmap:0 PCMU/8000 /* Alice stops Bob’s phone from ringing by sending a CANCEL */ F9 CANCEL Alice -> Bob CANCEL sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=1234567 To: Bob Call-ID: 12345600@atlanta.example.com CSeq: 1 CANCEL Content-Length: 0 F11 487 Request Terminated Bob -> Proxy SIP/2.0 487 Request Terminated Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP ss1.example.com:5060;branch=z9hG4bK83749.1 Max-Forwards: 70 From: Alice ;tag=1234567 Johnston, et al. Expires August 2, 2003 [Page 138] Internet-Draft SIP Service Examples February 2003 To: Bob ;tag=3145678 Call-ID: 12345600@atlanta.example.com CSeq: 1 ACK Content-Length: 0 Content-Length: 0 F13 ACK Carol -> Alice ACK sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP b2.biloxi.example.com:5060;branch=z9hG4bK74bf Max-Forwards: 70 From: Bob ;tag=8675309 To: Alice ;tag=131256 Call-ID: 563456212@b2.biloxi.example.com CSeq: 1 ACK Content-Length: 0 F14 NOTIFY Bob -> Carol NOTIFY sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP Bob.biloxi.example.com:5060;branch=z9hG4bK74bf Max-Forwards: 70 From: Bob ;tag=31451098 To: Carol ;tag=8675309 Call-ID: rt4353gs2egg@pc.biloxi.example.com CSeq: 2 NOTIFY Contact: Event: dialog Subscription-State: active;expires=3600 Content-Type: application/dialog-info+xml Content-Length: ... terminated F15 481 Dialog Does Not Exist Carol -> Bob SIP/2.0 481 Dialog Does Not Exist Johnston, et al. Expires August 2, 2003 [Page 139] Internet-Draft SIP Service Examples February 2003 Via: SIP/2.0/UDP bob.biloxi.example.com:5060;branch=z9hG4bK74bf From: Bob ;tag=31451098 To: Carol ;tag=8675309 Call-ID: rt4353gs2egg@pc.biloxi.example.com CSeq: 2 NOTIFY Contact: Content-Length: 0 /* RTP streams are established between Alice and Carol. Alice Hangs Up with Bob. */ F16 BYE Alice -> Proxy BYE sip:carol@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 To: Bob ;tag=8675309 From: Alice ;tag=131256 Call-ID: 563456212@b2.biloxi.example.com CSeq: 2 BYE Content-Length: 0 F17 200 OK Carol -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 To: Bob ;tag=8675309 From: Alice ;tag=131256 Call-ID: 563456212@b2.biloxi.example.com CSeq: 2 BYE Content-Length: 0 2.17 Automatic Redial Johnston, et al. Expires August 2, 2003 [Page 140] Internet-Draft SIP Service Examples February 2003 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. A is alerted, then Alice sends an INVITE to B to establish the session. Message Details F1 INVITE Alice -> Bob INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=1234567 Johnston, et al. Expires August 2, 2003 [Page 141] Internet-Draft SIP Service Examples February 2003 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=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;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 INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;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 SUBSCRIBE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=837348234 To: Bob Johnston, et al. Expires August 2, 2003 [Page 142] Internet-Draft SIP Service Examples February 2003 Call-ID: 4524526232@atlanta.example.com CSeq: 1 SUBSCRIBE Contact: alice@client.atlanta.example.com Event: dialog Subscription-State: active;expires=3600 Accept: application/dialog-info+xml Content-Length: 0 F5 200 OK Bob -> Alice SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 From: Alice ;tag=837348234 To: Bob Call-ID: 4524526232@atlanta.example.com CSeq: 1 SUBSCRIBE Contact: alice@client.biloxi.example.com Content-Length: 0 F6 NOTIFY Bob -> Alice NOTIFY sip:alice@atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Bob ;tag=341123 To: Alice ;tag=837348234 Call-ID: 4524526232@atlanta.example.com CSeq: 1 NOTIFY Event: dialog Subscription-State: active;expires=3600 Content-Type: application/dialog-info+xml Content-Length: ... confirmed F7 200 OK Alice -> Bob Johnston, et al. Expires August 2, 2003 [Page 143] Internet-Draft SIP Service Examples February 2003 SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 From: Bob ;tag=341123 To: Alice ;tag=837348234 Call-ID: 4524526232@atlanta.example.com CSeq: 1 NOTIFY Content-Length: 0 /* Bob is now available */ F8 NOTIFY Bob -> Alice NOTIFY sip:alice@atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Bob ;tag=341123 To: Alice ;tag=837348234 Call-ID: 4524526232@atlanta.example.com CSeq: 2 NOTIFY Event: dialog Subscription-State: active;expires=3600 Content-Type: application/dialog-info+xml Content-Length: ... terminated F9 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 From: Bob ;tag=341123 To: Alice ;tag=837348234 Call-ID: 4524526232@atlanta.example.com CSeq: 2 NOTIFY Content-Length: 0
Bob INVITE sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 Max-Forwards: 70 From: Alice ;tag=f23fkg14k To: Bob Call-ID: aoij4i9okitr@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=Session SDP c=IN IP4 client.atlanta.example.com t=3034423619 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/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;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 SIP/2.0 200 OK Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 ;received=192.0.2.103 From: Alice ;tag=f23fkg14k To: Bob ;tag=23431 Call-ID: aoij4i9okitr@atlanta.example.com CSeq: 1 INVITE Contact: Content-Type: application/sdp Content-Length: ... Johnston, et al. Expires August 2, 2003 [Page 145] Internet-Draft SIP Service Examples February 2003 v=0 o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com s=Session SDP c=IN IP4 client.biloxi.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F13 ACK Alice -> Bob ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP client.atlanta.example.com:5060;branch=z9hG4bK74bf9 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 August 2, 2003 [Page 146] Internet-Draft SIP Service Examples February 2003 2.18 Click to Dial Bob's PC Bob Carol | REFER Refer-To:Carol F1 | |------------------->| | | 202 Accepted F2 | | |<-------------------| | | NOTIFY F3 | | |<-------------------| | | 200 OK F4 | | |------------------->| | | | INVITE F5 | | |------------------->| | | 180 Ringing F6 | | |<-------------------| | | 200 OK F7 | | |<-------------------| | | ACK F8 | | |------------------->| | | 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 SIP phone immediately terminates the dialog by indicating in the NOTIFY (F3) that the subscription is terminated. Message Details /* Bob's PC SIP Client sends a REFER to Bob's SIP phone */ F1 REFER PC -> Bob REFER sip:bob@biloxi.example.com SIP/2.0 Via: SIP/2.0/UDP pc.biloxi.example.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 From: ;tag=1234567 To: Bob Call-ID: 12345601@atlanta.example.com CSeq: 1 REFER Johnston, et al. Expires August 2, 2003 [Page 147] Internet-Draft SIP Service Examples February 2003 Refer-To: Contact: Content-Length: 0 F2 202 Accepted Bob -> PC SIP/2.0 202 Accepted Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.113 From: ;tag=1234567 To: Bob ;tag=314159 Call-ID: 12345601@atlanta.example.com CSeq: 1 REFER Content-Length: 0 F3 NOTIFY Bob -> Alice NOTIFY sip:alice@client.atlanta.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 From: Bob ;tag=314159 To: ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 1 NOTIFY Event: refer Subscription-State: terminated;reason=noresource Content-Type: message/sipfrag Content-Length: ... SIP/2.0 100 Trying F4 200 OK Alice -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.113 From: Bob ;tag=314159 To: ;tag=1234567 Call-ID: 12345601@atlanta.example.com CSeq: 1 NOTIFY Content-Length: 0 Johnston, et al. Expires August 2, 2003 [Page 148] Internet-Draft SIP Service Examples February 2003 F5 INVITE Bob -> Carol INVITE sip:carol@chicago.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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=Session SDP c=IN IP4 client.biloxi.example.com t=3034423821 0 m=audio 3458 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F6 180 Ringing Carol -> Bob SIP/2.0 180 Ringing Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;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 F7 200 OK Carol -> Bob SIP/2.0 200 OK Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.113 From: Bob ;tag=8675309 To: Carol ;tag=928287 Call-ID: 7436222@atlanta.example.com CSeq: 1 INVITE Contact: Johnston, et al. Expires August 2, 2003 [Page 149] Internet-Draft SIP Service Examples February 2003 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=Session SDP c=IN IP4 client.chicago.example.com t=3034423619 0 m=audio 3456 RTP/AVP 0 a=rtpmap:0 PCMU/8000 F8 ACK Bob -> Carol ACK sip:carol@client.chicago.example.com SIP/2.0 Via: SIP/2.0/UDP client.biloxi.example.com:5060;branch=z9hG4bKnashds7 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. */ 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. 4. IANA Considerations None. 5. Acknowledgements The Automatic Call Back call flow is based on a call flow by Adam Roach. The Single Line Extension call flow is based on a call flow by Jonathan Rosenberg. The authors wish to thank the following individuals for their assistance and review of this call flows document: Rohan Mahey, Jonathan Rosenberg, Hemant Agrawal, Henry Sinnreich, Dean Willis, David Devanatham, Joe Pizzimenti, Matt Cannon, John Hearty, the whole MCI WorldCom IPOP Design team, Scott Johnston, et al. Expires August 2, 2003 [Page 150] Internet-Draft SIP Service Examples February 2003 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. Document History The first version of this document was the Internet-Draft draft-sparks-sip-service-examples October 1999. The next version was combined with the SIP Telephony Call Flows document into the draft-ietf-sip-call-flows April 2000. The current version was renamed as a work item of the SIPPING WG. 6.1 Changes since -03 - Added Click to Dial Call Flow - Changed URIs and display names - Added a=recvonly attribute in hold SDP answers Informative References [1] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996. [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] Johnston, A., "Session Initiation Protocol Basic Call Flow Examples", draft-ietf-sipping-basic-call-flows-01 (work in progress), October 2002. [4] Sparks, R., "The SIP Refer Method", draft-ietf-sip-refer-07 (work in progress), December 2002. [5] Dean, R., Biggs, B. and R. Mahy, "The Session Inititation Protocol (SIP) 'Replaces' Header", draft-ietf-sip-replaces-02 (work in progress), May 2002. [6] Mahy, R. and D. Petrie, "The Session Inititation Protocol (SIP) 'Join' Header", draft-ietf-sip-join-00 (work in progress), October 2002. Johnston, et al. Expires August 2, 2003 [Page 151] Internet-Draft SIP Service Examples February 2003 [7] Rosenberg, J., Schulzrinne, H., Camarillo, G. and J. Peterson, "Best Current Practices for Third Party Call Control in the Session Initiation Protocol", draft-ietf-sipping-3pcc-02 (work in progress), June 2002. [8] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002. [9] Sparks, R. and A. Johnston, "Session Initiation Protocol Call Control - Transfer", draft-ietf-sipping-cc-transfer-01 (work in progress), February 2003. [10] Rosenberg, J. and H. Schulzrinne, "A Session Initiation Protocol (SIP) Event Package for Dialog State", draft-ietf-sipping-dialog-package-00 (work in progress), June 2002. [11] Roach, A., "Session Initiation Protocol (SIP)-Specific Event Notification", RFC 3265, June 2002. [12] Mahy, R., "A Multi-party Application Framework for SIP", draft-ietf-sipping-cc-framework-01 (work in progress), July 2002. Authors' Addresses Alan Johnston WorldCom 100 South 4th Street St. Louis, MO 63104 EMail: alan.johnston@wcom.com Robert J. Sparks dynamicsoft 5100 Tennyson Parkway Suite 1200 Plano, TX 75024 EMail: rsparks@dynamicsoft.com Johnston, et al. Expires August 2, 2003 [Page 152] Internet-Draft SIP Service Examples February 2003 Chris Cunningham dynamicsoft 5100 Tennyson Parkway Suite 1200 Plano, TX 75024 EMail: ccunningham@dynamicsoft.com Steve Donovan dynamicsoft 5100 Tennyson Parkway Suite 1200 Plano, TX 75024 EMail: sdonovan@dynamicsoft.com Kevin Summers Sonus 1701 North Collins Blvd Suite 3000 Richardson, TX 75080 EMail: kevin.summers@sonusnet.com Johnston, et al. Expires August 2, 2003 [Page 153] Internet-Draft SIP Service Examples February 2003 Intellectual Property Statement The IETF takes no position regarding the validity or scope of any intellectual property 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; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication 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 implementors or users of this specification can be obtained from the IETF Secretariat. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director. Full Copyright Statement Copyright (C) The Internet Society (2003). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assignees. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION Johnston, et al. Expires August 2, 2003 [Page 154] Internet-Draft SIP Service Examples February 2003 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Johnston, et al. Expires August 2, 2003 [Page 155]