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: