SIPPING Working Group A. Johnston, Ed.
Internet-Draft SIPStation
Expires: September 6, 2006 R. Sparks
C. Cunningham
S. Donovan
Estacado Systems
K. Summers
Sonus
March 5, 2006
Session Initiation Protocol Service Examples
draft-ietf-sipping-service-examples-10
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 September 6, 2006.
Copyright Notice
Copyright (C) The Internet Society (2006).
Abstract
This document gives examples of Session Initiation Protocol (SIP)
services. This covers most features offered in so-called IP Centrex
offerings from local exchange carriers and PBX (Private Branch
Johnston, et al. Expires September 6, 2006 [Page 1]
Internet-Draft SIP Service Examples March 2006
Exchange) features. Most of the services shown in this document are
implemented in the SIP User Agents, although some require the
assistance of a SIP Proxy. Some require some extensions to SIP
including the REFER, SUBSCRIBE, and NOTIFY methods and the Replaces
and Join headers. These features are not intended to be an
exhaustive set, but rather show implementations of common features
likely to be implemented on SIP IP telephones in a business
environment.
Table of Contents
1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Service Examples . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Call Hold . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2. Consultation Hold . . . . . . . . . . . . . . . . . . . . 17
2.3. Music On Hold . . . . . . . . . . . . . . . . . . . . . . 37
2.4. Transfer - Unattended . . . . . . . . . . . . . . . . . . 45
2.5. Transfer - Attended . . . . . . . . . . . . . . . . . . . 52
2.6. Transfer - Instant Messaging . . . . . . . . . . . . . . 65
2.7. Call Forwarding Unconditional . . . . . . . . . . . . . . 71
2.8. Call Forwarding - Busy . . . . . . . . . . . . . . . . . 77
2.9. Call Forwarding - No Answer . . . . . . . . . . . . . . . 85
2.10. 3-way Conference - Third Party is Added . . . . . . . . . 94
2.11. 3-way Conference - Third Party Joins . . . . . . . . . . 100
2.12. Single Line Extension . . . . . . . . . . . . . . . . . . 105
2.13. Find-Me . . . . . . . . . . . . . . . . . . . . . . . . . 124
2.14. Call Management (Incoming Call Screening) . . . . . . . . 136
2.15. Call Management (Outgoing Call Screening) . . . . . . . . 144
2.16. Call Park . . . . . . . . . . . . . . . . . . . . . . . . 147
2.17. Call Pickup . . . . . . . . . . . . . . . . . . . . . . . 157
2.18. Automatic Redial . . . . . . . . . . . . . . . . . . . . 165
2.19. Click to Dial . . . . . . . . . . . . . . . . . . . . . . 171
3. Security Considerations . . . . . . . . . . . . . . . . . . . 174
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 175
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 175
6. Document History . . . . . . . . . . . . . . . . . . . . . . 175
6.1. Changes since -07 . . . . . . . . . . . . . . . . . . . . 176
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 176
7.1. Normative References . . . . . . . . . . . . . . . . . . 176
7.2. Informative References . . . . . . . . . . . . . . . . . 177
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 178
Intellectual Property and Copyright Statements . . . . . . . . . 179
Johnston, et al. Expires September 6, 2006 [Page 2]
Internet-Draft SIP Service Examples March 2006
1. Overview
This document provides example call flows detailing a SIP
implementation of the following traditional telephony services:
Call Hold Music on Hold
Unattended Transfer Consultation Hold
Unconditional Call Forwarding Attended Transfer
No Answer Call Forwarding Busy Call Forwarding
Single-Line Extension 3-way Call
Incoming Call Screening Find-Me
Call Pickup Call Park
Outgoing Call Screening Automatic Redial
Click to Dial
The call flows shown in this document were developed in the design of
a SIP IP communications network. They represent an example set of
so-called IP Centrex services or PBX services.
It is the hope of the authors that this document will be useful for
SIP implementers, designers, and protocol researchers alike and will
help further the goal of a standard implementation of RFC 3261 [2]
These flows represent carefully checked and working group reviewed
scenarios of SIP service examples as a companion to the
specifications.
These call flows are based on the current version 2.0 of SIP in RFC
3261 [2] with SDP usage described in RFC 3264 [5] Other RFCs also
comprise the SIP standard and are used and references in these call
flows.
The SIP specification and the other referenced documents are
definitive as far as protocol issues are concerned. Also, these
flows do not represent the only way to implement these services -
other approaches such as 3pcc (Third Party Call Control) [17] or
Back-to-Back User Agents (B2BUA) may be more appropriate in some
circumstances. The peer-to-peer design and principles of these
service examples are described in the Multiparty Framework document
[12].
These flows assume the functionality described in the SIP Call Flow
Examples document [16], which explores basic SIP behavior. Some of
the scenarios described herein make use of the SIP method extension
REFER [3] and the SIP header extension Replaces [4], the SIP header
extension Join [9], and some of the concepts in the 3pcc (third party
call control) [17] document. The SIP Events document [6] describes
the use of SUBSCRIBE and NOTIFY while the SIP Dialog Event Package
Johnston, et al. Expires September 6, 2006 [Page 3]
Internet-Draft SIP Service Examples March 2006
[8] document describes the dialog event package. Some examples make
use the GRUU (Globally Routable User Agent URI) [20] extension.
These flows were prepared assuming a network of proxies, registrars,
PSTN gateways, and other SIP servers. The use of Secure SIP URIs
(sips) is shown throughout this document with assumed certificate
validation for security. However, other security approaches such as
Digest challenges can be used.
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.
Comments in the message details are shown in the following form:
/* Comments. */
2. Service Examples
Johnston, et al. Expires September 6, 2006 [Page 4]
Internet-Draft SIP Service Examples March 2006
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. Expires September 6, 2006 [Page 5]
Internet-Draft SIP Service Examples March 2006
In this scenario, Alice calls Bob, then Bob places the call on hold.
Bob then takes call off hold. Alice hangs up call. Note that hold
is unidirectional in nature. However, a UA that places the other
party on hold will generally also stop sending media, resulting in no
media exchange between the UAs. Older UAs may set the connection
address to 0.0.0.0 when initiating hold. However, this behavior has
been deprecated in favor of using the a=sendonly SDP attribute.
Message Details
F1 INVITE Alice -> Proxy 1
INVITE sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
Max-Forwards: 70
From: Alice <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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 INVITE Proxy 1 -> Bob
INVITE 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>
Johnston, et al. Expires September 6, 2006 [Page 6]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F3 (100 Trying) Proxy 1 -> Alice
SIP/2.0 100 Trying
Via: SIP/2.0/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. Expires September 6, 2006 [Page 7]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
Johnston, et al. Expires September 6, 2006 [Page 8]
Internet-Draft SIP Service Examples March 2006
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: 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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F8 ACK Alice -> Proxy 1
ACK 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
Johnston, et al. Expires September 6, 2006 [Page 9]
Internet-Draft SIP Service Examples March 2006
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK837492.1
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf92
;received=192.0.2.103
Max-Forwards: 69
From: Alice <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>
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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendonly
F11 INVITE Proxy 1 -> Alice
INVITE sips:alice@client.atlanta.example.com SIP/2.0
Johnston, et al. Expires September 6, 2006 [Page 10]
Internet-Draft SIP Service Examples March 2006
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK83749.1
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds7
;received=192.0.2.105
Record-Route: <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>
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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendonly
/* A replies to hold */
F12 200 OK Alice -> Proxy 1
SIP/2.0 200 OK
Via: SIP/2.0/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
Johnston, et al. Expires September 6, 2006 [Page 11]
Internet-Draft SIP Service Examples March 2006
Content-Length: ...
v=0
o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=recvonly
F13 200 OK Proxy 1 -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=recvonly
F14 ACK Bob -> Proxy 1
ACK 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
Johnston, et al. Expires September 6, 2006 [Page 12]
Internet-Draft SIP Service Examples March 2006
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
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
Johnston, et al. Expires September 6, 2006 [Page 13]
Internet-Draft SIP Service Examples March 2006
o=bob 2890844527 2890844529 IN IP4 client.biloxi.example.com
s=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F17 INVITE Proxy 1 -> Alice
INVITE 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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 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>
Johnston, et al. Expires September 6, 2006 [Page 14]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F19 200 OK Proxy 1 -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 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
Johnston, et al. Expires September 6, 2006 [Page 15]
Internet-Draft SIP Service Examples March 2006
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
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
Johnston, et al. Expires September 6, 2006 [Page 16]
Internet-Draft SIP Service Examples March 2006
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
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 | |
Johnston, et al. Expires September 6, 2006 [Page 17]
Internet-Draft SIP Service Examples March 2006
| |------------->| |
|(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 |
| |--------------------------------->|
| | Both way RTP Established |
| | |<=================>|
| | BYE F25 | |
| |<-------------| |
| | | BYE F26 |
Johnston, et al. Expires September 6, 2006 [Page 18]
Internet-Draft SIP Service Examples March 2006
| |--------------------------------->|
| | | 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.
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: ...
Johnston, et al. Expires September 6, 2006 [Page 19]
Internet-Draft SIP Service Examples March 2006
v=0
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 INVITE Proxy 1 -> Bob
INVITE 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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F3(100 Trying) Proxy 1 -> Alice
SIP/2.0 100 Trying
Via: SIP/2.0/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
Johnston, et al. Expires September 6, 2006 [Page 20]
Internet-Draft SIP Service Examples March 2006
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
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
Johnston, et al. Expires September 6, 2006 [Page 21]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F7 200 OK Proxy 1 -> Alice
SIP/2.0 200 OK
Via: SIP/2.0/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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F8 ACK Alice -> Proxy 1
ACK sips:bob@client.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
Johnston, et al. Expires September 6, 2006 [Page 22]
Internet-Draft SIP Service Examples March 2006
;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
/* 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>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: ...
Johnston, et al. Expires September 6, 2006 [Page 23]
Internet-Draft SIP Service Examples March 2006
v=0
o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com
s=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendonly
F11 INVITE Proxy 1 -> Alice
INVITE 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>
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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendonly
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
Johnston, et al. Expires September 6, 2006 [Page 24]
Internet-Draft SIP Service Examples March 2006
;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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=recvonly
F13 200 OK Proxy 1 -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=recvonly
Johnston, et al. Expires September 6, 2006 [Page 25]
Internet-Draft SIP Service Examples March 2006
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
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: ...
Johnston, et al. Expires September 6, 2006 [Page 26]
Internet-Draft SIP Service Examples March 2006
v=0
o=bob 2890844834 2890844834 IN IP4 client.biloxi.example.com
s=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 50170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 50170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F18 (100 Trying) Proxy 1 -> Bob
SIP/2.0 100 Trying
Via: SIP/2.0/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
Johnston, et al. Expires September 6, 2006 [Page 27]
Internet-Draft SIP Service Examples March 2006
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
;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
Johnston, et al. Expires September 6, 2006 [Page 28]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.chicago.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F22 200 OK Proxy 1 -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/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=Session SDP
c=IN IP4 client.chicago.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F23 ACK Bob -> Proxy 1
ACK sips:carol@client.chicago.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds24
Johnston, et al. Expires September 6, 2006 [Page 29]
Internet-Draft SIP Service Examples March 2006
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
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
Johnston, et al. Expires September 6, 2006 [Page 30]
Internet-Draft SIP Service Examples March 2006
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
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
Johnston, et al. Expires September 6, 2006 [Page 31]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F30 INVITE Proxy 1 -> Alice
INVITE 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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
Johnston, et al. Expires September 6, 2006 [Page 32]
Internet-Draft SIP Service Examples March 2006
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: ...
v=0
o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F32 200 OK Proxy 1 -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/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. Expires September 6, 2006 [Page 33]
Internet-Draft SIP Service Examples March 2006
v=0
o=alice 2890844526 2890844528 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
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
Johnston, et al. Expires September 6, 2006 [Page 34]
Internet-Draft SIP Service Examples March 2006
;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
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
Johnston, et al. Expires September 6, 2006 [Page 35]
Internet-Draft SIP Service Examples March 2006
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 September 6, 2006 [Page 36]
Internet-Draft SIP Service Examples March 2006
2.3. Music On Hold
Alice Bob Music Server
| | |
| INVITE F1 | |
|--------------->| |
| 180 Ringing F2 | |
|<---------------| |
| 200 OK F3 | |
|<---------------| |
| ACK F4 | |
|--------------->| |
| RTP | |
|<==============>| |
| | |
| Bob places Alice on hold with music
| | |
| | INVITE no sdp F5
| |------------->|
| |200 OK sdpM F6|
| |<-------------|
|INVITE (hold) F7| |
|<---------------| |
| 200 OK sdpA F8 | |
|--------------->| |
| ACK F9 | |
|<---------------| |
| | ACK sdpA F10 |
| |------------->|
| RTP |
|<==============================|
| | |
| Bob Picks up the Call |
| | BYE F11 |
| |------------->|
| | 200 OK F12 |
| |<-------------|
| INVITE F13 | |
|<---------------| |
| 200 OK F14 | |
|--------------->| |
| ACK F15 | |
|<---------------| |
| RTP | |
|<==============>| |
In this flow, Bob places Alice on hold with music. This is performed
Johnston, et al. Expires September 6, 2006 [Page 37]
Internet-Draft SIP Service Examples March 2006
by Bob acting as a 3pcc (third party call controller) [17] to INVITE
a Music Server into the session, which sends RTP music to Alice. Bob
picks the call up from hold by sending a BYE to the music server and
taking Alice off of hold.
Note that if Alice responds to the INVITE with hold SDP in the 200
OK, this call flow will not work properly.
Note also that Alice will receive RTP packets from two different IP
addresses during this call flow. Alice could refuse the music by
sending a re-INVITE changing the session to a=inactive.
Message Details
F1 INVITE Alice -> Bob
INVITE sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
Max-Forwards: 70
From: Alice <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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 180 Ringing Bob -> Alice
SIP/2.0 180 Ringing
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
;received=192.0.2.103
From: Alice <sips:alice@atlanta.example.com>;tag=1234567
Johnston, et al. Expires September 6, 2006 [Page 38]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 ACK Alice -> Bob
ACK 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
Johnston, et al. Expires September 6, 2006 [Page 39]
Internet-Draft SIP Service Examples March 2006
/* Bob places Alice on hold with music by acting as a 3pcc and
sending an INVITE to the Music Server */
F5 INVITE Bob -> Music Server
INVITE sips:music@server.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds7
Max-Forwards: 70
From: Bob <sips:bob@biloxi.example.com>;tag=8675309
To: Music <sips:music@server.example.com>
Call-ID: sdjfdjfskdf@biloxi.example.com
CSeq: 1 INVITE
Contact: <sips:bob@client.biloxi.example.com>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Length: 0
F6 200 OK Music Server -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds7
;received=192.0.2.105
From: Bob <sips:bob@biloxi.example.com>;tag=8675309
To: Music <sips:music@server.example.com>;tag=90210
Call-ID: sdjfdjfskdf@biloxi.example.com
CSeq: 1 INVITE
Contact: <sips:music@server.example.com>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: ...
v=0
o=MusicServer 2890844576 2890844577 IN IP4 music.server.example.com
s=Session SDP
c=IN IP4 music.server.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendonly
/* Bob re-INVITEs Alice on hold */
F7 INVITE Bob -> Alice
Johnston, et al. Expires September 6, 2006 [Page 40]
Internet-Draft SIP Service Examples March 2006
INVITE sips:alice@client.atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf5
To: Alice <sips:alice@atlanta.example.com>;tag=1234567
Max-Forwards: 70
From: 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 2890844528 IN IP4 music.server.example.com
s=Session SDP
c=IN IP4 music.server.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendonly
F8 200 OK Alice -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf5
;received=192.0.2.103
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: 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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=recvonly
Johnston, et al. Expires September 6, 2006 [Page 41]
Internet-Draft SIP Service Examples March 2006
F9 ACK Bob -> Alice
ACK sips:alice@client.atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bfy
To: Alice <sips:alice@atlanta.example.com>;tag=1234567
Max-Forwards: 70
From: 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 passes SDP of Alice to the Music Server to allow music
to be sent from Bob to Alice */
F10 ACK Bob -> Music Server
ACK sips:music@server.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds3
Max-Forwards: 70
From: Bob <sips:bob@biloxi.example.com>;tag=8675309
To: Music <sips:music@server.example.com>;tag=90210
Call-ID: sdjfdjfskdf@biloxi.example.com
CSeq: 1 ACK
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: ...
v=0
o=alice 2890844526 2890844527 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=recvonly
/* RTP music is now sent from the Music Server to Alice */
/* Bob picks up the call from the Music Server */
F11 BYE Bob -> Music Server
Johnston, et al. Expires September 6, 2006 [Page 42]
Internet-Draft SIP Service Examples March 2006
BYE sips:music@server.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds0
Max-Forwards: 70
From: Bob <sips:bob@biloxi.example.com>;tag=8675309
To: Music <sips:music@server.example.com>;tag=90210
Call-ID: sdjfdjfskdf@biloxi.example.com
CSeq: 2 BYE
Content-Length: 0
F12 200 OK Music Server -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds0
;received=192.0.2.105
From: Bob <sips:bob@biloxi.example.com>;tag=8675309
To: Music <sips:music@server.example.com>;tag=90210
Call-ID: sdjfdjfskdf@biloxi.example.com
CSeq: 2 BYE
Content-Length:0
/* B re-INVITEs taking A off hold */
F13 INVITE Bob -> Alice
INVITE sips:alice@client.atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74b
To: Alice <sips:alice@atlanta.example.com>;tag=1234567
Max-Forwards: 70
From: Bob <sips:bob@biloxi.example.com>;tag=23431
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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
Johnston, et al. Expires September 6, 2006 [Page 43]
Internet-Draft SIP Service Examples March 2006
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F14 200 OK Alice -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74b
;received=192.0.2.103
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: 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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F15 ACK Bob -> Alice
ACK sips:alice@client.atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74b5
To: Alice <sips:alice@atlanta.example.com>;tag=1234567
Max-Forwards: 70
From: Bob <sips:bob@biloxi.example.com>;tag=23431
Call-ID: 12345600@atlanta.example.com
CSeq: 2 ACK
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Length: 0
/* Normal media session between A and B is resumed */
Johnston, et al. Expires September 6, 2006 [Page 44]
Internet-Draft SIP Service Examples March 2006
2.4. Transfer - Unattended
Alice Bob Carol
| INVITE F1 | |
|<-------------------| |
| 180 Ringing F2 | |
|------------------->| |
| 200 OK F3 | |
|------------------->| |
| ACK F4 | |
|<-------------------| |
| RTP | |
|<==================>| |
| | |
| Alice performs unattended transfer |
| | |
| REFER Refer-To:C F5| |
|------------------->| |
| 202 Accepted F6 | |
|<-------------------| |
| NOTIFY F7 | |
|<-------------------| |
| 200 OK F8 | |
|------------------->| |
| BYE F9 | |
|------------------->| |
| 200 OK F10 | |
|<-------------------| |
| No RTP Session | INVITE Referred-By: A F11
| |------------------->|
| | 180 Ringing F12 |
| |<-------------------|
| | 200 OK F13 |
| |<-------------------|
| | ACK F14 |
| |------------------->|
| | RTP |
| |<==================>|
| NOTIFY F15 | |
|<-------------------| |
| 200 OK F16 | |
|------------------->| |
| | |
In this scenario, Bob calls Alice. Alice then transfers Bob to
Carol, then Alice disconnects with Bob. Bob establishes the session
to Carol then reports the success back to Alice in the NOTIFY in F15.
Johnston, et al. Expires September 6, 2006 [Page 45]
Internet-Draft SIP Service Examples March 2006
If the transfer fails, Bob can send a new INVITE back to Alice to re-
establish the session.
Despite the BYE sent by Alice in F9, the dialog between Alice and Bob
still exists until the subscription created by the REFER has
terminated (either due to a NOTIFY containing a Subscription-State:
terminated;reason=noresource header field, as in F15, or a 481
response to a NOTIFY).
For more about call transfer see the transfer [7] document.
Message Details
F1 INVITE Bob -> Alice
INVITE sips:alice@atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds7
Max-Forwards: 70
From: Bob <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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 180 Ringing Alice -> Bob
SIP/2.0 180 Ringing
Via: SIP/2.0/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
Johnston, et al. Expires September 6, 2006 [Page 46]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 ACK Bob -> Alice
ACK 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 September 6, 2006 [Page 47]
Internet-Draft SIP Service Examples March 2006
/* 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: 2 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.113
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: 2 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
Content-Type: message/sipfrag
Content-Length: ...
SIP/2.0 100 Trying
Johnston, et al. Expires September 6, 2006 [Page 48]
Internet-Draft SIP Service Examples March 2006
F8 200 OK Alice -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds32
;received=192.0.2.113
From: Bob <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: 3 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: 3 BYE
Content-Length: 0
/* Bob attempts the transfer to Carol */
F11 INVITE Bob -> Carol
INVITE sips:carol@chicago.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds1
Johnston, et al. Expires September 6, 2006 [Page 49]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423821 0
m=audio 3458 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F12 180 Ringing Carol -> Bob
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
Contact: <sips:carol@client.chicago.example.com>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Johnston, et al. Expires September 6, 2006 [Page 50]
Internet-Draft SIP Service Examples March 2006
Content-Type: application/sdp
Content-Length: ...
v=0
o=carol 2890844527 2890844527 IN IP4 client.chicago.example.com
s=Session SDP
c=IN IP4 client.chicago.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F14 ACK Bob -> Carol
ACK 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
Content-Type: message/sipfrag
Content-Length: ...
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds1
;received=192.0.2.113
From: Bob <sips:bob@biloxi.example.com>;tag=8675309
Johnston, et al. Expires September 6, 2006 [Page 51]
Internet-Draft SIP Service Examples March 2006
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 |
| |------------->|
| | 180 Ringing F9
| |<-------------|
| | 200 OK F10 |
| |<-------------|
Johnston, et al. Expires September 6, 2006 [Page 52]
Internet-Draft SIP Service Examples March 2006
| | ACK F11 |
| |------------->|
| | RTP |
| |<============>|
| |INVITE (hold) F12
| |------------->|
| | 200 OK F13 |
| |<-------------|
| | ACK F14 |
| |------------->|
| | No RTP |
| REFER Refer-To: C F15 |
|<---------------| |
|202 Accepted F16| |
|--------------->| |
| NOTIFY F17 | |
|--------------->| |
| 200 OK F18 | |
|<---------------| |
| INVITE Replaces: B F19 |
|------------------------------>|
| 200 OK F20 |
|<------------------------------|
| ACK F21 |
|------------------------------>|
| RTP |
|<=============================>|
| | BYE F22 |
| |<-------------|
| | 200 OK F23 |
| |------------->|
| NOTIFY F24 | |
|--------------->| |
| 200 OK F25 | |
|<---------------| |
| BYE F26 | |
|<---------------| |
| 200 OK F27 | |
|--------------->| |
In this scenario, Alice calls Bob. Bob puts Alice on hold then calls
Carol to announce transfer, then places Carol on hold. Bob transfers
Alice to Carol which replaces the session between Bob and Carol.
Carol then disconnects session with Bob. Alice reports success of
transfer to Bob, who then disconnects with Alice. In this example,
the Replaces header field [4] is inserted into the Refer-To URI by
Bob. Note that the Refer-To URI is the Contact URI returned by Carol
Johnston, et al. Expires September 6, 2006 [Page 53]
Internet-Draft SIP Service Examples March 2006
in the 200 OK response F10. This ensures that only the correct
instance of Carol is reached. The presence of the Supported: gruu
header field in message F10 indicates that the Contact URI is, in
fact, a GRUU [20] 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 fails, to retry the REFER with
a Refer-To URI of the URI used to reach Carol but with a Require:
replaces header escaped in the Refer-To header field, as discussed in
the transfer [7] document.
Message Details
F1 INVITE Alice -> Bob
INVITE sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
Max-Forwards: 70
From: Alice <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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 180 Ringing Bob -> Alice
SIP/2.0 180 Ringing
Via: SIP/2.0/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
Johnston, et al. Expires September 6, 2006 [Page 54]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 ACK Alice -> Bob
ACK 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 */
Johnston, et al. Expires September 6, 2006 [Page 55]
Internet-Draft SIP Service Examples March 2006
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>
Content-Type: application/sdp
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Length: ...
v=0
o=bob 2890844527 2890844528 IN IP4 client.biloxi.example.com
s=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendonly
F6 200 OK Alice -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
Johnston, et al. Expires September 6, 2006 [Page 56]
Internet-Draft SIP Service Examples March 2006
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 */
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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423645 0
m=audio 3458 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F9 180 Ringing Carol -> Bob
SIP/2.0 180 Ringing
Via: SIP/2.0/TLS client.biloxi.example.com:5061
Johnston, et al. Expires September 6, 2006 [Page 57]
Internet-Draft SIP Service Examples March 2006
;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
CSeq: 42 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 2890844922 IN IP4 client.chicago.example.com
s=Session SDP
c=IN IP4 client.chicago.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F11 ACK Bob -> Carol
ACK sips:39itp34klkd@chicago.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashd5
Max-Forwards: 70
From: Bob <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
Johnston, et al. Expires September 6, 2006 [Page 58]
Internet-Draft SIP Service Examples March 2006
/* Bob puts Carol on hold */
F12 INVITE Bob -> Carol
INVITE sips:39itp34klkd@chicago.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds0
Max-Forwards: 70
From: Bob <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>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 289084834 2890844835 IN IP4 client.biloxi.example.com
s=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423645 0
m=audio 3458 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=sendonly
F13 200 OK Carol -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/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=Session SDP
c=IN IP4 client.chicago.example.com
Johnston, et al. Expires September 6, 2006 [Page 59]
Internet-Draft SIP Service Examples March 2006
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=recvonly
F14 ACK Bob -> Carol
ACK sips:39itp34klkd@chicago.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnash334
Max-Forwards: 70
From: Bob <sips:bob@biloxi.example.com>;tag=8675309
To: Carol <sips:carol@chicago.example.com>;tag=5f35a3
Call-ID: sdjfdjfskdf@biloxi.example.com
CSeq: 43 ACK
Content-Length: 0
/* Bob Transfers Alice to Carol. */
F15 REFER Bob -> Alice
REFER sips:alice@client.atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds2g
Max-Forwards: 70
From: Bob <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
Refer-To: <sips:39itp34klkd@chicago.example.com?Replaces=
sdjfdjfskdf%40biloxi.example.com%3Bto-tag%3D5f35a3
%3Bfrom-tag%3D8675309>
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
Johnston, et al. Expires September 6, 2006 [Page 60]
Internet-Draft SIP Service Examples March 2006
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
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 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
Johnston, et al. Expires September 6, 2006 [Page 61]
Internet-Draft SIP Service Examples March 2006
Call-ID: 9435674543@atlanta.example.com
CSeq: 1 INVITE
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: ...
v=0
o=alice 2890844989 2890844989 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423643 0
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.123
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=Session SDP
c=IN IP4 client.chicago.example.com
t=3034423452 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F21 ACK Alice -> Carol
Johnston, et al. Expires September 6, 2006 [Page 62]
Internet-Draft SIP Service Examples March 2006
ACK sips:39itp34klkd@chicago.example.com 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
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.103
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
Johnston, et al. Expires September 6, 2006 [Page 63]
Internet-Draft SIP Service Examples March 2006
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
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.123
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
Johnston, et al. Expires September 6, 2006 [Page 64]
Internet-Draft SIP Service Examples March 2006
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
;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 | |
|<-------------| |
Johnston, et al. Expires September 6, 2006 [Page 65]
Internet-Draft SIP Service Examples March 2006
| |
In this scenario, Alice and Bob establish a session between them.
Bob wants Carol to take the call so sends an Instant Message (IM) to
Carol containing Alice's URI and an embedded Replaces header field.
If Carol clicks on the URI, Carol's SIP UA sends an INVITE to Alice
which replaces the session with Bob.
This scenario shows the use of the SIP MESSAGE [15] method to pass
the URI. However, another IM protocol or other method could have
been used to pass the URI from Bob to Carol.
Message Details
F1 INVITE Alice -> Bob
INVITE sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
Max-Forwards: 70
From: Alice <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>
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 180 Ringing 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
Johnston, et al. Expires September 6, 2006 [Page 66]
Internet-Draft SIP Service Examples March 2006
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=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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 ACK Alice -> Bob
ACK 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 */
Johnston, et al. Expires September 6, 2006 [Page 67]
Internet-Draft SIP Service Examples March 2006
F5 MESSAGE Bob -> Carol
MESSAGE sips:carol@chicago.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnash
Max-Forwards: 70
From: Bob <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
<A HREF="sips:a8342043f@atlanta.example.com?Replaces=
12345600@atlanta.example.com%3Bto-tag%3D314159
%3Bfrom-tag%3D1234567">
Alice</A>? </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 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
Johnston, et al. Expires September 6, 2006 [Page 68]
Internet-Draft SIP Service Examples March 2006
To: Alice <sips:a8342043f@atlanta.example.com>
Call-ID: 563456212@b2.biloxi.example.com
CSeq: 1 INVITE
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=Session SDP
c=IN IP4 client.chicago.example.com
t=3034423619 0
m=audio 5342 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Alice matches the dialog information in the
Replaces header and accepts the INVITE */
F8 200 OK Alice -> Carol
SIP/2.0 200 OK
Via: SIP/2.0/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>;tag=131256
Call-ID: 563456212@b2.biloxi.example.com
CSeq: 1 INVITE
Contact: <sips:a8342043f@atlanta.example.com>
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
Johnston, et al. Expires September 6, 2006 [Page 69]
Internet-Draft SIP Service Examples March 2006
F9 ACK Carol -> Alice
ACK sips:a8342043f@atlanta.example.com 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>;tag=131256
Call-ID: 563456212@b2.biloxi.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. Expires September 6, 2006 [Page 70]
Internet-Draft SIP Service Examples March 2006
2.7. Call Forwarding Unconditional
Alice Proxy Gateway
| | |
| INVITE F1 | |
|--------------->| |
|(100 Trying) F2 | |
|<---------------| |
| (181 Call Is Being Forwarded) F3
|<---------------| INVITE F4 |
| |------------->|
| |180 Ringing F5|
| 180 Ringing F6 |<-------------|
|<---------------| 200 OK F7 |
| 200 OK F8 |<-------------|
|<---------------| |
| ACK F9 | |
|--------------->| ACK F10 |
| |------------->|
| Both way RTP Established |
|<=============================>|
| BYE F11 | |
|--------------->| BYE F12 |
| |------------->|
| | 200 OK F13 |
| 200 OK F14 |<-------------|
|<---------------| |
| | |
Bob wants all calls forwarded to the PSTN (which is just another URI
to the proxy server). Alice calls Bob. The proxy server rewrites the
Request URI, and forwards the INVITE to a Gateway. Details of
messaging behind the Gateway are not shown.
Note that the 181 Call is Being Forwarded response does not have a To
tag added as the proxy does not wish to establish an early dialog
with Alice.
Note also that forwarding could be accomplished using a redirect (302
Moved Temporarily response).
Message Details
F1 INVITE Alice -> Proxy
INVITE sips:bob@biloxi.example.com SIP/2.0
Johnston, et al. Expires September 6, 2006 [Page 71]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 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>
Call-ID: 12345600@atlanta.example.com
CSeq: 1 INVITE
Content-Length: 0
/* Proxy forwards call by rewriting Request-URI */
F4 INVITE Proxy -> Gateway
Johnston, et al. Expires September 6, 2006 [Page 72]
Internet-Draft SIP Service Examples March 2006
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>
Content-Type: application/sdp
Content-Length: ...
v=0
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619
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
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
Johnston, et al. Expires September 6, 2006 [Page 73]
Internet-Draft SIP Service Examples March 2006
;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>
Content-Type: application/sdp
Content-Length: ...
v=0
o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.example.com
s=Session SDP
c=IN IP4 gatewayone.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F8 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
Johnston, et al. Expires September 6, 2006 [Page 74]
Internet-Draft SIP Service Examples March 2006
Call-ID: 12345600@atlanta.example.com
CSeq: 1 INVITE
Contact: <sips:+19727293660@gw1.example.com;user=phone>
Content-Type: application/sdp
Content-Length: ...
v=0
o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.example.com
s=Session SDP
c=IN IP4 gatewayone.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
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
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
Johnston, et al. Expires September 6, 2006 [Page 75]
Internet-Draft SIP Service Examples March 2006
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=z9hG4bK83749G
;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
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
Johnston, et al. Expires September 6, 2006 [Page 76]
Internet-Draft SIP Service Examples March 2006
;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
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.
Johnston, et al. Expires September 6, 2006 [Page 77]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 INVITE Proxy -> 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>
Content-Type: application/sdp
Content-Length: ...
v=0
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
Johnston, et al. Expires September 6, 2006 [Page 78]
Internet-Draft SIP Service Examples March 2006
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 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
Johnston, et al. Expires September 6, 2006 [Page 79]
Internet-Draft SIP Service Examples March 2006
F6 (181 Call is Being Forwarded) Proxy -> Alice
SIP/2.0 181 Call is Being Forwarded
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
;received=192.0.2.103
From: Alice <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
/* 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>
Content-Type: application/sdp
Content-Length: ...
v=0
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
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
Johnston, et al. Expires September 6, 2006 [Page 80]
Internet-Draft SIP Service Examples March 2006
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
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>
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com
s=Session SDP
Johnston, et al. Expires September 6, 2006 [Page 81]
Internet-Draft SIP Service Examples March 2006
c=IN IP4 client2.biloxi.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F11 200 OK Proxy -> Alice
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
;received=192.0.2.103
Record-Route: <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-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com
s=Session SDP
c=IN IP4 client2.biloxi.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
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
Johnston, et al. Expires September 6, 2006 [Page 82]
Internet-Draft SIP Service Examples March 2006
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK83731
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bfX
;received=192.0.2.103
Max-Forwards: 69
From: Alice <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 A and B2 */
/* Alice eventually hangs up with User B2. */
F14 BYE Alice -> Proxy
BYE sips:bob@client2.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bW4
Route: <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
Johnston, et al. Expires September 6, 2006 [Page 83]
Internet-Draft SIP Service Examples March 2006
F16 200 OK B2 -> Proxy
SIP/2.0 200 OK
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK837493
;received=192.0.2.54
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bW4
;received=192.0.2.103
From: Alice <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. Expires September 6, 2006 [Page 84]
Internet-Draft SIP Service Examples March 2006
2.9. Call Forwarding - No Answer
Alice Proxy User B1 User B2
| | | |
| INVITE F1 | | |
|--------------->| INVITE F2 | |
|(100 Trying) F3 |------------->| |
|<---------------|180 Ringing F4| |
| 180 Ringing F5 |<-------------| |
|<---------------| | |
| Request Timeout |
| | | |
| | CANCEL F6 | |
| |------------->| |
| | 200 OK F7 | |
| |<-------------| |
| | 487 F8 | |
| |<-------------| |
| | ACK F9 | |
| |------------->| |
|(181 Call is Being Forwarded) F10 |
|<---------------| | INVITE F11 |
| |--------------------------------->|
| | | 180 Ringing F12 |
| 180 Ringing F13|<---------------------------------|
|<---------------| | 200 OK F14 |
| |<---------------------------------|
| 200 OK F15 | | |
|<---------------| | |
| ACK F16 | | |
|--------------->| | ACK F17 |
| |--------------------------------->|
| Both way RTP Established |
|<=================================================>|
| BYE F18 | | |
|--------------->| | BYE F19 |
| |--------------------------------->|
| | | 200 OK F20 |
| 200 OK F21 |<---------------------------------|
|<---------------| | |
| | | |
Bob wants calls to B1 forwarded to B2 if B1 is not answered
(information is known to the proxy server). Alice calls B1 and no
one answers. The proxy server then places the call to B2.
Message Details
Johnston, et al. Expires September 6, 2006 [Page 85]
Internet-Draft SIP Service Examples March 2006
F1 INVITE Alice -> Proxy
INVITE sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
Max-Forwards: 70
From: Alice <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=Session SDP
c=IN IP4 client.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 INVITE Proxy -> 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>
Content-Type: application/sdp
Content-Length: ...
v=0
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
Johnston, et al. Expires September 6, 2006 [Page 86]
Internet-Draft SIP Service Examples March 2006
F3 (100 Trying) Proxy -> Alice
SIP/2.0 100 Trying
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
;received=192.0.2.103
From: Alice <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
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. */
Johnston, et al. Expires September 6, 2006 [Page 87]
Internet-Draft SIP Service Examples March 2006
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
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
Johnston, et al. Expires September 6, 2006 [Page 88]
Internet-Draft SIP Service Examples March 2006
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>
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>
Content-Type: application/sdp
Content-Length: ...
v=0
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
Johnston, et al. Expires September 6, 2006 [Page 89]
Internet-Draft SIP Service Examples March 2006
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
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>
Johnston, et al. Expires September 6, 2006 [Page 90]
Internet-Draft SIP Service Examples March 2006
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com
s=Session SDP
c=IN IP4 client2.biloxi.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F15 200 OK Proxy -> Alice
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK77
;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-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com
s=Session SDP
c=IN IP4 client2.biloxi.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F16 ACK Alice -> Proxy
ACK sips:bob@client2.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf3
Route: <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
Johnston, et al. Expires September 6, 2006 [Page 91]
Internet-Draft SIP Service Examples March 2006
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 A and B2.
Alice Hangs Up with User B2. */
F18 BYE Alice -> Proxy
BYE sips:bob@client2.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74b3f
Route: <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
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74b3f
;received=192.0.2.103
Johnston, et al. Expires September 6, 2006 [Page 92]
Internet-Draft SIP Service Examples March 2006
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. Expires September 6, 2006 [Page 93]
Internet-Draft SIP Service Examples March 2006
2.10. 3-way Conference - Third Party is Added
Alice Bob Carol
| INVITE F1 | |
|--------------->| |
| 180 Ringing F2 | |
|<---------------| |
| 200 OK F3 | |
|<---------------| |
| ACK F4 | |
|--------------->| |
| RTP | |
|<==============>| |
| INVITE F5 | |
|<---------------| |
| 200 OK F6 | |
|--------------->| |
| ACK F7 | |
|<---------------| INVITE F8 |
| |------------->|
| | 180 F9 |
| |<-------------|
| | 200 OK F10 |
| |<-------------|
| | ACK F11 |
| |------------->|
| | RTP |
| |<============>|
In this scenario, Alice and Bob are in a 2-party call (session) when
Bob wishes to add Carol into the conversation. Bob is capable of
media mixing in a 3-party call. Bob first sends a re-INVITE to Alice
changing Contact URIs to one that indicates Alice's mixer and acts
like a focus. As a result, Bob includes the "isfocus" feature tag
[10] as described in [11]. Bob then INVITEs Carol using the same
Contact URI.
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
Johnston, et al. Expires September 6, 2006 [Page 94]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 180 Ringing Bob -> Alice
SIP/2.0 180 Ringing
Via: SIP/2.0/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
Supported: replaces, gruu
Content-Type: application/sdp
Content-Length: ...
Johnston, et al. Expires September 6, 2006 [Page 95]
Internet-Draft SIP Service Examples March 2006
v=0
o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com
s=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 ACK Alice -> Bob
ACK 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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 49172 RTP/AVP 0
Johnston, et al. Expires September 6, 2006 [Page 96]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 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 */
F8 INVITE Bob -> Carol
INVITE sips:carol@chicago.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
Johnston, et al. Expires September 6, 2006 [Page 97]
Internet-Draft SIP Service Examples March 2006
;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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423645 0
m=audio 48174 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F9 180 Ringing Carol -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/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
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>
Johnston, et al. Expires September 6, 2006 [Page 98]
Internet-Draft SIP Service Examples March 2006
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: ...
v=0
o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com
s=Session SDP
c=IN IP4 client.chicago.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F11 ACK Bob -> Carol
ACK 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
/* User B's mixer know mixes media from both A and C
to create the 3-way conference. */
Johnston, et al. Expires September 6, 2006 [Page 99]
Internet-Draft SIP Service Examples March 2006
2.11. 3-way Conference - Third Party Joins
Alice Bob Carol
| INVITE F1 | |
|--------------->| |
| 180 Ringing F2 | |
|<---------------| |
| 200 OK F3 | |
|<---------------| |
| ACK F4 | |
|--------------->| |
| RTP | |
|<==============>| INVITE Join:A-B F5
| |<-------------|
| | 180 F6 |
| |------------->|
| INVITE F7 | |
|<---------------| |
| 200 OK F8 | |
|--------------->| |
| ACK F9 | |
|<---------------| |
| | 200 OK F10 |
| |------------->|
| | ACK F11 |
| |<-------------|
| | RTP |
| |<============>|
In this scenario, Alice and Bob are in a 2 party call and Carol
wishes to join resulting in a three party call. Carol could have
learned Bobs conference URI using some non-SIP means, or possibly
from a NOTIFY with the dialog package sent by Bob. Carol sends an
INVITE to Bob containing a Join header identifying the dialog between
Alice and Bob. Bob re-INVITEs Alice to switch to focus mode and
includes the "isfocus" feature tag [10] as described in [11]. Bob
then accepts the INVITE from Carol, resulting in the 3-way call.
Message Details
F1 INVITE Alice -> Bob
INVITE sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
Johnston, et al. Expires September 6, 2006 [Page 100]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 180 Ringing Bob -> Alice
SIP/2.0 180 Ringing
Via: SIP/2.0/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
Supported: replaces, join, gruu
Content-Type: application/sdp
Johnston, et al. Expires September 6, 2006 [Page 101]
Internet-Draft SIP Service Examples March 2006
Content-Length: ...
v=0
o=bob 2890844527 2890844527 IN IP4 client.biloxi.example.com
s=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 ACK Alice -> Bob
ACK 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: ...
v=0
o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com
s=Session SDP
c=IN IP4 client.chicago.example.com
Johnston, et al. Expires September 6, 2006 [Page 102]
Internet-Draft SIP Service Examples March 2006
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F6 180 Ringing Carol -> Bob
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
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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F8 200 OK Alice -> Bob
Johnston, et al. Expires September 6, 2006 [Page 103]
Internet-Draft SIP Service Examples March 2006
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashdyKL
;received=192.0.2.113
From: Bob <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>;isfocus
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: ...
v=0
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F9 ACK Bob -> Alice
ACK 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>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Johnston, et al. Expires September 6, 2006 [Page 104]
Internet-Draft SIP Service Examples March 2006
Supported: replaces, join, gruu
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 28908445834 2890844834 IN IP4 client.biloxi.example.com
s=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423645 0
m=audio 48174 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F11 ACK OK Carol -> Bob
ACK sips:bob@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
2.12. Single Line Extension
Alice Forking Proxy User User User
B1 B2 B3
| | | | |
| INVITE F1 | | | |
|--------------->| INVITE F2 | | |
| |------------->| | |
| | INVITE F3 | |
| |-------------------->| |
| | INVITE F4 | |
| |--------------------------->|
| 100 Trying F5 | | | |
|<---------------|180 Ringing F6| | |
| |<-------------| | |
| 180 Ringing F7 | | | |
|<---------------| | | |
| | 480 Not Logged In F8| |
Johnston, et al. Expires September 6, 2006 [Page 105]
Internet-Draft SIP Service Examples March 2006
| |<--------------------| |
| | ACK F9 | |
| |-------------------->| |
| | 180 Ringing F10 |
| 180 F11 |<---------------------------|
|<---------------| 200 OK F12 |
| 200 OK F13 |<---------------------------|
|<---------------| | | |
| | CANCEL 14 | | |
| |------------->| | |
| | 200 OK F15 | | |
| |<-------------| | |
| | 487 F16 | | |
| |<-------------| | |
| | ACK F17 | | |
| |------------->| | |
| ACK F18 | | | |
|--------------->| ACK F19 | |
| |--------------------------->|
| Both way RTP Established |
|<===========================================>|
| | NOTIFY F20 |
| |<---------------------------|
| | NOTIFY F21 | | |
| |------------->| | |
| | NOTIFY F22 | |
| |-------------------->| |
| | NOTIFY F23 | |
| |--------------------------->|
| | 200 OK F24 | | |
| |<-------------| | |
| | 200 OK F25 |
| |--------------------------->|
| | 200 OK F26 | |
| |<--------------------| |
| | 482 Loop Detected F27 |
| |<---------------------------|
| | |
| User B2 wants to join the call |
| | |
| | INVITE Join:A-B3 F28 |
| |<--------------------| |
| | INVITE Join: A-B3 F29 |
| |------------->| | |
| | INVITE Join: A-B3 F30 |
| |-------------------->| |
| | INVITE Join: A-B3 F31
| |--------------------------->|
Johnston, et al. Expires September 6, 2006 [Page 106]
Internet-Draft SIP Service Examples March 2006
| | 100 Trying F32 | |
| |-------------------->| |
| | 481 Dialog Does Not Exist F33
| |<-------------| | |
| | ACK F34 | | |
| |------------->| | |
| | 482 Loop Detected F35 |
| |<--------------------| |
| | ACK F36 | |
| |-------------------->| |
| | 200 OK F37 |
| |<---------------------------|
| | 200 OK F38 | |
| |-------------------->| |
| | |ACK F39
| | |----->|
| | Both way RTP Established
| | |<====>| B3 mixes
| | | |
In Single Line Extension a call will ring several extensions at the
same time (forking). The first extension to answer the call becomes
the active set. If other extensions pick up, the call becomes a
conference call.
The grouping of multiple UAs with a single URI is possible in SIP by
registering multiple Contact URIs against a single address of record.
For the group of UAs to learn the dialog state of each other to
enable a Join request to be formulated, a full mesh of dialog package
subscriptions could be used. A new UA being added to the group would
register with the group AOR then subscribe to the registration
package [19] to find out the other registered members. However, when
the Nth UA joins the group, it will cause an additional 2(N-1) new
subscriptions to be created. An INVITE forked to all N group members
will result in N(N-1) NOTIFYs being sent among the group. To avoid
this scaling issue, this flow uses an implicit subscription between
each of the group members and a simple forking proxy.
In this flow, Alice calls Bob using his AOR URI which results in the
INVITE being forked to three devices, B1, B2, and B3. In this
example, B3 answers the call and is connected to Alice. B3 sends a
NOTIFY containing the dialog information to the AOR for Bob, which is
forked to B1 and B2. (The service-unaware forking proxy actually
forks it back to B3 as well, but B3 simply discards with a 482 Loop
Detected response.) Later in the example, B2 wishes to join the call
and sends an INVITE with a Join header field to Bob's AOR URI to
request this. This INVITE is forked and is accepted by B3 who then
performs the mixing function. The INVITE is rejected by both B1 and
Johnston, et al. Expires September 6, 2006 [Page 107]
Internet-Draft SIP Service Examples March 2006
B2.
Note that this call flow requires B1, B2, and B3 have an implicit
subscription with Bob's AOR.
Note that if B3 is not capable of mixing the media, B3 would transfer
both Alice and B2 to a conferencing bridge which would perform the
mixing.
This flow requires reliable transport such as TCP since the forking
proxy only guarantees that one UA receives each NOTIFY, not every UA.
(This is because it only waits for one final response, not N, before
completing the transaction.
The use of SUBSCRIBE and NOTIFY is defined in [6] while the dialog
Event package is defined in [8].
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=Session SDP
c=IN IP4 client.atlanta.example.com
t= 0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 INVITE Proxy -> B1
INVITE sips:bob@client.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK83749.1
Johnston, et al. Expires September 6, 2006 [Page 108]
Internet-Draft SIP Service Examples March 2006
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
;received=192.0.2.103
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=Session SDP
c=IN IP4 client.atlanta.example.com
t= 0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F3 INVITE Proxy -> 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
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
Johnston, et al. Expires September 6, 2006 [Page 109]
Internet-Draft SIP Service Examples March 2006
F4 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
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F5 100 Trying Proxy -> Alice
SIP/2.0 100 Trying
Via: SIP/2.0/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
F6 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
Johnston, et al. Expires September 6, 2006 [Page 110]
Internet-Draft SIP Service Examples March 2006
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
F7 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
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
F8 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
F9 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
Johnston, et al. Expires September 6, 2006 [Page 111]
Internet-Draft SIP Service Examples March 2006
Content-Length: 0
F10 180 Ringing B3 -> Proxy
SIP/2.0 180 Ringing
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=83749.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=7137136
Call-ID: 12345600@atlanta.example.com
CSeq: 1 INVITE
Contact: <sips:bob@client3.biloxi.example.com>
Content-Length: 0
F11 180 Ringing B3 -> Proxy
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=7137136
Call-ID: 12345600@atlanta.example.com
CSeq: 1 INVITE
Contact: <sips:bob@client3.biloxi.example.com>
Content-Length: 0
F12 200 OK B3 -> Proxy
SIP/2.0 200 OK
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=83749.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=7137136
Call-ID: 12345600@atlanta.example.com
CSeq: 1 INVITE
Contact: <sips:bob@client3.biloxi.example.com>
Johnston, et al. Expires September 6, 2006 [Page 112]
Internet-Draft SIP Service Examples March 2006
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Allow-Event: dialog
Supported: replaces, join
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844527 IN IP4 client3.biloxi.example.com
s=Session SDP
c=IN IP4 client3.biloxi.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F13 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
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@client.biloxi.example.com.115>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Allow-Event: dialog
Supported: replaces, join
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844527 IN IP4 client3.biloxi.example.com
s=Session SDP
c=IN IP4 client3.biloxi.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Forking Proxy cancels pending branch B1 */
F14 CANCEL Proxy -> B1
CANCEL sips:bob@client.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK83749.1
Johnston, et al. Expires September 6, 2006 [Page 113]
Internet-Draft SIP Service Examples March 2006
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
F15 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
F16 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=765432
Call-ID: 12345600@atlanta.example.com
CSeq: 1 INVITE
Content-Length: 0
F17 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
Johnston, et al. Expires September 6, 2006 [Page 114]
Internet-Draft SIP Service Examples March 2006
F18 ACK Alice -> Proxy
ACK sips:bob@client3.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf3
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
F19 ACK Proxy -> B3
ACK sips:bob@client3.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK83742
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=7137136
Call-ID: 12345600@atlanta.example.com
CSeq: 1 ACK
Content-Length: 0
/* RTP streams are established between A and B3*/
/* User B3 sends a NOTIFY to the group with established
dialog information. */
F20 NOTIFY B3 -> Proxy
NOTIFY sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewlk
Max-Forwards: 70
From: Bob <sips:bob@biloxi.example.com>;tag=w2Hu8sj
To: Bob <sips:bob@biloxi.example.com>
Call-ID: 8458999275@biloxi.example.com
CSeq: 1 NOTIFY
Event: dialog
Subscription-State: active;expires=3600
Content-Type: application/dialog-info+xml
Content-Length: ...
Johnston, et al. Expires September 6, 2006 [Page 115]
Internet-Draft SIP Service Examples March 2006
<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
version="0" state="partial" entity="sips:bob@biloxi.example.com">
<dialog id="2393lds3204" call-id="12345600@atlanta.example.com"
local-tag="7137136" remote-tag="1234567" direction="recipient">
<state event="2xx">confirmed</state>
</dialog>
</dialog-info>
F21 NOTIFY Proxy -> B1
NOTIFY sips:bob@client.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK4558a.1
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewlk
;received=192.0.2.115
Max-Forwards: 69
From: Bob <sips:bob@biloxi.example.com>;tag=w2Hu8sj
To: Bob <sips:bob@biloxi.example.com>
Call-ID: 8458999275@biloxi.example.com
CSeq: 1 NOTIFY
Event: dialog
Subscription-State: active;expires=3600
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="partial" entity="sips:bob@biloxi.example.com">
<dialog id="2393lds3204" call-id="12345600@atlanta.example.com"
local-tag="7137136" remote-tag="1234567" direction="recipient">
<state event="2xx">confirmed</state>
</dialog>
</dialog-info>
F22 Proxy -> B2
NOTIFY sips:bob@client2.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK4558a.2
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewlk
;received=192.0.2.115
Max-Forwards: 69
From: Bob <sips:bob@biloxi.example.com>;tag=w2Hu8sj
Johnston, et al. Expires September 6, 2006 [Page 116]
Internet-Draft SIP Service Examples March 2006
To: Bob <sips:bob@biloxi.example.com>
Call-ID: 8458999275@biloxi.example.com
CSeq: 1 NOTIFY
Event: dialog
Subscription-State: active;expires=3600
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="partial" entity="sips:bob@biloxi.example.com">
<dialog id="2393lds3204" call-id="12345600@atlanta.example.com"
local-tag="7137136" remote-tag="1234567" direction="recipient">
<state event="2xx">confirmed</state>
</dialog>
</dialog-info>
F23 NOTIFY Proxy-> B3
NOTIFY sips:bob@client3.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK4558a.3
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewlk
;received=192.0.2.115
Max-Forwards: 69
From: Bob <sips:bob@biloxi.example.com>;tag=w2Hu8sj
To: Bob <sips:bob@biloxi.example.com>
Call-ID: 8458999275@biloxi.example.com
CSeq: 1 NOTIFY
Event: dialog
Subscription-State: active;expires=3600
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="partial" entity="sips:bob@biloxi.example.com">
<dialog id="2393lds3204" call-id="12345600@atlanta.example.com"
local-tag="7137136" remote-tag="1234567" direction="recipient">
<state event="2xx">confirmed</state>
</dialog>
</dialog-info>
F24 200 OK B1 -> Proxy
Johnston, et al. Expires September 6, 2006 [Page 117]
Internet-Draft SIP Service Examples March 2006
SIP/2.0 200 OK
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK4558a.1
;received=192.0.2.54
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewlk
;received=192.0.2.115
From: Bob <sips:bob@biloxi.example.com>;tag=w2Hu8sj
To: Bob <sips:bob@biloxi.example.com>
Call-ID: 8458999275@biloxi.example.com
CSeq: 1 NOTIFY
Content-Length: 0
F25 200 OK Proxy -> B3
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewlk
;received=192.0.2.115
From: Bob <sips:bob@biloxi.example.com>;tag=w2Hu8sj
To: Bob <sips:bob@biloxi.example.com>
Call-ID: 8458999275@biloxi.example.com
CSeq: 1 NOTIFY
Content-Length: 0
F26 200 OK B2 -> Proxy
SIP/2.0 200 OK
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK4558a.2
;received=192.0.2.54
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewlk
;received=192.0.2.115
From: Bob <sips:bob@biloxi.example.com>;tag=w2Hu8sj
To: Bob <sips:bob@biloxi.example.com>
Call-ID: 8458999275@biloxi.example.com
CSeq: 1 NOTIFY
Content-Length: 0
F27 482 Loop Detected B3 -> Proxy
SIP/2.0 482 Loop Detected
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK4558a.3
Johnston, et al. Expires September 6, 2006 [Page 118]
Internet-Draft SIP Service Examples March 2006
;received=192.0.2.54
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewlk
;received=192.0.2.115
From: Bob <sips:bob@biloxi.example.com>;tag=w2Hu8sj
To: Bob <sips:bob@biloxi.example.com>
Call-ID: 8458999275@biloxi.example.com
CSeq: 1 NOTIFY
Content-Length: 0
/* User B2 decided to join the call. */
F28 INVITE B2 -> Proxy
INVITE sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewl
Max-Forwards: 70
From: Bob <sips:bob@biloxi.example.com>;tag=4524524312
To: Bob <sips:bob@biloxi.example.com>
Call-ID: 524251233@biloxi.example.com
CSeq: 1 INVITE
Contact: <sips:bob@client2.biloxi.example.com>
Join: 12345600@atlanta.example.com;to-tag=7137136;from-tag=1234567
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Allow-Event: dialog
Supported: replaces, join
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com
s=Session SDP
c=IN IP4 client2.biloxi.example.com
t=0 0
m=audio 3458 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F29 INVITE Proxy -> B1
INVITE sips:bob@client.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK4558ab.1
Via: SIP/2.0/TLS client.biloxi.example.com:5061
Johnston, et al. Expires September 6, 2006 [Page 119]
Internet-Draft SIP Service Examples March 2006
;branch=z9hG4bKq0qwli6ewl
;received=192.0.2.114
Max-Forwards: 69
From: Bob <sips:bob@biloxi.example.com>;tag=4524524312
To: Bob <sips:bob@biloxi.example.com>
Call-ID: 524251233@biloxi.example.com
CSeq: 1 INVITE
Contact: <sips:bob@client2.biloxi.example.com>
Join: 12345600@atlanta.example.com;to-tag=7137136;from-tag=1234567
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Allow-Event: dialog
Supported: replaces, join
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com
s=Session SDP
c=IN IP4 client2.biloxi.example.com
t=0 0
m=audio 3458 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F30 INVITE Proxy -> B2
INVITE sips:bob@client2.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK4558ab.2
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewl
;received=192.0.2.114
Max-Forwards: 69
From: Bob <sips:bob@biloxi.example.com>;tag=4524524312
To: Bob <sips:bob@biloxi.example.com>
Call-ID: 524251233@biloxi.example.com
CSeq: 1 INVITE
Contact: <sips:bob@client2.biloxi.example.com>
Join: 12345600@atlanta.example.com;to-tag=7137136;from-tag=1234567
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Allow-Event: dialog
Supported: replaces, join
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com
s=Session SDP
Johnston, et al. Expires September 6, 2006 [Page 120]
Internet-Draft SIP Service Examples March 2006
c=IN IP4 client2.biloxi.example.com
t=0 0
m=audio 3458 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F31 INVITE Proxy -> B3
INVITE sips:bob@client3.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK4558ab.3
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewl
;received=192.0.2.114
Max-Forwards: 69
From: Bob <sips:bob@biloxi.example.com>;tag=4524524312
To: Bob <sips:bob@biloxi.example.com>
Call-ID: 524251233@biloxi.example.com
CSeq: 1 INVITE
Contact: <sips:bob@client2.biloxi.example.com>
Join: 12345600@atlanta.example.com;to-tag=7137136;from-tag=1234567
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Allow-Event: dialog
Supported: replaces, join
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844527 IN IP4 client2.biloxi.example.com
s=Session SDP
c=IN IP4 client2.biloxi.example.com
t=0 0
m=audio 3458 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F32 100 Trying Proxy -> B2
SIP/2.0 100 Trying
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewl
;received=192.0.2.114
From: Bob <sips:bob@biloxi.example.com>;tag=4524524312
To: Bob <sips:bob@biloxi.example.com>
Call-ID: 524251233@biloxi.example.com
CSeq: 1 INVITE
Content-Length: 0
Johnston, et al. Expires September 6, 2006 [Page 121]
Internet-Draft SIP Service Examples March 2006
/* B1 does not have an established dialog, so it returns a 481 */
F33 481 Dialog Does Not Exist B1 -> Proxy
SIP/2.0 481 Dialog Does Not Exist
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK4558ab.1
;received=192.0.2.54
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewl
;received=192.0.2.114
From: Bob <sips:bob@biloxi.example.com>;tag=4524524312
To: Bob <sips:bob@biloxi.example.com>;tag=68324lk42jd
Call-ID: 524251233@biloxi.example.com
CSeq: 1 INVITE
Content-Length: 0
F34 ACK Proxy -> B1
ACK sips:bob@client.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK4558ab.1
From: Bob <sips:bob@biloxi.example.com>;tag=4524524312
To: Bob <sips:bob@biloxi.example.com>;tag=68324lk42jd
Call-ID: 524251233@biloxi.example.com
CSeq: 1 ACK
Content-Length: 0
F35 482 Loop Detected B2 -> Proxy
SIP/2.0 482 Loop Detected
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK4558ab.2
;received=192.0.2.54
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewl
;received=192.0.2.114
From: Bob <sips:bob@biloxi.example.com>;tag=4524524312
To: Bob <sips:bob@biloxi.example.com>;tag=134lkwe
Call-ID: 524251233@biloxi.example.com
CSeq: 1 INVITE
Content-Length: 0
F36 ACK Proxy -> B2
Johnston, et al. Expires September 6, 2006 [Page 122]
Internet-Draft SIP Service Examples March 2006
ACK sips:bob@client2.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK4558ab.2
From: Bob <sips:bob@biloxi.example.com>;tag=4524524312
To: Bob <sips:bob@biloxi.example.com>;tag=134lkwe
Call-ID: 524251233@biloxi.example.com
CSeq: 1 ACK
Content-Length: 0
/* B3 has an existing dialog and agrees to mix B2
into the session. */
F37 200 OK User B3 -> Proxy
SIP/2.0 200 OK
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK4558ab.3
;received=192.0.2.54
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewl
;received=192.0.2.114
From: Bob <sips:bob@biloxi.example.com>;tag=4524524312
To: Bob <sips:bob@biloxi.example.com>;tag=3891908734
Call-ID: 524251233@biloxi.example.com
CSeq: 1 INVITE
Contact: <sips:bob@client3.biloxi.example.com>;isfocus
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Allow-Event: dialog
Supported: replaces, join
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844527 IN IP4 client3.biloxi.example.com
s=Session SDP
c=IN IP4 client3.biloxi.example.com
t=0 0
m=audio 3460 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F38 200 OK Proxy -> User B2
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ewl
;received=192.0.2.114
Johnston, et al. Expires September 6, 2006 [Page 123]
Internet-Draft SIP Service Examples March 2006
Max-Forwards: 69
From: Bob <sips:bob@biloxi.example.com>;tag=4524524312
To: Bob <sips:bob@biloxi.example.com>;tag=3891908734
Call-ID: 524251233@biloxi.example.com
CSeq: 1 INVITE
Contact: <sips:bob@client3.biloxi.example.com>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Allow-Event: dialog
Supported: replaces, join
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844527 IN IP4 client3.biloxi.example.com
s=Session SDP
c=IN IP4 client3.biloxi.example.com
t=0 0
m=audio 3460 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F39 ACK B2 -> B3
ACK sips:bob@client3.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKq0qwli6ew4
Max-Forwards: 69
From: Bob <sips:bob@biloxi.example.com>;tag=4524524312
To: Bob <sips:bob@biloxi.example.com>;tag=3891908734
Call-ID: 524251233@biloxi.example.com
CSeq: 1 ACK
Content-Length: 0
2.13. 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 | | | | |
Johnston, et al. Expires September 6, 2006 [Page 124]
Internet-Draft SIP Service Examples March 2006
|<---------------| | | | |
| | 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 |
|<==================================================>|
| | BYE F23 |
| BYE F24 |<----------------------------------|
|<---------------| |
| 200 OK F25 | |
|--------------->| 200 OK F26 |
| |---------------------------------->|
| | |
Alice's call to Bob will result in an attempt to locate that user by
calling locations from a list of contacts. The location to answer
the call becomes the active set, no other sets may join the call.
While this flow shows a sequential search, the search could be
Johnston, et al. Expires September 6, 2006 [Page 125]
Internet-Draft SIP Service Examples March 2006
accomplished using parallel forking, as in the previous example.
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=Session SDP
c=IN IP4 client.atlanta.example.com
t= 0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 INVITE Proxy -> 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>
Content-Type: application/sdp
Content-Length: ...
v=0
Johnston, et al. Expires September 6, 2006 [Page 126]
Internet-Draft SIP Service Examples March 2006
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t= 0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F3 (100 Trying) Proxy -> Alice
SIP/2.0 100 Trying
Via: SIP/2.0/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
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
Johnston, et al. Expires September 6, 2006 [Page 127]
Internet-Draft SIP Service Examples March 2006
Call-ID: 12345600@atlanta.example.com
CSeq: 1 INVITE
Contact: <sips:bob@client.biloxi.example.com>
Content-Length: 0
/* B1 rings for until a configurable timer in the Proxy
expires. The Proxy then sends Cancel and proceeds down
the list of routes. */
F6 CANCEL Proxy -> 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
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
Johnston, et al. Expires September 6, 2006 [Page 128]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
Johnston, et al. Expires September 6, 2006 [Page 129]
Internet-Draft SIP Service Examples March 2006
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
Contact: <sips:alice@client.atlanta.example.com>
Content-Type: application/sdp
Content-Length: ...
Johnston, et al. Expires September 6, 2006 [Page 130]
Internet-Draft SIP Service Examples March 2006
v=0
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F14 486 Busy Here B3 -> Proxy
SIP/2.0 486 Busy Here
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK83749.3
;received=192.0.2.54
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=83749.4
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
Johnston, et al. Expires September 6, 2006 [Page 131]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F17 180 Ringing B4 -> Proxy
SIP/2.0 180 Ringing
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=83749.4
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
Call-ID: 12345600@atlanta.example.com
CSeq: 1 INVITE
Contact: <sips:bob@client4.biloxi.example.com>
Content-Length: 0
F19 200 OK B4 -> Proxy
Johnston, et al. Expires September 6, 2006 [Page 132]
Internet-Draft SIP Service Examples March 2006
SIP/2.0 200 OK
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=83749.4
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=Session SDP
c=IN IP4 client4.biloxi.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F20 200 OK Proxy -> Alice
SIP/2.0 200 OK
Via: SIP/2.0/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@client.biloxi.example.com.116>
Content-Type: application/sdp
Content-Length: ...
v=0
o=bob 2890844527 2890844527 IN IP4 client4.biloxi.example.com
s=Session SDP
c=IN IP4 client4.biloxi.example.com
t=0 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
Johnston, et al. Expires September 6, 2006 [Page 133]
Internet-Draft SIP Service Examples March 2006
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 A and B4*/
/* User B4 Hangs Up with User A. */
F23 BYE B4 -> Proxy
BYE sips:alice@client.atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds7
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
Johnston, et al. Expires September 6, 2006 [Page 134]
Internet-Draft SIP Service Examples March 2006
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 client.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 client.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 client.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
Johnston, et al. Expires September 6, 2006 [Page 135]
Internet-Draft SIP Service Examples March 2006
2.14. Call Management (Incoming Call Screening)
[
Announcement
Alice Proxy Bob Server
| | | |
| INVITE F1 | | |
|------------------------------>| |
| 305 Use Proxy F2 | |
|<------------------------------| |
| ACK F3 | | |
|------------------------------>| |
| INVITE F4 | | |
|--------------->| | |
| 407 Proxy Authorization F5 | |
|<---------------| | |
| ACK F6 | | |
|--------------->| | |
| INVITE F7 | | |
|--------------->| | |
| 403 Screening Failure (Terminating) Error-Info: URI F8
|<---------------| | |
| ACK F9 | | |
|--------------->| | |
| INVITE F10 | | |
|--------------->| INVITE F11 |
| |---------------------------->|
| | 200 OK F12 |
| 200 OK F13 |<----------------------------|
|<---------------| |
| ACK F14 | |
|--------------------------------------------->|
| Announcement Played to Caller |
|<============================================>|
| BYE F15 |
|<---------------------------------------------|
| 200 OK F16 |
|--------------------------------------------->|
| |
| |
| |
Bob has an incoming call screening list, Alice is included on the
list of addresses Bob will not accept calls from. Alice attempts to
call user B. Messages F1, F2, and F3 are included to show that Bob
does not accept INVITEs that have not been screened by the proxy.
Note that call screening can not be done using the From header -
Johnston, et al. Expires September 6, 2006 [Page 136]
Internet-Draft SIP Service Examples March 2006
instead some form of authentication credentials must be used.
The screening proxy inserts an announcement URI in an Error-Info
header field which Alice accesses by sending an INVITE to listen to
the Announcement.
Message Details
F1 INVITE Alice -> Bob
INVITE sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
Max-Forwards: 70
From: Alice <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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Bob only accepts INVITEs that have been screened
by the proxy */
F2 305 Use Proxy Bob -> Alice
SIP/2.0 305 Use Proxy
Via: SIP/2.0/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. Expires September 6, 2006 [Page 137]
Internet-Draft SIP Service Examples March 2006
F3 ACK Alice -> Bob
ACK sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
Max-Forwards: 70
From: Alice <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
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>
Content-Type: application/sdp
Content-Length: ...
v=0
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Proxy 1 challenges Alice for authentication */
F5 407 Proxy Authorization Required Proxy 1 -> Alice
SIP/2.0 407 Proxy Authorization Required
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf0
;received=192.0.2.103
From: Alice <sips:alice@atlanta.example.com>;tag=1234567
Johnston, et al. Expires September 6, 2006 [Page 138]
Internet-Draft SIP Service Examples March 2006
To: Bob <sips:bob@biloxi.example.com>;tag=7886765
Call-ID: 12345600@atlanta.example.com
CSeq: 2 INVITE
Proxy-Authenticate: Digest realm="example.com",
domain="sips:ss1.example.com",
nonce="ea9c8e88df84f1cec4341ae6cbe5a359",
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",
nonce="ae9137be1c87d175c2dd63302a0d6e0a",
opaque="", uri="sips:bob@biloxi.example.com",
response="bbaec39f943bdcb3620d90afc548a45c"
Content-Type: application/sdp
Content-Length: ...
v=0
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
Johnston, et al. Expires September 6, 2006 [Page 139]
Internet-Draft SIP Service Examples March 2006
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F8 403 Screening Failure (Terminating) Proxy 1 -> Alice
SIP/2.0 403 Screening Failure (Terminating)
Via: SIP/2.0/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@announce.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@announce.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bfj
Max-Forwards: 70
Johnston, et al. Expires September 6, 2006 [Page 140]
Internet-Draft SIP Service Examples March 2006
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>
Content-Type: application/sdp
Content-Length: ...
v=0
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F11 INVITE Proxy 1 -> Announcement Server
INVITE sips:screen-fail-term-ann@announce.example.com SIP/2.0
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK83743
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bfj
;received=192.0.2.103
Max-Forwards: 69
From: Alice <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>
Content-Type: application/sdp
Content-Length: ...
v=0
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F12 200 OK Announcement Server -> Proxy 1
Johnston, et al. Expires September 6, 2006 [Page 141]
Internet-Draft SIP Service Examples March 2006
SIP/2.0 200 OK
Via: SIP/2.0/TLS ss1.example.com:5061
;branch=z9hG4bK83743
;received=192.0.2.100
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:announce.example.com>
Content-Type: application/sdp
Content-Length: ...
v=0
o=annc 2890844543 2890844543 IN IP4 announcement.example.com
s=Session SDP
c=IN IP4 announcement.example.com
t=0 0
m=audio 49174 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F13 200 OK Proxy 1 -> Alice
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bfj
;received=192.0.2.103
From: Alice <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:announce.example.com>
Content-Type: application/sdp
Content-Length: ...
v=0
o=annc 2890844543 2890844543 IN IP4 announcement.example.com
s=Session SDP
c=IN IP4 announcement.example.com
t=0 0
m=audio 49174 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F14 ACK Alice -> Announcement Server
Johnston, et al. Expires September 6, 2006 [Page 142]
Internet-Draft SIP Service Examples March 2006
ACK sips:announcement.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74b32
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 */
F15 BYE Announcement Server -> Alice
BYE sips:alice@client.atlanta.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
F16 200 OK Alice -> Announcement Server
SIP/2.0 200 OK
Via: SIP/2.0/TLS announcement.example.com:5061
;branch=z9hG4bK74bKS
;received=192.0.2.103
From: Bob <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. Expires September 6, 2006 [Page 143]
Internet-Draft SIP Service Examples March 2006
2.15. Call Management (Outgoing Call Screening)
Alice Proxy Bob
| | |
| INVITE F1 | |
|--------------->| |
| 407 Proxy Authorization F2 |
|<---------------| |
| ACK F3 | |
|--------------->| |
| INVITE F4 | |
|--------------->| |
| 403 Screening Failure (Originating) F5
|<---------------| |
| ACK F6 | |
|--------------->| |
| | |
Alice has an outgoing call screening list, Bob is included on the
list of addresses Alice will not be able to place a call to. Alice
attempts to call Bob.
Alice could establish a session to listen to the announcement in the
Error-Info header field.
Message Details
F1 INVITE Alice -> Proxy 1
INVITE sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
Max-Forwards: 70
From: Alice <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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
Johnston, et al. Expires September 6, 2006 [Page 144]
Internet-Draft SIP Service Examples March 2006
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Proxy 1 challenges Alice for authentication */
F2 407 Proxy Authorization Required Proxy 1 -> Alice
SIP/2.0 407 Proxy Authorization Required
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
;received=192.0.2.103
From: Alice <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",
domain="sips:ss1.example.com",
nonce="ea9c8e88df84f1cec4341ae6cbe5a359",
opaque="", stale=FALSE, algorithm=MD5
Content-Length: 0
F3 ACK Alice -> Proxy 1
ACK sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
Max-Forwards: 70
From: Alice <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>
Johnston, et al. Expires September 6, 2006 [Page 145]
Internet-Draft SIP Service Examples March 2006
Call-ID: 12345600@atlanta.example.com
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"
Content-Type: application/sdp
Content-Length: ...
v=0
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F5 403 Screening Failure (Originating) Proxy 1 -> Alice
SIP/2.0 403 Screening Failure (Originating)
Via: SIP/2.0/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",
Johnston, et al. Expires September 6, 2006 [Page 146]
Internet-Draft SIP Service Examples March 2006
response="b9d2e5bcdec9f69ab2a9b44f270285a6"
Content-Length: 0
2.16. Call Park
Alice Bob Park Server Carol
| | | |
| INVITE F1 | | |
|------------->| | |
|180 Ringing F2| | |
|<-------------| | |
| 200 OK F3 | | |
|<-------------| | |
| ACK F4 | | |
|------------->| | |
| RTP Media | | |
|<============>| | |
| Bob Parks Call | |
| | REFER Refer-To: A F5 |
| |------------->| |
| | 202 F6 | |
| |<-------------| |
| | NOTIFY F7 | |
| |<-------------| |
| | 200 F8 | |
| |------------->| |
| INVITE F9 Replaces: B | |
|<----------------------------| |
| 200 OK F10 | |
|---------------------------->| |
| ACK F11 | |
|<----------------------------| |
| RTP Music | |
|<===========================>| |
| BYE F12 | | |
|------------->| NOTIFY F14 | |
| 200 OK F13 |<-------------| |
|<-------------| 200 OK F15 | |
| |------------->| |
| | Carol picks up the call |
| | | |
| INVITE Replaces: Park Server F16 |
|<-------------------------------------------|
| | | 200 F17 |
|------------------------------------------->|
| | | ACK F18 |
Johnston, et al. Expires September 6, 2006 [Page 147]
Internet-Draft SIP Service Examples March 2006
|<-------------------------------------------|
| RTP Media |
|<==========================================>|
| BYE F19 | |
|---------------------------->| |
| 200 OK F20 | |
|<----------------------------| |
| No more RTP Music | |
In this example, Alice calls Bob. Bob then parks the call at the Park
Server by sending a REFER to the Park Server. The server sends an
INVITE to Alice which replaces the session between Alice and Bob. The
call is accepted by Alice and causes Alice to send a BYE to Bob. Bob
receives notification of the successful park, and also receives the
dialog identifiers in the application/sip body of the NOTIFY
response. Carol wishes to retrieve the call, a new INVITE is sent to
Alice which replaces the session with the Park Server. Alice accepts
the call and sends a BYE to the Park Server. Note that if the Park
Server did not return the dialog identifiers (Call-ID, To and From
tags) in the NOTIFY, Carol could send a SUBSCRIBE to retrieve this
information.
Note that this call is a special case of call transfer.
Note also that this flow could also be used for Music on Hold.
Message Details.
F1 INVITE Alice -> Bob
INVITE sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.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>
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=Session SDP
Johnston, et al. Expires September 6, 2006 [Page 148]
Internet-Draft SIP Service Examples March 2006
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 180 Ringing Bob -> Alice
SIP/2.0 180 Ringing
Via: SIP/2.0/TLS client.biloxi.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.biloxi.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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 ACK Alice -> Bob
Johnston, et al. Expires September 6, 2006 [Page 149]
Internet-Draft SIP Service Examples March 2006
ACK sips:bob@client.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.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 A
which replaces the established session between A and B.
Note that there is no session established between B
and the Park Server. */
F5 REFER Bob -> Park Server
REFER sips:park@server.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds9
Max-Forwards: 70
From: Bob <sips:bob@biloxi.example.com>;tag=02134
To: Park Server <sips:park@server.example.com>
Call-ID: 4802029847@biloxi.example.com
CSeq: 1 REFER
Refer-To: <sips:a8342043f@atlanta.example.com?Replaces=
12345601%40atlanta.example.com%3Bfrom-tag%3D314159
%3Bto-tag%3D1234567>
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
Call-ID: 4802029847@biloxi.example.com
Contact: <sips:park@server.example.com>
CSeq: 1 REFER
Content-Length: 0
Johnston, et al. Expires September 6, 2006 [Page 150]
Internet-Draft SIP Service Examples March 2006
F7 NOTIFY Park Server -> Bob
NOTIFY sips:bob@client.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.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
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 client.atlanta.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 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
To: <sips:a8342043f@atlanta.example.com>
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>
Johnston, et al. Expires September 6, 2006 [Page 151]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 music.server.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F10 200 OK Alice -> Park Server
SIP/2.0 200 OK
Via: SIP/2.0/TLS music.server.example.com:5061
;branch=z9hG4bK74rf
From: <sips:park@server.example.com>;tag=0111
To: <sips:a8342043f@atlanta.example.com>;tag=098594
Call-ID: a5-75-34-12-76@server.example.com
CSeq: 1 INVITE
Contact: <sips:a8342043f@atlanta.example.com>
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=recvonly
F11 ACK Park Server -> Alice
ACK sips:a8342043f@atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS music.server.example.com:5061
;branch=z9hG4bK7rfF
Max-Forwards: 70
Johnston, et al. Expires September 6, 2006 [Page 152]
Internet-Draft SIP Service Examples March 2006
From: <sips:park@server.example.com>;tag=0111
To: <sips:a8342043f@atlanta.example.com>;tag=098594
Call-ID: a5-75-34-12-76@server.example.com
CSeq: 1 ACK
Content-Length: 0
F12 BYE Alice -> Bob
ACK sips:bob@client.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.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.biloxi.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 B by returning
all the SIP headers in 200 OK response */
F14 NOTIFY Park Server -> Bob
NOTIFY sips:bob@client.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
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
Johnston, et al. Expires September 6, 2006 [Page 153]
Internet-Draft SIP Service Examples March 2006
Subscription-State: terminated;reason=noresource
Content-Type: message/sipfrag
Content-Length: ...
SIP/2.0 200 OK
Via: SIP/2.0/TLS music.server.example.com:5061
From: <sips:park@server.example.com>;tag=0111
To: <sips:a8342043f@atlanta.example.com>;tag=098594
Call-ID: a5-75-34-12-76@server.example.com
CSeq: 1 INVITE
Contact: <sips:a8342043f@atlanta.example.com>
F15 200 OK Bob -> Park Server
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.atlanta.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/Park Server.
Carol needs to know the dialog information to construct
the Replaces header. */
F16 INVITE Carol -> Alice
INVITE sips:alice@atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS 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>
Replaces: a5-75-34-12-76@server.example.com
;from-tag=098594;to-tag=0111
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER,
SUBSCRIBE, NOTIFY
Johnston, et al. Expires September 6, 2006 [Page 154]
Internet-Draft SIP Service Examples March 2006
Supported: replaces
Content-Type: application/sdp
Content-Length: ...
v=0
o=carol 2890844922 2890844922 IN IP4 client.chicago.example.com
s=Session SDP
c=IN IP4 client.chicago.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F17 200 OK Alice -> Carol
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.atlanta.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>
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F18 ACK Carol -> Alice
ACK sips:a8342043f@atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.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
Johnston, et al. Expires September 6, 2006 [Page 155]
Internet-Draft SIP Service Examples March 2006
Content-Length: 0
/* A replaces the session to the Park Server with the new
session with C and generates a BYE to disconnect the
Park Server */
F19 BYE Alice -> Park Server
BYE sips:park@server.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74b4N
Max-Forwards: 70
From: Alice <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
F20 200 OK Park Server -> Alice
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74b4N
;received=192.0.2.103
From: Alice <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. Expires September 6, 2006 [Page 156]
Internet-Draft SIP Service Examples March 2006
2.17. 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 |
|<---------------------------------|
| | NOTIFY F14 |
| |------------------>|
| | 481 F15 |
| |<------------------|
| |
| Both way RTP Established |
|<================================>|
| BYE F16 |
|--------------------------------->|
| 200 OK F17 |
|<---------------------------------|
| |
Bob and Bill are part of a work group at example.com that can pick up
each others 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
Johnston, et al. Expires September 6, 2006 [Page 157]
Internet-Draft SIP Service Examples March 2006
Alice. Alice answers the INVITE and sends a CANCEL to stop Bob's
phone ringing. Note that the order of the CANCEL/ACK sequence in F11
through F20 is not significant.
This call flow shows the use of the "early-only" parameter [4] in the
Replaces header field of F7. This parameter prevents Alice from
accepting the INVITE if Bob has already accepted the INVITE. If Bill
had wished to "take" the call from Bob regardless of whether he had
answered, the parameter would not have been present in F7.
Also note that the subscription between Bob and Carol could have been
established prior to Alice's call.
Message Details
F1 INVITE Alice -> Bob
INVITE sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
Max-Forwards: 70
From: Alice <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>
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 180 Ringing 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 September 6, 2006 [Page 158]
Internet-Draft SIP Service Examples March 2006
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
/* 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
Subscription-State: active;expires=3600
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
Johnston, et al. Expires September 6, 2006 [Page 159]
Internet-Draft SIP Service Examples March 2006
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:bob@client.biloxi.example.com>
Event: dialog
Subscription-State: active;expires=3600
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"
remote-uri="alice@atlanta.example.com"
remote-target="alice@client.atlanta.example.com">
<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
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 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>
Call-ID: 563456212@b2.biloxi.example.com
CSeq: 1 INVITE
Replaces: 12345600@atlanta.example.com
;to-tag=314578;from-tag=1234567;early-only
Contact: <sips:bill@pc.biloxi.example.com>
Johnston, et al. Expires September 6, 2006 [Page 160]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 pc.biloxi.example.com
t=3034423619 0
m=audio 5342 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Alice matches the dialog information in the Replaces header
and accepts the INVITE */
F8 200 OK Alice -> 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>
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=0 0
m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* Alice stops Bob's phone from ringing by sending a CANCEL */
F9 CANCEL Alice -> Bob
CANCEL sips:bob@biloxi.example.com SIP/2.0
Johnston, et al. Expires September 6, 2006 [Page 161]
Internet-Draft SIP Service Examples March 2006
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 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
Johnston, et al. Expires September 6, 2006 [Page 162]
Internet-Draft SIP Service Examples March 2006
F13 ACK Bill -> Alice
ACK sips:a8342043f@atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS b2.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
F14 NOTIFY Bob -> Bill
NOTIFY sips:bill@pc.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bK749X
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: 2 NOTIFY
Contact: <sips:bob@client.biloxi.example.com>
Event: dialog
Subscription-State: active;expires=3600
Content-Type: application/dialog-info+xml
Content-Length: ...
<?xml version="1.0"?>
<dialog-info xmlns="urn:ietf:params:xml:ns:dialog-info"
version="1" state="partial" entity="sips:bob@biloxi.example.com">
<dialog id="94992014524" call-id="12345600@atlanta.example.com"
local-tag="3145678" remote-tag="1234567" direction="recipient">
<state>terminated</state>
</dialog>
</dialog-info>
F15 481 Dialog Does Not Exist Bill -> Bob
SIP/2.0 481 Dialog Does Not Exist
Via: SIP/2.0/TLS bob.biloxi.example.com:5061
;branch=z9hG4bK749X
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: 2 NOTIFY
Johnston, et al. Expires September 6, 2006 [Page 163]
Internet-Draft SIP Service Examples March 2006
Content-Length: 0
/* RTP streams are established between Alice and Bill.
Alice Hangs Up with Bob. */
F16 BYE Alice -> Bill
BYE sips:bill@pc.biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf
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
F17 200 OK Bill -> Alice
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf
;received=192.0.2.103
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. Expires September 6, 2006 [Page 164]
Internet-Draft SIP Service Examples March 2006
2.18. Automatic Redial
Alice Bob
| |
| INVITE F1 |
|--------------->|
|486 Busy Here F2|
|<---------------| Bob is busy
| ACK F3 |
|--------------->|
| SUBSCRIBE F4 |
|--------------->|
| 200 OK F5 |
|<---------------|
| NOTIFY F6 |
|<---------------|
| 200 OK F7 |
|--------------->|
| |
| NOTIFY F8 | Bob is now available
|<---------------|
| 200 OK F9 |
|--------------->|
| |
| INVITE F10 |
|--------------->| Session setup successfully
| 180 Ringing F11|
|<---------------|
| 200 OK F12 |
|<---------------|
| ACK F13 |
|--------------->|
| Media Session |
|<==============>|
| |
Bob is initially busy when Alice calls. Alice subscribes to User B's
call state using a SUBSCRIBE F4. Bob sends a NOTIFY F8 when Bob is
available. A is alerted, then Alice sends an INVITE to B to
establish the session.
Message Details
F1 INVITE Alice -> Bob
INVITE sips:bob@biloxi.example.com SIP/2.0
Johnston, et al. Expires September 6, 2006 [Page 165]
Internet-Draft SIP Service Examples March 2006
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=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 486 Busy Here
SIP/2.0 486 Busy Here
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bf9
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
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
Johnston, et al. Expires September 6, 2006 [Page 166]
Internet-Draft SIP Service Examples March 2006
SUBSCRIBE sips:bob@biloxi.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74b8G
Max-Forwards: 70
From: Alice <sips:alice@atlanta.example.com>;tag=837348234
To: Bob <sips:bob@biloxi.example.com>
Call-ID: 4524526232@atlanta.example.com
CSeq: 1 SUBSCRIBE
Contact: alice@client.atlanta.example.com
Event: dialog
Accept: application/dialog-info+xml
Content-Length: 0
F5 200 OK Bob -> Alice
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74b8G
From: Alice <sips:alice@atlanta.example.com>;tag=837348234
To: Bob <sips:bob@biloxi.example.com>;tag=341123
Call-ID: 4524526232@atlanta.example.com
CSeq: 1 SUBSCRIBE
Contact: bob@client.biloxi.example.com
Content-Length: 0
F6 NOTIFY Bob -> Alice
NOTIFY sips:alice@atlanta.example.com SIP/2.0
Via: SIP/2.0/TLS client.atlanta.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
Event: dialog
Subscription-State: active;expires=3600
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>confirmed</state>
</dialog>
Johnston, et al. Expires September 6, 2006 [Page 167]
Internet-Draft SIP Service Examples March 2006
</dialog-info>
F7 200 OK Alice -> Bob
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.atlanta.example.com:5061
;branch=z9hG4bK74bn2
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.atlanta.example.com:5061
;branch=z9hG4bK74bVi
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: 2 NOTIFY
Event: dialog
Subscription-State: active;expires=3600
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.atlanta.example.com:5061
;branch=z9hG4bK74bVi
From: Bob <sips:bob@biloxi.example.com>;tag=341123
To: Alice <sips:alice@atlanta.example.com>;tag=837348234
Johnston, et al. Expires September 6, 2006 [Page 168]
Internet-Draft SIP Service Examples March 2006
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: ...
v=0
o=alice 2890844526 2890844526 IN IP4 client.atlanta.example.com
s=Session SDP
c=IN IP4 client.atlanta.example.com
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F11 180 Ringing Bob -> Alice
SIP/2.0 180 Ringing
Via: SIP/2.0/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
Johnston, et al. Expires September 6, 2006 [Page 169]
Internet-Draft SIP Service Examples March 2006
;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 2890844527 2890844527 IN IP4 client.biloxi.example.com
s=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F13 ACK Alice -> Bob
ACK 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
Johnston, et al. Expires September 6, 2006 [Page 170]
Internet-Draft SIP Service Examples March 2006
2.19. Click to Dial
Bob's PC Bob Carol
| REFER Refer-To:Carol F1 |
|------------------->| |
| 202 Accepted F2 | |
|<-------------------| |
| NOTIFY F3 | |
|<-------------------| |
| 200 OK F4 | |
|------------------->| |
| | INVITE F5 |
| |------------------->|
| | 180 Ringing F6 |
| |<-------------------|
| | 200 OK F7 |
| |<-------------------|
| | ACK F8 |
| |------------------->|
| | RTP |
| |<==================>|
| | |
In this example, while browsing the web on his PC, Bob clicks on
Carol's SIP URI intending to establish a session with Carol. Bob's
web browser passes the SIP URI to the SIP client on Bob's PC. The PC
client is configured with the URI of Bob's SIP phone. A REFER is
sent to the SIP phone which results in the establishment of the
session between Bob and Carol.
Note that Bob's SIP phone immediately terminates the dialog by
indicating in the NOTIFY (F3) that the subscription is terminated.
This flow is preferable to the 3pcc flow because the end-to-end SIP
signaling is not interrupted by the 3pcc controller, and because
Bob's experience of the call will not be marred by the lack of
ringback tone or possible clipping. Suitable authorization of the
REFER and explicit authorization of the triggered INVITE by Bob is
necessary.
Message Details
/* Bob's PC SIP Client sends a REFER to Bob's SIP phone */
F1 REFER PC -> Bob
Johnston, et al. Expires September 6, 2006 [Page 171]
Internet-Draft SIP Service Examples March 2006
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>
Call-ID: 12345601@atlanta.example.com
CSeq: 1 REFER
Refer-To: <sips:carol@chicago.example.com>
Contact: <sips:pc.client.atlanta.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.113
From: <sips:pc.biloxi.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: 1 REFER
Content-Length: 0
F3 NOTIFY Bob -> PC
NOTIFY sips:pc.biloxi.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=314159
To: <sips:pc.biloxi.example.com>;tag=1234567
Call-ID: 12345601@atlanta.example.com
CSeq: 1 NOTIFY
Event: refer
Subscription-State: terminated;reason=noresource
Content-Type: message/sipfrag
Content-Length: ...
SIP/2.0 100 Trying
F4 200 OK PC -> Bob
Johnston, et al. Expires September 6, 2006 [Page 172]
Internet-Draft SIP Service Examples March 2006
SIP/2.0 200 OK
Via: SIP/2.0/TLS client.biloxi.example.com:5061
;branch=z9hG4bKnashds9
;received=192.0.2.113
From: Bob <sips:bob@biloxi.example.com>;tag=314159
To: <sips:pc.biloxi.example.com>;tag=1234567
Call-ID: 12345601@atlanta.example.com
CSeq: 1 NOTIFY
Content-Length: 0
F5 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: <sip: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=Session SDP
c=IN IP4 client.biloxi.example.com
t=3034423821 0
m=audio 3458 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F6 180 Ringing Carol -> Bob
SIP/2.0 180 Ringing
Via: SIP/2.0/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>
Johnston, et al. Expires September 6, 2006 [Page 173]
Internet-Draft SIP Service Examples March 2006
Content-Length: 0
F7 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=Session SDP
c=IN IP4 client.chicago.example.com
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F8 ACK Bob -> Carol
ACK 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
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
Johnston, et al. Expires September 6, 2006 [Page 174]
Internet-Draft SIP Service Examples March 2006
Multiparty Framework document [12] apply.
Many of the services shown in this document rely on a particular user
agent being part of a group. Members of a group could be, for
example, employees within a particular department, a set of home
phone extensions, members of a call center, etc. As such, user
agents which are part of the group permit other group members special
privileges and features. For example, while a user agent may not in
general allow another user agent to learn detailed dialog
information, this information might be shared with another group
member in order to facilitate a service such as call pickup. Group
members must be authenticated using normal SIP means such as
certificates or shared secrets.
The service examples in this document make extensive use of the SIP
call control primitives REFER, Replaces, Join, and the dialog
package. The security considerations associated with each of these
extensions apply to the scenarios in this document.
4. IANA Considerations
None.
5. Acknowledgements
The Transfer - Instant Messaging call flow is based on the "IM-a-
call" call flow by Jonathan Rosenberg and Henning Schulzrinne. The
Automatic Call Back call flow is based on a call flow by Adam Roach.
The Single Line Extension call flow is based on a call flow by
Jonathan Rosenberg. The authors wish to thank the following
individuals for their assistance and review of this call flows
document: Joel Repiquet, Aki Neimi, Rohan Mahey, Jonathan Rosenberg,
Hemant Agrawal, Henry Sinnreich, Dean Willis, David Devanatham, Joe
Pizzimenti, Matt Cannon, John Hearty, the whole MCI WorldCom IPOP
Design team, Scott Orton, Greg Osterhout, Pat Sollee, Doug
Weisenberg, Danny Mistry, Steve McKinnon, and Denise Ingram, Denise
Caballero, Tom Redman, Ilya Slain, Pat Sollee, John Truetken, and
others from MCI WorldCom, 3Com, Cisco, Lucent and Nortel.
6. Document History
The first version of this document was the Internet-Draft
draft-sparks-sip-service-examples October 1999.
The next version was combined with the SIP Telephony Call Flows
Johnston, et al. Expires September 6, 2006 [Page 175]
Internet-Draft SIP Service Examples March 2006
document into the draft-ietf-sip-call-flows April 2000.
The current version was renamed as a work item of the SIPPING WG.
6.1. Changes since -07
- Minor corrects. - Updated references.
7. References
7.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[2] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
Session Initiation Protocol", RFC 3261, June 2002.
[3] Sparks, R., "The Session Initiation Protocol (SIP) Refer
Method", RFC 3515, April 2003.
[4] Mahy, R., Biggs, B., and R. Dean, "The Session Initiation
Protocol (SIP) "Replaces" Header", RFC 3891, September 2004.
[5] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with
Session Description Protocol (SDP)", RFC 3264, June 2002.
[6] Roach, A., "Session Initiation Protocol (SIP)-Specific Event
Notification", RFC 3265, June 2002.
[7] Sparks, R., "Session Initiation Protocol Call Control -
Transfer", draft-ietf-sipping-cc-transfer-05 (work in
progress), July 2005.
[8] Rosenberg, J., Schulzrinne, H., and R. Mahy, "An INVITE-
Initiated Dialog Event Package for the Session Initiation
Protocol (SIP)", RFC 4235, November 2005.
[9] Mahy, R. and D. Petrie, "The Session Initiation Protocol (SIP)
"Join" Header", RFC 3911, October 2004.
[10] Rosenberg, J., Schulzrinne, H., and P. Kyzivat, "Indicating
User Agent Capabilities in the Session Initiation Protocol
(SIP)", RFC 3840, August 2004.
[11] Levin, O., "Session Initiation Protocol Call Control -
Johnston, et al. Expires September 6, 2006 [Page 176]
Internet-Draft SIP Service Examples March 2006
Conferencing for User Agents",
draft-ietf-sipping-cc-conferencing-07 (work in progress),
June 2005.
[12] Mahy, R., "A Call Control and Multi-party usage framework for
the Session Initiation Protocol (SIP)",
draft-ietf-sipping-cc-framework-05 (work in progress),
October 2005.
[13] Campbell, B. and R. Sparks, "Control of Service Context using
SIP Request-URI", RFC 3087, April 2001.
[14] Sparks, R., "Internet Media Type message/sipfrag", RFC 3420,
November 2002.
[15] Campbell, B., Rosenberg, J., Schulzrinne, H., Huitema, C., and
D. Gurle, "Session Initiation Protocol (SIP) Extension for
Instant Messaging", RFC 3428, December 2002.
7.2. Informative References
[16] 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.
[17] 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.
[18] Rosenberg, J., "A Session Initiation Protocol (SIP) Event
Package for Conference State",
draft-ietf-sipping-conference-package-12 (work in progress),
July 2005.
[19] Rosenberg, J., "A Session Initiation Protocol (SIP) Event
Package for Registrations", RFC 3680, March 2004.
[20] Rosenberg, J., "Obtaining and Using Globally Routable User
Agent (UA) URIs (GRUU) in the Session Initiation Protocol
(SIP)", draft-ietf-sip-gruu-06 (work in progress),
October 2005.
Johnston, et al. Expires September 6, 2006 [Page 177]
Internet-Draft SIP Service Examples March 2006
Authors' Addresses
Alan Johnston (editor)
SIPStation
St. Louis, MO 63124
Email: alan@sisptation.com
Robert J. Sparks
Estacado Systems
Email: RjS@estacado.net
Chris Cunningham
Estacado Systems
Steve Donovan
Estacado Systems
Kevin Summers
Sonus
1701 North Collins Blvd, Suite 3000
Richardson, TX 75080
Email: kevin.summers@sonusnet.com
Johnston, et al. Expires September 6, 2006 [Page 178]
Internet-Draft SIP Service Examples March 2006
Intellectual Property Statement
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.
Disclaimer of Validity
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement
Copyright (C) The Internet Society (2006). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Johnston, et al. Expires September 6, 2006 [Page 179]