draft-ietf-sip-service-examples-02.txt   draft-ietf-sip-service-examples-03.txt 
Internet Engineering Task Force Alan Johnston Internet Engineering Task Force Alan Johnston
Internet Draft WorldCom Internet Draft WorldCom
Document: draft-ietf-sip-service-examples-02.txt Robert Sparks Document: draft-ietf-sip-service-examples-03.txt Robert Sparks
Category: Informational Chris Cunningham Category: Informational Chris Cunningham
June 2001 Steve Donovan November 2001 Steve Donovan
Expires: December 2001 dynamicsoft Expires: June 2002 dynamicsoft
Kevin Summers Kevin Summers
Sonus Sonus
SIP Service Examples SIP Service Examples
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026[1]. all provisions of Section 10 of RFC2026[1].
skipping to change at page 1, line 40 skipping to change at page 1, line 40
Abstract Abstract
This informational document gives examples of SIP (Session Initiation This informational document gives examples of SIP (Session Initiation
Protocol) services. This covers most features offered in so-called Protocol) services. This covers most features offered in so-called
Centrex offerings from local exchange carriers and PBX (Private Centrex offerings from local exchange carriers and PBX (Private
Branch Exchange) features. Most of the services shown in this Branch Exchange) features. Most of the services shown in this
document are implemented in the SIP User Agents, although some document are implemented in the SIP User Agents, although some
require the assistance of a SIP Proxy. Some require some extensions require the assistance of a SIP Proxy. Some require some extensions
to SIP including the REFER method and Replaces header. These features to SIP including the REFER method and Replaces header. These features
are not intented to be an exhaustive set, but rather show are not intended to be an exhaustive set, but rather show
implementations of common features likely to be implemented on SIP IP implementations of common features likely to be implemented on SIP IP
Telephones in a business environment. Telephones in a business environment.
Table of Contents Table of Contents
1 Overview...................................................3 1 Overview...................................................3
1.1 Legend for Message Flows...................................4 1.1 Legend for Message Flows...................................4
1.2 Document History...........................................4 1.2 Document History...........................................4
2 IP Telephony Services Features Call Flows..................6 2 IP Telephony Services Features Call Flows..................6
2.1 Call Hold..................................................6 2.1 Call Hold..................................................6
skipping to change at page 4, line 35 skipping to change at page 4, line 35
The first version of this document was the Internet-Draft The first version of this document was the Internet-Draft
"draft-sparks-sip-service-examples.txt" October 1999. "draft-sparks-sip-service-examples.txt" October 1999.
The next version was combined with the SIP Telephony Call Flows The next version was combined with the SIP Telephony Call Flows
document into the "draft-ietf-sip-call-flows-00.txt" April 2000. document into the "draft-ietf-sip-call-flows-00.txt" April 2000.
This version is based on Section 7 of that document with many of the This version is based on Section 7 of that document with many of the
examples extensively rewritten using the REFER method. examples extensively rewritten using the REFER method.
1.3 Changes since 00 1.3 Changes to 00
- Moddified all REFER flows to include 202 Accepted and NOTIFY - Moddified all REFER flows to include 202 Accepted and NOTIFY
result message. result message.
- Removed "Telephony" from title of document. - Removed "Telephony" from title of document.
- Added note on 2.9 on use of REFER to exit 3-way conference. - Added note on 2.9 on use of REFER to exit 3-way conference.
- Modified Music on Hold/Call Park flow (2.2). - Modified Music on Hold/Call Park flow (2.2).
- Modified order of messages in transfers (2.4 and 2.5) to more - Modified order of messages in transfers (2.4 and 2.5) to more
closely resemble PSTN experience. closely resemble PSTN experience.
- Added Call Pickup flow (2.13). - Added Call Pickup flow (2.13).
- Added editorial notes on usefulness of Replaces header. - Added editorial notes on usefulness of Replaces header.
1.4 Changes since 01 1.4 Changes to 01
- Added Replaces header to flows. - Added Replaces header to flows.
- Changed handling of call hold. - Changed handling of call hold.
- Added Contact and Referred-By headers and ref parameters to REFER - Added Contact and Referred-By headers and ref parameters to REFER
messages. messages.
- Changed some Contacts, Routes, and Request-URIs to IP addresses. - Changed some Contacts, Routes, and Request-URIs to IP addresses.
- Incremented o= line when SDP is updated with hold. - Incremented o= line when SDP is updated with hold.
- Added From tags throughout. - Added From tags throughout.
- Renamed Music On Hold/Call Park to Call Park and added new Music On - Renamed Music On Hold/Call Park to Call Park and added new Music On
Hold call flow using 3pcc. Hold call flow using 3pcc.
1.5 Changes to 02
- Changed call hold flows to show sendonly attribute based on [8].
- Removed ref parameter from the Referred-By headers since it is now
just a generic paramter in the latest draft [4]. (Note that if the
ref parameter stays, additional characters such as "<", "@", and ">"
must be escaped.)
- Removed tags in CANCEL requests and responses.
2 IP Telephony Services Features Call Flows 2 IP Telephony Services Features Call Flows
These call flows show how a number of standard telephony features can These call flows show how a number of standard telephony features can
be implemented using SIP. They are not meant to represent a complete be implemented using SIP. They are not meant to represent a complete
set. Some calls make use of SIP extensions. set. Some calls make use of SIP extensions.
2.1 Call Hold 2.1 Call Hold
User A Proxy User B User A Proxy User B
| | | | | |
skipping to change at page 6, line 31 skipping to change at page 6, line 31
| 180 Ringing F5 |<-------------| | 180 Ringing F5 |<-------------|
|<---------------| | |<---------------| |
| | 200 OK F6 | | | 200 OK F6 |
| 200 OK F7 |<-------------| | 200 OK F7 |<-------------|
|<---------------| | |<---------------| |
| ACK F8 | | | ACK F8 | |
|--------------->| ACK F9 | |--------------->| ACK F9 |
| |------------->| | |------------->|
| Both way RTP Established | | Both way RTP Established |
|<=============================>| |<=============================>|
| |INVITE (c=0) F10 | |INVITE(hold) F10
|INVITE (c=0) F11|<-------------| |INVITE(hold) F11|<-------------|
|<---------------| | |<---------------| |
| 200 OK F12 | | | 200 OK F12 | |
|--------------->| 200 OK F13 | |--------------->| 200 OK F13 |
| |------------->| | |------------->|
| | ACK F14 | | | ACK F14 |
| ACK F15 |<-------------| | ACK F15 |<-------------|
|<---------------| | |<---------------| |
| No RTP Sent! | | No RTP Sent! |
| | INVITE F16 | | | INVITE F16 |
| INVITE F17 |<-------------| | INVITE F17 |<-------------|
skipping to change at page 10, line 30 skipping to change at page 10, line 30
To: BigGuy <sip:UserA@here.com>;tag=1234567 To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345601@here.com Call-ID: 12345601@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: <sip:UserB@110.111.112.113> Contact: <sip:UserB@110.111.112.113>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844528 2890844528 IN IP4 client.there.com o=UserB 2890844528 2890844528 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 0.0.0.0 c=IN IP4 110.111.112.113
t=3034423619 0 t=3034423619 0
m=audio 3456 RTP/AVP 0 m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
a=sendonly
F11 INVITE Proxy 1 -> A F11 INVITE Proxy 1 -> A
INVITE sip:UserA@100.101.102.103 SIP/2.0 INVITE sip:UserA@100.101.102.103 SIP/2.0
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com> Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
From: LittleGuy <sip:UserB@there.com>;tag=314159 From: LittleGuy <sip:UserB@there.com>;tag=314159
To: BigGuy <sip:UserA@here.com>;tag=1234567 To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345601@here.com Call-ID: 12345601@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: <sip:UserB@110.111.112.113> Contact: <sip:UserB@110.111.112.113>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844528 2890844528 IN IP4 client.there.com o=UserB 2890844528 2890844528 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 0.0.0.0 c=IN IP4 110.111.112.113
t=3034423619 0 t=3034423619 0
m=audio 3456 RTP/AVP 0 m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
a=sendonly
/* A replies with normal SDP */ /* A replies with normal SDP */
F12 200 OK A -> Proxy 1 F12 200 OK A -> Proxy 1
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com> Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
From: LittleGuy <sip:UserB@there.com>;tag=314159 From: LittleGuy <sip:UserB@there.com>;tag=314159
skipping to change at page 16, line 25 skipping to change at page 16, line 25
| 180 Ringing F5 | | | | 180 Ringing F5 | | |
|<---------------| 200 OK F6 | | |<---------------| 200 OK F6 | |
| |<-------------| | | |<-------------| |
| 200 OK F7 | | | | 200 OK F7 | | |
|<---------------| | | |<---------------| | |
| ACK F8 | | | | ACK F8 | | |
|--------------->| ACK F9 | | |--------------->| ACK F9 | |
| |------------->| | | |------------->| |
| Both way RTP Established | | | Both way RTP Established | |
|<=============================>| | |<=============================>| |
| |INVITE (c=0) F10 | | |INVITE(hold) F10 |
|INVITE (c=0) F11|<-------------| | |INVITE(hold) F11|<-------------| |
|<---------------| | | |<---------------| | |
| 200 OK F12 | | | | 200 OK F12 | | |
|--------------->| 200 OK F13 | | |--------------->| 200 OK F13 | |
| |------------->| | | |------------->| |
| | ACK F14 | | | | ACK F14 | |
| |<-------------| | | |<-------------| |
| ACK F15 | | | | ACK F15 | | |
|<---------------| | | |<---------------| | |
| No RTP Sent! | | | No RTP Sent! | |
| | INVITE F16 | | | | INVITE F16 | |
skipping to change at page 20, line 51 skipping to change at page 20, line 51
To: BigGuy <sip:UserA@here.com>;tag=1234567 To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: <sip:UserB@110.111.112.113> Contact: <sip:UserB@110.111.112.113>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844528 2890844528 IN IP4 client.there.com o=UserB 2890844528 2890844528 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 0.0.0.0 c=IN IP4 110.111.112.113
t=3034423619 0 t=3034423619 0
m=audio 3456 RTP/AVP 0 m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
a=sendonly
F11 INVITE Proxy 1 -> A F11 INVITE Proxy 1 -> A
INVITE sip:UserA@100.101.102.103 SIP/2.0 INVITE sip:UserA@100.101.102.103 SIP/2.0
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com> Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
From: LittleGuy <sip:UserB@there.com>;tag=314159 From: LittleGuy <sip:UserB@there.com>;tag=314159
To: BigGuy <sip:UserA@here.com>;tag=1234567 To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: <sip:UserB@110.111.112.113> Contact: <sip:UserB@110.111.112.113>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844528 2890844528 IN IP4 client.there.com o=UserB 2890844528 2890844528 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 0.0.0.0 c=IN IP4 110.111.112.113
t=3034423619 0 t=3034423619 0
m=audio 3456 RTP/AVP 0 m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
a=sendonly
F12 200 OK A -> Proxy 1 F12 200 OK A -> Proxy 1
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com> Record-Route: <sip:UserA@here.com;maddr=ss1.wcom.com>
From: LittleGuy <sip:UserB@there.com>;tag=314159 From: LittleGuy <sip:UserB@there.com>;tag=314159
To: BigGuy <sip:UserA@here.com>;tag=1234567 To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
skipping to change at page 31, line 10 skipping to change at page 31, line 10
| ACK F16 | | | ACK F16 | |
|<---------------| | |<---------------| |
| RTP | | | RTP | |
|<==============>| | |<==============>| |
In this flow,B places A on hold with music. This is performed by B In this flow,B places A on hold with music. This is performed by B
acting as a B2BUA (Back-to-Back User Agent) using 3pcc (third party acting as a B2BUA (Back-to-Back User Agent) using 3pcc (third party
call control) [7] to INVITE a Music Server into the session, which call control) [7] to INVITE a Music Server into the session, which
sends RTP music to A. B picks the call up from hold by sending a BYE sends RTP music to A. B picks the call up from hold by sending a BYE
to the music server and taking A off of hold. to the music server and taking A off of hold.
Note that if A responds to the INVITE with hold SDP (c=0) with hold Note that if A responds to the INVITE with hold SDP with hold SDP in
SDP in the 200 OK, this call flow will not work properly. the 200 OK, this call flow will not work properly.
Note also that A will receive RTP packets from two different IP Note also that A will receive RTP packets from two different IP
addresses during this call flow. addresses during this call flow.
Message Details Message Details
F1 INVITE A -> B F1 INVITE A -> B
INVITE sip:UserB@there.com SIP/2.0 INVITE sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
skipping to change at page 33, line 44 skipping to change at page 33, line 44
From: LittleGuy <sip:UserB@there.com>;tag=23431 From: LittleGuy <sip:UserB@there.com>;tag=23431
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: <sip:UserB@110.111.112.113> Contact: <sip:UserB@110.111.112.113>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844528 2890844528 IN IP4 client.there.com o=UserB 2890844528 2890844528 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 0.0.0.0 c=IN IP4 110.111.112.113
t=3034423619 0 t=3034423619 0
m=audio 3456 RTP/AVP 0 m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
a=sendonly
/* A responds with normal SDP */ /* A responds with normal SDP */
F9 200 OK A -> B F9 200 OK A -> B
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
To: BigGuy <sip:UserA@here.com>;tag=1234567 To: BigGuy <sip:UserA@here.com>;tag=1234567
From: LittleGuy <sip:UserB@there.com>;tag=23431 From: LittleGuy <sip:UserB@there.com>;tag=23431
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: <sip:UserB@100.101.102.103> Contact: <sip:UserB@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
skipping to change at page 39, line 36 skipping to change at page 39, line 36
F5 REFER A -> B F5 REFER A -> B
REFER sip:UserB@there.com SIP/2.0 REFER sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
From: BigGuy <sip:UserA@here.com>;tag=1234567 From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=314159 To: LittleGuy <sip:UserB@there.com>;tag=314159
Call-ID: 12345601@here.com Call-ID: 12345601@here.com
CSeq: 2 REFER CSeq: 2 REFER
Refer-To: <sip:UserC@anywhere.com> Refer-To: <sip:UserC@anywhere.com>
Referred-By: <UserA@here.com>;ref=<sip:UserC@anywhere.com> Referred-By: <UserA@here.com>
Contact: <sip:UserA@100.101.102.103> Contact: <sip:UserA@100.101.102.103>
Content-Length: 0 Content-Length: 0
F6 202 Accepted B -> A F6 202 Accepted B -> A
SIP/2.0 202 Accepted SIP/2.0 202 Accepted
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
From: BigGuy <sip:UserA@here.com>;tag=1234567 From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=314159 To: LittleGuy <sip:UserB@there.com>;tag=314159
Call-ID: 12345601@here.com Call-ID: 12345601@here.com
skipping to change at page 46, line 24 skipping to change at page 46, line 24
To: BigGuy <sip:UserA@here.com>;tag=1234567 To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1024 INVITE CSeq: 1024 INVITE
Contact: <sip:UserB@110.111.112.113> Contact: <sip:UserB@110.111.112.113>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844528 2890844528 IN IP4 client.there.com o=UserB 2890844528 2890844528 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 0.0.0.0 c=IN IP4 110.111.112.113
t=3034423619 0 t=3034423619 0
m=audio 3456 RTP/AVP 0 m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
a=sendonly
F7 200 OK A -> B F7 200 OK A -> B
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=23431 From: LittleGuy <sip:UserB@there.com>;tag=23431
To: BigGuy <sip:UserA@here.com>;tag=1234567 To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1024 INVITE CSeq: 1024 INVITE
Contact: <sip:UserA@100.101.102.103> Contact: <sip:UserA@100.101.102.103>
skipping to change at page 49, line 4 skipping to change at page 49, line 5
To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3 To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3
Call-ID: sdjfdjfskdf@there.com Call-ID: sdjfdjfskdf@there.com
CSeq: 43 INVITE CSeq: 43 INVITE
Contact: <sip:UserB@110.111.112.113> Contact: <sip:UserB@110.111.112.113>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844529 2890844529 IN IP4 client.there.com o=UserB 2890844529 2890844529 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 0.0.0.0 c=IN IP4 110.111.112.113
t=3034423645 0 t=3034423645 0
m=audio 3458 RTP/AVP 0 m=audio 3458 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
a=sendonly
F15 200 OK C -> B F15 200 OK C -> B
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=8675309 From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3 To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3
Call-ID: sdjfdjfskdf@there.com Call-ID: sdjfdjfskdf@there.com
CSeq: 43 INVITE CSeq: 43 INVITE
Contact: <sip:UserC@120.121.122.123> Contact: <sip:UserC@120.121.122.123>
skipping to change at page 49, line 52 skipping to change at page 50, line 5
REFER sip:UserA@here.com SIP/2.0 REFER sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=23431 From: LittleGuy <sip:UserB@there.com>;tag=23431
To: BigGuy <sip:UserA@here.com>;tag=1234567 To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345678900@here.com Call-ID: 12345678900@here.com
CSeq: 1025 REFER CSeq: 1025 REFER
Refer-To: <sip:UserC@anywhere.com?Replaces= Refer-To: <sip:UserC@anywhere.com?Replaces=
sdjfdjfskdf@there.com%3Bto-tag%3D5f35a3%3Bfrom-tag%3D8675309&Accept- sdjfdjfskdf@there.com%3Bto-tag%3D5f35a3%3Bfrom-tag%3D8675309&Accept-
Contact=%3Csip%3AUserC@120.121.122.123%3C%3Bonly%3Dtrue> Contact=%3Csip%3AUserC@120.121.122.123%3C%3Bonly%3Dtrue>
Referred-By: <sip:UserB@there.com>;ref= Referred-By: <sip:UserB@there.com>
<sip:UserC@anywhere.com?Replaces=
sdjfdjfskdf@there.com%3Bto-tag%3D5f35a3%3Bfrom-tag%3D8675309&Accept-
Contact=%3Csip%3AUserC@120.121.122.123%3C%3Bonly%3Dtrue>
Contact: <sip:UserB@110.111.112.113> Contact: <sip:UserB@110.111.112.113>
Content-Length: 0 Content-Length: 0
F18 202 Accepted A -> B F18 202 Accepted A -> B
SIP/2.0 202 Accepted SIP/2.0 202 Accepted
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=1234567 From: LittleGuy <sip:UserB@there.com>;tag=1234567
To: BigGuy <sip:UserA@here.com>;tag=23431 To: BigGuy <sip:UserA@here.com>;tag=23431
Call-ID: 12345678900@here.com Call-ID: 12345678900@here.com
skipping to change at page 50, line 31 skipping to change at page 50, line 30
between User B and User C */ between User B and User C */
F19 INVITE A -> C F19 INVITE A -> C
INVITE sip:UserA@here.com SIP/2.0 INVITE sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP anywhere.com:5060 Via: SIP/2.0/UDP anywhere.com:5060
To: OtherGuy <sip:UserC@anywhere.com> To: OtherGuy <sip:UserC@anywhere.com>
From: BigGuy <sip:UserA@here.com>;tag=3461 From: BigGuy <sip:UserA@here.com>;tag=3461
Call-ID: 9435674543@here.com Call-ID: 9435674543@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Referred-By: <sip:UserB@there.com>; Referred-By: <sip:UserB@there.com>
ref=<sip:UserC@anywhere.com?Replaces=
sdjfdjfskdf@there.com%3Bto-tag%3D5f35a3%3Bfrom-tag%3D8675309&Accept-
Contact=%3Csip%3AUserC@120.121.122.123%3C%3Bonly%3Dtrue>
Accept-Contact: <sip:UserC@120.121.122.123>;only=true Accept-Contact: <sip:UserC@120.121.122.123>;only=true
Replaces: 12345600@here.com;to-tag=23431;from-tag=8675309 Replaces: 12345600@here.com;to-tag=23431;from-tag=8675309
Contact: <sip:UserC@120.121.122.123> Contact: <sip:UserC@120.121.122.123>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserC 2890844529 2890844529 IN IP4 client.anywhere.com o=UserC 2890844529 2890844529 IN IP4 client.anywhere.com
s=Session SDP s=Session SDP
c=IN IP4 120.121.122.123 c=IN IP4 120.121.122.123
skipping to change at page 67, line 32 skipping to change at page 67, line 32
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
/* B1 rings until a configurable timer expires in the Proxy. The /* B1 rings until a configurable timer expires in the Proxy. The
Proxy sends Cancel and proceeds down the list of routes. */ Proxy sends Cancel and proceeds down the list of routes. */
F6 CANCEL Proxy -> B1 F6 CANCEL Proxy -> B1
CANCEL sip:UserB1@110.111.112.113 SIP/2.0 CANCEL sip:UserB1@110.111.112.113 SIP/2.0
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
From: BigGuy <sip:UserA@here.com>;tag=1234567 From: BigGuy <sip:UserA@here.com>
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 CANCEL CSeq: 1 CANCEL
Content-Length: 0 Content-Length: 0
F7 200 OK B1 -> Proxy F7 200 OK B1 -> Proxy
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
From: BigGuy <sip:UserA@here.com>;tag=1234567 From: BigGuy <sip:UserA@here.com>
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 CANCEL CSeq: 1 CANCEL
Content-Length: 0 Content-Length: 0
F8 487 Request Terminated B1 -> Proxy F8 487 Request Terminated B1 -> Proxy
SIP/2.0 487 Request Terminated SIP/2.0 487 Request Terminated
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com>;tag=1234567 From: BigGuy <sip:UserA@here.com>;tag=1234567
skipping to change at page 76, line 5 skipping to change at page 76, line 5
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
/* B1 rings for until a configurable timer in the Proxy expires. The /* B1 rings for until a configurable timer in the Proxy expires. The
Proxy then sends Cancel and proceeds down the list of routes. */ Proxy then sends Cancel and proceeds down the list of routes. */
F6 CANCEL Proxy -> B1 F6 CANCEL Proxy -> B1
CANCEL sip:UserB@110.111.112.113 SIP/2.0 CANCEL sip:UserB@110.111.112.113 SIP/2.0
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
From: BigGuy <sip:UserA@here.com>;tag=1234567 From: BigGuy <sip:UserA@here.com>
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 CANCEL CSeq: 1 CANCEL
Content-Length: 0 Content-Length: 0
F7 200 OK B1 -> Proxy F7 200 OK B1 -> Proxy
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
From: BigGuy <sip:UserA@here.com>;tag=1234567 From: BigGuy <sip:UserA@here.com>
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 CANCEL CSeq: 1 CANCEL
Content-Length: 0 Content-Length: 0
F8 487 Request Terminated B1 -> Proxy F8 487 Request Terminated B1 -> Proxy
SIP/2.0 487 Request Terminated SIP/2.0 487 Request Terminated
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
skipping to change at page 89, line 25 skipping to change at page 89, line 25
|<-------------| | |<-------------| |
| ACK F4 | | | ACK F4 | |
|------------->| | |------------->| |
| RTP Media | | | RTP Media | |
|<============>| | |<============>| |
| User B Parks Call | | User B Parks Call |
| | REFER Refer-To: A F5 | | REFER Refer-To: A F5
| |------------->| | |------------->|
| | 202 F6 | | | 202 F6 |
| |<-------------| | |<-------------|
| INVITE F7 Referred-By: B | | INVITE F7 Replaces: B |
|<----------------------------| |<----------------------------|
| 200 OK F8 | | 200 OK F8 |
|---------------------------->| |---------------------------->|
| ACK F9 | | ACK F9 |
|<----------------------------| |<----------------------------|
| RTP Music | | RTP Music |
|<===========================>| |<===========================>|
| BYE F10 | | | BYE F10 | |
|------------->| NOTIFY F12 | |------------->| NOTIFY F12 |
| 200 OK F11 |<-------------| | 200 OK F11 |<-------------|
skipping to change at page 91, line 48 skipping to change at page 91, line 48
REFER sip:park@server.com SIP/2.0 REFER sip:park@server.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=02134 From: LittleGuy <sip:UserB@there.com>;tag=02134
To: Park Server <sip:park@server.com> To: Park Server <sip:park@server.com>
Call-ID: 4802029847@there.com Call-ID: 4802029847@there.com
CSeq: 1 REFER CSeq: 1 REFER
Refer-To: <sip:UserA@here.com?Replaces= Refer-To: <sip:UserA@here.com?Replaces=
12345601@here.com%3Bfrom-tag%3D314159%3Bto-tag%3D1234567&Accept- 12345601@here.com%3Bfrom-tag%3D314159%3Bto-tag%3D1234567&Accept-
Contact=%3Csip%3AUserA@100.101.102.103%3C%3Bonly%3Dtrue> Contact=%3Csip%3AUserA@100.101.102.103%3C%3Bonly%3Dtrue>
Referred-By: <sip:UserB@there.com> Referred-By: <sip:UserB@there.com>
;ref=<sip:UserA@here.com?Replaces=
12345601@here.com%3Bfrom-tag%3D314159%3Bto-tag%3D1234567&Accept-
Contact=%3Csip%3AUserA@100.101.102.103%3C%3Bonly%3Dtrue>
Contact: <sip:UserB@110.111.112.113> Contact: <sip:UserB@110.111.112.113>
Content-Length: 0 Content-Length: 0
F6 202 Accepted Park Server -> B
F6 202 Accepted Park Server -> B
SIP/2.0 202 Accepted SIP/2.0 202 Accepted
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=02134 From: LittleGuy <sip:UserB@there.com>;tag=02134
To: Park Server <sip:park@server.com>;tag=56323 To: Park Server <sip:park@server.com>;tag=56323
Call-ID: 4802029847@there.com Call-ID: 4802029847@there.com
CSeq: 1 REFER CSeq: 1 REFER
Content-Length: 0 Content-Length: 0
/* Park Server places call to User A to replace session between A and /* Park Server places call to User A to replace session between A and
B */ B */
F7 INVITE Park Server -> A F7 INVITE Park Server -> A
INVITE sip:UserA@100.101.102.103 SIP/2.0 INVITE sip:UserA@100.101.102.103 SIP/2.0
Via: SIP/2.0/UDP server.com:5060 Via: SIP/2.0/UDP server.com:5060
From: <sip:park@server.com>;tag=0111 From: <sip:park@server.com>;tag=0111
To: <sip:UserA@100.101.102.103> To: <sip:UserA@100.101.102.103>
Call-ID: a5-75-34-12-76@server.com Call-ID: a5-75-34-12-76@server.com
CSeq: 1 INVITE CSeq: 1 INVITE
Referred-By: <sip:UserB@there.com> Referred-By: <sip:UserB@there.com>
;ref=<sip:UserA@100.101.102.103?Replaces=12345601@here.com%3Bfrom-
tag%3D314159%3Bto-tag%3D1234567>
Contact: <sip:park@server.com> Contact: <sip:park@server.com>
Replaces: 12345601@here.com;from-tag=314159;to-tag=1234567 Replaces: 12345601@here.com;from-tag=314159;to-tag=1234567
Accept-Contact: <sip:UserA@100.101.102.103>;only=true Accept-Contact: <sip:UserA@100.101.102.103>;only=true
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=ParkServer 2890844576 2890844576 IN IP4 Park.server.com o=ParkServer 2890844576 2890844576 IN IP4 Park.server.com
s=Session SDP s=Session SDP
c=IN IP4 50.60.70.80 c=IN IP4 50.60.70.80
skipping to change at page 102, line 6 skipping to change at page 102, line 6
c=IN IP4 110.111.112.114 c=IN IP4 110.111.112.114
t=0 0 t=0 0
m=audio 3456 RTP/AVP 0 m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
/* The Proxy detects the answer by B2 and cancels the B1 branch */ /* The Proxy detects the answer by B2 and cancels the B1 branch */
F13 CANCEL Proxy -> B1 F13 CANCEL Proxy -> B1
CANCEL sip:UserB1@110.111.112.113 SIP/2.0 CANCEL sip:UserB1@110.111.112.113 SIP/2.0
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
From: BigGuy <sip:UserA@here.com>;tag=1234567 From: BigGuy <sip:UserA@here.com>
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 CANCEL CSeq: 1 CANCEL
Content-Length: 0 Content-Length: 0
F14 200 OK B1 -> Proxy F14 200 OK B1 -> Proxy
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.1
From: BigGuy <sip:UserA@here.com>;tag=1234567 From: BigGuy <sip:UserA@here.com>
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 CANCEL CSeq: 1 CANCEL
Content-Length: 0 Content-Length: 0
F15 ACK A -> Proxy F15 ACK A -> Proxy
ACK sip:UserB2@there.com SIP/2.0 ACK sip:UserB2@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Route: <sip:UserB@110.111.112.114> Route: <sip:UserB@110.111.112.114>
skipping to change at page 106, line 18 skipping to change at page 106, line 18
9, RFC 2026, October 1996. 9, RFC 2026, October 1996.
[2] M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg, "SIP: [2] M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg, "SIP:
Session Initiation Protocol", RFC 2543, March 1999. Session Initiation Protocol", RFC 2543, March 1999.
[3] A. Johnston, S. Donovan, R. Sparks, C. Cunningham, D. Willis, J. [3] A. Johnston, S. Donovan, R. Sparks, C. Cunningham, D. Willis, J.
Rosenberg, and H. Schulzrinne, "SIP Call Flow Examples", Internet Rosenberg, and H. Schulzrinne, "SIP Call Flow Examples", Internet
Draft, Internet Engineering Task Force, June 2001, Work in Draft, Internet Engineering Task Force, June 2001, Work in
Progress. Progress.
[4] R. Sparks, "SIP Call Control Transfer", Internet Draft, [4] R. Sparks, "The Refer Method", Internet Draft,
Internet Engineering Task Force, February 2001, Internet Engineering Task Force, October 2001,
Work in Progress. Work in Progress.
[5] B. Biggs and R. Dean, "The SIP Replaces header," Internet Draft, [5] B. Biggs and R. Dean, "The SIP Replaces header," Internet Draft,
Internet Engineering Task Force, November 2000, Internet Engineering Task Force, July 2001,
Work in Progress. Work in Progress.
[6] H. Schulzrinne and J. Rosenberg, "SIP Caller Preferences and [6] H. Schulzrinne and J. Rosenberg, "SIP Caller Preferences and
Callee Capabilities," Internet Engineering Task Force, June 2001, Callee Capabilities," Internet Engineering Task Force, June 2001,
Work in Progress. Work in Progress.
[7] J. Rosenberg, J. Peterson, H. Schulzrinne, and G. Camarillo, [7] J. Rosenberg, J. Peterson, H. Schulzrinne, and G. Camarillo,
"Third Party Call Control in SIP," Internet Engineering Task "Third Party Call Control in SIP," Internet Engineering Task
Force, March 2001, Work in Progress. Force, March 2001, Work in Progress.
[8] J. Rosenberg and H. Schulzrinne, "An Offer/Answer Model with
SDP," Internet Engineering Task Force, October 2001, Work in
progress.
4 Author's Addresses 4 Author's Addresses
Alan Johnston Email: alan.johnston@wcom.com Alan Johnston Email: alan.johnston@wcom.com
sip:alan.johnston@siptest.wcom.com sip:alan.johnston@siptest.wcom.com
Robert Sparks Email: rsparks@dynamicsoft.com Robert Sparks Email: rsparks@dynamicsoft.com
Chris Cunningham Email: ccunningham@dynamicsoft.com Chris Cunningham Email: ccunningham@dynamicsoft.com
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/