[RFCs/IDs] [Plain Text] [Tracker] [WG] [Email] [Diff1] [Diff2] [Nits]
Versions: 00 01 02 03 04 05 06 07 08 09 10 11
12 13 14 15
SIPPING Working Group A. Johnston, Ed.
Internet-Draft Avaya
Intended status: BCP R. Sparks
Expires: January 12, 2009 Estacado Systems
C. Cunningham
S. Donovan
Cisco Systems
K. Summers
Sonus
July 11, 2008
Session Initiation Protocol Service Examples
draft-ietf-sipping-service-examples-15
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on January 12, 2009.
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
Johnston, et al. Expires January 12, 2009 [Page 1]
Internet-Draft SIP Service Examples July 2008
including the REFER, SUBSCRIBE, and NOTIFY methods and the Replaces
and Join header fields. These features are not intended to be an
exhaustive set, but rather show implementations of common features
likely to be implemented on SIP IP telephones in a business
environment.
Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Service Examples . . . . . . . . . . . . . . . . . . . . . . 5
2.1. Call Hold . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2. Consultation Hold . . . . . . . . . . . . . . . . . . . . 18
2.3. Music On Hold . . . . . . . . . . . . . . . . . . . . . . 36
2.4. Transfer - Unattended . . . . . . . . . . . . . . . . . . 49
2.5. Transfer - Attended . . . . . . . . . . . . . . . . . . . 56
2.6. Transfer - Instant Messaging . . . . . . . . . . . . . . 70
2.7. Call Forwarding Unconditional . . . . . . . . . . . . . . 76
2.8. Call Forwarding - Busy . . . . . . . . . . . . . . . . . 82
2.9. Call Forwarding - No Answer . . . . . . . . . . . . . . . 90
2.10. 3-way Conference - Third Party is Added . . . . . . . . . 99
2.11. 3-way Conference - Third Party Joins . . . . . . . . . . 105
2.12. Find-Me . . . . . . . . . . . . . . . . . . . . . . . . . 110
2.13. Call Management (Incoming Call Screening) . . . . . . . . 122
2.14. Call Management (Outgoing Call Screening) . . . . . . . . 129
2.15. Call Park . . . . . . . . . . . . . . . . . . . . . . . . 132
2.16. Call Pickup . . . . . . . . . . . . . . . . . . . . . . . 144
2.17. Automatic Redial . . . . . . . . . . . . . . . . . . . . 150
2.18. Click to Dial . . . . . . . . . . . . . . . . . . . . . . 159
3. Security Considerations . . . . . . . . . . . . . . . . . . . 162
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 163
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 163
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 163
6.1. Normative References . . . . . . . . . . . . . . . . . . 163
6.2. Informative References . . . . . . . . . . . . . . . . . 164
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 165
Intellectual Property and Copyright Statements . . . . . . . . . 167
Johnston, et al. Expires January 12, 2009 [Page 2]
Internet-Draft SIP Service Examples July 2008
1. Overview
This document provides example call flows detailing a SIP
implementation of the following traditional telephony services:
Call Hold Music on Hold
Unattended Transfer Consultation Hold
Unconditional Call Forwarding Attended Transfer
No Answer Call Forwarding Busy Call Forwarding
3-way Call Incoming Call Screening
Find-Me Call Pickup
Call Park Outgoing Call Screening
Automatic Redial Click to Dial
Note that the Single Line Extension call flow has been removed from
this document and will be covered in a separate document.
The call flows shown in this document were developed in the design of
a SIP IP communications network. They represent an example set of
so-called IP Centrex services or PBX services.
It is the hope of the authors that this document will be useful for
SIP implementers, designers, and protocol researchers alike and will
help further the goal of a standard implementation of RFC 3261
[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 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 (B2BUA) 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
[I-D.ietf-sipping-cc-framework].
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
Johnston, et al. Expires January 12, 2009 [Page 3]
Internet-Draft SIP Service Examples July 2008
extension REFER [RFC3515] and 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 [RFC4235] document describes the
dialog event package. Some examples make use of the GRUU (Globally
Routable User Agent URI) [I-D.ietf-sip-gruu] extension.
These flows were prepared assuming a network of proxies, registrars,
and other SIP servers. The use of Secure SIP URIs (sips) is shown
throughout this document, implying TLS transport on each hop with
assumed certificate validation. However, other security approaches
can be used. The use of Digest authentication is shown in some
examples.
The emphasis in these call flows is the SIP signaling exchange. As a
result, only very simple SDP offer/answer exchanges are shown with
audio media. These flows apply equally well for other media and
multi-media sessions. For more advanced examples of SDP offer/answer
exchanges, refer to [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.
1.1 Legend for Message Flows
Dashed lines (---) represent control messages that are mandatory to
the call scenario. These control messages can be SIP signaling.
Double dashed lines (===) represent media paths between network
elements.
Messages with parenthesis around name represent optional control
messages.
Messages are identified in the Figures as F1, F2, etc. This
references the message details in the table that follows the Figure.
Lines longer than 72 characters are handled using the <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. Expires January 12, 2009 [Page 4]
Internet-Draft SIP Service Examples July 2008
2. Service Examples
2.1. Call Hold
Johnston, et al. Expires January 12, 2009 [Page 5]
Internet-Draft SIP Service Examples July 2008
Alice Proxy Bob
| | |
| INVITE F1 | |
|--------------->| |
| | INVITE F2 |
|(100 Trying) F3 |------------->|
|<---------------| |
| |180 Ringing F4|
| 180 Ringing F5 |<-------------|
|<---------------| |
| | 200 OK F6 |
| 200 OK F7 |<-------------|
|<---------------| |
| ACK F8 | |
|--------------->| ACK F9 |
| |------------->|
| Both way RTP Established |
|<=============================>|
| |INVITE(hold) F10
|INVITE(hold) F11|<-------------|
|<---------------| |
| 200 OK F12 | |
|--------------->| 200 OK F13 |
| |------------->|
| | ACK F14 |
| ACK F15 |<-------------|
|<---------------| |
| No RTP Sent! |
| | INVITE F16 |
| INVITE F17 |<-------------|
|<---------------| |
| 200 OK F18 | |
|--------------->| 200 OK F19 |
| |------------->|
| | ACK F20 |
| ACK F21 |<-------------|
|<---------------| |
| Both way RTP Established |
|<=============================>|
| BYE F22 | |
|--------------->| BYE F23 |
| |------------->|
| | 200 OK F24 |
| 200 OK F25 |<-------------|
|<---------------| |
| | |
In this scenario, Alice calls Bob, then Bob places the call on hold.
Johnston, et al. Expires January 12, 2009 [Page 6]
Internet-Draft SIP Service Examples July 2008
Bob then takes the call off hold, then Alice hangs up the call. Note
that hold is unidirectional in nature. However, a UA that places the
other party on hold will generally also stop sending media, resulting
in no media exchange between the UAs. Older UAs may set the
connection address to 0.0.0.0 when initiating hold. However, this
behavior has been deprecated in favor of using the a=sendonly SDP
attribute.
Also note the use of the rendering feature tag defined in RFC 4235
[RFC4235] used in F10 and F11 to indicate in that Bob's UA is no
longer rendering media to Bob, i.e. that Bob has placed the call on
hold.
Message Details
F1 INVITE Alice -> Proxy 1
INVITE sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
Max-Forwards: 70
From: Alice <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
;branch=z9hG4bK74bf9
Johnston, et al. Expires January 12, 2009 [Page 7]
Internet-Draft SIP Service Examples July 2008
;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
Call-ID: 12345601@atlanta.example.com
Johnston, et al. Expires January 12, 2009 [Page 8]
Internet-Draft SIP Service Examples July 2008
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. Expires January 12, 2009 [Page 9]
Internet-Draft SIP Service Examples July 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. Expires January 12, 2009 [Page 10]
Internet-Draft SIP Service Examples July 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. Expires January 12, 2009 [Page 11]
Internet-Draft SIP Service Examples July 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: ...
v=0
o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com
Johnston, et al. Expires January 12, 2009 [Page 12]
Internet-Draft SIP Service Examples July 2008
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
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Johnston, et al. Expires January 12, 2009 [Page 13]
Internet-Draft SIP Service Examples July 2008
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
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
Johnston, et al. Expires January 12, 2009 [Page 14]
Internet-Draft SIP Service Examples July 2008
F17 INVITE Proxy 1 -> Alice
INVITE sips:alice@client.atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK837493.1
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds73
;received=192.0.2.105
Record-Route: <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
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. Expires January 12, 2009 [Page 15]
Internet-Draft SIP Service Examples July 2008
v=0
o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com
s=
c=IN IP4 client.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F19 200 OK Proxy 1 -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds73
;received=192.0.2.105
Record-Route: <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
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
Johnston, et al. Expires January 12, 2009 [Page 16]
Internet-Draft SIP Service Examples July 2008
Content-Length: 0
F21 ACK Proxy 1 -> Alice
ACK sips:alice@client.atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK837494.1
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds74
;received=192.0.2.105
Max-Forwards: 69
From: Bob <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
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
Johnston, et al. Expires January 12, 2009 [Page 17]
Internet-Draft SIP Service Examples July 2008
Call-ID: 12345601@atlanta.example.com
CSeq: 2 BYE
Content-Length: 0
F24 200 OK Bob -> Proxy 1
SIP/2.0 200 OK
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK837497.1
;received=192.0.2.54
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf97
;received=192.0.2.103
From: Alice <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
2.2. Consultation Hold
Alice Proxy Bob Carol
| | | |
| INVITE F1 | | |
|--------------->| INVITE F2 | |
| |------------->| |
|(100 Trying) F3 | | |
|<---------------|180 Ringing F4| |
| |<-------------| |
| 180 Ringing F5 | | |
|<---------------| 200 OK F6 | |
| |<-------------| |
| 200 OK F7 | | |
|<---------------| | |
Johnston, et al. Expires January 12, 2009 [Page 18]
Internet-Draft SIP Service Examples July 2008
| ACK F8 | | |
|--------------->| ACK F9 | |
| |------------->| |
| Both way RTP Established | |
|<=============================>| |
| |INVITE(hold) F10 |
|INVITE(hold) F11|<-------------| |
|<---------------| | |
| 200 OK F12 | | |
|--------------->| 200 OK F13 | |
| |------------->| |
| | ACK F14 | |
| |<-------------| |
| ACK F15 | | |
|<---------------| | |
| No RTP Sent! | |
| | INVITE F16 | |
| |<-------------| |
| | | INVITE F17 |
| |--------------------------------->|
| |(100 Trying) F18 |
| |------------->| |
| | | 180 Ringing F19 |
| |<---------------------------------|
| | 180 Ringing F20 |
| |------------->| |
| | | 200 OK F21 |
| |<---------------------------------|
| | 200 OK F22 | |
| |------------->| |
| | ACK F23 | |
| |<-------------| |
| | | ACK F24 |
| |--------------------------------->|
| | Both way RTP Established |
| | |<=================>|
| | BYE F25 | |
| |<-------------| |
| | | BYE F26 |
| |--------------------------------->|
| | | 200 OK F27 |
| |<---------------------------------|
| | 200 OK F28 | |
| |------------->| |
| | INVITE F29 | |
| INVITE F30 |<-------------| |
|<---------------| | |
| 200 OK F31 | | |
Johnston, et al. Expires January 12, 2009 [Page 19]
Internet-Draft SIP Service Examples July 2008
|--------------->| 200 OK F32 | |
| |------------->| |
| | ACK F33 | |
| |<-------------| |
| ACK F34 | | |
|<---------------| | |
| Both way RTP Established | |
|<=============================>| |
| BYE F35 | | |
|--------------->| BYE F36 | |
| |------------->| |
| | 200 OK F37 | |
| |<-------------| |
| 200 OK F38 | | |
|<---------------| | |
| | | |
In this scenario, Alice calls Bob. Bob places call on hold. Bob
calls Carol. Bob then disconnects with Carol, then takes the call
with Alice off hold. The call ends when Alice hangs up.
Also note the use of the rendering feature tag defined in RFC 4235
[RFC4235] used in F10 to indicate in that Bob's UA is no longer
rendering media to Bob, i.e. that Bob has placed the call on hold.
Message Details
F1 INVITE Alice -> Proxy 1
INVITE sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
Max-Forwards: 70
From: Alice <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
Johnston, et al. Expires January 12, 2009 [Page 20]
Internet-Draft SIP Service Examples July 2008
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 INVITE Proxy 1 -> Bob
INVITE sips:bob@client.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK83749.1
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
;received=192.0.2.103
Record-Route: <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
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
Johnston, et al. Expires January 12, 2009 [Page 21]
Internet-Draft SIP Service Examples July 2008
SIP/2.0 180 Ringing
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK83749.1
;received=192.0.2.54
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
;received=192.0.2.103
Record-Route: <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
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
Johnston, et al. Expires January 12, 2009 [Page 22]
Internet-Draft SIP Service Examples July 2008
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com
s=
c=IN IP4 client.biloxi.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F7 200 OK Proxy 1 -> Alice
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
;received=192.0.2.103
Record-Route: <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
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
Johnston, et al. Expires January 12, 2009 [Page 23]
Internet-Draft SIP Service Examples July 2008
CSeq: 1 ACK
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Length: 0
F9 ACK Proxy 1 -> Bob
ACK sips:bob@client.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK837494.1
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf45
;received=192.0.2.103
Max-Forwards: 69
From: Alice <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
/* 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
Johnston, et al. Expires January 12, 2009 [Page 24]
Internet-Draft SIP Service Examples July 2008
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendonly
F11 INVITE Proxy 1 -> Alice
INVITE sips:alice@client.atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK837497.1
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds7
;received=192.0.2.105
Record-Route: <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: ...
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
Johnston, et al. Expires January 12, 2009 [Page 25]
Internet-Draft SIP Service Examples July 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 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: 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
Johnston, et al. Expires January 12, 2009 [Page 26]
Internet-Draft SIP Service Examples July 2008
;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
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
Johnston, et al. Expires January 12, 2009 [Page 27]
Internet-Draft SIP Service Examples July 2008
t=0 0
m=audio 50170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F17 INVITE Proxy 1 -> Carol
INVITE sips:carol@client.chicago.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK83749a.1
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds22
;received=192.0.2.105
Record-Route: <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
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
Johnston, et al. Expires January 12, 2009 [Page 28]
Internet-Draft SIP Service Examples July 2008
SIP/2.0 180 Ringing
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK83749a.1
;received=192.0.2.54
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds22
;received=192.0.2.105
Record-Route: <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
;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
Johnston, et al. Expires January 12, 2009 [Page 29]
Internet-Draft SIP Service Examples July 2008
Content-Type: application/sdp
Content-Length: ...
v=0
o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com
s=
c=IN IP4 client.chicago.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F22 200 OK Proxy 1 -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds22
;received=192.0.2.105
Record-Route: <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
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
Johnston, et al. Expires January 12, 2009 [Page 30]
Internet-Draft SIP Service Examples July 2008
CSeq: 1 ACK
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Length: 0
F24 ACK Proxy 1 -> Carol
ACK sips:carol@client.chicago.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK83749b.1
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds24
;received=192.0.2.105
Max-Forwards: 69
From: Bob <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
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
Johnston, et al. Expires January 12, 2009 [Page 31]
Internet-Draft SIP Service Examples July 2008
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
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
Johnston, et al. Expires January 12, 2009 [Page 32]
Internet-Draft SIP Service Examples July 2008
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
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
Johnston, et al. Expires January 12, 2009 [Page 33]
Internet-Draft SIP Service Examples July 2008
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
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
Johnston, et al. Expires January 12, 2009 [Page 34]
Internet-Draft SIP Service Examples July 2008
F33 ACK Bob -> Proxy 1
ACK sips:alice@client.atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds7d7
Route: <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
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
Johnston, et al. Expires January 12, 2009 [Page 35]
Internet-Draft SIP Service Examples July 2008
F36 BYE Proxy 1 -> Bob
BYE sips:bob@client.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK8379.1
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf10
;received=192.0.2.103
Max-Forwards: 69
From: Alice <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
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
2.3. Music On Hold
Alice Bob Music Server
Johnston, et al. Expires January 12, 2009 [Page 36]
Internet-Draft SIP Service Examples July 2008
| | |
| INVITE F1 | |
|--------------->| |
| 180 Ringing F2 | |
|<---------------| |
| 200 OK F3 | |
|<---------------| |
| ACK F4 | |
|--------------->| |
| RTP | |
|<==============>| |
| | |
| Bob places Alice on hold |
| | |
| INVITE (hold) F5 |
|<---------------| |
| 200 OK F6 | |
|--------------->| |
| ACK F7 | |
|<---------------| |
| no RTP | |
| | |
| Bob initiates music on hold |
| | |
| | REFER Refer-To: A F8
| |------------->|
| | 202 F9 |
| |<-------------|
| | NOTIFY F10 |
| |<-------------|
| | 200 F11 |
| |------------->|
| INVITE F12 Replaces: B |
|<------------------------------|
| 200 OK F13 |
|------------------------------>|
| ACK F14 |
|<------------------------------|
| RTP Music |
|<==============================|
| BYE F15 | |
|--------------->| NOTIFY F17 |
| 200 OK F16 |<-------------|
|<---------------| 200 OK F18 |
| |------------->|
| | |
| The music on hold is complete |
| | |
Johnston, et al. Expires January 12, 2009 [Page 37]
Internet-Draft SIP Service Examples July 2008
| Bob takes Alice off hold |
| | |
| INVITE Replaces: M F19 |
|<---------------| |
| 200 OK F20 | |
|--------------->| |
| ACK F21 | |
|<---------------| |
| RTP | |
|<==============>| |
| BYE F22 |
|------------------------------>|
| 200 OK F23 |
|<------------------------------|
In this flow, Bob places Alice on hold with music. This is performed
by Bob sending a REFER to a Music Server which sends an INVITE with
Replaces to Alice. The Music Server then sends RTP music to Alice.
Bob picks the call up from hold by sending an INVITE with Replaces to
Alice.
Note the use of the rendering feature tag defined in RFC 4235
[RFC4235] used in F5 to indicate in that Bob's UA is no longer
rendering media to Bob, i.e. that Bob has placed the call on hold.
Feature tags are also used in F12 with the automaton (defined in RFC
3840 [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. Expires January 12, 2009 [Page 38]
Internet-Draft SIP Service Examples July 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. Expires January 12, 2009 [Page 39]
Internet-Draft SIP Service Examples July 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
F6 200 OK Alice -> Bob
Johnston, et al. Expires January 12, 2009 [Page 40]
Internet-Draft SIP Service Examples July 2008
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bK874bk
;received=192.0.2.105
To: Alice <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
Max-Forwards: 70
Johnston, et al. Expires January 12, 2009 [Page 41]
Internet-Draft SIP Service Examples July 2008
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
F11 200 OK Bob -> Music Server
Johnston, et al. Expires January 12, 2009 [Page 42]
Internet-Draft SIP Service Examples July 2008
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
F13 200 OK Alice -> Music Server
SIP/2.0 200 OK
Johnston, et al. Expires January 12, 2009 [Page 43]
Internet-Draft SIP Service Examples July 2008
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
CSeq: 2 BYE
Content-Length: 0
Johnston, et al. Expires January 12, 2009 [Page 44]
Internet-Draft SIP Service Examples July 2008
F16 200 OK Bob -> Alice
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bKnashds7
;received=192.0.2.105
From: Alice <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>
F18 200 OK Bob -> Music Server
SIP/2.0 200 OK
Via: SIP/2.0/TLS server.example.com:5061
Johnston, et al. Expires January 12, 2009 [Page 45]
Internet-Draft SIP Service Examples July 2008
;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
F20 200 OK Alice -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bK74bf9
Johnston, et al. Expires January 12, 2009 [Page 46]
Internet-Draft SIP Service Examples July 2008
;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
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
Johnston, et al. Expires January 12, 2009 [Page 47]
Internet-Draft SIP Service Examples July 2008
F23 200 OK Music Server -> Alice
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74rf
;received=192.0.2.103
To: <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. Expires January 12, 2009 [Page 48]
Internet-Draft SIP Service Examples July 2008
2.4. Transfer - Unattended
Alice Bob Carol
| INVITE F1 | |
|<-------------------| |
| 180 Ringing F2 | |
|------------------->| |
| 200 OK F3 | |
|------------------->| |
| ACK F4 | |
|<-------------------| |
| RTP | |
|<==================>| |
| | |
| Alice performs unattended transfer |
| | |
| REFER Refer-To:C F5| |
|------------------->| |
| 202 Accepted F6 | |
|<-------------------| |
| NOTIFY F7 | |
|<-------------------| |
| 200 OK F8 | |
|------------------->| |
| BYE F9 | |
|------------------->| |
| 200 OK F10 | |
|<-------------------| |
| No RTP Session | INVITE Referred-By: A F11
| |------------------->|
| | 180 Ringing F12 |
| |<-------------------|
| | 200 OK F13 |
| |<-------------------|
| | ACK F14 |
| |------------------->|
| | RTP |
| |<==================>|
| NOTIFY F15 | |
|<-------------------| |
| 200 OK F16 | |
|------------------->| |
| | |
In this scenario, Bob calls Alice. Alice then transfers Bob to
Carol, then Alice disconnects with Bob. Bob establishes the session
to Carol then reports the success back to Alice in the NOTIFY in F15.
Johnston, et al. Expires January 12, 2009 [Page 49]
Internet-Draft SIP Service Examples July 2008
If the transfer fails, Bob can send a new INVITE back to Alice to re-
establish the session.
Despite the BYE sent by Alice in F9, the dialog between Alice and Bob
still exists until the subscription created by the REFER has
terminated (either due to a NOTIFY containing a Subscription-State:
terminated;reason=noresource header field, as in F15, or a 481
response to a NOTIFY).
For more about call transfer see the transfer
[I-D.ietf-sipping-cc-transfer] document.
Message Details
F1 INVITE Bob -> Alice
INVITE sips:alice@atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds7
Max-Forwards: 70
From: Bob <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
To: Alice <sips:alice@atlanta.example.com>;tag=1234567
Johnston, et al. Expires January 12, 2009 [Page 50]
Internet-Draft SIP Service Examples July 2008
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. Expires January 12, 2009 [Page 51]
Internet-Draft SIP Service Examples July 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. Expires January 12, 2009 [Page 52]
Internet-Draft SIP Service Examples July 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 */
F11 INVITE Bob -> Carol
Johnston, et al. Expires January 12, 2009 [Page 53]
Internet-Draft SIP Service Examples July 2008
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
Call-ID: 7436222@atlanta.example.com
CSeq: 1 INVITE
Johnston, et al. Expires January 12, 2009 [Page 54]
Internet-Draft SIP Service Examples July 2008
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
Content-Length: ...
SIP/2.0 200 OK
Johnston, et al. Expires January 12, 2009 [Page 55]
Internet-Draft SIP Service Examples July 2008
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
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 |
| |------------->|
Johnston, et al. Expires January 12, 2009 [Page 56]
Internet-Draft SIP Service Examples July 2008
| | 180 Ringing F9
| |<-------------|
| | 200 OK F10 |
| |<-------------|
| | ACK F11 |
| |------------->|
| | RTP |
| |<============>|
| |INVITE (hold) F12
| |------------->|
| | 200 OK F13 |
| |<-------------|
| | ACK F14 |
| |------------->|
| | No RTP |
| REFER Refer-To: C F15 |
|<---------------| |
|202 Accepted F16| |
|--------------->| |
| NOTIFY F17 | |
|--------------->| |
| 200 OK F18 | |
|<---------------| |
| INVITE Replaces: B F19 |
|------------------------------>|
| 200 OK F20 |
|<------------------------------|
| ACK F21 |
|------------------------------>|
| RTP |
|<=============================>|
| | BYE F22 |
| |<-------------|
| | 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.
Johnston, et al. Expires January 12, 2009 [Page 57]
Internet-Draft SIP Service Examples July 2008
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 [I-D.ietf-sip-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 [I-D.ietf-sipping-cc-transfer] document.
Message Details
F1 INVITE Alice -> Bob
INVITE sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
Max-Forwards: 70
From: Alice <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
Johnston, et al. Expires January 12, 2009 [Page 58]
Internet-Draft SIP Service Examples July 2008
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
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
Johnston, et al. Expires January 12, 2009 [Page 59]
Internet-Draft SIP Service Examples July 2008
/* 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 28