diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc5359.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc5359.txt')
-rw-r--r-- | doc/rfc/rfc5359.txt | 9523 |
1 files changed, 9523 insertions, 0 deletions
diff --git a/doc/rfc/rfc5359.txt b/doc/rfc/rfc5359.txt new file mode 100644 index 0000000..ca9ed6c --- /dev/null +++ b/doc/rfc/rfc5359.txt @@ -0,0 +1,9523 @@ + + + + + + +Network Working Group A. Johnston, Ed. +Request for Comments: 5359 Avaya +BCP: 144 R. Sparks +Category: Best Current Practice Tekelec + C. Cunningham + S. Donovan + Cisco Systems + K. Summers + Sonus + October 2008 + + + Session Initiation Protocol Service Examples + +Status of This Memo + + This document specifies an Internet Best Current Practices for the + Internet Community, and requests discussion and suggestions for + improvements. Distribution of this memo is unlimited. + +Abstract + + This document gives examples of Session Initiation Protocol (SIP) + services. This covers most features offered in so-called IP 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 Replaces + and Join header fields. These features are not intended to be an + exhaustive set, but rather show implementations of common features + likely to be implemented on SIP IP telephones in a business + environment. + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 1] + +RFC 5359 SIP Service Examples October 2008 + + +Table of Contents + + 1. Overview ........................................................3 + 1.1. Legend for Message Flows ...................................4 + 2. Service Examples ................................................6 + 2.1. Call Hold ..................................................6 + 2.2. Consultation Hold .........................................19 + 2.3. Music on Hold .............................................38 + 2.4. Transfer - Unattended .....................................50 + 2.5. Transfer - Attended .......................................58 + 2.6. Transfer - Instant Messaging ..............................71 + 2.7. Call Forwarding Unconditional .............................77 + 2.8. Call Forwarding - Busy ....................................84 + 2.9. Call Forwarding - No Answer ...............................92 + 2.10. 3-Way Conference - Third Party Is Added .................101 + 2.11. 3-Way Conference - Third Party Joins ....................107 + 2.12. Find-Me .................................................113 + 2.13. Call Management (Incoming Call Screening) ...............125 + 2.14. Call Management (Outgoing Call Screening) ...............132 + 2.15. Call Park ...............................................135 + 2.16. Call Pickup .............................................147 + 2.17. Automatic Redial ........................................154 + 2.18. Click to Dial ...........................................163 + 3. Security Considerations .......................................166 + 4. Acknowledgements ..............................................166 + 5. References ....................................................167 + 5.1. Normative References .....................................167 + 5.2. Informative References ...................................168 + + + + + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 2] + +RFC 5359 SIP Service Examples October 2008 + + +1. Overview + + This document provides example call flows detailing a SIP + implementation of the following traditional telephony services: + + Call Hold 3-Way Conference + Consultation Hold Find-Me + Music on Hold Incoming Call Screening + Unattended Transfer Outgoing Call Screening + Attended Transfer Call Park + Instant Messaging Transfer Call Pickup + Unconditional Call Forwarding Automatic Redial + Call Forwarding on Busy Click to Dial + Call Forwarding on No Answer + + Note that the Single Line Extension call flow has been removed from + this document and will be covered in a separate document. + + The call flows shown in this document were developed in the design of + a SIP IP communications network. They represent an example set of + so-called IP Centrex services or PBX services. + + It is the hope of the authors that this document will be useful for + SIP implementers, designers, and protocol researchers alike and will + help further the goal of a standard implementation of RFC 3261 + [RFC3261] and some of its extensions. + + These flows represent carefully checked and working group reviewed + scenarios of SIP service examples as a companion to the + specifications. + + These call flows are based on the current version 2.0 of SIP in RFC + 3261 [RFC3261] with Session Description Protocol (SDP) usage + described in RFC 3264 [RFC3264]. Other RFCs also form part of the + SIP standard and are used and referenced in these call flows. + + The SIP specification and the other referenced documents are + definitive as far as protocol issues are concerned. Also, these + flows do not represent the only way to implement these services -- + other approaches such as 3pcc (Third Party Call Control) [RFC3725] or + Back-to-Back User Agents (B2BUAs) can be used. This specification + does not preclude these or other approaches for implementing such + services. The peer-to-peer design and principles of these service + examples are described in the Multiparty Framework document + [FRAMEWORK]. + + + + + + +Johnston, et al. Best Current Practice [Page 3] + +RFC 5359 SIP Service Examples October 2008 + + + These flows assume the functionality described in the SIP Call Flow + Examples document [RFC3665], which explores basic SIP behavior. Some + of the scenarios described herein make use of the SIP method + extension REFER [RFC3515], the SIP header extension Replaces + [RFC3891], and the SIP header extension Join [RFC3911]. The SIP + Events document [RFC3265] describes the use of SUBSCRIBE and NOTIFY, + while the SIP Dialog Event Package document [RFC4235] describes the + dialog event package. Some examples make use of the GRUU (Globally + Routable User Agent URI) extension [GRUU]. + + These flows were prepared assuming a network of proxies, registrars, + and other SIP servers. The use of Secure SIP URIs (sips) is shown + throughout this document, implying TLS transport on each hop with + assumed certificate validation. However, other security approaches + can be used. The use of Digest authentication is shown in some + examples. + + The emphasis in these call flows is the SIP signaling exchange. As a + result, only very simple SDP offer/answer exchanges are shown with + audio media. These flows apply equally well for other media and + multimedia sessions. For more advanced examples of SDP offer/answer + exchanges, refer to [RFC4317]. + + 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. + + For simplicity in reading and editing the document, there are a + number of differences between some of the examples and actual SIP + messages. For example, the HTTP Digest responses are not actual MD5 + encodings. Call-IDs are often repeated, and CSeq counts often begin + at 1. Header fields are usually shown in the same order. Usually + only the minimum required header field set is shown. Also, message + body content lengths are often not calculated, but instead shown as + "..." where the actual octet count would be. + +1.1. Legend for Message Flows + + Dashed lines (---) represent control messages that are mandatory to + the call scenario. These control messages can be SIP signaling. + + Double dashed lines (===) represent media paths between network + elements. + + Messages with parentheses around the name represent optional control + messages. + + + + +Johnston, et al. Best Current Practice [Page 4] + +RFC 5359 SIP Service Examples October 2008 + + + Messages are identified in the figures as F1, F2, etc. This + references the message details in the table that follows the figure. + + Lines longer than 72 characters are handled using the <allOneLine> + convention defined in Section 2.1 of RFC 4475 [RFC4475]. + + Comments in the message details are shown in the following form: + + /* Comments. */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 5] + +RFC 5359 SIP Service Examples October 2008 + + +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 | + | |------------->| + | Both way RTP Established | + |<=============================>| + | |INVITE(hold) F10 + |INVITE(hold) F11|<-------------| + |<---------------| | + | 200 OK F12 | | + |--------------->| 200 OK F13 | + | |------------->| + | | ACK F14 | + | ACK F15 |<-------------| + |<---------------| | + | No RTP Sent! | + | | INVITE F16 | + | INVITE F17 |<-------------| + |<---------------| | + | 200 OK F18 | | + |--------------->| 200 OK F19 | + | |------------->| + | | ACK F20 | + | ACK F21 |<-------------| + |<---------------| | + | Both way RTP Established | + |<=============================>| + | BYE F22 | | + |--------------->| BYE F23 | + | |------------->| + | | 200 OK F24 | + | 200 OK F25 |<-------------| + |<---------------| | + + + +Johnston, et al. Best Current Practice [Page 6] + +RFC 5359 SIP Service Examples October 2008 + + + In this scenario, Alice calls Bob, then Bob places the call on hold. + Bob then takes the call off hold, then Alice hangs up the call. Note + that hold is unidirectional in nature. However, a UA that places the + other party on hold will generally also stop sending media, resulting + in no media exchange between the UAs. Older UAs may set the + connection address to 0.0.0.0 when initiating hold. However, this + behavior has been deprecated in favor or using the a=inactive SDP + attribute if no media is sent, or the a=sendonly attribute if media + is still sent. + + Also note the use of the rendering feature tag defined in RFC 4235 + [RFC4235] used in F10 and F11 to indicate that Bob's UA is no longer + rendering media to Bob, i.e., that Bob has placed the call on hold. + + Message Details + + F1 INVITE Alice -> Proxy 1 + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F2 INVITE Proxy 1 -> Bob + + INVITE sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + + + + +Johnston, et al. Best Current Practice [Page 7] + +RFC 5359 SIP Service Examples October 2008 + + + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F3 (100 Trying) Proxy 1 -> Alice + + SIP/2.0 100 Trying + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F4 180 Ringing Bob -> Proxy 1 + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + + + +Johnston, et al. Best Current Practice [Page 8] + +RFC 5359 SIP Service Examples October 2008 + + + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Content Length:0 + + + F5 180 Ringing Proxy 1 -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Content Length: 0 + + + F6 200 OK Bob -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + +Johnston, et al. Best Current Practice [Page 9] + +RFC 5359 SIP Service Examples October 2008 + + + F7 200 OK Proxy 1 -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F8 ACK Alice -> Proxy 1 + + ACK sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf92 + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + F9 ACK Proxy 1 -> Bob + + ACK sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK837492.1 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + + + +Johnston, et al. Best Current Practice [Page 10] + +RFC 5359 SIP Service Examples October 2008 + + + ;branch=z9hG4bK74bf92 + ;received=192.0.2.103 + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + /* Bob places Alice on hold. Note that the version is + incremented in the o= field of the SDP. */ + + F10 INVITE Bob -> Proxy 1 + + INVITE sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com>;+sip.rendering="no" + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=sendonly + + + F11 INVITE Proxy 1 -> Alice + + INVITE sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + + + +Johnston, et al. Best Current Practice [Page 11] + +RFC 5359 SIP Service Examples October 2008 + + + ;branch=z9hG4bKnashds7 + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com>;+sip.rendering="no" + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=sendonly + + + /* Alice replies to hold. */ + + F12 200 OK Alice -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + + + + + +Johnston, et al. Best Current Practice [Page 12] + +RFC 5359 SIP Service Examples October 2008 + + + v=0 + o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=recvonly + + + F13 200 OK Proxy 1 -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=recvonly + + + F14 ACK Bob -> Proxy 1 + + ACK sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds72 + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 ACK + + + +Johnston, et al. Best Current Practice [Page 13] + +RFC 5359 SIP Service Examples October 2008 + + + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + F15 ACK Proxy 1 -> Alice + + ACK sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds72 + ;received=192.0.2.105 + Max-Forwards: 69 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + /* Bob takes the call off hold. */ + + F16 INVITE Bob -> Proxy 1 + + INVITE sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds73 + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 2 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844529 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + + + + + +Johnston, et al. Best Current Practice [Page 14] + +RFC 5359 SIP Service Examples October 2008 + + + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F17 INVITE Proxy 1 -> Alice + + INVITE sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK837493.1 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds73 + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 2 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844529 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F18 200 OK Alice -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK837493.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds73 + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 2 INVITE + + + +Johnston, et al. Best Current Practice [Page 15] + +RFC 5359 SIP Service Examples October 2008 + + + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F19 200 OK Proxy 1 -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds73 + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 2 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F20 ACK Bob -> Proxy 1 + + ACK sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds74 + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + + + +Johnston, et al. Best Current Practice [Page 16] + +RFC 5359 SIP Service Examples October 2008 + + + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 2 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + F21 ACK Proxy 1 -> Alice + + ACK sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK837494.1 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds74 + ;received=192.0.2.105 + Max-Forwards: 69 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 2 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + /* RTP Media stream re-established. Alice disconnects. */ + + F22 BYE Alice -> Proxy 1 + + BYE sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf97 + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F23 BYE Proxy 1 -> Bob + + BYE sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK837497.1 + + + +Johnston, et al. Best Current Practice [Page 17] + +RFC 5359 SIP Service Examples October 2008 + + + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf97 + ;received=192.0.2.103 + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;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/TLS ss1.example.com:5061 + ;branch=z9hG4bK837497.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf97 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F25 200 OK Proxy 1 -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf97 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 18] + +RFC 5359 SIP Service Examples October 2008 + + +2.2. Consultation Hold + + Alice Proxy Bob Carol + | | | | + | INVITE F1 | | | + |--------------->| INVITE F2 | | + | |------------->| | + |(100 Trying) F3 | | | + |<---------------|180 Ringing F4| | + | |<-------------| | + | 180 Ringing F5 | | | + |<---------------| 200 OK F6 | | + | |<-------------| | + | 200 OK F7 | | | + |<---------------| | | + | ACK F8 | | | + |--------------->| ACK F9 | | + | |------------->| | + | Both way RTP Established | | + |<=============================>| | + | |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 | + + + +Johnston, et al. Best Current Practice [Page 19] + +RFC 5359 SIP Service Examples October 2008 + + + | |--------------------------------->| + | | Both way RTP Established | + | | |<=================>| + | | BYE F25 | | + | |<-------------| | + | | | BYE F26 | + | |--------------------------------->| + | | | 200 OK F27 | + | |<---------------------------------| + | | 200 OK F28 | | + | |------------->| | + | | INVITE F29 | | + | INVITE F30 |<-------------| | + |<---------------| | | + | 200 OK F31 | | | + |--------------->| 200 OK F32 | | + | |------------->| | + | | ACK F33 | | + | |<-------------| | + | ACK F34 | | | + |<---------------| | | + | Both way RTP Established | | + |<=============================>| | + | BYE F35 | | | + |--------------->| BYE F36 | | + | |------------->| | + | | 200 OK F37 | | + | |<-------------| | + | 200 OK F38 | | | + |<---------------| | | + | | | | + + In this scenario, Alice calls Bob. Bob places call on hold. Bob + calls Carol. Bob then disconnects with Carol, then takes the call + with Alice off hold. The call ends when Alice hangs up. + + Also note the use of the rendering feature tag defined in RFC 4235 + [RFC4235] used in F10 to indicate that Bob's UA is no longer + rendering media to Bob, i.e., that Bob has placed the call on hold. + + Message Details + + F1 INVITE Alice -> Proxy 1 + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + + + +Johnston, et al. Best Current Practice [Page 20] + +RFC 5359 SIP Service Examples October 2008 + + + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F2 INVITE Proxy 1 -> Bob + + INVITE sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + + + +Johnston, et al. Best Current Practice [Page 21] + +RFC 5359 SIP Service Examples October 2008 + + + F3 (100 Trying) Proxy 1 -> Alice + + SIP/2.0 100 Trying + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F4 180 Ringing Bob -> Proxy 1 + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Content Length:0 + + + F5 180 Ringing Proxy 1 -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Content Length: 0 + + + + + + + + +Johnston, et al. Best Current Practice [Page 22] + +RFC 5359 SIP Service Examples October 2008 + + + F6 200 OK Bob -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F7 200 OK Proxy 1 -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + + + + + +Johnston, et al. Best Current Practice [Page 23] + +RFC 5359 SIP Service Examples October 2008 + + + v=0 + o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F8 ACK Alice -> Proxy 1 + + ACK sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf45 + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + F9 ACK Proxy 1 -> Bob + + ACK sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK837494.1 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf45 + ;received=192.0.2.103 + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 24] + +RFC 5359 SIP Service Examples October 2008 + + + /* Bob places Alice on hold. */ + + F10 INVITE Bob -> Proxy 1 + + INVITE sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com>;+sip.rendering="no" + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=sendonly + + + F11 INVITE Proxy 1 -> Alice + + INVITE sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK837497.1 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com>;+sip.rendering="no" + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + + +Johnston, et al. Best Current Practice [Page 25] + +RFC 5359 SIP Service Examples October 2008 + + + v=0 + o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=sendonly + + + F12 200 OK Alice -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK837497.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=recvonly + + + F13 200 OK Proxy 1 -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + + + +Johnston, et al. Best Current Practice [Page 26] + +RFC 5359 SIP Service Examples October 2008 + + + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=recvonly + + + F14 ACK Bob -> Proxy 1 + + ACK sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashdsg + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + F15 ACK Proxy 1 -> Alice + + ACK sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK8374.1 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashdsg + ;received=192.0.2.105 + Max-Forwards: 69 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + + + + + +Johnston, et al. Best Current Practice [Page 27] + +RFC 5359 SIP Service Examples October 2008 + + + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F16 INVITE Bob -> Proxy 1 + + INVITE sips:carol@chicago.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds22 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com> + Call-ID: 9876543210@biloxi.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844834 2890844834 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 50170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F17 INVITE Proxy 1 -> Carol + + INVITE sips:carol@client.chicago.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749a.1 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds22 + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com> + Call-ID: 9876543210@biloxi.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + + + + + +Johnston, et al. Best Current Practice [Page 28] + +RFC 5359 SIP Service Examples October 2008 + + + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844834 2890844834 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 50170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F18 (100 Trying) Proxy 1 -> Bob + + SIP/2.0 100 Trying + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds22 + ;received=192.0.2.105 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com> + Call-ID: 9876543210@biloxi.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F19 180 Ringing Carol -> Proxy 1 + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749a.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds22 + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=456654 + Call-ID: 9876543210@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:carol@client.chicago.example.com> + Content Length:0 + + + F20 180 Ringing Proxy 1 -> Bob + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds22 + + + +Johnston, et al. Best Current Practice [Page 29] + +RFC 5359 SIP Service Examples October 2008 + + + ;received=client.chicago.example.com + Record-Route: <sips:ss1.example.com;lr> + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=456654 + Call-ID: 9876543210@biloxi.example.com + CSeq: 1 INVITE + Contact: <sips:carol@client.chicago.example.com> + Content Length: 0 + + + F21 200 OK Carol -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749a.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds22 + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=456654 + Call-ID: 9876543210@biloxi.example.com + CSeq: 1 INVITE + Contact: <sips:carol@client.chicago.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com + s= + c=IN IP4 client.chicago.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F22 200 OK Proxy 1 -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds22 + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=456654 + + + +Johnston, et al. Best Current Practice [Page 30] + +RFC 5359 SIP Service Examples October 2008 + + + Call-ID: 9876543210@biloxi.example.com + CSeq: 1 INVITE + Contact: <sips:carol@client.chicago.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com + s= + c=IN IP4 client.chicago.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F23 ACK Bob -> Proxy 1 + + ACK sips:carol@client.chicago.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds24 + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=456654 + Call-ID: 9876543210@biloxi.example.com + CSeq: 1 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + F24 ACK Proxy 1 -> Carol + + ACK sips:carol@client.chicago.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749b.1 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds24 + ;received=192.0.2.105 + Max-Forwards: 69 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=456654 + Call-ID: 9876543210@biloxi.example.com + CSeq: 1 ACK + + + + + +Johnston, et al. Best Current Practice [Page 31] + +RFC 5359 SIP Service Examples October 2008 + + + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + F25 BYE Bob -> Proxy 1 + + BYE sips:carol@client.chicago.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7j + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=456654 + Call-ID: 9876543210@biloxi.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F26 BYE Proxy 1 -> Carol + + BYE sips:carol@client.chicago.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749k.1 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7j + ;received=192.0.2.105 + Max-Forwards: 69 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=456654 + Call-ID: 9876543210@biloxi.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F27 200 OK Carol -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749k.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7j + ;received=192.0.2.105 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=456654 + + + + + +Johnston, et al. Best Current Practice [Page 32] + +RFC 5359 SIP Service Examples October 2008 + + + Call-ID: 9876543210@biloxi.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F28 200 OK Proxy 1 -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7j + ;received=192.0.2.105 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=456654 + Call-ID: 9876543210@biloxi.example.com + CSeq: 2 BYE + Content-Length: 0 + + + /* Bob takes the call off hold. */ + + F29 INVITE Bob -> Proxy 1 + + INVITE sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7b + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844529 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + + + + + + + +Johnston, et al. Best Current Practice [Page 33] + +RFC 5359 SIP Service Examples October 2008 + + + F30 INVITE Proxy 1 -> Alice + + INVITE sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749q.1 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7b + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844529 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F31 200 OK Alice -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749q.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7b + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + + +Johnston, et al. Best Current Practice [Page 34] + +RFC 5359 SIP Service Examples October 2008 + + + v=0 + o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F32 200 OK Proxy 1 -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7b + ;received=192.0.2.105 + Record-Route: <sips:ss1.example.com;lr> + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F33 ACK Bob -> Proxy 1 + + ACK sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7d7 + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + + + +Johnston, et al. Best Current Practice [Page 35] + +RFC 5359 SIP Service Examples October 2008 + + + Content-Length: 0 + + F34 ACK Proxy 1 -> Alice + + ACK sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK8374.1 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7d7 + ;received=192.0.2.105 + Max-Forwards: 69 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + F35 BYE Alice -> Proxy 1 + + BYE sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf10 + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F36 BYE Proxy 1 -> Bob + + BYE sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK8379.1 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf10 + ;received=192.0.2.103 + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + +Johnston, et al. Best Current Practice [Page 36] + +RFC 5359 SIP Service Examples October 2008 + + + F37 200 OK Bob -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK8379.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf10 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F38 200 OK Proxy 1 -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf10 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + + + + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 37] + +RFC 5359 SIP Service Examples October 2008 + + +2.3. Music on Hold + + Alice Bob Music Server + | | | + | INVITE F1 | | + |--------------->| | + | 180 Ringing F2 | | + |<---------------| | + | 200 OK F3 | | + |<---------------| | + | ACK F4 | | + |--------------->| | + | RTP | | + |<==============>| | + | | | + | Bob places Alice on hold | + | | | + | INVITE (hold) F5 | + |<---------------| | + | 200 OK F6 | | + |--------------->| | + | ACK F7 | | + |<---------------| | + | no RTP | | + | | | + | Bob initiates music on hold | + | | | + | | REFER Refer-To: A F8 + | |------------->| + | | 202 F9 | + | |<-------------| + | | NOTIFY F10 | + | |<-------------| + | | 200 F11 | + | |------------->| + | INVITE F12 Replaces: B | + |<------------------------------| + | 200 OK F13 | + |------------------------------>| + | ACK F14 | + |<------------------------------| + | RTP Music | + |<==============================| + | BYE F15 | | + |--------------->| NOTIFY F17 | + | 200 OK F16 |<-------------| + |<---------------| 200 OK F18 | + | |------------->| + + + +Johnston, et al. Best Current Practice [Page 38] + +RFC 5359 SIP Service Examples October 2008 + + + | | | + | The music on hold is complete | + | | | + | Bob takes Alice off hold | + | | | + | INVITE Replaces: M F19 | + |<---------------| | + | 200 OK F20 | | + |--------------->| | + | ACK F21 | | + |<---------------| | + | RTP | | + |<==============>| | + | BYE F22 | + |------------------------------>| + | 200 OK F23 | + |<------------------------------| + + In this flow, Bob places Alice on hold with music. This is performed + by Bob sending a REFER to a Music Server that sends an INVITE with + Replaces to Alice. The Music Server then sends RTP music to Alice. + Bob picks the call up from hold by sending an INVITE with Replaces to + Alice. + + Note the use of the rendering feature tag defined in RFC 4235 + [RFC4235] used in F5 to indicate that Bob's UA is no longer rendering + media to Bob, i.e., that Bob has placed the call on hold. Feature + tags are also used in F12 with the automaton (defined in RFC 3840 + [RFC3840]) and byeless feature tags (defined in RFC 4235 [RFC4235]) + to describe the capabilities of the Music Server. + + Should Alice not wish to receive music on hold, her UA could refuse + F12 and she will remain on hold with Bob, but in silence. + + Message Details + + F1 INVITE Alice -> Bob + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:a8342043f@atlanta.example.com;gr> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + + + +Johnston, et al. Best Current Practice [Page 39] + +RFC 5359 SIP Service Examples October 2008 + + + Supported: replaces, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F2 180 Ringing Bob -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Content-Length: 0 + + + F3 200 OK Bob -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + + + +Johnston, et al. Best Current Practice [Page 40] + +RFC 5359 SIP Service Examples October 2008 + + + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F4 ACK Alice -> Bob + + ACK sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfd + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + /* Bob places Alice on hold. */ + + F5 INVITE Bob -> Alice + + INVITE sips:a8342043f@atlanta.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bK874bk + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 712 INVITE + Contact: <sips:bob@client.biloxi.example.com>;+sip.rendering="no" + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=sendonly + + + + + + + +Johnston, et al. Best Current Practice [Page 41] + +RFC 5359 SIP Service Examples October 2008 + + + F6 200 OK Alice -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bK874bk + ;received=192.0.2.105 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 712 INVITE + Contact: <sips:a8342043f@atlanta.example.com;gr> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=recvonly + + + F7 ACK Bob -> Alice + + ACK sips:a8342043f@atlanta.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKq874b + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 712 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + /* Bob REFERs Music Server to establish session with Alice + which replaces the established session between Alice and Bob. */ + + F8 REFER Bob -> Music Server + + REFER sips:music@server.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds9 + + + +Johnston, et al. Best Current Practice [Page 42] + +RFC 5359 SIP Service Examples October 2008 + + + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=02134 + To: Music Server <sips:music@server.example.com> + Call-ID: 4802029847@biloxi.example.com + CSeq: 1 REFER + <allOneLine> + Refer-To: <sips:a8342043f@atlanta.example.com;gr?Replaces= + 12345600%40atlanta.example.com%3Bfrom-tag%3D23431 + %3Bto-tag%3D1234567&Require=replaces> + </allOneLine> + Referred-By: <sips:bob@biloxi.example.com> + Contact: <sips:bob@client.biloxi.example.com> + Content-Length: 0 + + + F9 202 Accepted Music Server -> Bob + + SIP/2.0 202 Accepted + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds9 + ;received=192.0.2.105 + From: Bob <sips:bob@biloxi.example.com>;tag=02134 + To: Music Server <sips:music@server.example.com>;tag=56323 + Call-ID: 4802029847@biloxi.example.com + Contact: <sips:music@server.example.com> + CSeq: 1 REFER + Content-Length: 0 + + + F10 NOTIFY Music Server -> Bob + + NOTIFY sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74bT6 + To: Bob <sips:bob@biloxi.example.com>;tag=02134 + Max-Forwards: 70 + From: Music Server <sips:music@server.example.com>;tag=56323 + Call-ID: 4802029847@biloxi.example.com + CSeq: 1 NOTIFY + Event: refer + Subscription-State: active;expires=60 + Contact: <sips:music@server.example.com> + Content-Type: message/sipfrag + Content-Length: ... + + SIP/2.0 100 Trying + + + + + +Johnston, et al. Best Current Practice [Page 43] + +RFC 5359 SIP Service Examples October 2008 + + + F11 200 OK Bob -> Music Server + + SIP/2.0 200 OK + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74bT6 + ;received=192.0.2.103 + To: Bob <sips:bob@biloxi.example.com>;tag=02134 + From: Music Server <sips:music@server.example.com>;tag=56323 + Call-ID: 4802029847@biloxi.example.com + CSeq: 1 NOTIFY + Content-Length: 0 + + + /* Music Server places call to Alice to replace session + between Alice and Bob. */ + + F12 INVITE Music Server -> Alice + + INVITE sips:a8342043f@atlanta.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74rf + Max-Forwards: 70 + From: <sips:music@server.example.com>;tag=0111 + To: <sips:a8342043f@atlanta.example.com;gr> + Call-ID: a5-75-34-12-76@server.example.com + CSeq: 1 INVITE + Referred-By: <sips:bob@biloxi.example.com> + Contact: <sips:music@server.example.com>;automaton + ;+sip.byeless;+sip.rendering="no" + Require: replaces + Replaces: 12345600@atlanta.example.com + ;from-tag=23431;to-tag=1234567 + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=MusicServer 2890844576 2890844576 IN IP4 server.example.com + s= + c=IN IP4 server.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=sendonly + + + + + + +Johnston, et al. Best Current Practice [Page 44] + +RFC 5359 SIP Service Examples October 2008 + + + F13 200 OK Alice -> Music Server + + SIP/2.0 200 OK + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74rf + ;received=192.0.2.103 + From: <sips:music@server.example.com>;tag=0111 + To: <sips:a8342043f@atlanta.example.com;gr>;tag=098594 + Call-ID: a5-75-34-12-76@server.example.com + CSeq: 1 INVITE + Contact: <sips:a8342043f@atlanta.example.com;gr> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY + Supported: replaces, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=recvonly + + + F14 ACK Music Server -> Alice + + ACK sips:a8342043f@atlanta.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK7rfF + Max-Forwards: 70 + From: <sips:music@server.example.com>;tag=0111 + To: <sips:a8342043f@atlanta.example.com;gr>;tag=098594 + Call-ID: a5-75-34-12-76@server.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F15 BYE Alice -> Bob + + BYE sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bKnashds7 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + + + +Johnston, et al. Best Current Practice [Page 45] + +RFC 5359 SIP Service Examples October 2008 + + + CSeq: 2 BYE + Content-Length: 0 + + + F16 200 OK Bob -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.105 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + /* Music Server reports success back to Bob by returning + a 200 OK response. Bob obtains the dialog identifiers + from the headers included in the response. */ + + F17 NOTIFY Music Server -> Bob + + NOTIFY sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74bf9 + To: Bob <sips:bob@biloxi.example.com>;tag=02134 + Max-Forwards: 70 + From: Music Server <sips:music@server.example.com>;tag=56323 + Call-ID: 4802029847@biloxi.example.com + CSeq: 2 NOTIFY + Event: refer + Subscription-State: terminated;reason=noresource + Contact: <sips:music@server.example.com> + Content-Type: message/sipfrag + Content-Length: ... + + SIP/2.0 200 OK + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74rf + ;received=192.0.2.103 + From: <sips:music@server.example.com>;tag=0111 + To: <sips:a8342043f@atlanta.example.com;gr>;tag=098594 + Call-ID: a5-75-34-12-76@server.example.com + CSeq: 1 INVITE + Contact: <sips:a8342043f@atlanta.example.com;gr> + + + + + +Johnston, et al. Best Current Practice [Page 46] + +RFC 5359 SIP Service Examples October 2008 + + + F18 200 OK Bob -> Music Server + + SIP/2.0 200 OK + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + To: Bob <sips:bob@biloxi.example.com>;tag=02134 + From: Music Server <sips:music@server.example.com>;tag=56323 + Call-ID: 4802029847@biloxi.example.com + CSeq: 2 NOTIFY + Content-Length: 0 + + + /* Alice is now parked at the Music Server. */ + + /* Bob picks up the call by sending an INVITE to Alice, who + replaces the existing session with the Music Server. */ + + F19 INVITE Bob -> Alice + + INVITE sips:a8342043f@atlanta.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bK74bf9 + From: Bob <sips:bob@biloxi.example.com>;tag=4i323pr + To: Alice <sips:a8342043f@atlanta.example.com;gr> + Call-ID: uioewrjk2k2were + CSeq: 42121 INVITE + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, + SUBSCRIBE, NOTIFY + Replaces: a5-75-34-12-76@server.example.com + ;to-tag=098594;from-tag=0111 + Contact: <sips:bob@client.biloxi.example.com> + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844631 2890844631 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3458 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=sendrecv + + + + + + + +Johnston, et al. Best Current Practice [Page 47] + +RFC 5359 SIP Service Examples October 2008 + + + F20 200 OK Alice -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.105 + From: Bob <sips:bob@biloxi.example.com>;tag=4i323pr + To: Alice <sips:a8342043f@atlanta.example.com;gr>;tag=6654323 + Call-ID: uioewrjk2k2were + CSeq: 42121 INVITE + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, + SUBSCRIBE, NOTIFY + Contact: <sips:alice@client.atlanta.example.com> + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844576 2890844576 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=sendrecv + + + F21 200 ACK Bob -> Alice + + ACK sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKj974bf9 + From: Bob <sips:bob@biloxi.example.com>;tag=4i323pr + To: Alice <sips:a8342043f@atlanta.example.com;gr>;tag=6654323 + Call-ID: uioewrjk2k2were + CSeq: 42121 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, + SUBSCRIBE, NOTIFY + Supported: replaces + Content-Length: 0 + + + F22 BYE Alice -> Music Server + + BYE sips:music@server.example.com SIP/2.0 + Max-Forwards: 70 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74rf + + + +Johnston, et al. Best Current Practice [Page 48] + +RFC 5359 SIP Service Examples October 2008 + + + To: <sips:music@server.example.com>;tag=0111 + From: <sips:a8342043f@atlanta.example.com;gr>;tag=098594 + Call-ID: a5-75-34-12-76@server.example.com + CSeq: 15 BYE + Content-Length: 0 + + + F23 200 OK Music Server -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74rf + ;received=192.0.2.103 + To: <sips:music@server.example.com>;tag=0111 + From: <sips:a8342043f@atlanta.example.com;gr>;tag=098594 + Call-ID: a5-75-34-12-76@server.example.com + CSeq: 15 BYE + Content-Length: 0 + + + /* Normal media session between Alice and Bob is resumed. */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 49] + +RFC 5359 SIP Service Examples October 2008 + + +2.4. Transfer - Unattended + + + Alice Bob Carol + | INVITE F1 | | + |<-------------------| | + | 180 Ringing F2 | | + |------------------->| | + | 200 OK F3 | | + |------------------->| | + | ACK F4 | | + |<-------------------| | + | RTP | | + |<==================>| | + | | | + | Alice performs unattended transfer | + | | | + | REFER Refer-To:C F5| | + |------------------->| | + | 202 Accepted F6 | | + |<-------------------| | + | NOTIFY F7 | | + |<-------------------| | + | 200 OK F8 | | + |------------------->| | + | BYE F9 | | + |------------------->| | + | 200 OK F10 | | + |<-------------------| | + | No RTP Session | INVITE Referred-By: A F11 + | |------------------->| + | | 180 Ringing F12 | + | |<-------------------| + | | 200 OK F13 | + | |<-------------------| + | | ACK F14 | + | |------------------->| + | | RTP | + | |<==================>| + | NOTIFY F15 | | + |<-------------------| | + | 200 OK F16 | | + |------------------->| | + | | | + + + + + + + +Johnston, et al. Best Current Practice [Page 50] + +RFC 5359 SIP Service Examples October 2008 + + + In this scenario, Bob calls Alice. Alice then transfers Bob to + Carol, then Alice disconnects with Bob. Bob establishes the session + to Carol then reports the success back to Alice in the NOTIFY in F15. + If the transfer fails, Bob can send a new INVITE back to Alice to re- + establish the session. + + Despite the BYE sent by Alice in F9, the dialog between Alice and Bob + still exists until the subscription created by the REFER has + terminated (either due to a NOTIFY containing a Subscription-State: + terminated;reason=noresource header field, as in F15, or a 481 + response to a NOTIFY). + + For more about call transfer, see the transfer document [TRANSFER]. + + Message Details + + F1 INVITE Bob -> Alice + + INVITE sips:alice@atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com> + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F2 180 Ringing Alice -> Bob + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + + + +Johnston, et al. Best Current Practice [Page 51] + +RFC 5359 SIP Service Examples October 2008 + + + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Content-Length: 0 + + + F3 200 OK Alice -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F4 ACK Bob -> Alice + + ACK sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds2 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + /* Session is established between Alice and Bob. */ + + + +Johnston, et al. Best Current Practice [Page 52] + +RFC 5359 SIP Service Examples October 2008 + + + /* Alice performs unattended transfer of Bob to Carol. */ + + + F5 REFER Alice -> Bob + + REFER sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds8 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 101 REFER + Refer-To: <sips:carol@chicago.example.com> + Referred-By: <alice@atlanta.example.com> + Contact: <sips:alice@client.atlanta.example.com> + Content-Length: 0 + + + F6 202 Accepted Bob -> Alice + + SIP/2.0 202 Accepted + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds8 + ;received=192.0.2.105 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + Contact: <sips:bob@client.biloxi.example.com> + CSeq: 101 REFER + Content-Length: 0 + + + F7 NOTIFY Bob -> Alice + + NOTIFY sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds32 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 2 NOTIFY + Event: refer + Subscription-State: active;expires=60 + Contact: <sips:bob@client.biloxi.example.com> + Content-Type: message/sipfrag + Content-Length: ... + + + +Johnston, et al. Best Current Practice [Page 53] + +RFC 5359 SIP Service Examples October 2008 + + + SIP/2.0 100 Trying + + + F8 200 OK Alice -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds32 + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 2 NOTIFY + Content-Length: 0 + + + /* Alice now disconnects with Bob. */ + + + F9 BYE Alice -> Bob + + BYE sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds43 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 102 BYE + Content-Length: 0 + + + F10 200 OK Bob -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds43 + ;received=192.0.2.105 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 102 BYE + Content-Length: 0 + + /* Bob attempts the transfer to Carol. */ + + + + + + +Johnston, et al. Best Current Practice [Page 54] + +RFC 5359 SIP Service Examples October 2008 + + + F11 INVITE Bob -> Carol + + INVITE sips:carol@chicago.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds1 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com> + Call-ID: 7436222@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Referred-By: <alice@atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844539 2890844539 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3458 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F12 180 Ringing Carol -> Bob + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds1 + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=928287 + Call-ID: 7436222@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:carol@client.chicago.example.com> + Content-Length: 0 + + + F13 200 OK Carol -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds1 + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=928287 + + + +Johnston, et al. Best Current Practice [Page 55] + +RFC 5359 SIP Service Examples October 2008 + + + Call-ID: 7436222@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:carol@client.chicago.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=carol 2890944542 2890844542 IN IP4 client.chicago.example.com + s= + c=IN IP4 client.chicago.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F14 ACK Bob -> Carol + + ACK sips:carol@client.chicago.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds9 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=928287 + Call-ID: 7436222@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + + /* Bob and Carol now have established a session. Bob reports + success to Alice, which Alice probably ignores. */ + + + F15 NOTIFY Bob -> Alice + + NOTIFY sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds67 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 3 NOTIFY + Event: refer + Subscription-State: terminated;reason=noresource + Contact: <sips:bob@client.biloxi.example.com> + Content-Type: message/sipfrag + + + +Johnston, et al. Best Current Practice [Page 56] + +RFC 5359 SIP Service Examples October 2008 + + + Content-Length: ... + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds1 + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=928287 + Call-ID: 7436222@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:carol@client.chicago.example.com> + Content-Type: application/sdp + Content-Length: ... + + + F16 200 OK Alice -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds6 + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=314159 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345601@atlanta.example.com + CSeq: 3 NOTIFY + Content-Length: 0 + + + + + + + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 57] + +RFC 5359 SIP Service Examples October 2008 + + +2.5. Transfer - Attended + + Alice Bob Carol + | | | + | INVITE F1 | | + |--------------->| | + | 180 Ringing F2 | | + |<---------------| | + | 200 OK F3 | | + |<---------------| | + | ACK F4 | | + |--------------->| | + | RTP | | + |<==============>| | + |INVITE (hold) F5| | + |<---------------| | + | 200 OK F6 | | + |--------------->| | + | ACK F7 | | + |<---------------| | + | No RTP | | + | | INVITE F8 | + | |------------->| + | | 180 Ringing F9 + | |<-------------| + | | 200 OK F10 | + | |<-------------| + | | 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 | + |------------------------------>| + + + +Johnston, et al. Best Current Practice [Page 58] + +RFC 5359 SIP Service Examples October 2008 + + + | 200 OK F20 | + |<------------------------------| + | ACK F21 | + |------------------------------>| + | RTP | + |<=============================>| + | | BYE F22 | + | |<-------------| + | | 200 OK F23 | + | |------------->| + | NOTIFY F24 | | + |--------------->| | + | 200 OK F25 | | + |<---------------| | + | BYE F26 | | + |<---------------| | + | 200 OK F27 | | + |--------------->| | + + + In this scenario, Alice calls Bob. Bob puts Alice on hold then calls + Carol to announce transfer, then places Carol on hold. Bob transfers + Alice to Carol, which replaces the session between Bob and Carol. + Carol then disconnects session with Bob. Alice reports success of + transfer to Bob, who then disconnects with Alice. In this example, + the Replaces header field [RFC3891] is inserted into the Refer-To URI + 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. The presence of the gr URI parameter + in the Contact URI in message F10 indicates that the Contact URI is a + GRUU [GRUU] and will be globally routable outside of the dialog. + Without knowing the Contact URI is a gruu, Bob must be prepared, if + the triggered INVITE had failed, to retry the REFER with a Refer-To + URI of the URI used to reach Carol but with a Require: replaces + header escaped in the Refer-To header field, as discussed in the + transfer document [TRANSFER]. + + Message Details + + F1 INVITE Alice -> Bob + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + + + +Johnston, et al. Best Current Practice [Page 59] + +RFC 5359 SIP Service Examples October 2008 + + + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F2 180 Ringing Bob -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Content-Length: 0 + + + F3 200 OK Bob -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + + + + + +Johnston, et al. Best Current Practice [Page 60] + +RFC 5359 SIP Service Examples October 2008 + + + v=0 + o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F4 ACK Alice -> Bob + + ACK sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + /* Alice and Bob have established a session. + Bob puts Alice on hold. */ + + + F5 INVITE Bob -> Alice + + INVITE sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1024 INVITE + Contact: <sips:bob@client.biloxi.example.com>;+sip.rendering="no" + Content-Type: application/sdp + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: ... + + v=0 + o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + + + +Johnston, et al. Best Current Practice [Page 61] + +RFC 5359 SIP Service Examples October 2008 + + + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=sendonly + + + F6 200 OK Alice -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1024 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=recvonly + + + F7 ACK Bob -> Alice + + ACK sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds3 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1024 ACK + Content-Length: 0 + + /* Bob calls Carol. */ + + + + + + +Johnston, et al. Best Current Practice [Page 62] + +RFC 5359 SIP Service Examples October 2008 + + + F8 INVITE Bob -> Carol + + INVITE sips:carol@chicago.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnash + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com> + Call-ID: sdjfdjfskdf@biloxi.example.com + CSeq: 42 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 28908445834 2890844834 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3458 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F9 180 Ringing Carol -> Bob + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnash + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=5f35a3 + Call-ID: sdjfdjfskdf@biloxi.example.com + CSeq: 42 INVITE + Contact: <sips:39itp34klkd@chicago.example.com> + Content-Length: 0 + + + F10 200 OK Carol -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnash + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=5f35a3 + Call-ID: sdjfdjfskdf@biloxi.example.com + + + +Johnston, et al. Best Current Practice [Page 63] + +RFC 5359 SIP Service Examples October 2008 + + + CSeq: 42 INVITE + Contact: <sips:39itp34klkd@chicago.example.com;gr> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com + s= + c=IN IP4 client.chicago.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F11 ACK Bob -> Carol + + ACK sips:39itp34klkd@chicago.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashd5 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=5f35a3 + Call-ID: sdjfdjfskdf@biloxi.example.com + CSeq: 42 ACK + Content-Length: 0 + + /* Bob puts Carol on hold. */ + + + F12 INVITE Bob -> Carol + + INVITE sips:39itp34klkd@chicago.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds0 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=5f35a3 + Call-ID: sdjfdjfskdf@biloxi.example.com + CSeq: 43 INVITE + Contact: <sips:bob@client.biloxi.example.com>;+sip.rendering="no" + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + + + + +Johnston, et al. Best Current Practice [Page 64] + +RFC 5359 SIP Service Examples October 2008 + + + v=0 + o=bob 289084834 2890844835 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3458 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=sendonly + + + F13 200 OK Carol -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds0 + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=5f35a3 + Call-ID: sdjfdjfskdf@biloxi.example.com + CSeq: 43 INVITE + Contact: <sips:39itp34klkd@chicago.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=carol 2890844922 2890844923 IN IP4 client.chicago.example.com + s= + c=IN IP4 client.chicago.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=recvonly + + + F14 ACK Bob -> Carol + + ACK sips:39itp34klkd@chicago.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnash334 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=5f35a3 + Call-ID: sdjfdjfskdf@biloxi.example.com + + + + + + +Johnston, et al. Best Current Practice [Page 65] + +RFC 5359 SIP Service Examples October 2008 + + + CSeq: 43 ACK + Content-Length: 0 + + /* Bob transfers Alice to Carol. */ + + + F15 REFER Bob -> Alice + + REFER sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds2g + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1025 REFER + <allOneLine> + Refer-To: <sips:39itp34klkd@chicago.example.com?Replaces= + sdjfdjfskdf%40biloxi.example.com%3Bto-tag%3D5f35a3 + %3Bfrom-tag%3D8675309&Require=replaces> + </allOneLine> + Referred-By: <sips:bob@biloxi.example.com> + Contact: <sips:bob@client.biloxi.example.com> + Content-Length: 0 + + + F16 202 Accepted Alice -> Bob + + SIP/2.0 202 Accepted + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds2g + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + Contact: <sips:alice@client.atlanta.example.com> + CSeq: 1025 REFER + Content-Length: 0 + + + F17 NOTIFY Alice -> Bob + + NOTIFY sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfK + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + + + +Johnston, et al. Best Current Practice [Page 66] + +RFC 5359 SIP Service Examples October 2008 + + + Call-ID: 12345600@atlanta.example.com + CSeq: 2 NOTIFY + Contact: <sips:alice@client.atlanta.example.com> + Event: refer + Subscription-State: active;expires=60 + Content-Type: message/sipfrag + Content-Length: ... + + SIP/2.0 100 Trying + + + F18 200 OK Bob -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfK + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 NOTIFY + Content-Length: 0 + + /* Alice establishes session with Carol, which replaces the + session between Bob and Carol. */ + + + F19 INVITE Alice -> Carol + + INVITE sips:39itp34klkd@chicago.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS chicago.example.com:5061 + ;branch=z9hG4bKadfe4ko + To: Carol <sips:39itp34klkd@chicago.example.com> + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=3461 + Call-ID: 9435674543@atlanta.example.com + CSeq: 1 INVITE + Require: replaces + Referred-By: <sips:bob@biloxi.example.com> + Replaces: sdjfdjfskdf@biloxi.example.com + ;to-tag=5f35a3;from-tag=8675309 + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + + + + +Johnston, et al. Best Current Practice [Page 67] + +RFC 5359 SIP Service Examples October 2008 + + + v=0 + o=alice 2890844989 2890844989 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 3458 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F20 200 OK Carol -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS chicago.example.com:5061 + ;branch=z9hG4bKadfe4ko + ;received=192.0.2.103 + To: Carol <sips:39itp34klkd@chicago.example.com>;tag=ff3a + From: Alice <sips:alice@atlanta.example.com>;tag=3461 + Call-ID: 9435674543@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:39itp34klkd@chicago.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=carol 2890844221 2890844221 IN IP4 client.chicago.example.com + s= + c=IN IP4 client.chicago.example.com + t=0 0 + m=audio 49172 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F21 ACK Alice -> Carol + + ACK sips:39itp34klkd@chicago.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS chicago.example.com:5061 + ;branch=z9hG4bKadfe4kU3 + To: Carol <sips:39itp34klkd@chicago.example.com>;tag=ff3a + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=3461 + Call-ID: 9435674543@atlanta.example.com + CSeq: 1 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + + + + + + +Johnston, et al. Best Current Practice [Page 68] + +RFC 5359 SIP Service Examples October 2008 + + + Supported: replaces + Content-Length: 0 + + /* Carol then disconnects from Bob. */ + + + F22 BYE Carol -> Bob + + BYE sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfE + To: Bob <sips:bob@biloxi.example.com>;tag=8675309 + Max-Forwards: 70 + From: Carol <sips:carol@chicago.example.com>;tag=5f35a3 + Call-ID: sdjfdjfskdf@biloxi.example.com + CSeq: 1 BYE + Content-Length: 0 + + + F23 200 OK Bob -> Carol + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfE + ;received=192.0.2.123 + To: Bob <sips:bob@biloxi.example.com>;tag=8675309 + From: Carol <sips:carol@chicago.example.com>;tag=5f35a3 + Call-ID: sdjfdjfskdf@biloxi.example.com + CSeq: 1 BYE + Content-Length: 0 + + + /* Alice tells Bob that the call has been + successfully transferred. */ + + F24 NOTIFY Alice -> Bob + + NOTIFY sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf2N + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 3 NOTIFY + Event: refer + Subscription-State: terminated;reason=noresource + + + + +Johnston, et al. Best Current Practice [Page 69] + +RFC 5359 SIP Service Examples October 2008 + + + Contact: <sips:alice@client.atlanta.example.com> + Content-Type: message/sipfrag + Content-Length: ... + + SIP/2.0 200 OK + Via: SIP/2.0/TLS chicago.example.com:5061 + ;branch=z9hG4bKadfe4ko + ;received=192.0.2.103 + To: Carol <sips:39itp34klkd@chicago.example.com>;tag=ff3a + From: Alice <sips:alice@atlanta.example.com>;tag=3461 + Call-ID: 9435674543@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:39itp34klkd@chicago.example.com> + + + F25 200 OK Bob -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 3 NOTIFY + Content-Length: 0 + + /* Bob disconnects with Alice. */ + + + F26 BYE Bob -> Alice + + BYE sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7P + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1026 BYE + Content-Length: 0 + + + F27 200 OK Alice -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7P + + + +Johnston, et al. Best Current Practice [Page 70] + +RFC 5359 SIP Service Examples October 2008 + + + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1026 BYE + Content-Length: 0 + +2.6. Transfer - Instant Messaging + + + Alice Bob Carol + | | | + | INVITE F1 | | + |------------->| | + | 180 Ringing F2 | + |<-------------| | + | 200 OK F3 | | + |<-------------| | + | ACK F4 | | + |------------->| | + | Both way RTP Established | + |<============>| | + | | MESSAGE F5 | + | |------------------>| + | | 200 OK F6 | + | |<------------------| + | | | + | INVITE Replaces:A-B F7 | + |<---------------------------------| + | 200 OK F8 | + |--------------------------------->| + | ACK F9 | + |<---------------------------------| + | Both way RTP Established | + |<================================>| + | BYE F10 | | + |------------->| | + | 200 OK F11 | | + |<-------------| | + | | + + In this scenario, Alice and Bob establish a session between them. + Bob wants Carol to take the call and so sends an Instant Message (IM) + to Carol containing Alice's URI and an embedded Replaces header + field. If Carol clicks on the URI, Carol's SIP UA sends an INVITE to + Alice, which replaces the session with Bob. + + + + + +Johnston, et al. Best Current Practice [Page 71] + +RFC 5359 SIP Service Examples October 2008 + + + This scenario shows the use of the SIP MESSAGE [RFC3428] method to + pass the URI. However, another IM protocol or other method could + have been used to pass the URI from Bob to Carol. + + Message Details + + F1 INVITE Alice -> Bob + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:a8342043f@atlanta.example.com;gr> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F2 180 Ringing Bob -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=3145678 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Content-Length: 0 + + + + + + + + + +Johnston, et al. Best Current Practice [Page 72] + +RFC 5359 SIP Service Examples October 2008 + + + F3 200 OK Bob -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=3145678 + Call-ID: 12345600@atlanta.example.com + Contact: <sips:bob@client.biloxi.example.com> + CSeq: 1 INVITE + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F4 ACK Alice -> Bob + + ACK sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74r + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=3145678 + Call-ID: 12345600@atlanta.example.com + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + CSeq: 1 ACK + Content-Length: 0 + + /* Bob IMs Carol. */ + + + F5 MESSAGE Bob -> Carol + + MESSAGE sips:carol@chicago.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnash + Max-Forwards: 70 + + + +Johnston, et al. Best Current Practice [Page 73] + +RFC 5359 SIP Service Examples October 2008 + + + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com> + Call-ID: sdjfdjfskdf@biloxi.example.com + CSeq: 42 MESSAGE + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE + Supported: replaces + Content-Type: text/html + Content-Length: ... + + <HTML>Do you want to take this call from + <allOneLine> + <A HREF="sips:a8342043f@atlanta.example.com;gr?Replaces= + 12345600@atlanta.example.com%3Bto-tag%3D3145678 + %3Bfrom-tag%3D1234567&Require=replaces"> + Alice</A>? + </allOneLine> + </HTML> + + + F6 200 OK Carol -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnash + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=5f35a3 + Call-ID: sdjfdjfskdf@biloxi.example.com + CSeq: 42 MESSAGE + Contact: <sips:carol@client.chicago.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE + Supported: replaces + Content-Length: 0 + + /* Carol takes the call from Bob. */ + + + F7 INVITE Carol -> Alice + + INVITE sips:a8342043f@atlanta.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS pc.biloxi.example.com:5061 + ;branch=z9hG4bK74HH + Max-Forwards: 70 + From: Carol <sips:carol@chicago.example.com>;tag=8675310 + To: Alice <sips:a8342043f@atlanta.example.com;gr> + Call-ID: 563456212@b2.chicago.example.com + CSeq: 1 INVITE + Require: replaces + + + +Johnston, et al. Best Current Practice [Page 74] + +RFC 5359 SIP Service Examples October 2008 + + + Replaces: 12345600@atlanta.example.com + ;to-tag=3145678;from-tag=1234567 + Contact: <sips:carol@client.chicago.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=carol 2890843122 2890843122 IN IP4 client.chicago.example.com + s= + c=IN IP4 client.chicago.example.com + t=0 0 + m=audio 5342 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + /* Alice matches the dialog information in the + Replaces header and accepts the INVITE. */ + + + F8 200 OK Alice -> Carol + + SIP/2.0 200 OK + Via: SIP/2.0/TLS pc.biloxi.example.com:5061 + ;branch=z9hG4bK74HH + ;received=192.0.2.114 + From: Carol <sips:carol@chicago.example.com>;tag=8675310 + To: Alice <sips:a8342043f@atlanta.example.com;gr>;tag=131256 + Call-ID: 563456212@b2.chicago.example.com + CSeq: 1 INVITE + Contact: <sips:a8342043f@atlanta.example.com;gr> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 289084543 289084543 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49172 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + + + + + + +Johnston, et al. Best Current Practice [Page 75] + +RFC 5359 SIP Service Examples October 2008 + + + F9 ACK Carol -> Alice + + ACK sips:a8342043f@atlanta.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS b2.biloxi.example.com:5061 + ;branch=z9hG4bK7435 + Max-Forwards: 70 + From: Carol <sips:carol@chicago.example.com>;tag=8675310 + To: Alice <sips:a8342043f@atlanta.example.com;gr>;tag=131256 + Call-ID: 563456212@b2.chicago.example.com + CSeq: 1 ACK + Content-Length: 0 + + + /* RTP streams are established between Alice and Carol. + Alice hangs up with Bob due to the Replaces header field. */ + + + F10 BYE Alice -> Bob + + BYE sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=3145678 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F11 200 OK Bob -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=3145678 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 76] + +RFC 5359 SIP Service Examples October 2008 + + +2.7. Call Forwarding Unconditional + + + Alice Proxy Gateway + | | | + | INVITE F1 | | + |--------------->| | + |(100 Trying) F2 | | + |<---------------| | + | (181 Call Is Being Forwarded) F3 + |<---------------| INVITE F4 | + | |------------->| + | |180 Ringing F5| + | 180 Ringing F6 |<-------------| + |<---------------| 200 OK F7 | + | 200 OK F8 |<-------------| + |<---------------| | + | ACK F9 | | + |--------------->| ACK F10 | + | |------------->| + | Both way RTP Established | + |<=============================>| + | BYE F11 | | + |--------------->| BYE F12 | + | |------------->| + | | 200 OK F13 | + | 200 OK F14 |<-------------| + |<---------------| | + | | | + + Bob wants all calls forwarded to the Public Switched Telephone + Network (PSTN) (which is just another URI to the proxy server). + Alice calls Bob. The proxy server rewrites the Request URI, and + forwards the INVITE to a Gateway. Details of messaging behind the + Gateway are not shown. + + Note that the 181 Call is Being Forwarded response is shown as sent + by the proxy. Strictly speaking, the proxy is behaving as a user + agent in this case as a proxy cannot generate non-100 provisional + responses. + + Note also that forwarding could be accomplished using a redirect (302 + Moved Temporarily response). + + + + + + + + +Johnston, et al. Best Current Practice [Page 77] + +RFC 5359 SIP Service Examples October 2008 + + + Message Details + + F1 INVITE Alice -> Proxy + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F2 (100 Trying) Proxy -> Alice + + SIP/2.0 100 Trying + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F3 (181 Call is Being Forwarded) Proxy -> Alice + + SIP/2.0 181 Call is Being Forwarded + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=9214d + + + + + +Johnston, et al. Best Current Practice [Page 78] + +RFC 5359 SIP Service Examples October 2008 + + + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + /* Proxy forwards call by rewriting Request-URI. */ + + + F4 INVITE Proxy -> Gateway + + INVITE sips:+19727293660@gw1.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F5 180 Ringing Gateway -> Proxy + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + + + +Johnston, et al. Best Current Practice [Page 79] + +RFC 5359 SIP Service Examples October 2008 + + + CSeq: 1 INVITE + Contact: <sips:+19727293660@gw1.example.com;user=phone> + Content Length:0 + + + F6 180 Ringing Proxy -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:+19727293660@gw1.example.com;user=phone> + Content Length: 0 + + + F7 200 OK Gateway -> Proxy + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:+19727293660@gw1.example.com;user=phone> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.example.com + s= + c=IN IP4 gatewayone.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + + + +Johnston, et al. Best Current Practice [Page 80] + +RFC 5359 SIP Service Examples October 2008 + + + F8 200 OK Proxy -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:+19727293660@gw1.example.com;user=phone> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.example.com + s= + c=IN IP4 gatewayone.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F9 ACK Alice -> Proxy + + ACK sips:+19727293660@gw1.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf31 + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F10 ACK Proxy -> Gateway + + ACK sips:+19727293660@gw1.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749ws.1 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf31 + ;received=192.0.2.103 + Max-Forwards: 69 + + + +Johnston, et al. Best Current Practice [Page 81] + +RFC 5359 SIP Service Examples October 2008 + + + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F11 BYE Alice -> Proxy + + BYE sips:+19727293660@gw1.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfJe + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F12 BYE Proxy -> Gateway + + BYE sips:+19727293660@gw1.example.com;user=phone SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749G1 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfJe + ;received=192.0.2.103 + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F13 200 OK Gateway -> Proxy + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749G1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfJe + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + + + +Johnston, et al. Best Current Practice [Page 82] + +RFC 5359 SIP Service Examples October 2008 + + + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F14 200 OK Proxy -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfJe + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 83] + +RFC 5359 SIP Service Examples October 2008 + + +2.8. Call Forwarding - Busy + + + Alice Proxy User B1 User B2 + | | | | + | INVITE F1 | | | + |--------------->| INVITE F2 | | + | |------------->| | + |(100 Trying) F3 | | | + |<---------------| 486 Busy F4 | | + | |<-------------| | + | | ACK F5 | | + | |------------->| | + |(181 Call is Being Forwarded) F6 | + |<---------------| | INVITE F7 | + | |--------------------------------->| + | | | 180 Ringing F8 | + | |<---------------------------------| + | 180 Ringing F9 | | | + |<---------------| | 200 OK F10 | + | |<---------------------------------| + | 200 OK F11 | | | + |<---------------| | | + | ACK F12 | | | + |--------------->| | ACK F13 | + | |--------------------------------->| + | Both way RTP Established | + |<=================================================>| + | BYE F14 | | | + |--------------->| | BYE F15 | + | |--------------------------------->| + | | | 200 OK F16 | + | 200 OK F17 |<---------------------------------| + |<---------------| | | + | | | | + + Bob wants calls to B1 forwarded to B2 if B1 is busy (this information + is known to the proxy). Alice calls B1, B1 is busy, the proxy server + places call to B2. + + Message Details + + F1 INVITE Alice -> Proxy + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + + + +Johnston, et al. Best Current Practice [Page 84] + +RFC 5359 SIP Service Examples October 2008 + + + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F2 INVITE Proxy -> B1 + + INVITE sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + + + + + +Johnston, et al. Best Current Practice [Page 85] + +RFC 5359 SIP Service Examples October 2008 + + + F3 (100 Trying) Proxy -> Alice + + SIP/2.0 100 Trying + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F4 486 Busy Here B1 -> Proxy + + SIP/2.0 486 Busy Here + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F5 ACK Proxy -> B1 + + ACK sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F6 (181 Call is Being Forwarded) Proxy -> Alice + + SIP/2.0 181 Call is Being Forwarded + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + + + +Johnston, et al. Best Current Practice [Page 86] + +RFC 5359 SIP Service Examples October 2008 + + + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=9214d + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + /* The proxy now forwards the call to B2. */ + + + F7 INVITE Proxy -> B2 + + INVITE sips:bob@client2.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.2 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F8 180 Ringing B2 -> Proxy + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.2 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + + + +Johnston, et al. Best Current Practice [Page 87] + +RFC 5359 SIP Service Examples October 2008 + + + To: Bob <sips:bob@biloxi.example.com>;tag=7654321 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client2.biloxi.example.com> + Content-Length: 0 + + + F9 180 Ringing Proxy -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7654321 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client2.biloxi.example.com> + Content-Length: 0 + + + F10 200 OK B2 -> Proxy + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.2 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7654321 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client2.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com + s= + c=IN IP4 client2.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + +Johnston, et al. Best Current Practice [Page 88] + +RFC 5359 SIP Service Examples October 2008 + + + F11 200 OK Proxy -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7654321 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client2.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com + s= + c=IN IP4 client2.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F12 ACK Alice -> Proxy + + ACK sips:bob@client2.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfX + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7654321 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F13 ACK Proxy -> B2 + + ACK sips:bob@client2.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83731 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfX + ;received=192.0.2.103 + Max-Forwards: 69 + + + +Johnston, et al. Best Current Practice [Page 89] + +RFC 5359 SIP Service Examples October 2008 + + + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7654321 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + /* RTP streams are established between Alice and B2. */ + + /* Alice eventually hangs up with User B2. */ + + + F14 BYE Alice -> Proxy + + BYE sips:bob@client2.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bW4 + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7654321 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F15 BYE Proxy -> B2 + + BYE sips:bob@client2.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK837493 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bW4 + ;received=192.0.2.103 + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7654321 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F16 200 OK B2 -> Proxy + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK837493 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + + + +Johnston, et al. Best Current Practice [Page 90] + +RFC 5359 SIP Service Examples October 2008 + + + ;branch=z9hG4bK74bW4 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7654321 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F17 200 OK Proxy -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bW4 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7654321 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 91] + +RFC 5359 SIP Service Examples October 2008 + + +2.9. Call Forwarding - No Answer + + + Alice Proxy User B1 User B2 + | | | | + | INVITE F1 | | | + |--------------->| INVITE F2 | | + |(100 Trying) F3 |------------->| | + |<---------------|180 Ringing F4| | + | 180 Ringing F5 |<-------------| | + |<---------------| | | + | Request Timeout | + | | | | + | | CANCEL F6 | | + | |------------->| | + | | 200 OK F7 | | + | |<-------------| | + | | 487 F8 | | + | |<-------------| | + | | ACK F9 | | + | |------------->| | + |(181 Call is Being Forwarded) F10 | + |<---------------| | INVITE F11 | + | |--------------------------------->| + | | | 180 Ringing F12 | + | 180 Ringing F13|<---------------------------------| + |<---------------| | 200 OK F14 | + | |<---------------------------------| + | 200 OK F15 | | | + |<---------------| | | + | ACK F16 | | | + |--------------->| | ACK F17 | + | |--------------------------------->| + | Both way RTP Established | + |<=================================================>| + | BYE F18 | | | + |--------------->| | BYE F19 | + | |--------------------------------->| + | | | 200 OK F20 | + | 200 OK F21 |<---------------------------------| + |<---------------| | | + | | | | + + Bob wants calls to B1 forwarded to B2 if B1 is not answered + (information is known to the proxy server). Alice calls B1 and no + one answers. The proxy server then places the call to B2. + + + + + +Johnston, et al. Best Current Practice [Page 92] + +RFC 5359 SIP Service Examples October 2008 + + + Message Details + + F1 INVITE Alice -> Proxy + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F2 INVITE Proxy -> B1 + + INVITE sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + + + +Johnston, et al. Best Current Practice [Page 93] + +RFC 5359 SIP Service Examples October 2008 + + + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F3 (100 Trying) Proxy -> Alice + + SIP/2.0 100 Trying + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F4 180 Ringing B1 -> Proxy + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=3145678 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Content-Length: 0 + + + F5 180 Ringing Proxy -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=3145678 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + + + +Johnston, et al. Best Current Practice [Page 94] + +RFC 5359 SIP Service Examples October 2008 + + + Contact: <sips:bob@client.biloxi.example.com> + 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 -> B1 + + CANCEL sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 CANCEL + Content-Length: 0 + + + F7 200 OK B1 -> Proxy + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + ;received=192.0.2.54 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=329d823 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 CANCEL + Content-Length: 0 + + + F8 487 Request Terminated B1 -> Proxy + + SIP/2.0 487 Request Terminated + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=3145678 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + + +Johnston, et al. Best Current Practice [Page 95] + +RFC 5359 SIP Service Examples October 2008 + + + F9 ACK Proxy -> B1 + + ACK sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=3145678 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F10 (181 Call is Being Forwarded) Proxy -> Alice + + SIP/2.0 181 Call is Being Forwarded + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=9214d + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F11 INVITE Proxy -> B2 + + INVITE sips:bob@client2.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.2 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + + + +Johnston, et al. Best Current Practice [Page 96] + +RFC 5359 SIP Service Examples October 2008 + + + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F12 180 Ringing B2 -> Proxy + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.2 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client2.biloxi.example.com> + Content-Length: 0 + + + F13 180 Proxy -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client2.biloxi.example.com> + Content-Length: 0 + + + F14 200 OK B2 -> Proxy + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.2 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + + + +Johnston, et al. Best Current Practice [Page 97] + +RFC 5359 SIP Service Examples October 2008 + + + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client2.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com + s= + c=IN IP4 client2.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F15 200 OK Proxy -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client2.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com + s= + c=IN IP4 client2.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F16 ACK Alice -> Proxy + + ACK sips:bob@client2.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + + + +Johnston, et al. Best Current Practice [Page 98] + +RFC 5359 SIP Service Examples October 2008 + + + ;branch=z9hG4bK74bf3 + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F17 ACK Proxy -> B2 + + ACK sips:bob@client2.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK8374.1 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf3 + ;received=192.0.2.103 + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + /* RTP streams are established between Alice and B2. + Alice hangs up with User B2. */ + + + F18 BYE Alice -> Proxy + + BYE sips:bob@client2.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74b3f + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F19 BYE Proxy -> B2 + + BYE sips:bob@client2.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK837.1 + + + +Johnston, et al. Best Current Practice [Page 99] + +RFC 5359 SIP Service Examples October 2008 + + + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74b3f + ;received=192.0.2.103 + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F20 200 OK B2 -> Proxy + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK837.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74b3f + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F21 200 OK Proxy -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74b3f + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 100] + +RFC 5359 SIP Service Examples October 2008 + + +2.10. 3-Way Conference - Third Party Is Added + + + Alice Bob Carol + | INVITE F1 | | + |--------------->| | + | 180 Ringing F2 | | + |<---------------| | + | 200 OK F3 | | + |<---------------| | + | ACK F4 | | + |--------------->| | + | RTP | | + |<==============>| | + | INVITE F5 | | + |<---------------| | + | 200 OK F6 | | + |--------------->| | + | ACK F7 | | + |<---------------| INVITE F8 | + | |------------->| + | | 180 F9 | + | |<-------------| + | | 200 OK F10 | + | |<-------------| + | | ACK F11 | + | |------------->| + | | RTP | + | |<============>| + + In this scenario, Alice and Bob are in a 2-party call (session) when + Bob wishes to add Carol into the conversation. Bob is capable of + media mixing in a 3-party call. Bob first sends a re-INVITE to + Alice, changing Contact URIs to one that indicates Bob's mixer and + acts like a focus. As a result, Bob includes the "isfocus" feature + tag [RFC3840] as described in [RFC4579]. Bob then INVITEs Carol + using the same Contact URI. Note that Bob could wait to re-INVITE + Alice until after Carol has answered. Bob could also put Alice on + hold before calling Carol. + + Message Details + + F1 INVITE Alice -> Bob + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + + + + +Johnston, et al. Best Current Practice [Page 101] + +RFC 5359 SIP Service Examples October 2008 + + + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F2 180 Ringing Bob -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:b54gh42f5@biloxi.example.com> + Content-Length: 0 + + + F3 200 OK Bob -> Alice + + SIP/2.0 200 OK + + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:b54gh42f5@biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + + + + +Johnston, et al. Best Current Practice [Page 102] + +RFC 5359 SIP Service Examples October 2008 + + + Supported: replaces, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F4 ACK Alice -> Bob + + ACK sips:b54gh42f5@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfL + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + /* Alice and Bob have established a session. + Bob re-INVITEs, changing Contact URIs. */ + + + F5 INVITE Bob -> Alice + + INVITE sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1024 INVITE + Contact: <sips:bob-Mixer@client.biloxi.example.com>;isfocus + Content-Type: application/sdp + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces, gruu + Content-Length: ... + + v=0 + o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com + s= + + + +Johnston, et al. Best Current Practice [Page 103] + +RFC 5359 SIP Service Examples October 2008 + + + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 49172 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F6 200 OK Alice -> Bob + + SIP/2.0 200 OK + + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1024 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F7 ACK Bob -> Alice + + ACK sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnash3G + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1024 ACK + Content-Length: 0 + + /* Bob calls Carol. */ + + + + + + +Johnston, et al. Best Current Practice [Page 104] + +RFC 5359 SIP Service Examples October 2008 + + + F8 INVITE Bob -> Carol + + INVITE sips:carol@chicago.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashJfd + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com> + Call-ID: sdjfdjfskdf@biloxi.example.com + CSeq: 42 INVITE + Contact: <sips:bob-Mixer@client.biloxi.example.com>;isfocus + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 28908445834 2890844834 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 48174 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F9 180 Ringing Carol -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashJfd + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=341313 + Call-ID: sdjfdjfskdf@biloxi.example.com + CSeq: 42 INVITE + Contact: <sips:carol@client.chicago.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + F10 200 OK Carol -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashJfd + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + + + +Johnston, et al. Best Current Practice [Page 105] + +RFC 5359 SIP Service Examples October 2008 + + + To: Carol <sips:carol@chicago.example.com>;tag=341313 + Call-ID: sdjfdjfskdf@biloxi.example.com + CSeq: 42 INVITE + Contact: <sips:carol@client.chicago.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com + s= + c=IN IP4 client.chicago.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F11 ACK Bob -> Carol + + ACK sips:carol@client.chicago.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnash431 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=341313 + Call-ID: sdjfdjfskdf@biloxi.example.com + CSeq: 42 ACK + Content-Length: 0 + + + /* Bob's mixer now mixes media from both Alice and Carol + to create the 3-way conference. */ + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 106] + +RFC 5359 SIP Service Examples October 2008 + + +2.11. 3-Way Conference - Third Party Joins + + + Alice Bob Carol + | INVITE F1 | | + |--------------->| | + | 180 Ringing F2 | | + |<---------------| | + | 200 OK F3 | | + |<---------------| | + | ACK F4 | | + |--------------->| | + | RTP | | + |<==============>| INVITE Join:A-B F5 + | |<-------------| + | | 180 F6 | + | |------------->| + | INVITE F7 | | + |<---------------| | + | 200 OK F8 | | + |--------------->| | + | ACK F9 | | + |<---------------| | + | | 200 OK F10 | + | |------------->| + | | ACK F11 | + | |<-------------| + | | RTP | + | |<============>| + + + In this scenario, Alice and Bob are in a 2-party call and Carol + wishes to join, resulting in a 3-party call. Carol could have + learned Bob's dialog identifier using some non-SIP means, or possibly + from a NOTIFY with the dialog package sent by Bob. Carol sends an + INVITE to Bob containing a Join header identifying the dialog between + Alice and Bob. Bob re-INVITEs Alice to switch to focus mode and + includes the "isfocus" feature tag [RFC3840] as described in + [RFC4579]. Bob then accepts the INVITE from Carol, resulting in the + 3-way call. + + Message Details + + F1 INVITE Alice -> Bob + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + + + +Johnston, et al. Best Current Practice [Page 107] + +RFC 5359 SIP Service Examples October 2008 + + + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F2 180 Ringing Bob -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:b54gh42f5@biloxi.example.com> + Content-Length: 0 + + + F3 200 OK Bob -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:b54gh42f5@biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + + + + + +Johnston, et al. Best Current Practice [Page 108] + +RFC 5359 SIP Service Examples October 2008 + + + Supported: replaces, join, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F4 ACK Alice -> Bob + + ACK sips:b54gh42f5@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf6 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + /* Alice and Bob have established a session. + Carol requests to join the session. */ + + + F5 INVITE Carol -> Bob + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS chicago.example.com:5061 + ;branch=z9hG4bKnashds7 + Max-Forwards: 70 + From: Carol <sips:carol@chicago.example.com>;tag=8675309 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 452k499sk@chicago.example.com + CSeq: 99 INVITE + Contact: <sips:carol@client.chicago.example.com> + 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: ... + + + + + + +Johnston, et al. Best Current Practice [Page 109] + +RFC 5359 SIP Service Examples October 2008 + + + v=0 + o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com + s= + c=IN IP4 client.chicago.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F6 180 Ringing Bob -> Carol + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS chicago.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=120. + From: Carol <sips:carol@chicago.example.com>;tag=8675309 + To: Bob <sips:bob@biloxi.example.com>;tag=0982 + Call-ID: 452k499sk@chicago.example.com + CSeq: 99 INVITE + Contact: <sips:bob-Mixer@client.biloxi.example.com>;isfocus + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Length: 0 + + + F7 INVITE Bob -> Alice + + INVITE sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashdyKL + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1024 INVITE + Contact: <sips:bob-Mixer@client.biloxi.example.com>;isfocus + Content-Type: application/sdp + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces, join, gruu + Content-Length: ... + + v=0 + o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 49172 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + +Johnston, et al. Best Current Practice [Page 110] + +RFC 5359 SIP Service Examples October 2008 + + + F8 200 OK Alice -> Bob + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashdyKL + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1024 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F9 ACK Bob -> Alice + + ACK sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnash3g + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=23431 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1024 ACK + Content-Length: 0 + + + F10 200 OK Bob -> Carol + + SIP/2.0 200 OK + Via: SIP/2.0/TLS chicago.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=120. + From: Carol <sips:carol@chicago.example.com>;tag=8675309 + To: Bob <sips:bob@biloxi.example.com>;tag=0982 + Call-ID: 452k499sk@chicago.example.com + CSeq: 99 INVITE + Contact: <sips:bob-Mixer@client.biloxi.example.com>;isfocus + + + +Johnston, et al. Best Current Practice [Page 111] + +RFC 5359 SIP Service Examples October 2008 + + + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces, join, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 28908445834 2890844834 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 48174 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F11 ACK OK Carol -> Bob + + ACK sips:bob-Mixer@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS chicago.example.com:5061 + ;branch=z9hG4bKnash4Gf + Max-Forwards: 70 + From: Carol <sips:carol@chicago.example.com>;tag=8675309 + To: Bob <sips:bob@biloxi.example.com>;tag=0982 + Call-ID: 452k499sk@chicago.example.com + CSeq: 99 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces, join + Content-Length:0 + + + + + + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 112] + +RFC 5359 SIP Service Examples October 2008 + + +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 | | + | |--------------------------->| | + | | INVITE F16 | + | |---------------------------------->| + | | 180 Ringing F17 | + | 180 F18 |<----------------------------------| + |<---------------| 200 OK F19 | + | 200 OK F20 |<----------------------------------| + |<---------------| | + | ACK F21 | | + |--------------->| ACK F22 | + | |---------------------------------->| + | Both way RTP Established | + |<==================================================>| + + + +Johnston, et al. Best Current Practice [Page 113] + +RFC 5359 SIP Service Examples October 2008 + + + | | BYE F23 | + | BYE F24 |<----------------------------------| + |<---------------| | + | 200 OK F25 | | + |--------------->| 200 OK F26 | + | |---------------------------------->| + | | | + + Alice's call to Bob will result in an attempt to locate Bob 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. + + Message Details + + F1 INVITE Alice -> Proxy + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t= 0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F2 INVITE Proxy -> B1 + + INVITE sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + + + +Johnston, et al. Best Current Practice [Page 114] + +RFC 5359 SIP Service Examples October 2008 + + + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t= 0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F3 (100 Trying) Proxy -> Alice + + SIP/2.0 100 Trying + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F4 180 Ringing B1 -> Proxy + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Content-Length: 0 + + + +Johnston, et al. Best Current Practice [Page 115] + +RFC 5359 SIP Service Examples October 2008 + + + F5 180 Ringing Proxy -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Content-Length: 0 + + /* B1 rings until a configurable timer in the proxy + expires. The proxy then sends Cancel and proceeds down + the list of routes. */ + + + F6 CANCEL Proxy -> B1 + + CANCEL sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 CANCEL + Content-Length: 0 + + + F7 200 OK B1 -> Proxy + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + ;received=192.0.2.54 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 CANCEL + Content-Length: 0 + + + F8 487 Request Terminated B1 -> Proxy + + SIP/2.0 487 Request Terminated + + + +Johnston, et al. Best Current Practice [Page 116] + +RFC 5359 SIP Service Examples October 2008 + + + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F9 ACK Proxy -> B1 + + ACK sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.1 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=765432 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F10 INVITE Proxy -> B2 + + INVITE sips:bob@client2.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.2 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + + + +Johnston, et al. Best Current Practice [Page 117] + +RFC 5359 SIP Service Examples October 2008 + + + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F11 480 Not Logged In B2 -> Proxy + + SIP/2.0 480 Not Logged In + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.2 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314756 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F12 ACK Proxy -> B2 + + ACK sips:bob@client2.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.2 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314756 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F13 INVITE Proxy -> B3 + + INVITE sips:bob@client3.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.3 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + + + +Johnston, et al. Best Current Practice [Page 118] + +RFC 5359 SIP Service Examples October 2008 + + + Contact: <sips:alice@client.atlanta.example.com> + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F14 486 Busy Here B3 -> Proxy + + SIP/2.0 486 Busy Here + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.3 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7654321 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F15 ACK Proxy -> B3 + + ACK sips:bob@client3.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.3 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7654321 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F16 INVITE Proxy -> B4 + + INVITE sips:bob@client4.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.4 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + + + +Johnston, et al. Best Current Practice [Page 119] + +RFC 5359 SIP Service Examples October 2008 + + + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F17 180 Ringing B4 -> Proxy + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.4 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7137136 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client4.biloxi.example.com> + Content-Length: 0 + + + F18 180 Ringing Proxy -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7137136 + + + +Johnston, et al. Best Current Practice [Page 120] + +RFC 5359 SIP Service Examples October 2008 + + + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client4.biloxi.example.com> + Content-Length: 0 + + + F19 200 OK B4 -> Proxy + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83749.4 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7137136 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client4.biloxi.example.com> + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844527 IN IP4 client4.biloxi.example.com + s= + c=IN IP4 client4.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F20 200 OK Proxy -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + Record-Route: <sips:ss1.example.com;lr> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7137136 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client4.biloxi.example.com> + Content-Type: application/sdp + Content-Length: ... + + + + +Johnston, et al. Best Current Practice [Page 121] + +RFC 5359 SIP Service Examples October 2008 + + + v=0 + o=bob 2890844527 2890844527 IN IP4 client4.biloxi.example.com + s= + c=IN IP4 client4.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F21 ACK Alice -> Proxy + + ACK sips:bob@client4.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7137136 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F22 ACK Proxy -> B4 + + ACK sips:bob@client4.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK8374 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf + ;received=192.0.2.103 + Max-Forwards: 69 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7137136 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + /* RTP streams are established between Alice and B4. */ + + /* User B4 hangs up with Alice. */ + + + F23 BYE B4 -> Proxy + + BYE sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client4.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + + + +Johnston, et al. Best Current Practice [Page 122] + +RFC 5359 SIP Service Examples October 2008 + + + Route: <sips:ss1.example.com;lr> + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=7137136 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 BYE + Content-Length: 0 + + + F24 BYE Proxy -> Alice + + BYE sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83754 + Via: SIP/2.0/TLS client4.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.105 + Max-Forwards: 69 + From: Bob <sips:bob@biloxi.example.com>;tag=7137136 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 BYE + Content-Length: 0 + + + F25 200 OK Alice -> Proxy + + SIP/2.0 200 OK + Via: SIP/2.0/TLS ss1.example.com:5061 + ;branch=z9hG4bK83754 + ;received=192.0.2.54 + Via: SIP/2.0/TLS client4.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.105 + From: Bob <sips:bob@biloxi.example.com>;tag=7137136 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 BYE + Content-Length: 0 + + + F26 200 OK Proxy -> B4 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client4.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.105 + From: Bob <sips:bob@biloxi.example.com>;tag=7137136 + + + +Johnston, et al. Best Current Practice [Page 123] + +RFC 5359 SIP Service Examples October 2008 + + + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 BYE + Content-Length: 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 124] + +RFC 5359 SIP Service Examples October 2008 + + +2.13. Call Management (Incoming Call Screening) + + Announcement + Alice Proxy Bob Server + + | | | | + | INVITE F1 | | | + |------------------------------>| | + | 305 Use Proxy F2 | | + |<------------------------------| | + | ACK F3 | | | + |------------------------------>| | + | INVITE F4 | | | + |--------------->| | | + | 407 Proxy Authentication F5 | | + |<---------------| | | + | ACK F6 | | | + |--------------->| | | + | INVITE F7 | | | + |--------------->| | | + | 403 Screening Failure (Terminating) Error-Info: URI F8 + |<---------------| | | + | ACK F9 | | | + |--------------->| | | + | INVITE F10 | | | + |--------------------------------------------->| + | 200 OK F11 | | | + |--------------------------------------------->| + | ACK F12 | | + |--------------------------------------------->| + | Announcement Played to Caller | + |<=============================================| + | BYE F13 | + |<---------------------------------------------| + | 200 OK F14 | + |--------------------------------------------->| + | | + | | + | | + + Bob has an incoming call screening list; Alice is included on the + list of addresses from which Bob will not accept calls. Alice + attempts to call Bob. Messages F1, F2, and F3 are included to show + that Bob does not accept INVITEs that have not been screened by the + proxy. + + Note that call screening cannot be done using the From header -- + instead some form of authentication credentials must be used. + + + +Johnston, et al. Best Current Practice [Page 125] + +RFC 5359 SIP Service Examples October 2008 + + + The screening proxy inserts an announcement URI in an Error-Info + header field, which Alice accesses by sending an INVITE to listen to + the Announcement. The Announcement Server uses the automaton and + rendering feature tags in F12 and F13 to indicate that it is a media + server only capable of playing announcements. + + Message Details + + F1 INVITE Alice -> Bob + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + /* Bob only accepts INVITEs that have been screened + by the proxy. */ + + F2 305 Use Proxy Bob -> Alice + + SIP/2.0 305 Use Proxy + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=342123 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:ss1.example.com> + Content-Length: 0 + + + + +Johnston, et al. Best Current Practice [Page 126] + +RFC 5359 SIP Service Examples October 2008 + + + F3 ACK Alice -> Bob + + ACK sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=342123 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + /* A retries the call through the proxy. */ + + + F4 INVITE Alice -> Proxy 1 + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf0 + Max-Forwards: 70 + Route: <sips:ss1.example.com> + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 2 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + /* Proxy 1 challenges Alice for authentication. */ + + + F5 407 Proxy Authentication Required Proxy 1 -> Alice + + SIP/2.0 407 Proxy Authentication Required + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf0 + ;received=192.0.2.103 + + + +Johnston, et al. Best Current Practice [Page 127] + +RFC 5359 SIP Service Examples October 2008 + + + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7886765 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 INVITE + Proxy-Authenticate: Digest realm="example.com", + nonce="ea9c8e88df84f1cec4341ae6cbe5a359", + qop="auth", nc=00000001, cnonce="0a4f113b", + opaque="", stale=FALSE, algorithm=MD5 + Content-Length: 0 + + + F6 ACK Alice -> Proxy 1 + + ACK sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf0 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=7886765 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 ACK + Content-Length: 0 + + /* Alice responds by sending an INVITE with authentication + credentials in it. */ + + + F7 INVITE Alice -> Proxy 1 + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf2 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 3 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Proxy-Authorization: Digest username="alice", + realm="example.com", qop=auth, + nc=00000001, cnonce="4gr84543ft2", + nonce="ae9137be1c87d175c2dd63302a0d6e0a", + opaque="", uri="sips:bob@biloxi.example.com", + response="bbaec39f943bdcb3620d90afc548a45c" + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + + + +Johnston, et al. Best Current Practice [Page 128] + +RFC 5359 SIP Service Examples October 2008 + + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F8 403 Screening Failure (Terminating) Proxy 1 -> Alice + + SIP/2.0 403 Screening Failure (Terminating) + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf2 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=ffe254 + Call-ID: 12345600@atlanta.example.com + CSeq: 3 INVITE + Error-Info: <sips:screen-fail-term-ann@ms.biloxi.example.com> + Content-Length: 0 + + + F9 ACK Alice -> Proxy 1 + + ACK sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf2 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=ffe254 + Call-ID: 12345600@atlanta.example.com + Proxy-Authorization: Digest username="alice", + realm="example.com", nonce="ae9137be1c87d175c2dd63302a0d6e0a", + opaque="", uri="sips:bob@biloxi.example.com", + response="bbaec39f943bdcb3620d90afc548a45c" + CSeq: 3 ACK + Content-Length: 0 + + /* To hear the recording, Alice connects to the Error-Info URI. */ + + + F10 INVITE Alice -> Proxy 1 + + INVITE sips:screen-fail-term-ann@ms.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfj + Max-Forwards: 70 + + + +Johnston, et al. Best Current Practice [Page 129] + +RFC 5359 SIP Service Examples October 2008 + + + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 4 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F11 200 OK Announcement Server -> Proxy 1 + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfj + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=234934 + Call-ID: 12345600@atlanta.example.com + CSeq: 4 INVITE + Contact: <sips:ms.biloxi.example.com> + ;automaton;+sip.rendering="no" + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=annc 2890844543 2890844543 IN IP4 announce.biloxi.example.com + s= + c=IN IP4 announce.biloxi.example.com + t=0 0 + m=audio 49174 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F12 ACK Alice -> Announcement Server + + ACK sips:ms.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74b32 + + + +Johnston, et al. Best Current Practice [Page 130] + +RFC 5359 SIP Service Examples October 2008 + + + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=234934 + Call-ID: 12345600@atlanta.example.com + CSeq: 4 ACK + Content-Length: 0 + + /* Announcement Server plays announcement then disconnects. */ + + + F13 BYE Announcement Server -> Alice + + BYE sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS announcement.example.com:5061 + ;branch=z9hG4bK74bKS + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=234934 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 2334 BYE + Content-Length: 0 + + + F14 200 OK Alice -> Announcement Server + + SIP/2.0 200 OK + Via: SIP/2.0/TLS announcement.example.com:5061 + ;branch=z9hG4bK74bKS + ;received=192.0.2.103 + From: Bob <sips:bob@biloxi.example.com>;tag=234934 + To: Alice <sips:alice@atlanta.example.com>;tag=1234567 + Call-ID: 12345600@atlanta.example.com + CSeq: 2334 BYE + Content-Length: 0 + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 131] + +RFC 5359 SIP Service Examples October 2008 + + +2.14. Call Management (Outgoing Call Screening) + + + Alice Proxy Bob + | | | + | INVITE F1 | | + |--------------->| | + | 407 Proxy Authentication 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 to which Alice will not be able to place a call. + Alice attempts to call Bob. + + Alice could establish a session to listen to the announcement in the + Error-Info header field. + + Message Details + + F1 INVITE Alice -> Proxy 1 + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + + + +Johnston, et al. Best Current Practice [Page 132] + +RFC 5359 SIP Service Examples October 2008 + + + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + /* Proxy 1 challenges Alice for authentication. */ + + + F2 407 Proxy Authentication Required Proxy 1 -> Alice + + SIP/2.0 407 Proxy Authentication Required + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=90210 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Proxy-Authenticate: Digest realm="example.com", + nonce="ea9c8e88df84f1cec4341ae6cbe5a359", + qop="auth", nc=00000001, cnonce="0a4f113b", + opaque="", stale=FALSE, algorithm=MD5 + Content-Length: 0 + + + F3 ACK Alice -> Proxy 1 + + ACK sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=90210 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + /* Alice responds be sending an INVITE with authentication + credentials in it. */ + + + F4 INVITE Alice -> Proxy 1 + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74b4 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + + + +Johnston, et al. Best Current Practice [Page 133] + +RFC 5359 SIP Service Examples October 2008 + + + CSeq: 2 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Proxy-Authorization: Digest username="alice", realm="example.com", + nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="", + uri="sips:bob@biloxi.example.com", + response="b9d2e5bcdec9f69ab2a9b44f270285a6" + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F5 403 Screening Failure (Originating) Proxy 1 -> Alice + + SIP/2.0 403 Screening Failure (Originating) + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74b4 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=18017 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 INVITE + Error-Info: <sips:screen-fail-orig-ann@announcement.example.com> + Content-Length: 0 + + + F6 ACK Alice -> Proxy 1 + + ACK sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74b4 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=18017 + Call-ID: 12345600@atlanta.example.com + CSeq: 2 ACK + Proxy-Authorization: Digest username="alice", realm="example.com", + nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="", + uri="sips:bob@biloxi.example.com", + response="b9d2e5bcdec9f69ab2a9b44f270285a6" + Content-Length: 0 + + + +Johnston, et al. Best Current Practice [Page 134] + +RFC 5359 SIP Service Examples October 2008 + + +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 | + | | | | + | | | SUBSCRIBE F16| + | | |<-------------| + | | | 200 OK F17 | + | | |------------->| + | | | NOTIFY F18 | + | | |------------->| + | | | 200 OK F19 | + | | |<-------------| + | INVITE Replaces: Park Server F20 | + |<-------------------------------------------| + + + +Johnston, et al. Best Current Practice [Page 135] + +RFC 5359 SIP Service Examples October 2008 + + + | | | 200 F21 | + |------------------------------------------->| + | | | ACK F22 | + |<-------------------------------------------| + | RTP Media | + |<==========================================>| + | BYE F23 | | + |---------------------------->| | + | 200 OK F24 | | + |<----------------------------| | + | 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 Park Server utilizes the automaton, rendering, and byeless + feature tags in F9 to indicate its capabilities to Alice. The call + is accepted by Alice and causes Alice to send a BYE to Bob. Bob + receives notification of the successful park, and also receives the + dialog identifiers in the application/sip body of the NOTIFY + response. + + Carol wishes to retrieve the call, so she sends an INVITE containing + the dialog identifiers to Alice, which replaces the session with the + Park Server. Alice accepts the call and sends a BYE to the Park + Server. Carol obtains the dialog identifiers from a NOTIFY from the + Park Server. + + Note that this call flow is a special case of call transfer. + + Note also that this flow could also be used for Music on Hold. + + Message Details + + F1 INVITE Alice -> Bob + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.alice.example.com:5061 + ;branch=z9hG4bKnashds7 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:a8342043f@atlanta.example.com;gr> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY + Supported: replaces, gruu + Content-Type: application/sdp + + + +Johnston, et al. Best Current Practice [Page 136] + +RFC 5359 SIP Service Examples October 2008 + + + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F2 180 Ringing Bob -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.105 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Content-Length: 0 + + + F3 200 OK Bob -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.105 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + +Johnston, et al. Best Current Practice [Page 137] + +RFC 5359 SIP Service Examples October 2008 + + + F4 ACK Alice -> Bob + + ACK sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bKnashds7 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 1 ACK + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY + Supported: replaces + Content-Length: 0 + + /* Bob REFERs Park Server to establish session with Alice, + which replaces the established session between Alice and Bob. + Note that there is no session established between Bob + and the Park Server. */ + + + F5 REFER Bob -> Park Server + + REFER sips:park@server.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds9 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=02134 + To: Park Server <sips:park@server.example.com> + Call-ID: 4802029847@biloxi.example.com + CSeq: 1 REFER + <allOneLine> + Refer-To: <sips:a8342043f@atlanta.example.com;gr?Replaces= + 12345601%40atlanta.example.com%3Bfrom-tag%3D314159 + %3Bto-tag%3D1234567&Require=replaces> + </allOneLine> + Referred-By: <sips:bob@biloxi.example.com> + Contact: <sips:bob@client.biloxi.example.com> + Content-Length: 0 + + + F6 202 Accepted Park Server -> Bob + + SIP/2.0 202 Accepted + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds9 + ;received=192.0.2.105 + From: Bob <sips:bob@biloxi.example.com>;tag=02134 + To: Park Server <sips:park@server.example.com>;tag=56323 + + + +Johnston, et al. Best Current Practice [Page 138] + +RFC 5359 SIP Service Examples October 2008 + + + Call-ID: 4802029847@biloxi.example.com + Contact: <sips:park@server.example.com> + CSeq: 1 REFER + Content-Length: 0 + + + F7 NOTIFY Park Server -> Bob + + NOTIFY sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74bT6 + To: Bob <sips:bob@biloxi.example.com>;tag=02134 + Max-Forwards: 70 + From: Park Server <sips:park@server.example.com>;tag=56323 + Call-ID: 4802029847@biloxi.example.com + CSeq: 1 NOTIFY + Event: refer + Contact: <sips:park@server.example.com> + Subscription-State: active;expires=60 + Content-Type: message/sipfrag + Content-Length: ... + + SIP/2.0 100 Trying + + + F8 200 OK Bob -> Park Server + + SIP/2.0 200 OK + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74bT6 + ;received=192.0.2.103 + To: Bob <sips:bob@biloxi.example.com>;tag=02134 + From: Park Server <sips:park@server.example.com>;tag=56323 + Call-ID: 4802029847@biloxi.example.com + CSeq: 1 NOTIFY + Content-Length: 0 + + /* Park Server places call to Alice to replace session + between Alice and Bob. */ + + + F9 INVITE Park Server -> Alice + + INVITE sips:a8342043f@atlanta.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74rf + Max-Forwards: 70 + From: <sips:park@server.example.com>;tag=0111 + + + +Johnston, et al. Best Current Practice [Page 139] + +RFC 5359 SIP Service Examples October 2008 + + + To: <sips:a8342043f@atlanta.example.com;gr> + Call-ID: a5-75-34-12-76@server.example.com + CSeq: 1 INVITE + Referred-By: <sips:bob@biloxi.example.com> + Contact: <sips:park@server.example.com>;automaton + ;+sip.byeless;+sip.rendering="no" + Require: replaces + Replaces: 12345601@atlanta.example.com + ;from-tag=314159;to-tag=1234567 + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=ParkServer 2890844576 2890844576 IN IP4 Park.server.example.com + s= + c=IN IP4 server.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F10 200 OK Alice -> Park Server + + SIP/2.0 200 OK + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74rf + ;received=192.0.2.103 + From: <sips:park@server.example.com>;tag=0111 + To: <sips:a8342043f@atlanta.example.com;gr>;tag=098594 + Call-ID: a5-75-34-12-76@server.example.com + CSeq: 1 INVITE + Contact: <sips:a8342043f@atlanta.example.com;gr> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY + Supported: replaces, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + a=recvonly + + + + +Johnston, et al. Best Current Practice [Page 140] + +RFC 5359 SIP Service Examples October 2008 + + + F11 ACK Park Server -> Alice + + ACK sips:a8342043f@atlanta.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK7rfF + Max-Forwards: 70 + From: <sips:park@server.example.com>;tag=0111 + To: <sips:a8342043f@atlanta.example.com;gr>;tag=098594 + Call-ID: a5-75-34-12-76@server.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F12 BYE Alice -> Bob + + BYE sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bKnashds7 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + + F13 200 OK Bob -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.105 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 12345601@atlanta.example.com + CSeq: 2 BYE + Content-Length: 0 + + /* Park Server reports success back to Bob by returning + a 200 OK response. Bob obtains the dialog identifiers + from the headers included in the response. */ + + + F14 NOTIFY Park Server -> Bob + + NOTIFY sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74bf9 + + + +Johnston, et al. Best Current Practice [Page 141] + +RFC 5359 SIP Service Examples October 2008 + + + To: Bob <sips:bob@biloxi.example.com>;tag=02134 + Max-Forwards: 70 + From: Park Server <sips:park@server.example.com>;tag=56323 + Call-ID: 4802029847@biloxi.example.com + CSeq: 2 NOTIFY + Event: refer + Subscription-State: terminated;reason=noresource + Contact: <sips:park@server.example.com>;automaton + ;+sip.byeless;+sip.rendering="no" + Content-Type: message/sipfrag + Content-Length: ... + + SIP/2.0 200 OK + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74rf + ;received=192.0.2.103 + From: <sips:park@server.example.com>;tag=0111 + To: <sips:a8342043f@atlanta.example.com;gr>;tag=098594 + Call-ID: a5-75-34-12-76@server.example.com + CSeq: 1 INVITE + Contact: <sips:a8342043f@atlanta.example.com;gr> + + + F15 200 OK Bob -> Park Server + + SIP/2.0 200 OK + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + To: Bob <sips:bob@biloxi.example.com>;tag=02134 + From: Park Server <sips:park@server.example.com>;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 Server. + Carol needs to know the dialog information to construct + the Replaces header. */ + + + F16 SUBSCRIBE Carol -> Park Server + + SUBSCRIBE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.chicago.example.com:5061 + ;branch=z9hG4bK74b232 + + + +Johnston, et al. Best Current Practice [Page 142] + +RFC 5359 SIP Service Examples October 2008 + + + Max-Forwards: 70 + From: Carol <sips:carol@chicago.example.com>;tag=158x93461 + To: <sips:park@server.example.com> + Call-ID: 2d6485356dfaj34dsf + CSeq: 1 SUBSCRIBE + Contact: <sips:carol@client.chicago.example.com> + Event: dialog + Expires: 0 + Accept: application/dialog-info+xml + Content-Length: 0 + + + F17 200 OK Park Server -> Carol + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.chicago.example.com:5061 + ;branch=z9hG4bK74b232 + ;received=192.0.2.105 + From: Carol <sips:carol@chicago.example.com>;tag=158x93461 + To: <sips:park@server.example.com>;tag=3213j + Call-ID: 2d6485356dfaj34dsf + CSeq: 1 SUBSCRIBE + Contact: <sips:park@server.example.com>;automaton + ;+sip.byeless;+sip.rendering="no" + Content-Length: 0 + + + F18 NOTIFY Park Server -> Carol + + NOTIFY sips:carol@client.example.com SIP/2.0 + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74b8skd + Max-Forwards: 70 + To: Carol <sips:carol@chicago.example.com>;tag=158x93461 + From: <sips:park@server.example.com>;tag=3213j + Call-ID: 2d6485356dfaj34dsf + CSeq: 1 NOTIFY + Contact: <sips:park@server.example.com>;automaton + ;+sip.byeless;+sip.rendering="no" + Event: dialog + Subscription-State: terminated;reason=timeout + Content-Type: application/dialog-info+xml + Content-Length: ... + <?xml version="1.0"?> + <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" + version="0" state="full" entity="sips:park@server.example.com"> + <dialog id="439920143524" + call-id="a5-75-34-12-76@server.example.com" + + + +Johnston, et al. Best Current Practice [Page 143] + +RFC 5359 SIP Service Examples October 2008 + + + local-tag="0111" remote-tag="098594" direction="initiator"> + <duration>1</duration> + <local> + <target>sips:park@server.example.com</target> + </local> + <remote> + <target>sips:a8342043f@atlanta.example.com;gr</target> + </remote> + <state>confirmed</state> + </dialog> + </dialog-info> + + + F19 200 OK Carol -> Park Server + + SIP/2.0 200 OK + Via: SIP/2.0/TLS server.example.com:5061 + ;branch=z9hG4bK74b8skd + ;received=192.0.2.103 + To: Carol <sips:carol@chicago.example.com>;tag=158x93461 + From: <sips:park@server.example.com>;tag=3213j + Call-ID: 2d6485356dfaj34dsf + CSeq: 1 NOTIFY + Contact: <sips:carol@client.chicago.example.com> + Content-Length: 0 + + + F20 INVITE Carol -> Alice + + INVITE sips:alice@atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.chicago.example.com:5061 + ;branch=z9hG4bK74bQ2 + Max-Forwards: 70 + From: Carol <sips:carol@chicago.example.com>;tag=5893461 + To: Alice <sips:alice@atlanta.example.com> + Call-ID: 6485356@chicago.example.com + CSeq: 1 INVITE + Contact: <sips:carol@client.chicago.example.com> + Require: replaces + Replaces: a5-75-34-12-76@server.example.com + ;to-tag=098594;from-tag=0111 + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, + SUBSCRIBE, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + + + +Johnston, et al. Best Current Practice [Page 144] + +RFC 5359 SIP Service Examples October 2008 + + + o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com + s= + c=IN IP4 client.chicago.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F21 200 OK Alice -> Carol + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.chicago.example.com:5061 + ;branch=z9hG4bK74bQ2 + ;received=192.0.2.105 + From: Carol <sips:carol@chicago.example.com>;tag=5893461 + To: Alice <sips:alice@atlanta.example.com>;tag=222 + Call-ID: 6485356@chicago.example.com + CSeq: 1 INVITE + Contact: <sips:a8342043f@atlanta.example.com;gr> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY + Supported: replaces, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844527 2890844527 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F22 ACK Carol -> Alice + + ACK sips:a8342043f@atlanta.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS client.chicago.example.com:5061 + ;branch=z9hG4bK74bJ0 + Max-Forwards: 70 + From: Carol <sips:carol@chicago.example.com>;tag=5893461 + To: Alice <sips:alice@atlanta.example.com>;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. */ + + + +Johnston, et al. Best Current Practice [Page 145] + +RFC 5359 SIP Service Examples October 2008 + + + F23 BYE Alice -> Park Server + + BYE sips:park@server.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74b4N + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=098594 + To: <sips:park@server.example.com>;tag=0111 + Call-ID: a5-75-34-12-76@server.example.com + CSeq: 1 BYE + Content-Length: 0 + + + F24 200 OK Park Server -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74b4N + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=098594 + To: <sips:park@server.example.com>;tag=0111 + Call-ID: a5-75-34-12-76@server.example.com + CSeq: 1 BYE + Content-Length: 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 146] + +RFC 5359 SIP Service Examples October 2008 + + +2.16. Call Pickup + + + Alice Bob Bill + | | | + | INVITE F1 | | + |------------->| | + |180 Ringing F2| | + |<-------------| | + | | SUBSCRIBE F3 | + | |<------------------| + | | 200 OK F4 | + | |------------------>| + | | NOTIFY F5 | + | |------------------>| + | | 200 OK F6 | + | |<------------------| + | INVITE Replaces:Bob F7 | + |<---------------------------------| + | | 200 OK F8 | + |--------------------------------->| + | CANCEL F9 | | + |------------->| | + | 200 OK F10 | | + |<-------------| | + | 487 F11 | | + |<-------------| | + | ACK F12 | | + |------------->| | + | ACK F13 | + |<---------------------------------| + | | + | Two-Way RTP Established | + |<================================>| + | BYE F14 | + |--------------------------------->| + | 200 OK F15 | + |<---------------------------------| + | | + + Bob and Bill are part of a work group at example.com that can pick up + each other's calls. Alice calls Bob, who does not answer. Bill + wishes to pick up the call and sends a SUBSCRIBE to Bob to retrieve + the dialog information. Bill then generates an INVITE with a + Replaces to Alice. Alice answers the INVITE and sends a CANCEL to + stop Bob's phone ringing. Note that the relative order of the + 487/ACK sequence (F11/F12) and the 200 OK to the CANCEL (F10) is not + deterministic. + + + +Johnston, et al. Best Current Practice [Page 147] + +RFC 5359 SIP Service Examples October 2008 + + + This call flow shows the use of the "early-only" parameter [RFC3891] + in the Replaces header field of F7. This parameter prevents Alice + from accepting the INVITE if Bob has already accepted the INVITE. If + Bill had wished to "take" the call from Bob regardless of whether he + had answered, the parameter would not have been present in F7. + + Also note that the subscription between Bob and Carol could have been + established prior to Alice's call. + + Message Details + + F1 INVITE Alice -> Bob + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:a8342043f@atlanta.example.com;gr> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F2 180 Ringing Bob -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=3145678 + Call-ID: 12345600@atlanta.example.com + + + + + + +Johnston, et al. Best Current Practice [Page 148] + +RFC 5359 SIP Service Examples October 2008 + + + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Content-Length: 0 + + /* Bill decides to pick up the call. */ + + + F3 SUBSCRIBE Bill -> Bob + + SUBSCRIBE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS pc.biloxi.example.com:5061 + ;branch=z9hG4bK74bf + Max-Forwards: 70 + From: Bill <sips:bill@biloxi.example.com>;tag=8675309 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: rt4353gs2egg@pc.biloxi.example.com + CSeq: 1 SUBSCRIBE + Contact: <sips:bill@pc.biloxi.example.com> + Event: dialog + Expires: 0 + Accept: application/dialog-info+xml + Content-Length: 0 + + + F4 200 OK Bob -> Bill + + SIP/2.0 200 OK + Via: SIP/2.0/TLS pc.biloxi.example.com:5061 + ;branch=z9hG4bK74bf + ;received=192.0.2.114 + Max-Forwards: 70 + From: Bill <sips:bill@biloxi.example.com>;tag=8675309 + To: Bob <sips:bob@biloxi.example.com>;tag=31451098 + Call-ID: rt4353gs2egg@pc.biloxi.example.com + CSeq: 1 SUBSCRIBE + Content-Length: 0 + + + F5 NOTIFY Bob -> Bill + + NOTIFY sips:bill@pc.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bK74br + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=31451098 + To: Bill <sips:bill@biloxi.example.com>;tag=8675309 + Call-ID: rt4353gs2egg@pc.biloxi.example.com + CSeq: 1 NOTIFY + + + +Johnston, et al. Best Current Practice [Page 149] + +RFC 5359 SIP Service Examples October 2008 + + + Contact: <sips:bob@client.biloxi.example.com> + Event: dialog + Subscription-State: terminated;reason=timeout + Content-Type: application/dialog-info+xml + Content-Length: ... + + <?xml version="1.0"?> + <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" + version="0" state="full" entity="sips:bob@biloxi.example.com"> + <dialog id="94992014524" call-id="12345600@atlanta.example.com" + local-tag="3145678" remote-tag="1234567" direction="recipient"> + <duration>1</duration> + <local> + <identity display="Bob">sips:bob@biloxi.example.com</identity> + <target>sips:bob@client.biloxi.example.com</target> + </local> + <remote> + <identity display="Alice">sips:alice@atlanta.example.com + </identity> + <target>sips:a8342043@atlanta.example.com;gr</target> + </remote> + <state>early</state> + </dialog> + </dialog-info> + + + F6 200 OK Bill -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bK74br + ;received=192.0.2.105 + From: Bob <sips:bob@biloxi.example.com>;tag=31451098 + To: Bill <sips:bill@biloxi.example.com>;tag=8675309 + Call-ID: rt4353gs2egg@pc.biloxi.example.com + CSeq: 1 NOTIFY + Contact: <sips:bill@pc.biloxi.example.com> + Content-Length: 0 + + + F7 INVITE Bill -> Alice + + INVITE sips:a8342043f@atlanta.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS pc.biloxi.example.com:5061 + ;branch=z9hG4bK74HH + Max-Forwards: 70 + From: Bill <sips:bill@biloxi.example.com>;tag=8675310 + To: Alice <sips:alice@atlanta.example.com> + + + +Johnston, et al. Best Current Practice [Page 150] + +RFC 5359 SIP Service Examples October 2008 + + + Call-ID: 563456212@b2.biloxi.example.com + CSeq: 1 INVITE + Require: replaces + Replaces: 12345600@atlanta.example.com + ;from-tag=314578;to-tag=1234567;early-only + Contact: <sips:bill@pc.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bill 2890843122 2890843122 IN IP4 pc.biloxi.example.com + s= + c=IN IP4 pc.biloxi.example.com + t=0 0 + m=audio 5342 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + /* Alice matches the dialog information in the Replaces header + and accepts the INVITE. */ + + + F8 200 OK Alice -> Bill + + SIP/2.0 200 OK + Via: SIP/2.0/TLS pc.biloxi.example.com:5061 + ;branch=z9hG4bK74HH + ;received=192.0.2.114 + From: Bill <sips:bill@biloxi.example.com>;tag=8675310 + To: Alice <sips:alice@atlanta.example.com>;tag=131256 + Call-ID: 563456212@b2.biloxi.example.com + CSeq: 1 INVITE + Contact: <sips:a8342043f@atlanta.example.com;gr> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces, gruu + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 289084543 289084543 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49172 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + /* Alice stops Bob's phone from ringing by sending a CANCEL. */ + + + +Johnston, et al. Best Current Practice [Page 151] + +RFC 5359 SIP Service Examples October 2008 + + + F9 CANCEL Alice -> Bob + + CANCEL sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 CANCEL + Content-Length: 0 + + + F10 200 OK Bob -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=3145678 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 CANCEL + Content-Length: 0 + + + F11 487 Request Terminated Bob -> Alice + + SIP/2.0 487 Request Terminated + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=3145678 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + F12 ACK Alice -> Bob + + ACK sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK83749.1 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=3145678 + + + + +Johnston, et al. Best Current Practice [Page 152] + +RFC 5359 SIP Service Examples October 2008 + + + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F13 ACK Bill -> Alice + + ACK sips:a8342043f@atlanta.example.com;gr SIP/2.0 + Via: SIP/2.0/TLS pc.biloxi.example.com:5061 + ;branch=z9hG4bK7435 + Max-Forwards: 70 + From: Bill <sips:bill@biloxi.example.com>;tag=8675310 + To: Alice <sips:alice@atlanta.example.com>;tag=131256 + Call-ID: 563456212@b2.biloxi.example.com + CSeq: 1 ACK + Content-Length: 0 + + /* RTP streams are established between Alice and Bill. + Later, Alice hangs up with Bill. */ + + + F14 BYE Alice -> Bill + + BYE sips:bill@pc.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf2 + Max-Forwards: 70 + To: Bill <sips:bill@biloxi.example.com>;tag=8675310 + From: Alice <sips:alice@atlanta.example.com>;tag=131256 + Call-ID: 563456212@b2.biloxi.example.com + CSeq: 1 BYE + Content-Length: 0 + + + F15 200 OK Bill -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf2 + ;received=192.0.2.105 + To: Bill <sips:bill@biloxi.example.com>;tag=8675310 + From: Alice <sips:alice@atlanta.example.com>;tag=131256 + Call-ID: 563456212@b2.biloxi.example.com + CSeq: 1 BYE + Content-Length: 0 + + + + + + +Johnston, et al. Best Current Practice [Page 153] + +RFC 5359 SIP Service Examples October 2008 + + +2.17. Automatic Redial + Alice Bob + | | + | INVITE F1 | + |--------------->| + |486 Busy Here F2| + |<---------------| Bob is busy + | ACK F3 | + |--------------->| + | SUBSCRIBE F4 | + |--------------->| + | 200 OK F5 | + |<---------------| + | NOTIFY F6 | + |<---------------| + | 200 OK F7 | + |--------------->| + | | + | NOTIFY F8 | Bob is now available + |<---------------| + | 200 OK F9 | + |--------------->| + | | + | INVITE F10 | + |--------------->| Session setup successful + | 180 Ringing F11| + |<---------------| + | 200 OK F12 | + |<---------------| + | ACK F13 | + |--------------->| + | Media Session | + |<==============>| + | | + | NOTIFY F14 | + |<---------------| + | 200 OK F15 | + |--------------->| + | | + | SUBSCRIBE F16 | Alice terminates subscription + |--------------->| + | 200 OK F17 | + |<---------------| + | NOTIFY F18 | + |<---------------| + | 200 OK F19 | + |--------------->| + | | + + + +Johnston, et al. Best Current Practice [Page 154] + +RFC 5359 SIP Service Examples October 2008 + + + Bob is initially busy when Alice calls. Alice subscribes to Bob's + call state using a SUBSCRIBE F4. Bob sends a NOTIFY F8 when Bob is + available. Alice is alerted, then Alice sends an INVITE to Bob to + establish the session. The subscription is terminated using + SUBSCRIBE F16. + + Message Details + + F1 INVITE Alice -> Bob + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F2 486 Busy Here + + SIP/2.0 486 Busy Here + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=982039i4 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 INVITE + Content-Length: 0 + + + + + + + +Johnston, et al. Best Current Practice [Page 155] + +RFC 5359 SIP Service Examples October 2008 + + + F3 ACK Alice -> Bob + + ACK sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bf9 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=982039i4 + Call-ID: 12345600@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F4 SUBSCRIBE Alice -> Bob + + SUBSCRIBE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74b8G + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=837348234 + To: Bob <sips:bob@biloxi.example.com> + Call-ID: 4524526232@atlanta.example.com + CSeq: 1 SUBSCRIBE + Contact: sips:alice@client.atlanta.example.com + Event: dialog + Accept: application/dialog-info+xml + Content-Length: 0 + + + F5 200 OK Bob -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74b8G + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=837348234 + To: Bob <sips:bob@biloxi.example.com>;tag=341123 + Call-ID: 4524526232@atlanta.example.com + Expires: 60 + CSeq: 1 SUBSCRIBE + Contact: sips:bob@client.biloxi.example.com + Content-Length: 0 + + + + + + + + + +Johnston, et al. Best Current Practice [Page 156] + +RFC 5359 SIP Service Examples October 2008 + + + F6 NOTIFY Bob -> Alice + + NOTIFY sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bK74bn2 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=341123 + To: Alice <sips:alice@atlanta.example.com>;tag=837348234 + Call-ID: 4524526232@atlanta.example.com + CSeq: 1 NOTIFY + Contact: <sips:bob@client.biloxi.example.com> + Event: dialog + Subscription-State: active;expires=59 + Content-Type: application/dialog-info+xml + Content-Length: ... + + <?xml version="1.0"?> + <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" + version="0" state="full" entity="sips:bob@biloxi.example.com"> + <dialog id="562623442g3"> + <duration>1</duration> + <state>confirmed</state> + </dialog> + </dialog-info> + + + F7 200 OK Alice -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bK74bn2 + ;received=192.0.2.105 + From: Bob <sips:bob@biloxi.example.com>;tag=341123 + To: Alice <sips:alice@atlanta.example.com>;tag=837348234 + Call-ID: 4524526232@atlanta.example.com + CSeq: 1 NOTIFY + Content-Length: 0 + + /* Bob is now available. */ + + + F8 NOTIFY Bob -> Alice + + NOTIFY sips:alice@atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bK74bVi + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=341123 + + + +Johnston, et al. Best Current Practice [Page 157] + +RFC 5359 SIP Service Examples October 2008 + + + To: Alice <sips:alice@atlanta.example.com>;tag=837348234 + Call-ID: 4524526232@atlanta.example.com + CSeq: 2 NOTIFY + Event: dialog + Subscription-State: active;expires=27 + Contact: <sips:bob@client.biloxi.example.com> + Content-Type: application/dialog-info+xml + Content-Length: ... + + <?xml version="1.0"?> + <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" + version="0" state="full" entity="sips:bob@biloxi.example.com"> + <dialog id="562623442g3"> + <state>terminated</state> + </dialog> + </dialog-info> + + + F9 200 OK Alice -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bK74bVi + ;received=192.0.2.105 + From: Bob <sips:bob@biloxi.example.com>;tag=341123 + To: Alice <sips:alice@atlanta.example.com>;tag=837348234 + Call-ID: 4524526232@atlanta.example.com + CSeq: 2 NOTIFY + Content-Length: 0 + + + F10 INVITE Alice -> Bob + + INVITE sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfq + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=f23fkg14k + To: Bob <sips:bob@biloxi.example.com> + Call-ID: aoij4i9okitr@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:alice@client.atlanta.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + + + + +Johnston, et al. Best Current Practice [Page 158] + +RFC 5359 SIP Service Examples October 2008 + + + v=0 + o=alice 2890844826 2890844826 IN IP4 client.atlanta.example.com + s= + c=IN IP4 client.atlanta.example.com + t=0 0 + m=audio 49170 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F11 180 Ringing Bob -> Alice + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfq + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=f23fkg14k + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: aoij4i9okitr@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Content-Length: 0 + + + F12 200 OK Bob -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bfq + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=f23fkg14k + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: aoij4i9okitr@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890854527 2890854527 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + + + +Johnston, et al. Best Current Practice [Page 159] + +RFC 5359 SIP Service Examples October 2008 + + + F13 ACK Alice -> Bob + + ACK sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK74bLBJ + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=f23fkg14k + To: Bob <sips:bob@biloxi.example.com>;tag=23431 + Call-ID: aoij4i9okitr@atlanta.example.com + CSeq: 1 ACK + Content-Length: 0 + + + F14 NOTIFY Bob -> Alice + + NOTIFY sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bK4bnd2 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=341123 + To: Alice <sips:alice@atlanta.example.com>;tag=837348234 + Call-ID: 4524526232@atlanta.example.com + CSeq: 3 NOTIFY + Contact: <sips:bob@client.biloxi.example.com> + Event: dialog + Subscription-State: active;expires=15 + Content-Type: application/dialog-info+xml + Content-Length: ... + + <?xml version="1.0"?> + <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" + version="0" state="full" entity="sips:bob@biloxi.example.com"> + <dialog id="62d2623442g3"> + <duration>1</duration> + <state>confirmed</state> + </dialog> + </dialog-info> + + + F15 200 OK Alice -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bK4bnd2 + ;received=192.0.2.105 + From: Bob <sips:bob@biloxi.example.com>;tag=341123 + To: Alice <sips:alice@atlanta.example.com>;tag=837348234 + + + + +Johnston, et al. Best Current Practice [Page 160] + +RFC 5359 SIP Service Examples October 2008 + + + Call-ID: 4524526232@atlanta.example.com + CSeq: 3 NOTIFY + Content-Length: 0 + + /* Alice terminates the subscription. */ + + + F16 SUBSCRIBE Alice -> Bob + + SUBSCRIBE sips:bob@client.biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK474b8 + Max-Forwards: 70 + From: Alice <sips:alice@atlanta.example.com>;tag=837348234 + To: Alice <sips:alice@atlanta.example.com>;tag=837348234 + Call-ID: 4524526232@atlanta.example.com + CSeq: 2 SUBSCRIBE + Contact: sips:alice@client.atlanta.example.com + Event: dialog + Expires: 0 + Accept: application/dialog-info+xml + Content-Length: 0 + + + F17 200 OK Bob -> Alice + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.atlanta.example.com:5061 + ;branch=z9hG4bK474b8 + ;received=192.0.2.103 + From: Alice <sips:alice@atlanta.example.com>;tag=837348234 + To: Bob <sips:bob@biloxi.example.com>;tag=341123 + Call-ID: 4524526232@atlanta.example.com + Expires: 0 + CSeq: 2 SUBSCRIBE + Contact: sips:bob@client.biloxi.example.com + Content-Length: 0 + + + F18 NOTIFY Bob -> Alice + + NOTIFY sips:alice@client.atlanta.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKb5n2j + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=341123 + To: Alice <sips:alice@atlanta.example.com>;tag=837348234 + Call-ID: 4524526232@atlanta.example.com + + + +Johnston, et al. Best Current Practice [Page 161] + +RFC 5359 SIP Service Examples October 2008 + + + CSeq: 4 NOTIFY + Contact: <sips:bob@client.biloxi.example.com> + Event: dialog + Subscription-State: terminated;reason=noresource + Content-Type: application/dialog-info+xml + Content-Length: ... + + <?xml version="1.0"?> + <dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info" + version="0" state="full" entity="sips:bob@biloxi.example.com"> + <dialog id="62d2623442g3"> + <duration>3</duration> + <state>confirmed</state> + </dialog> + </dialog-info> + + + F19 200 OK Alice -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKb5n2j + ;received=192.0.2.105 + From: Bob <sips:bob@biloxi.example.com>;tag=341123 + To: Alice <sips:alice@atlanta.example.com>;tag=837348234 + Call-ID: 4524526232@atlanta.example.com + CSeq: 4 NOTIFY + Content-Length: 0 + + + + + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 162] + +RFC 5359 SIP Service Examples October 2008 + + +2.18. Click to Dial + + Bob's PC Bob Carol + | REFER Refer-To:Carol F1 | + |------------------->| | + | 202 Accepted F2 | | + |<-------------------| | + | | INVITE F3 | + | |------------------->| + | | 180 Ringing F4 | + | |<-------------------| + | | 200 OK F5 | + | |<-------------------| + | | ACK F6 | + | |------------------->| + | | RTP | + | |<==================>| + | | | + + In this example, while browsing the web on his PC, Bob clicks on + Carol's SIP URI, intending to establish a session with Carol. Bob's + web browser passes the SIP URI to the SIP client on Bob's PC. The PC + client is configured with the URI of Bob's SIP phone. A REFER is + sent to the SIP phone, which results in the establishment of the + session between Bob and Carol. + + Note that Bob's PC requests that no REFER dialog be established by + the use of the Refer-Sub: false header field [RFC4488]. + + This flow is preferable to the 3pcc flow because the end-to-end SIP + signaling is not interrupted by the 3pcc controller, and because + Bob's experience of the call will not be marred by the lack of + ringback tone or possible clipping. Suitable authorization of the + REFER and explicit authorization of the triggered INVITE by Bob are + necessary. + + Message Details + + /* Bob's PC SIP client sends a REFER to Bob's SIP phone. */ + + F1 REFER PC -> Bob + + REFER sips:bob@biloxi.example.com SIP/2.0 + Via: SIP/2.0/TLS pc.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + Max-Forwards: 70 + From: <sips:pc.biloxi.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com> + + + +Johnston, et al. Best Current Practice [Page 163] + +RFC 5359 SIP Service Examples October 2008 + + + Call-ID: 1234560183434 + CSeq: 1 REFER + Refer-To: <sips:carol@chicago.example.com> + Refer-Sub: false + Contact: <sips:pc.biloxi.example.com> + Content-Length: 0 + + + F2 202 Accepted Bob -> PC + + SIP/2.0 202 Accepted + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashds7 + ;received=192.0.2.103 + From: <sips:pc.biloxi.example.com>;tag=1234567 + To: Bob <sips:bob@biloxi.example.com>;tag=314159 + Call-ID: 1234560183434 + Contact: <sips:bob@client.biloxi.example.com> + CSeq: 1 REFER + Refer-Sub: false + Content-Length: 0 + + + F3 INVITE Bob -> Carol + + INVITE sips:carol@chicago.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashdK9 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com> + Call-ID: 7436222@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:bob@client.biloxi.example.com> + Referred-By: <sips:pc.biloxi.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=bob 2890844539 2890844539 IN IP4 client.biloxi.example.com + s= + c=IN IP4 client.biloxi.example.com + t=0 0 + m=audio 3458 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + + +Johnston, et al. Best Current Practice [Page 164] + +RFC 5359 SIP Service Examples October 2008 + + + F4 180 Ringing Carol -> Bob + + SIP/2.0 180 Ringing + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashdK9 + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=928287 + Call-ID: 7436222@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:carol@client.chicago.example.com> + Content-Length: 0 + + + F5 200 OK Carol -> Bob + + SIP/2.0 200 OK + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashdK9 + ;received=192.0.2.113 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=928287 + Call-ID: 7436222@atlanta.example.com + CSeq: 1 INVITE + Contact: <sips:carol@client.chicago.example.com> + Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY + Supported: replaces + Content-Type: application/sdp + Content-Length: ... + + v=0 + o=carol 2890844527 2890844527 IN IP4 client.chicago.example.com + s= + c=IN IP4 client.chicago.example.com + t=0 0 + m=audio 3456 RTP/AVP 0 + a=rtpmap:0 PCMU/8000 + + + F6 ACK Bob -> Carol + + ACK sips:carol@client.chicago.example.com SIP/2.0 + Via: SIP/2.0/TLS client.biloxi.example.com:5061 + ;branch=z9hG4bKnashd43 + Max-Forwards: 70 + From: Bob <sips:bob@biloxi.example.com>;tag=8675309 + To: Carol <sips:carol@chicago.example.com>;tag=928287 + + + + +Johnston, et al. Best Current Practice [Page 165] + +RFC 5359 SIP Service Examples October 2008 + + + 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 [FRAMEWORK] apply. + + Many of the services shown in this document rely on a particular user + agent being part of a group. Members of a group could be, for + example, employees within a particular department, a set of home + phone extensions, members of a call center, etc. As such, user + agents that are part of the group permit other group members special + privileges and features. For example, while a user agent may not in + general allow another user agent to learn detailed dialog + information, this information might be shared with another group + member in order to facilitate a service such as call pickup. Group + members must be authenticated using normal SIP means such as + certificates or shared secrets. + + The service examples in this document make extensive use of the SIP + call control primitives REFER, Replaces, Join, and the dialog + package. The security considerations associated with each of these + extensions [RFC3515], [RFC3891], [RFC3911], [RFC4235] apply to the + scenarios in this document. + +4. Acknowledgements + + The authors would like to thank the following reviewers of the + document for their detailed comments and corrections: Vijay Gurbani, + John Elwell, Joel Repiquet, Nagesh Kumar, Chandra Ravipati, Eric + Burger, Jeroen Bemmel, Miguel Garcia, and Dale Worley. + + The Transfer - Instant Messaging call flow is based on the "IM-a- + call" call flow by Jonathan Rosenberg and Henning Schulzrinne. The + Automatic Redial call flow is based on a call flow by Adam Roach. + The authors wish to thank the following individuals for their + assistance and review of this call flows document: Joel Repiquet, Aki + Neimi, Rohan Mahy, Jonathan Rosenberg, Hemant Agrawal, Henry + Sinnreich, Dean Willis, David Devanatham, Joe Pizzimenti, Matt + Cannon, John Hearty, the whole MCI WorldCom IPOP Design team, Scott + + + + + + +Johnston, et al. Best Current Practice [Page 166] + +RFC 5359 SIP Service Examples October 2008 + + + 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. + +5. References + +5.1. Normative References + + [RFC3261] 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. + + [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model + with Session Description Protocol (SDP)", RFC 3264, + June 2002. + + [RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific + Event Notification", RFC 3265, June 2002. + + [RFC3428] Campbell, B., Rosenberg, J., Schulzrinne, H., Huitema, + C., and D. Gurle, "Session Initiation Protocol (SIP) + Extension for Instant Messaging", RFC 3428, + December 2002. + + [RFC3515] Sparks, R., "The Session Initiation Protocol (SIP) Refer + Method", RFC 3515, April 2003. + + [RFC3840] Rosenberg, J., Schulzrinne, H., and P. Kyzivat, + "Indicating User Agent Capabilities in the Session + Initiation Protocol (SIP)", RFC 3840, August 2004. + + [RFC3891] Mahy, R., Biggs, B., and R. Dean, "The Session + Initiation Protocol (SIP) "Replaces" Header", RFC 3891, + September 2004. + + [RFC3911] Mahy, R. and D. Petrie, "The Session Initiation Protocol + (SIP) "Join" Header", RFC 3911, October 2004. + + [RFC4235] Rosenberg, J., Schulzrinne, H., and R. Mahy, "An INVITE- + Initiated Dialog Event Package for the Session + Initiation Protocol (SIP)", RFC 4235, November 2005. + + [RFC4488] Levin, O., "Suppression of Session Initiation Protocol + (SIP) REFER Method Implicit Subscription", RFC 4488, + May 2006. + + + + +Johnston, et al. Best Current Practice [Page 167] + +RFC 5359 SIP Service Examples October 2008 + + + [RFC4579] Johnston, A. and O. Levin, "Session Initiation Protocol + (SIP) Call Control - Conferencing for User Agents", + BCP 119, RFC 4579, August 2006. + +5.2. Informative References + + [FRAMEWORK] Mahy, R., Sparks, R., Rosenberg, J., Petrie, D., and A. + Johnston, "A Call Control and Multi-party usage + framework for the Session Initiation Protocol (SIP)", + Work in Progress, April 2008. + + [GRUU] Rosenberg, J., "Obtaining and Using Globally Routable + User Agent (UA) URIs (GRUU) in the Session Initiation + Protocol (SIP)", Work in Progress, October 2007. + + [RFC3665] Johnston, A., Donovan, S., Sparks, R., Cunningham, C., + and K. Summers, "Session Initiation Protocol (SIP) Basic + Call Flow Examples", BCP 75, RFC 3665, December 2003. + + [RFC3725] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. + Camarillo, "Best Current Practices for Third Party Call + Control (3pcc) in the Session Initiation Protocol + (SIP)", BCP 85, RFC 3725, April 2004. + + [RFC4317] Johnston, A. and R. Sparks, "Session Description + Protocol (SDP) Offer/Answer Examples", RFC 4317, + December 2005. + + [RFC4475] Sparks, R., Hawrylyshen, A., Johnston, A., Rosenberg, + J., and H. Schulzrinne, "Session Initiation Protocol + (SIP) Torture Test Messages", RFC 4475, May 2006. + + [TRANSFER] Sparks, R. and A. Johnston, "Session Initiation Protocol + Call Control - Transfer", Work in Progress, + September 2008. + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 168] + +RFC 5359 SIP Service Examples October 2008 + + +Authors' Addresses + + Alan Johnston (editor) + Avaya + St. Louis, MO 63124 + + EMail: alan@sipstation.com + + + Robert J. Sparks + Tekelec + + EMail: RjS@nostrum.com + + + Chris Cunningham + Cisco Systems + + EMail: chrcunni@cisco.com + + + Steve Donovan + Cisco Systems + + EMail: srd@cisco.com + + + Kevin Summers + Sonus + Plano, TX 75093 + + EMail: ksummers@sonusnet.com + + + + + + + + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 169] + +RFC 5359 SIP Service Examples October 2008 + + +Full Copyright Statement + + Copyright (C) The IETF Trust (2008). + + This document is subject to the rights, licenses and restrictions + contained in BCP 78, and except as set forth therein, the authors + retain all their rights. + + This document and the information contained herein are provided on an + "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS + OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND + THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF + THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Intellectual Property + + The IETF takes no position regarding the validity or scope of any + Intellectual Property Rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; nor does it represent that it has + made any independent effort to identify any such rights. Information + on the procedures with respect to rights in RFC documents can be + found in BCP 78 and BCP 79. + + Copies of IPR disclosures made to the IETF Secretariat and any + assurances of licenses to be made available, or the result of an + attempt made to obtain a general license or permission for the use of + such proprietary rights by implementers or users of this + specification can be obtained from the IETF on-line IPR repository at + http://www.ietf.org/ipr. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights that may cover technology that may be required to implement + this standard. Please address the information to the IETF at + ietf-ipr@ietf.org. + + + + + + + + + + + + +Johnston, et al. Best Current Practice [Page 170] + |