draft-ietf-sip-service-examples-01.txt   draft-ietf-sip-service-examples-02.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-01.txt Robert Sparks Document: draft-ietf-sip-service-examples-02.txt Robert Sparks
Category: Informational Chris Cunningham Category: Informational Chris Cunningham
March 2001 Steve Donovan June 2001 Steve Donovan
Expires: September 2001 dynamicsoft Expires: December 2001 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 39 skipping to change at page 1, line 39
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
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 third party call control (3pcc) extensions such as to SIP including the REFER method and Replaces header. These features
the REFER method. These features are not intented to be an exhaustive are not intented to be an exhaustive set, but rather show
set, but rather show implementations of common features likely to be implementations of common features likely to be implemented on SIP IP
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.1Legend for Message Flows ......................................4 1.1 Legend for Message Flows...................................4
1.2Document History ..............................................4 1.2 Document History...........................................4
2 IP Telephony Services Features Call Flows..................5 2 IP Telephony Services Features Call Flows..................6
2.1Call Hold .....................................................5 2.1 Call Hold..................................................6
2.2Music on Hold/Call Park ......................................15 2.2 Consultation Hold.........................................16
2.3Consultation Hold ............................................22 2.3 Music On Hold.............................................30
2.4Unattended Transfer ..........................................36 2.4 Unattended Transfer.......................................37
2.5Attended Transfer ............................................42 2.5 Attended Transfer.........................................43
2.6Call Forwarding Unconditional ................................51 2.6 Call Forwarding Unconditional.............................54
2.7Call Forwarding - Busy .......................................56 2.7 Call Forwarding - Busy....................................59
2.8Call Forwarding - No Answer ..................................62 2.8 Call Forwarding - No Answer...............................65
2.93-way Conference .............................................69 2.9 3-way Conference..........................................72
2.10 Single Line Extension.....................................69 2.10 Single Line Extension.....................................72
2.11 Find-Me...................................................70 2.11 Find-Me...................................................73
2.12 Call Management (Incoming Call Screening).................79 2.12 Call Management (Incoming Call Screening).................82
2.13 Call Management (Outgoing Call Screening).................83 2.13 Call Management (Outgoing Call Screening).................86
2.14 Call Pickup...............................................86 2.14 Call Park.................................................89
3 References................................................95 2.15 Call Pickup...............................................97
4 Author's Addresses........................................96 3 References...............................................106
4 Author's Addresses.......................................107
1 Overview 1 Overview
This informational document provides call flows detailing a SIP This informational document provides call flows detailing a SIP
implementation of the following traditional telephony services: implementation of the following traditional telephony services:
Call Hold Music on Hold/Call Park Call Hold Music on Hold
Unattended Transfer Consultation Hold Unattended Transfer Consultation Hold
Unconditional Call Forwarding Attended Transfer Unconditional Call Forwarding Attended Transfer
No Answer Call Forwarding Busy Call Forwarding No Answer Call Forwarding Busy Call Forwarding
Single-Line Extension 3-way Call Single-Line Extension 3-way Call
Incoming Call Screening Find-Me Incoming Call Screening Find-Me
Call Pickup Outgoing Call Screening Call Pickup Call Park
Outgoing Call Screening
It is the hope of the authors that this document will be useful for It is the hope of the authors that this document will be useful for
SIP implementors, users, designers, and protocol researchers alike SIP implementors, users, designers, and protocol researchers alike
and will help further the goal of a standard SIP implementation for and will help further the goal of a standard SIP implementation for
IP Telephony. It is envisioned that as changes to the standard and IP Telephony. It is envisioned that as changes to the standard and
additional RFCs are added that this document will reflect those additional RFCs are added that this document will reflect those
changes and represent the current state of a standard SIP IP changes and represent the current state of a standard SIP IP
Telephony implementation. Telephony implementation.
These flows use SIP as defined by RFC 2543 [2] with some noted
updates for RFC 2543bis. Note that this document is informational,
and nothing stated here should be taken as normative. RFC 2543 and
the other referenced documents are definitive as far as protocol
issues are concerned. Also, these flows do not represent the only
way to implement these services - other approaches such as 3pcc
(Third Party Call Control) or Back-to-Back User Agents (B2BUA) may be
more appropriate in some circumstances.
These flows assume the functionality described in the SIP Call Flow These flows assume the functionality described in the SIP Call Flow
Examples document [2], which explores basic behavior and PSTN Examples document [3], which explores basic behavior and PSTN
internetworking. Some of the scenarios described herein make use of internetworking. Some of the scenarios described herein make use of
"SIP Call Control Transfer" [3]. the SIP method extension REFER [4] and the SIP header extension
Replaces [5], the SIP header extension Accept-Contact [6], and some
of the concepts in the 3pcc (third party call control) document [7].
These flows were prepared assuming a network of proxies, registrars, These flows were prepared assuming a network of proxies, registrars,
PSTN gateways, and other SIP servers that have a pre-established PSTN gateways, and other SIP servers that have a pre-established
trust relationship with each other, secured through other means than trust relationship with each other, secured through other means than
SIP. User agents wishing to use the services in this network are SIP. User agents wishing to use the services in this network are
required to authenticate themselves with an edge proxy using SIP required to authenticate themselves with an edge proxy using SIP
Digest. To improve the clarity of this document, authentication of Digest. To improve the clarity of this document, authentication of
User Agents is not explicitly shown in all flows, except where User Agents is not explicitly shown in all flows, except where
authentication directly relates to the service example. authentication directly relates to the service example.
These flows use SIP as defined by RFC 2543 [4] with some noted
updates for RFC 2543bis. Note that this document is informational,
and nothing stated here should be taken as normative. RFC 2543 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 Back-to-
Back User Agents (B2BUA) may be more appropriate in some
circumstances.
Each call flow is presented with a textual description of the Each call flow is presented with a textual description of the
scenario, a message flow diagram showing the messages exchanged scenario, a message flow diagram showing the messages exchanged
between separate network elements, and the detailed contents of each between separate network elements, and the detailed contents of each
message shown in the diagram. message shown in the diagram.
1.1 Legend for Message Flows 1.1 Legend for Message Flows
Dashed lines (---) represent control messages that are mandatory to Dashed lines (---) represent control messages that are mandatory to
the call scenario. These control messages can be SIP or PSTN the call scenario. These control messages can be SIP or PSTN
signaling. signaling.
skipping to change at page 5, line 5 skipping to change at page 4, line 53
- 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
- Added Replaces header to flows.
- Changed handling of call hold.
- Added Contact and Referred-By headers and ref parameters to REFER
messages.
- Changed some Contacts, Routes, and Request-URIs to IP addresses.
- Incremented o= line when SDP is updated with hold.
- Added From tags throughout.
- Renamed Music On Hold/Call Park to Call Park and added new Music On
Hold call flow using 3pcc.
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 Call Control Extensions[3]. 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
| | | | | |
| INVITE F1 | | | INVITE F1 | |
|--------------->| | |--------------->| |
| | INVITE F2 | | | INVITE F2 |
|(100 Trying) F3 |------------->| |(100 Trying) F3 |------------->|
|<---------------| | |<---------------| |
skipping to change at page 6, line 9 skipping to change at page 7, line 9
|<=============================>| |<=============================>|
| BYE F22 | | | BYE F22 | |
|--------------->| BYE F23 | |--------------->| BYE F23 |
| |------------->| | |------------->|
| | 200 OK F24 | | | 200 OK F24 |
| 200 OK F25 |<-------------| | 200 OK F25 |<-------------|
|<---------------| | |<---------------| |
| | | | | |
User A calls User B, User B places call on hold. User B then takes User A calls User B, User B places call on hold. User B then takes
call off hold. Note that either party can take the other party off call off hold. User A hangs up call. Hold is unidirectional in
of hold. User A hangs up call. nature. However, a UA that places the other party on hold will
generally also stop sending media, resulting in no media exchange
between the UAs.
Message Details Message Details
F1 INVITE A -> Proxy 1 F1 INVITE A -> Proxy 1
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345601@here.com Call-ID: 12345601@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F2 INVITE Proxy 1 -> B F2 INVITE Proxy 1 -> B
INVITE sip:UserB@there.com SIP/2.0 INVITE 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
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345601@here.com Call-ID: 12345601@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F3 (100 Trying) Proxy 1 -> A F3 (100 Trying) Proxy 1 -> A
SIP/2.0 100 Trying SIP/2.0 100 Trying
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345601@here.com Call-ID: 12345601@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F4 180 Ringing B -> Proxy 1 F4 180 Ringing B -> Proxy 1
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
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> 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: 1 INVITE CSeq: 1 INVITE
Content Length:0 Content Length:0
F5 180 Ringing Proxy 1 -> A F5 180 Ringing Proxy 1 -> A
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> 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: 1 INVITE CSeq: 1 INVITE
Content Length: 0 Content Length: 0
F6 200 OK B -> Proxy 1 F6 200 OK B -> 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 here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> 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: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB@there.com> 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 2890844527 2890844527 IN IP4 client.there.com o=UserB 2890844527 2890844527 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 110.111.112.113 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
F7 200 OK Proxy 1 -> A F7 200 OK Proxy 1 -> A
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
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> 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: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB@there.com> 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 2890844527 2890844527 IN IP4 client.there.com o=UserB 2890844527 2890844527 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 110.111.112.113 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
F8 ACK A -> Proxy 1 F8 ACK A -> Proxy 1
ACK sip:UserB@there.com SIP/2.0 ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Route: <sip:UserB@there.com> Route: <sip:UserB@110.111.112.113>
From: BigGuy <sip:UserA@here.com> 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: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F9 ACK Proxy 1 -> B F9 ACK Proxy 1 -> B
ACK sip:UserB@there.com SIP/2.0 ACK 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
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> 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: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
/* User B places User A on hold. */ /* User B places User A on hold. Note that the version is
incremented in the o= field of the SDP */
F10 INVITE B -> Proxy 1 F10 INVITE B -> Proxy 1
INVITE sip:UserA@here.com SIP/2.0 INVITE sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
Route: <sip:UserA@here.com> Route: <sip:UserA@100.101.102.103>
From: LittleGuy <sip:UserB@there.com>;tag=314159 From: LittleGuy <sip:UserB@there.com>;tag=314159
To: BigGuy <sip:UserA@here.com> 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: LittleGuy <sip:UserB@there.com> 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 2890844527 2890844527 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 0.0.0.0
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
F11 INVITE Proxy 1 -> A F11 INVITE Proxy 1 -> A
INVITE sip:UserA@here.com 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> 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: LittleGuy <sip:UserB@there.com> 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 2890844527 2890844527 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 0.0.0.0
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 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
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: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 0.0.0.0 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F13 200 OK Proxy 1 -> B F13 200 OK Proxy 1 -> 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
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: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 0.0.0.0 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F14 ACK B -> Proxy 1 F14 ACK B -> Proxy 1
ACK sip:UserA@here.com SIP/2.0 ACK sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
Route: <sip:UserB@there.com> Route: <sip:UserB@110.111.112.113>
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 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F15 ACK Proxy 1 -> A F15 ACK Proxy 1 -> A
ACK sip:UserA@here.com SIP/2.0 ACK 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
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 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
/* User B takes the call off hold */ /* User B takes the call off hold */
F16 INVITE B -> Proxy 1 F16 INVITE B -> Proxy 1
INVITE sip:UserA@here.com SIP/2.0 INVITE sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
Route: <sip:UserA@here.com> Route: <sip:UserA@100.101.102.103>
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: 2 INVITE CSeq: 2 INVITE
Contact: LittleGuy <sip:UserB@there.com> 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 2890844527 2890844527 IN IP4 client.there.com o=UserB 2890844529 2890844529 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 110.111.112.113 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
F17 INVITE Proxy 1 -> A F17 INVITE Proxy 1 -> A
INVITE sip:UserA@100.101.102.103 SIP/2.0
INVITE sip:UserA@here.com 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: 2 INVITE CSeq: 2 INVITE
Contact: LittleGuy <sip:UserB@there.com> 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 2890844527 2890844527 IN IP4 client.there.com o=UserB 2890844529 2890844529 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 110.111.112.113 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
F18 200 OK A -> Proxy 1 F18 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: 12345601@here.com Call-ID: 12345601@here.com
CSeq: 2 INVITE CSeq: 2 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F19 200 OK Proxy 1 -> B F19 200 OK Proxy 1 -> 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
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: 2 INVITE CSeq: 2 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F20 ACK B -> Proxy 1 F20 ACK B -> Proxy 1
ACK sip:UserA@here.com SIP/2.0 ACK sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
Route: <sip:UserA@here.com> Route: <sip:UserA@100.101.102.103>
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: 2 ACK CSeq: 2 ACK
Content-Length: 0 Content-Length: 0
F21 ACK Proxy 1 -> A F21 ACK Proxy 1 -> A
ACK sip:UserA@here.com SIP/2.0 ACK 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
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: 2 ACK CSeq: 2 ACK
Content-Length: 0 Content-Length: 0
/* RTP Media stream re-established. User A disconnects. */ /* RTP Media stream re-established. User A disconnects. */
F22 BYE A -> Proxy 1 F22 BYE A -> Proxy 1
BYE sip:UserB@there.com SIP/2.0 BYE sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Route: <sip:UserB@there.com> Route: <sip:UserB@110.111.112.113>
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 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F23 BYE Proxy 1 -> B F23 BYE Proxy 1 -> B
BYE sip:UserB@there.com SIP/2.0 BYE 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
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
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 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F24 200 OK B -> Proxy 1 F24 200 OK B -> Proxy 1
skipping to change at page 15, line 5 skipping to change at page 16, line 5
F25 200 OK Proxy 1 -> A F25 200 OK Proxy 1 -> A
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
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 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
2.2 Music on Hold/Call Park 2.2 Consultation Hold
User A User B Music/Park Server
| | |
| INVITE F1 | |
|------------->| |
|180 Ringing F2| |
|<-------------| |
| 200 OK F3 | |
|<-------------| |
| ACK F4 | |
|------------->| |
| RTP Media | |
|<============>| |
| User B Parks Call |
| | REFER Refer-To: A F5
| |------------->|
| | 202 F6 |
| |------------->|
| INVITE F7 Referred-By: B |
|<----------------------------|
| 200 OK F8 |
|---------------------------->|
| ACK F9 |
|<----------------------------|
| RTP Music |
|<===========================>|
| BYE F10 | |
|------------->| NOTIFY F12 |
| 200 OK F11 |<-------------|
|<-------------| 200 OK F13 |
| |------------->|
| User B picks up the call |
| | |
| INVITE F14 | |
|<-------------| |
| 200 F15 | |
|------------->| |
| ACK F16 | |
|<-------------| |
| RTP Media | |
|<============>| |
| BYE F17 |
|---------------------------->|
| 200 OK F18 |
|<----------------------------|
| No more RTP Music |
In this example, User A calls User B. User B then parks the call at
the Music/Park Server by sending a REFER to the Music/Park Server.
The server sends an INVITE to A which replaces the session between A
and B. The call is accepted by A and causes A to send a BYE to B.
Note that the Replaces header is needed in this INVITE. User B
receives notification of the successful park, and also receives the
Call-ID in the application/sip body of the NOTIFY response. When
User B wishes to retrieve the call, a new INVITE is sent to A which
replaces the session with the Music/Park Server. User A accepts the
call and sends a BYE to the Music/Park Server. Note that the
Replaces header is needed in this INVITE as well. If someone besides
User B retrieves the call, then this becomes Call Park and Pickup.
Message Details.
F1 INVITE A -> B
INVITE sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060
From: BigGuy <sip:UserA@here.com>
To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345601@here.com
CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP
c=IN IP4 100.101.102.103
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 180 Ringing B -> A
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP there.com:5060
From: BigGuy <sip:UserA@here.com>
To: LittleGuy <sip:UserB@there.com>;tag=314159
Call-ID: 12345601@here.com
CSeq: 1 INVITE
Content-Length: 0
F3 200 OK B -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP there.com:5060
From: BigGuy <sip:UserA@here.com>
To: LittleGuy <sip:UserB@there.com>;tag=314159
Call-ID: 12345601@here.com
CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB@there.com>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserB 2890844527 2890844527 IN IP4 client.there.com
s=Session SDP
c=IN IP4 110.111.112.113
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 ACK A -> B
ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060
From: BigGuy <sip:UserA@here.com>
To: LittleGuy <sip:UserB@there.com>;tag=314159
Call-ID: 12345601@here.com
CSeq: 1 ACK
Content-Length: 0
/* User B REFERs Music Server to establish session with A which
replaces the established session between A and B */
F5 REFER B -> Music Server
REFER sip:music@server.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>
To: Music Server <sip:music@server.com>
Call-ID: 4802029847@there.com
CSeq: 1 REFER
Refer-To: <sip:UserA@here.com>
Referred-By: <sip:UserB@there.com>
Content-Length: 0
F6 202 Accepted Music Server -> B
SIP/2.0 202 Accepted
Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=56323
To: Music Server <sip:music@server.com>
Call-ID: 4802029847@there.com
CSeq: 1 REFER
Content-Length: 0
/* Music Server places call to User A to replace session between A
and B */
F7 INVITE Music Server -> A
INVITE sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP server.com:5060
From: <sip:music@server.com>
To: BigGuy <sip:UserA@here.com>
Call-ID: a5-75-34-12-76@server.com
CSeq: 1 INVITE
Referred-By: <sip:UserB@there.com>
Contact: <sip:music@server.com>
Content-Type: application/sdp
Content-Length: ...
v=0
o=MusicServer 2890844526 2890844526 IN IP4 music.server.com
s=Session SDP
c=IN IP4 50.60.70.80
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F8 200 OK A-> Music Server
SIP/2.0 200 OK
Via: SIP/2.0/UDP server.com:5060
From: <sip:music@server.com>
To: BigGuy <sip:UserA@here.com>;tag=098594
Call-ID: a5-75-34-12-76@server.com
CSeq: 1 INVITE
Contact: <sip:UserA@here.com>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP
c=IN IP4 100.101.102.103
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=recvonly
F9 ACK Music Server -> A
ACK sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP server.com:5060
From: <sip:music@server.com>
To: BigGuy <sip:UserA@here.com>;tag=098594
Call-ID: a5-75-34-12-76@server.com
CSeq: 1 ACK
Content-Length: 0
F10 BYE A -> B
ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060
From: BigGuy <sip:UserA@here.com>
To: LittleGuy <sip:UserB@there.com>;tag=314159
Call-ID: 12345601@here.com
CSeq: 2 BYE
Content-Length: 0
F11 200 OK B -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP there.com:5060
From: BigGuy <sip:UserA@here.com>
To: LittleGuy <sip:UserB@there.com>;tag=314159
Call-ID: 12345601@here.com
CSeq: 2 BYE
Content-Length: 0
/* Music Server reports success back to B by returning all the SIP
headers in 200 OK response */
F12 NOTIFY Music Server -> B
NOTIFY sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
To: LittleGuy <sip:UserB@there.com>
From: Music Server <sip:music@server.com>;tag=56323
Call-ID: 4802029847@there.com
CSeq: 1 NOTIFY
Event: refer
Content-Type: application/sip
Content-Length: ...
SIP/2.0 200 OK
Via: SIP/2.0/UDP server.com:5060
From: <sip:music@server.com>
To: BigGuy <sip:UserA@here.com>
Call-ID: a5-75-34-12-76@server.com
CSeq: 1 INVITE
Contact: <sip:UserA@here.com>
Content-Type: application/sdp
Content-Length: ...
F13 200 OK B -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP here.com:5060
To: LittleGuy <sip:UserB@there.com>
From: Music Server <sip:music@server.com>;tag=56323
Call-ID: 4802029847@there.com
CSeq: 1 NOTIFY
Content-Length: 0
/* User A is now parked at the Music Server */
/* User B picks up the call by sending an INVITE to A which replaces
the existing session with the Music/Park Server. Note that B knows
the Call-ID of the existing session from the NOTIFY response. */
F14 INVITE B -> A
INVITE sip:UserA@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
From: LittleGuy <sip:UserB@there.com>
To: BigGuy <sip:UserA@here.com>
Call-ID: 6485356@here.com
CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB@there.com>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserB 2890844527 2890844527 IN IP4 client.there.com
s=Session SDP
c=IN IP4 110.111.112.113
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F15 200 OK A -> B
SIP/2.0 200 OK
Via: SIP/2.0/UDP here.com:5060
From: LittleGuy <sip:UserB@there.com>
To: BigGuy <sip:UserA@here.com>
Call-ID: 6485356@here.com
CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP
c=IN IP4 100.101.102.103
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F16 ACK B -> A
ACK sip:UserA@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
From: LittleGuy <sip:UserB@there.com>
To: BigGuy <sip:UserA@here.com>
Call-ID: 6485356@here.com
CSeq: 1 ACK
Content-Length: 0
/* A replaces the session to the Music Server with the new session
and generates a BYE to disconnect the Music Server */
F17 BYE A -> Music Server
BYE sip:music@server.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com>;tag=098594
To: <sip:music@server.com>
Call-ID: a5-75-34-12-76@server.com
CSeq: 1 BYE
Content-Length: 0
F18 200 OK Music Server -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com>;tag=098594
To: <sip:music@server.com>
Call-ID: a5-75-34-12-76@server.com
CSeq: 1 BYE
Content-Length: 0
2.3 Consultation Hold
User A Proxy User B User C User A Proxy User B User C
| | | | | | | |
| INVITE F1 | | | | INVITE F1 | | |
|--------------->| INVITE F2 | | |--------------->| INVITE F2 | |
| |------------->| | | |------------->| |
|(100 Trying) F3 | | | |(100 Trying) F3 | | |
|<---------------|180 Ringing F4| | |<---------------|180 Ringing F4| |
| |<-------------| | | |<-------------| |
| 180 Ringing F5 | | | | 180 Ringing F5 | | |
skipping to change at page 23, line 44 skipping to change at page 17, line 45
User A calls user B. User B places call on hold. User B calls User User A calls user B. User B places call on hold. User B calls User
C. User B then disconnects with C, then takes the call with User A C. User B then disconnects with C, then takes the call with User A
off hold. The call ends with B hangs up. off hold. The call ends with B hangs up.
Message Details Message Details
F1 INVITE A -> Proxy 1 F1 INVITE A -> Proxy 1
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F2 INVITE Proxy 1 -> B F2 INVITE Proxy 1 -> B
INVITE sip:UserB@there.com SIP/2.0 INVITE 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
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F3(100 Trying) Proxy 1 -> A F3(100 Trying) Proxy 1 -> A
SIP/2.0 100 Trying SIP/2.0 100 Trying
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F4 180 Ringing B -> Proxy 1 F4 180 Ringing B -> Proxy 1
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
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> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content Length:0 Content Length:0
F5 180 Ringing Proxy 1 -> A F5 180 Ringing Proxy 1 -> A
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content Length: 0 Content Length: 0
F6 200 OK B -> Proxy 1 F6 200 OK B -> 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 here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB@there.com> 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 2890844527 2890844527 IN IP4 client.there.com o=UserB 2890844527 2890844527 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 110.111.112.113 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
F7 200 OK Proxy 1 -> A F7 200 OK Proxy 1 -> A
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
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB@there.com> 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 2890844527 2890844527 IN IP4 client.there.com o=UserB 2890844527 2890844527 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 110.111.112.113 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
F8 ACK A -> Proxy 1 F8 ACK A -> Proxy 1
ACK sip:UserB@there.com SIP/2.0 ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Route: <sip:UserB@there.com> Route: <sip:UserB@110.111.112.113>
From: BigGuy <sip:UserA@here.com> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F9 ACK Proxy 1 -> B F9 ACK Proxy 1 -> B
ACK sip:UserB@there.com SIP/2.0 ACK 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
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
/* User B places User A on hold. */ /* User B places User A on hold. */
F10 INVITE B -> Proxy 1 F10 INVITE B -> Proxy 1
INVITE sip:UserA@here.com SIP/2.0 INVITE sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
Route: <sip:UserA@here.com> Route: <sip:UserA@100.101.102.103>
From: LittleGuy <sip:UserB@there.com>;tag=314159 From: LittleGuy <sip:UserB@there.com>;tag=314159
To: BigGuy <sip:UserA@here.com> 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: LittleGuy <sip:UserB@there.com> 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 2890844527 2890844527 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 0.0.0.0
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
F11 INVITE Proxy 1 -> A F11 INVITE Proxy 1 -> A
INVITE sip:UserA@here.com 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> 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: LittleGuy <sip:UserB@there.com> 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 2890844527 2890844527 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 0.0.0.0
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
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
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 0.0.0.0 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F13 200 OK Proxy 1 -> B F13 200 OK Proxy 1 -> 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
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: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 0.0.0.0 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F14 ACK B -> Proxy 1 F14 ACK B -> Proxy 1
ACK sip:UserA@here.com SIP/2.0 ACK sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
Route: <sip:UserA@here.com> Route: <sip:UserA@100.101.102.103>
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 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F15 ACK Proxy 1 -> A F15 ACK Proxy 1 -> A
ACK sip:UserA@here.com SIP/2.0 ACK 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
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 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F16 INVITE B -> Proxy 1 F16 INVITE B -> Proxy 1
INVITE sip:UserC@anywhere.com SIP/2.0 INVITE sip:UserC@anywhere.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> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com> To: OtherGuy <sip:UserC@anywhere.com>
Call-ID: 9876543210@there.com Call-ID: 9876543210@there.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB@there.com> 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 2890844526 2890844526 IN IP4 client.there.com o=UserB 2890844526 2890844526 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 110.111.112.113 c=IN IP4 110.111.112.113
t=3034423619 0 t=3034423619 0
m=audio 50170 RTP/AVP 0 m=audio 50170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F17 INVITE Proxy 1 -> C F17 INVITE Proxy 1 -> C
INVITE sip:UserC@anywhere.com SIP/2.0 INVITE sip:UserC@120.121.122.123 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:UserC@anywhere.com;maddr=ss1.wcom.com> Record-Route: <sip:UserC@anywhere.com;maddr=ss1.wcom.com>
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com> To: OtherGuy <sip:UserC@anywhere.com>
Call-ID: 9876543210@there.com Call-ID: 9876543210@there.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB@there.com> 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 2890844526 2890844526 IN IP4 client.there.com o=UserB 2890844526 2890844526 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 110.111.112.113 c=IN IP4 110.111.112.113
t=3034423619 0 t=3034423619 0
m=audio 50170 RTP/AVP 0 m=audio 50170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F18 (100 Trying) Proxy 1 -> B F18 (100 Trying) Proxy 1 -> B
SIP/2.0 100 Trying SIP/2.0 100 Trying
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com> To: OtherGuy <sip:UserC@anywhere.com>
Call-ID: 9876543210@there.com Call-ID: 9876543210@there.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F19 180 Ringing C -> Proxy 1 F19 180 Ringing C -> Proxy 1
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
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
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=456654 To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
Call-ID: 9876543210@here.com Call-ID: 9876543210@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content Length:0 Content Length:0
F20 180 Ringing Proxy 1 -> B F20 180 Ringing Proxy 1 -> B
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=456654 To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
Call-ID: 9876543210@there.com Call-ID: 9876543210@there.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content Length: 0 Content Length: 0
F21 200 OK C -> Proxy 1 F21 200 OK C -> 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:UserC@anywhere.com;maddr=ss1.wcom.com> Record-Route: <sip:UserC@anywhere.com;maddr=ss1.wcom.com>
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=456654 To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
Call-ID: 9876543210@there.com Call-ID: 9876543210@there.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserC@anywhere.com> 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 2890844527 2890844527 IN IP4 client.anywhere.com o=UserC 2890844527 2890844527 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
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
F22 200 OK Proxy 1 -> B F22 200 OK Proxy 1 -> 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
Record-Route: <sip:UserC@anywhere.com;maddr=ss1.wcom.com> Record-Route: <sip:UserC@anywhere.com;maddr=ss1.wcom.com>
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=456654 To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
Call-ID: 9876543210@there.com Call-ID: 9876543210@there.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: OtherGuy <sip:UserC@anywhere.com> 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 2890844527 2890844527 IN IP4 client.anywhere.com o=UserC 2890844527 2890844527 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
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
F23 ACK B -> Proxy 1 F23 ACK B -> Proxy 1
ACK sip:UserC@anywhere.com SIP/2.0 ACK sip:UserC@anywhere.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
Route: <sip:UserC@anywhere.com> Route: <sip:UserC@120.121.122.123>
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=456654 To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
Call-ID: 9876543210@there.com Call-ID: 9876543210@there.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F24 ACK Proxy 1 -> C F24 ACK Proxy 1 -> C
ACK sip:UserC@anywhere.com SIP/2.0 ACK sip:UserC@120.121.122.123 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
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=456654 To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
Call-ID: 9876543210@there.com Call-ID: 9876543210@there.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F25 BYE B -> Proxy 1 F25 BYE B -> Proxy 1
BYE sip:UserC@anywhere.com SIP/2.0 BYE sip:UserC@anywhere.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
Route: <sip:UserC@anywhere.com> Route: <sip:UserC@120.121.122.123>
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=456654 To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
Call-ID: 9876543210@there.com Call-ID: 9876543210@there.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F26 BYE Proxy 1 -> C F26 BYE Proxy 1 -> C
BYE sip:UserC@anywhere.com SIP/2.0 BYE sip:UserC@120.121.122.123 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
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=456654 To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
Call-ID: 9876543210@there.com Call-ID: 9876543210@there.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F27 200 OK C -> Proxy 1 F27 200 OK C -> 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
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=456654 To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
Call-ID: 9876543210@there.com Call-ID: 9876543210@there.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F28 200 OK Proxy 1 -> B F28 200 OK Proxy 1 -> 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> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=456654 To: OtherGuy <sip:UserC@anywhere.com>;tag=456654
Call-ID: 9876543210@there.com Call-ID: 9876543210@there.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
/* User B takes the call off hold */ /* User B takes the call off hold */
F29 INVITE B -> Proxy 1 F29 INVITE B -> Proxy 1
INVITE sip:UserA@here.com SIP/2.0 INVITE sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
Route: <sip:UserA@here.com> Route: <sip:UserA@100.101.102.103>
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: 2 INVITE CSeq: 2 INVITE
Contact: LittleGuy <sip:UserB@there.com> 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 2890844527 2890844527 IN IP4 client.there.com o=UserB 2890844529 2890844529 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 110.111.112.113 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
F30 INVITE Proxy 1 -> A F30 INVITE Proxy 1 -> A
INVITE sip:UserA@here.com 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: 2 INVITE CSeq: 2 INVITE
Contact: LittleGuy <sip:UserB@there.com> 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 2890844527 2890844527 IN IP4 client.there.com o=UserB 2890844529 2890844529 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 110.111.112.113 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
F31 200 OK A -> Proxy 1 F31 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
CSeq: 2 INVITE CSeq: 2 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F32 200 OK Proxy 1 -> B F32 200 OK Proxy 1 -> 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
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: 2 INVITE CSeq: 2 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F33 ACK B -> Proxy 1 F33 ACK B -> Proxy 1
ACK sip:UserA@here.com SIP/2.0 ACK sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
Route: <sip:UserA@here.com> Route: <sip:UserA@100.101.102.103>
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: 2 ACK CSeq: 2 ACK
Content-Length: 0 Content-Length: 0
F34 ACK Proxy 1 -> A F34 ACK Proxy 1 -> A
ACK sip:UserA@here.com SIP/2.0 ACK 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
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: 2 ACK CSeq: 2 ACK
Content-Length: 0 Content-Length: 0
F35 BYE A -> Proxy 1 F35 BYE A -> Proxy 1
BYE sip:UserB@there.com SIP/2.0 BYE sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Route: <sip:UserB@there.com> Route: <sip:UserB@110.111.112.113>
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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F36 BYE Proxy 1 -> B F36 BYE Proxy 1 -> B
BYE sip:UserB@there.com SIP/2.0 BYE 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
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
To: LittleGuy <sip:UserB@there.com>;tag=314159 To: LittleGuy <sip:UserB@there.com>;tag=314159
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F37 200 OK B -> Proxy 1 F37 200 OK B -> Proxy 1
skipping to change at page 36, line 5 skipping to change at page 30, line 5
F38 200 OK Proxy 1 -> A F38 200 OK Proxy 1 -> A
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
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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
2.3 Music On Hold
User A User B Music Server
| | |
| INVITE F1 | |
|--------------->| |
|(100 Trying) F2 | |
|<---------------| |
| 180 Ringing F3 | |
|<---------------| |
| 200 OK F4 | |
|<---------------| |
| ACK F5 | |
|--------------->| |
| RTP | |
|<==============>| |
| | |
| B places A on hold with music |
| | |
| | INVITE no sdp F6
| |------------->|
| |200 OK sdpM F7|
| |<-------------|
| INVITE c=0 F7 | |
|<---------------| |
| 200 OK sdpA F9 | |
|--------------->| |
| ACK F10 | |
|<---------------| |
| | ACK sdpA F11 |
| |------------->|
| RTP |
|<==============================|
| | |
| B Picks up the Call |
| | BYE F12 |
| |------------->|
| | 200 OK F13 |
| |<-------------|
| INVITE F14 | |
|<---------------| |
| 200 OK F15 | |
|--------------->| |
| ACK F16 | |
|<---------------| |
| RTP | |
|<==============>| |
In this flow,B places A on hold with music. This is performed by B
acting as a B2BUA (Back-to-Back User Agent) using 3pcc (third party
call control) [7] to INVITE a Music Server into the session, which
sends RTP music to A. B picks the call up from hold by sending a BYE
to the music server and taking A off of hold.
Note that if A responds to the INVITE with hold SDP (c=0) with hold
SDP in the 200 OK, this call flow will not work properly.
Note also that A will receive RTP packets from two different IP
addresses during this call flow.
Message Details
F1 INVITE A -> B
INVITE sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com
CSeq: 1 INVITE
Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP
c=IN IP4 100.101.102.103
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 (100 Trying B -> A)
SIP/2.0 100 Trying
Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com
CSeq: 1 INVITE
Content-Length: 0
F3 180 Ringing B -> A
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=23431
Call-ID: 12345600@here.com
CSeq: 1 INVITE
Content-Length: 0
F4 200 OK B -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=23431
Call-ID: 12345600@here.com
CSeq: 1 INVITE
Contact: <sip:UserB@110.111.112.113>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserB 2890844527 2890844527 IN IP4 client.there.com
s=Session SDP
c=IN IP4 110.111.112.113
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F5 ACK A -> B
ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=23431
Call-ID: 12345600@here.com
CSeq: 1 ACK
Content-Length: 0
/* User B places A on hold with music by acting as a B2BUA and
sending an INVITE to the Music Server */
F6 INVITE B -> Music Server
INVITE sip:music@server.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: Music <sip:music@server.com>
Call-ID: sdjfdjfskdf@there.com
CSeq: 1 INVITE
Contact: <sip:UserB@110.111.112.113>
Content-Length: 0
F7 200 OK C -> B
SIP/2.0 200 OK
Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: Music <sip:music@server.com>;tag=90210
Call-ID: sdjfdjfskdf@there.com
CSeq: 1 INVITE
Contact: <sip:music@server.com>
Content-Type: application/sdp
Content-Length: ...
v=0
o=MusicServer 2890844576 2890844576 IN IP4 music.server.com
s=Session SDP
c=IN IP4 50.60.70.80
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* B re-INVITEs A on hold */
F8 INVITE B -> A
INVITE sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
To: BigGuy <sip:UserA@here.com>;tag=1234567
From: LittleGuy <sip:UserB@there.com>;tag=23431
Call-ID: 12345600@here.com
CSeq: 1 INVITE
Contact: <sip:UserB@110.111.112.113>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserB 2890844528 2890844528 IN IP4 client.there.com
s=Session SDP
c=IN IP4 0.0.0.0
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* A responds with normal SDP */
F9 200 OK A -> B
SIP/2.0 200 OK
Via: SIP/2.0/UDP here.com:5060
To: BigGuy <sip:UserA@here.com>;tag=1234567
From: LittleGuy <sip:UserB@there.com>;tag=23431
Call-ID: 12345600@here.com
CSeq: 1 INVITE
Contact: <sip:UserB@100.101.102.103>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP
c=IN IP4 100.101.102.103
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F10 ACK B -> A
ACK sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
To: BigGuy <sip:UserA@here.com>;tag=1234567
From: LittleGuy <sip:UserB@there.com>;tag=23431
Call-ID: 12345600@here.com
CSeq: 1 ACK
Content-Length: 0
/* B passes SDP of A to the Music Server to allow music to be sent
from B to A */
F11 ACK B -> Music Server
ACK sip:music@server.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: Music <sip:music@server.com>;tag=90210
Call-ID: sdjfdjfskdf@there.com
CSeq: 1 ACK
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP
c=IN IP4 100.101.102.103
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
/* RTP music is now sent from the Music Server to A */
/* B picks up the call from the Music Server */
F12 BYE B -> Music Server
BYE sip:music@server.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: Music <sip:music@server.com>;tag=90210
Call-ID: sdjfdjfskdf@there.com
CSeq: 2 BYE
Content-Length: 0
F13 200 OK Music Server -> B
SIP/2.0 200 OK
Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: Music <sip:music@server.com>;tag=90210
Call-ID: sdjfdjfskdf@there.com
CSeq: 2 BYE
Content-Length:0
/* B re-INVITEs taking A off hold */
F14 INVITE B -> A
INVITE sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
To: BigGuy <sip:UserA@here.com>;tag=1234567
From: LittleGuy <sip:UserB@there.com>;tag=23431
Call-ID: 12345600@here.com
CSeq: 2 INVITE
Contact: <sip:UserB@110.111.112.113>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserB 2890844527 2890844527 IN IP4 client.there.com
s=Session SDP
c=IN IP4 110.111.112.113
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F15 200 OK A -> B
SIP/2.0 200 OK
Via: SIP/2.0/UDP here.com:5060
To: BigGuy <sip:UserA@here.com>;tag=1234567
From: LittleGuy <sip:UserB@there.com>;tag=23431
Call-ID: 12345600@here.com
CSeq: 2 INVITE
Contact: <sip:UserB@100.101.102.103>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP
c=IN IP4 100.101.102.103
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F16 ACK B -> A
ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
To: BigGuy <sip:UserA@here.com>;tag=1234567
From: LittleGuy <sip:UserB@there.com>;tag=23431
Call-ID: 12345600@here.com
CSeq: 2 ACK
Content-Length: 0
/* Normal media session between A and B is resumed */
2.4 Unattended Transfer 2.4 Unattended Transfer
User A User B User C User A User B User C
| INVITE F1 | | | INVITE F1 | |
|<-------------------| | |<-------------------| |
| 180 Ringing F2 | | | 180 Ringing F2 | |
|------------------->| | |------------------->| |
| 200 OK F3 | | | 200 OK F3 | |
|------------------->| | |------------------->| |
| ACK F4 | | | ACK F4 | |
skipping to change at page 37, line 5 skipping to change at page 38, line 5
| 200 OK F14 | | | 200 OK F14 | |
|------------------->| | |------------------->| |
| | | | | |
User B call User A. User A then transfers User B to User C, then User B call User A. User A then transfers User B to User C, then
User A disconnects with User B. User B establishes the session to C User A disconnects with User B. User B establishes the session to C
then reports the success back to A in the NOTIFY. If the transfer then reports the success back to A in the NOTIFY. If the transfer
fails, User B can send a new INVITE back to A to re-establish the fails, User B can send a new INVITE back to A to re-establish the
session. session.
Note that the BYE could be sent by A after the NOTIFY. Also, if A
has flushed all state information, the NOTIFY may receive a 481 Call
Leg Does Not Exist.
Message Details Message Details
F1 INVITE B -> A F1 INVITE B -> A
INVITE sip:UserA@here.com SIP/2.0 INVITE 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> From: LittleGuy <sip:UserB@there.com>;tag=314159
To: BigGuy <sip:UserA@here.com> To: BigGuy <sip:UserA@here.com>
Call-ID: 12345601@here.com Call-ID: 12345601@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB@there.com> 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 2890844527 2890844527 IN IP4 client.there.com o=UserB 2890844527 2890844527 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 110.111.112.113 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
F2 180 Ringing A -> B F2 180 Ringing A -> B
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=314159
To: BigGuy <sip:UserA@here.com>;tag=314159 To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345601@here.com Call-ID: 12345601@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F3 200 OK A -> B F3 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> From: LittleGuy <sip:UserB@there.com>;tag=314159
To: BigGuy <sip:UserA@here.com>;tag=314159 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: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F4 ACK B -> A F4 ACK B -> A
ACK sip:UserA@here.com SIP/2.0 ACK 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=314159 From: LittleGuy <sip:UserB@there.com>;tag=314159
To: BigGuy <sip:UserA@here.com> To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345601@here.com Call-ID: 12345601@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
/* Session is established between A and B. */ /* Session is established between A and B. */
/* A peforms unattended transfer of B to C */ /* A peforms unattended transfer of B to C */
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> 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> Referred-By: <UserA@here.com>;ref=<sip:UserC@anywhere.com>
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> 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
Content-Length: 0 Content-Length: 0
/* A now disconnects with B */ /* A now disconnects with B */
F7 BYE A -> B F7 BYE A -> B
BYE sip:UserA@here.com SIP/2.0 BYE sip:UserA@here.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> 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: 3 BYE CSeq: 3 BYE
Content-Length: 0 Content-Length: 0
F8 200 OK B -> A F8 200 OK B -> A
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: BigGuy <sip:UserA@here.com> 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: 3 BYE CSeq: 3 BYE
Content-Length: 0 Content-Length: 0
/* B attempts the transfer to C */ /* B attempts the transfer to C */
F9 INVITE B -> C F9 INVITE B -> C
INVITE sip:UserC@anywhere.com SIP/2.0 INVITE sip:UserC@anywhere.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> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com> To: OtherGuy <sip:UserC@anywhere.com>
Call-ID: 7436222@here.com Call-ID: 7436222@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB@there.com> Contact: <sip:UserB@110.111.112.113>
Referred-By: <UserA@here.com> Referred-By: <UserA@here.com>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844539 2890844539 IN IP4 client.there.com o=UserB 2890844539 2890844539 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 110.111.112.113 c=IN IP4 110.111.112.113
t=3034423821 0 t=3034423821 0
m=audio 3458 RTP/AVP 0 m=audio 3458 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F10 180 Ringing C -> B F10 180 Ringing C -> B
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=928287 To: OtherGuy <sip:UserC@anywhere.com>;tag=928287
Call-ID: 7436222@here.com Call-ID: 7436222@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
F11 200 OK C -> B F11 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> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=928287 To: OtherGuy <sip:UserC@anywhere.com>;tag=928287
Call-ID: 7436222@here.com Call-ID: 7436222@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: OtherGuy <sip:UserC@anywhere.com> 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 2890844527 2890844527 IN IP4 client.anywhere.com o=UserC 2890844527 2890844527 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
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
F12 ACK B -> C F12 ACK B -> C
ACK sip:UserC@anywhere.com SIP/2.0 ACK sip:UserC@anywhere.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> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=928287 To: OtherGuy <sip:UserC@anywhere.com>;tag=928287
Call-ID: 7436222@here.com Call-ID: 7436222@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
/* B and C now have established a session. B reports success to A /* B and C now have established a session. B reports success to A
which A probably ignores. */ which A probably ignores. */
F13 NOTIFY B -> A F13 NOTIFY B -> A
NOTIFY sip:UserA@here.com SIP/2.0 NOTIFY 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=314159 From: LittleGuy <sip:UserB@there.com>;tag=314159
To: BigGuy <sip:UserA@here.com> To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345601@here.com Call-ID: 12345601@here.com
CSeq: 1 NOTIFY CSeq: 2 NOTIFY
Event: refer Event: refer
Content-Type: application/sip Content-Type: application/sip
Content-Length: ... Content-Length: ...
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> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=928287 To: OtherGuy <sip:UserC@anywhere.com>;tag=928287
Call-ID: 7436222@here.com Call-ID: 7436222@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: OtherGuy <sip:UserC@anywhere.com> Contact: <sip:UserC@120.121.122.123>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
F14 200 OK A -> B F14 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=314159 From: LittleGuy <sip:UserB@there.com>;tag=314159
To: BigGuy <sip:UserA@here.com> To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345601@here.com Call-ID: 12345601@here.com
CSeq: 1 NOTIFY CSeq: 2 NOTIFY
Content-Length: 0 Content-Length: 0
2.5 Attended Transfer 2.5 Attended Transfer
User A User B User C User A User B User C
| | | | | |
| INVITE F1 | | | INVITE F1 | |
|--------------->| | |--------------->| |
|(100 Trying) F2 | | |(100 Trying) F2 | |
|<---------------| | |<---------------| |
skipping to change at page 42, line 27 skipping to change at page 43, line 27
| ACK F5 | | | ACK F5 | |
|--------------->| | |--------------->| |
| RTP | | | RTP | |
|<==============>| | |<==============>| |
| INVITE c=0 F6 | | | INVITE c=0 F6 | |
|<---------------| | |<---------------| |
| 200 OK F7 | | | 200 OK F7 | |
|--------------->| | |--------------->| |
| ACK F8 | | | ACK F8 | |
|<---------------| | |<---------------| |
| No RTP Sent! | | | No RTP | |
| | INVITE F9 | | | INVITE F9 |
| |------------->| | |------------->|
| |(100 Trying) F10 | |(100 Trying) F10
| |<-------------| | |<-------------|
| | 180 Ringing F11 | | 180 Ringing F11
| |<-------------| | |<-------------|
| | 200 OK F12 | | | 200 OK F12 |
| |<-------------| | |<-------------|
| | ACK F13 | | | ACK F13 |
| |------------->| | |------------->|
| | RTP | | | RTP |
| |<============>| | |<============>|
| | REFER Refer-To: A F14 | |INVITE c=0 F14|
| |------------->| | |------------->|
| |202 Accepted F15 | | 200 OK F15 |
| |<-------------| | |<-------------|
| INVITE Referred-By: B F16 | | | ACK F16 |
|<------------------------------| | |------------->|
| 200 OK F17 | | | No RTP |
| REFER Refer-To: C F17 |
|<---------------| |
|202 Accepted F18| |
|--------------->| |
| INVITE Replaces: B F19 |
|------------------------------>| |------------------------------>|
| ACK F18 | | 200 OK F20 |
|<------------------------------| |<------------------------------|
| ACK F21 |
|------------------------------>|
| RTP | | RTP |
|<=============================>| |<=============================>|
| BYE F19 | | | | BYE F22 |
|--------------->| |
| 200 OK F20 | |
|<---------------| |
| | NOTIFY F21 |
| |<-------------| | |<-------------|
| | 200 OK F22 | | | 200 OK F23 |
| |------------->|
| | BYE F23 |
| |------------->| | |------------->|
| | 200 OK F24 | | NOTIFY F24 | |
| |<-------------| |--------------->| |
| 200 OK F25 | |
|<---------------| |
| BYE F26 | |
|<---------------| |
| 200 OK F27 | |
|--------------->| |
User A calls User B. User B puts User A on hold then calls User C to User A calls User B. User B puts User A on hold then calls User C to
announce transfer. User B transfers User C to User A which replaces announce transfer, then places C on hold. User B transfers User A to
the session between A and B. B then disconnects session with A. C User C which replaces the session between B and C. C then
reports success of transfer to B who then disconnects with C. disconnects session with B. A reports success of transfer to B, who
then disconnects with A. In this example, the Replaces header [5] is
Note: the Replaces header would be very useful in this example. inserted into the Refer-To URL by B. The Accept-Contact header [6]
is also used to ensure that the triggered INVITE reaches the same
instance of the User C.
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
skipping to change at page 43, line 43 skipping to change at page 45, line 4
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F2 (100 Trying B -> A) F2 (100 Trying B -> A)
SIP/2.0 100 Trying SIP/2.0 100 Trying
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F3 180 Ringing B -> A F3 180 Ringing B -> A
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=23431 To: LittleGuy <sip:UserB@there.com>;tag=23431
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F4 200 OK B -> A F4 200 OK B -> A
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=23431 To: LittleGuy <sip:UserB@there.com>;tag=23431
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserB@there.com> 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 2890844527 2890844527 IN IP4 client.there.com o=UserB 2890844527 2890844527 IN IP4 client.there.com
s=Session SDP s=Session SDP
c=IN IP4 110.111.112.113 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
F5 ACK A -> B F5 ACK A -> B
ACK sip:UserB@there.com SIP/2.0 ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>;tag=23431
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
/* User A and User B have established a session. User B puts User A /* User A and User B have established a session. User B puts User A
on Hold */ on Hold */
F6 INVITE B -> A F6 INVITE B -> A
INVITE sip:UserA@here.com SIP/2.0 INVITE 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> 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: BigGuy <sip:UserB@there.com> 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 2890844527 2890844527 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 0.0.0.0
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
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> 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: LittleGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 0.0.0.0 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F8 ACK B -> A F8 ACK B -> A
ACK sip:UserA@here.com SIP/2.0 ACK 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> To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1024 ACK CSeq: 1024 ACK
Content-Length: 0 Content-Length: 0
/* User B calls User C */ /* User B calls User C */
F9 INVITE B -> C F9 INVITE B -> C
INVITE sip:UserC@anywhere.com SIP/2.0 INVITE sip:UserC@anywhere.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> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com> To: OtherGuy <sip:UserC@anywhere.com>
Call-ID: sdjfdjfskdf@there.com Call-ID: sdjfdjfskdf@there.com
CSeq: 42 INVITE CSeq: 42 INVITE
Contact: BigGuy <sip:UserB@there.com> 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 110.111.112.113 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
F10 (100 Trying C -> B) F10 (100 Trying C -> B)
SIP/2.0 100 Trying SIP/2.0 100 Trying
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com> To: OtherGuy <sip:UserC@anywhere.com>
Call-ID: sdjfdjfskdf@there.com Call-ID: sdjfdjfskdf@there.com
CSeq: 42 INVITE CSeq: 42 INVITE
Content-Length: 0 Content-Length: 0
F11 180 Ringing C -> B F11 180 Ringing C -> B
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com> 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: 42 INVITE CSeq: 42 INVITE
Content-Length: 0 Content-Length: 0
F12 200 OK C -> B F12 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> 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: 42 INVITE CSeq: 42 INVITE
Contact: OtherGuy <sip:UserC@anywhere.com> 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 2890844527 2890844527 IN IP4 client.anywhere.com o=UserC 2890844527 2890844527 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
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
F13 ACK B -> C F13 ACK B -> C
ACK sip:UserC@anywhere.com SIP/2.0 ACK sip:UserC@anywhere.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> 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: 42 ACK CSeq: 42 ACK
Content-Length: 0 Content-Length: 0
/* User B Transfers User C to User A */ /* User B puts User C on hold */
F14 REFER B -> C F14 INVITE B -> C
REFER sip:UserC@anywhere.com SIP/2.0 INVITE sip:UserC@anywhere.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> 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 REFER CSeq: 43 INVITE
Refer-To: <sip:UserB@here.com?Accept-Contact=sip:UserB@here.com; Contact: <sip:UserB@110.111.112.113>
only=true> Content-Type: application/sdp
Referred-By: <sip:UserB@there.com> Content-Length: ...
Content-Length: 0
F15 202 Accepted A -> B v=0
o=UserB 2890844529 2890844529 IN IP4 client.there.com
s=Session SDP
c=IN IP4 0.0.0.0
t=3034423645 0
m=audio 3458 RTP/AVP 0
a=rtpmap:0 PCMU/8000
SIP/2.0 202 Accepted F15 200 OK C -> B
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> 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 REFER CSeq: 43 INVITE
Contact: <sip:UserC@120.121.122.123>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserC 2890844527 2890844527 IN IP4 client.anywhere.com
s=Session SDP
c=IN IP4 120.121.122.123
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F16 ACK B -> C
ACK sip:UserC@anywhere.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=8675309
To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3
Call-ID: sdjfdjfskdf@there.com
CSeq: 43 ACK
Content-Length: 0 Content-Length: 0
/* User C establishes session with User A which replaces the session
between User A and User B */
F16 INVITE C -> A /* User B Transfers User A to User C. */
F17 REFER B -> A
REFER sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=23431
To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345678900@here.com
CSeq: 1025 REFER
Refer-To: <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>
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>
Contact: <sip:UserB@110.111.112.113>
Content-Length: 0
F18 202 Accepted A -> B
SIP/2.0 202 Accepted
Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=1234567
To: BigGuy <sip:UserA@here.com>;tag=23431
Call-ID: 12345678900@here.com
CSeq: 1025 REFER
Content-Length: 0
/* User A establishes session with User C which replaces the session
between User B and User 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
From: OtherGuy <sip:UserC@anywhere.com> To: OtherGuy <sip:UserC@anywhere.com>
To: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=3461
Call-ID: 9435674543@anywhere.com Call-ID: 9435674543@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Referred-By: <sip:UserB@there.com> Referred-By: <sip:UserB@there.com>;
Accept-Contact: sip:UserB@here.com;only=true ref=<sip:UserC@anywhere.com?Replaces=
Contact: OtherGuy <sip:UserC@anywhere.com> 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
Replaces: 12345600@here.com;to-tag=23431;from-tag=8675309
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
t=3034423643 0 t=3034423643 0
m=audio 3458 RTP/AVP 0 m=audio 3458 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F17 200 OK A -> C F20 200 OK C -> A
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP anywhere.com:5060 Via: SIP/2.0/UDP anywhere.com:5060
From: OtherGuy <sip:UserC@anywhere.com> To: OtherGuy <sip:UserC@anywhere.com>;tag=ff3a
To: BigGuy <sip:UserA@here.com>;tag=ff3a From: BigGuy <sip:UserA@here.com>;tag=3461
Call-ID: 9435674543@anywhere.com Call-ID: 9435674543@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844538 2890844538 IN IP4 client.here.com o=UserA 2890844538 2890844538 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423452 0 t=3034423452 0
m=audio 49172 RTP/AVP 0 m=audio 49172 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F18 ACK C -> A F21 ACK A -> C
ACK sip:UserC@anywhere.com SIP/2.0 ACK sip:UserC@anywhere.com SIP/2.0
Via: SIP/2.0/UDP anywhere.com:5060 Via: SIP/2.0/UDP anywhere.com:5060
From: OtherGuy <sip:UserC@anywhere.com> To: OtherGuy <sip:UserC@anywhere.com>;tag=ff3a
To: BigGuy <sip:UserA@here.com>;tag=ff3a From: BigGuy <sip:UserA@here.com>;tag=3461
Call-ID: 9435674543@anywhere.com Call-ID: 9435674543@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
/* User A then disconnects from User B */ /* User C then disconnects from User B */
F19 BYE A -> B F22 BYE C -> B
BYE sip:UserB@there.com SIP/2.0 BYE sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com>;tag=23431 To: LittleGuy <sip:UserB@there.com>;tag=8675309
To: LittleGuy <sip:UserB@there.com> From: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3
Call-ID: 12345600@here.com Call-ID: sdjfdjfskdf@there.com
CSeq: 2 BYE CSeq: 1 BYE
Content-Length: 0 Content-Length: 0
F20 200 OK B -> A F23 200 OK B -> C
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
From: BigGuy <sip:UserA@here.com>;tag=23431 To: LittleGuy <sip:UserB@there.com>;tag=8675309
To: LittleGuy <sip:UserB@there.com> From: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3
Call-ID: 12345600@here.com Call-ID: sdjfdjfskdf@there.com
CSeq: 2 BYE CSeq: 1 BYE
Content-Length: 0 Content-Length: 0
/* User A tells User B that the call has been successfully
/* User C tells User B that the call has been successfully
transferred */ transferred */
F21 NOTIFY C -> B F24 NOTIFY A -> B
NOTIFY sip:UserB@there.com SIP/2.0 NOTIFY sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
ToLittleGuy <sip:UserB@there.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
From: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3 To: LittleGuy <sip:UserB@there.com>;tag=23431
Call-ID: sdjfdjfskdf@there.com Call-ID: 12345678900@here.com
CSeq: 1 NOTIFY CSeq: 2 NOTIFY
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP anywhere.com:5060 Via: SIP/2.0/UDP anywhere.com:5060
From: OtherGuy <sip:UserC@anywhere.com> From: OtherGuy <sip:UserC@anywhere.com>;tag=ff3a
To: BigGuy <sip:UserA@here.com>;tag=ff3a To: BigGuy <sip:UserA@here.com>;tag=3461
Call-ID: 9435674543@anywhere.com Call-ID: 9435674543@anywhere.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp
Content-Length: ...
F22 200 OK B -> C F25 200 OK B -> C
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
ToLittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>;tag=1234567
From: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3 From: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3
Call-ID: sdjfdjfskdf@there.com Call-ID: 12345678900@here.com
CSeq: 1 NOTIFY CSeq: 2 NOTIFY
Content-Length: 0 Content-Length: 0
/* User B disconnects with User C */ /* User B disconnects with User A */
F23 BYE B -> C F26 BYE B -> A
BYE sip:UserC@anywhere.com SIP/2.0 BYE sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=23431
To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3 To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345600@here.com Call-ID: 12345678900@here.com
CSeq: 44 BYE CSeq: 1026 BYE
Content-Length: 0 Content-Length: 0
F24 200 OK C -> B F27 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 there.com:5060
From: LittleGuy <sip:UserB@there.com> From: LittleGuy <sip:UserB@there.com>;tag=23431
To: OtherGuy <sip:UserC@anywhere.com>;tag=5f35a3 To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345601@here.com Call-ID: 12345678900@here.com
CSeq: 44 BYE CSeq: 1026 BYE
Content-Length: 0 Content-Length: 0
2.6 Call Forwarding Unconditional 2.6 Call Forwarding Unconditional
User A Proxy Gateway User A Proxy Gateway
| | | | | |
| INVITE F1 | | | INVITE F1 | |
|--------------->| INVITE F2 | |--------------->| INVITE F2 |
|(100 Trying) F3 |------------->| |(100 Trying) F3 |------------->|
|<---------------|180 Ringing F4| |<---------------|180 Ringing F4|
skipping to change at page 51, line 40 skipping to change at page 54, line 40
User B wants all calls forwarded to the PSTN. User A calls User B. User B wants all calls forwarded to the PSTN. User A calls User B.
The Proxy server rewrites the request URI, and forwards the INVITE to The Proxy server rewrites the request URI, and forwards the INVITE to
a Gateway. Details of messaging behind the Gateway are not shown. a Gateway. Details of messaging behind the Gateway are not shown.
Message Details Message Details
F1 INVITE A -> Proxy F1 INVITE A -> Proxy
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
/* Proxy forwards call by rewriting Request-URI */ /* Proxy forwards call by rewriting Request-URI */
F2 INVITE Proxy -> Gateway F2 INVITE Proxy -> Gateway
INVITE sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0 INVITE sip:+19727293660@gw1.wcom.com;user=phone 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 here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F3 (100 Trying) Proxy -> A F3 (100 Trying) Proxy -> A
SIP/2.0 100 Trying SIP/2.0 100 Trying
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F4 180 Ringing Gateway -> Proxy F4 180 Ringing Gateway -> Proxy
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
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> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content Length:0 Content Length:0
F5 180 Ringing Proxy -> A F5 180 Ringing Proxy -> A
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content Length: 0 Content Length: 0
F6 200 OK Gateway -> Proxy F6 200 OK Gateway -> 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
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: <sip:+19727293660@gw1.wcom.com;user=phone> Contact: <sip:+19727293660@gw1.wcom.com;user=phone>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.wcom.com o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.wcom.com
s=Session SDP s=Session SDP
c=IN IP4 gatewayone.wcom.com c=IN IP4 gatewayone.wcom.com
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
F7 200 OK Proxy -> A F7 200 OK Proxy -> A
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
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: <sip:+19727293660@gw1.wcom.com;user=phone> Contact: <sip:+19727293660@gw1.wcom.com;user=phone>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.wcom.com o=GATEWAY1 2890844527 2890844527 IN IP4 gatewayone.wcom.com
s=Session SDP s=Session SDP
c=IN IP4 gatewayone.wcom.com c=IN IP4 gatewayone.wcom.com
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
F8 ACK A -> Proxy F8 ACK A -> Proxy
ACK sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0 ACK sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Route: <sip:+19727293660@gw1.wcom.com;user=phone> Route: <sip:+19727293660@gw1.wcom.com;user=phone>
From: BigGuy <sip:UserA@here.com> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F9 ACK Proxy -> Gateway F9 ACK Proxy -> Gateway
ACK sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0 ACK sip:+19727293660@gw1.wcom.com;user=phone 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 here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F10 BYE A -> Proxy 1 F10 BYE A -> Proxy 1
BYE sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0 BYE sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Route: <sip:+19727293660@gw1.wcom.com;user=phone> Route: <sip:+19727293660@gw1.wcom.com;user=phone>
From: BigGuy <sip:UserA@here.com> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F11 BYE Proxy 1 -> Gateway F11 BYE Proxy 1 -> Gateway
BYE sip:+19727293660@gw1.wcom.com;user=phone SIP/2.0 BYE sip:+19727293660@gw1.wcom.com;user=phone 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 here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F12 200 OK Gateway -> Proxy 1 F12 200 OK Gateway -> 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 here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F13 200 OK Proxy 1 -> A F13 200 OK Proxy 1 -> A
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
From: BigGuy <sip:UserA@here.com> 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: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
2.7 Call Forwarding - Busy 2.7 Call Forwarding - Busy
User A Proxy User B1 User B2 User A Proxy User B1 User B2
| | | | | | | |
| INVITE F1 | | | | INVITE F1 | | |
skipping to change at page 56, line 49 skipping to change at page 59, line 49
User B wants calls to B1 forwarded to B2 if B1 is busy (this User B wants calls to B1 forwarded to B2 if B1 is busy (this
information is known to the proxy). User A calls B1, B1 is busy, the information is known to the proxy). User A calls B1, B1 is busy, the
proxy server places call to B2. proxy server places call to B2.
Message Details Message Details
F1 INVITE A -> Proxy F1 INVITE A -> Proxy
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=0 0 t=0 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F2 INVITE Proxy -> B1 F2 INVITE Proxy -> B1
INVITE sip:UserB1@there.com SIP/2.0 INVITE 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
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=0 0 t=0 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F3 (100 Trying) Proxy -> A F3 (100 Trying) Proxy -> A
SIP/2.0 100 Trying SIP/2.0 100 Trying
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F4 486 Busy Here B1 -> Proxy F4 486 Busy Here B1 -> Proxy
SIP/2.0 486 Busy Here SIP/2.0 486 Busy Here
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> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F5 ACK Proxy -> B1 F5 ACK Proxy -> B1
ACK sip:UserB1@there.com SIP/2.0 ACK 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> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
/* The proxy now forwards the call to B2 */ /* The proxy now forwards the call to B2 */
F6 INVITE Proxy -> B2 F6 INVITE Proxy -> B2
INVITE sip:UserB2@there.com SIP/2.0 INVITE sip:UserB2@there.com SIP/2.0
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=0 0 t=0 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F7 180 Ringing B2 -> Proxy F7 180 Ringing B2 -> Proxy
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7654321 To: LittleGuy <sip:UserB@there.com>;tag=7654321
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F8 180 Ringing Proxy -> A F8 180 Ringing Proxy -> A
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7654321 To: LittleGuy <sip:UserB@there.com>;tag=7654321
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F9 200 OK B2 -> Proxy F9 200 OK B2 -> Proxy
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7654321 To: LittleGuy <sip:UserB@there.com>;tag=7654321
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB2@there.com> Contact: <sip:UserB2@110.111.112.114>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844527 2890844527 IN IP4 client2.there.com o=UserB 2890844527 2890844527 IN IP4 client2.there.com
s=Session SDP s=Session SDP
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
F10 200 OK Proxy -> A F10 200 OK Proxy -> A
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
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7654321 To: LittleGuy <sip:UserB@there.com>;tag=7654321
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB2@there.com> Contact: <sip:UserB2@110.111.112.114>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844527 2890844527 IN IP4 client2.there.com o=UserB 2890844527 2890844527 IN IP4 client2.there.com
s=Session SDP s=Session SDP
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
F11 ACK A -> Proxy F11 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:UserB2@there.com> Route: <sip:UserB2@110.111.112.114>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7654321 To: LittleGuy <sip:UserB@there.com>;tag=7654321
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F12 ACK Proxy -> B2 F12 ACK Proxy -> B2
ACK sip:UserB2@there.com SIP/2.0 ACK sip:UserB2@110.111.112.114 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 here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7654321 To: LittleGuy <sip:UserB@there.com>;tag=7654321
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
/* RTP streams are established between A and B2 */ /* RTP streams are established between A and B2 */
/* User A eventually hangs up with User B2. */ /* User A eventually hangs up with User B2. */
F13 BYE A -> Proxy F13 BYE A -> Proxy
BYE sip:UserB2@there.com SIP/2.0 BYE 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:UserB2@there.com> Route: <sip:UserB2@110.111.112.114>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7654321 To: LittleGuy <sip:UserB@there.com>;tag=7654321
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F14 BYE Proxy -> B2 F14 BYE Proxy -> B2
BYE sip:UserB2@there.com SIP/2.0 BYE sip:UserB2@110.111.112.114 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 here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7654321 To: LittleGuy <sip:UserB@there.com>;tag=7654321
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F15 200 OK B2 -> Proxy F15 200 OK B2 -> 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
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7654321 To: LittleGuy <sip:UserB@there.com>;tag=7654321
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F16 200 OK Proxy -> A F16 200 OK Proxy -> A
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7654321 To: LittleGuy <sip:UserB@there.com>;tag=7654321
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
2.8 Call Forwarding - No Answer 2.8 Call Forwarding - No Answer
User A Proxy User B1 User B2 User A Proxy User B1 User B2
| | | | | | | |
| INVITE F1 | | | | INVITE F1 | | |
skipping to change at page 63, line 6 skipping to change at page 66, line 6
User B wants calls to B1 forwarded to B2 if B1 is not answered User B wants calls to B1 forwarded to B2 if B1 is not answered
(information is known to the proxy server). User A calls B1 and no (information is known to the proxy server). User A calls B1 and no
one answers. The proxy server then places the call to B2. one answers. The proxy server then places the call to B2.
Message Details Message Details
F1 INVITE A -> Proxy F1 INVITE A -> Proxy
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=0 0 t=0 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F2 INVITE Proxy -> B1 F2 INVITE Proxy -> B1
INVITE sip:UserB1@there.com SIP/2.0 INVITE 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
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=0 0 t=0 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F3 (100 Trying) Proxy -> A F3 (100 Trying) Proxy -> A
SIP/2.0 100 Trying SIP/2.0 100 Trying
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F4 180 Ringing B1 -> Proxy F4 180 Ringing B1 -> Proxy
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
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> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=3145678 To: LittleGuy <sip:UserB@there.com>;tag=3145678
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F5 180 Ringing Proxy -> A F5 180 Ringing Proxy -> A
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=3145678 To: LittleGuy <sip:UserB@there.com>;tag=3145678
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
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@there.com 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> From: BigGuy <sip:UserA@here.com>;tag=1234567
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> From: BigGuy <sip:UserA@here.com>;tag=1234567
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 Cancelled B1 -> Proxy F8 487 Request Terminated B1 -> Proxy
SIP/2.0 487 Request Cancelled 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> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=3145678 To: LittleGuy <sip:UserB@there.com>;tag=3145678
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F9 ACK Proxy -> B1 F9 ACK Proxy -> B1
ACK sip:UserB1@there.com SIP/2.0 ACK 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> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=3145678 To: LittleGuy <sip:UserB@there.com>;tag=3145678
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F10 INVITE Proxy -> B2 F10 INVITE Proxy -> B2
INVITE sip:UserB4@there.com SIP/2.0 INVITE sip:UserB4@110.111.112.114 SIP/2.0
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=0 0 t=0 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F11 180 Ringing B2 -> Proxy F11 180 Ringing B2 -> Proxy
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F12 180 Proxy -> A F12 180 Proxy -> A
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F13 200 OK B2 -> Proxy F13 200 OK B2 -> Proxy
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB2@there.com> Contact: <sip:UserB2@110.111.112.114>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844527 2890844527 IN IP4 client2.there.com o=UserB 2890844527 2890844527 IN IP4 client2.there.com
s=Session SDP s=Session SDP
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
F14 200 OK Proxy -> A F14 200 OK Proxy -> A
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
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB2@there.com> Contact: <sip:UserB2@110.111.112.114>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844527 2890844527 IN IP4 client2.there.com o=UserB 2890844527 2890844527 IN IP4 client2.there.com
s=Session SDP s=Session SDP
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
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:UserB2@there.com> Route: <sip:UserB@110.111.112.114>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F16 ACK Proxy -> B2 F16 ACK Proxy -> B2
ACK sip:UserB2@there.com SIP/2.0 ACK sip:UserB2@110.111.112.114 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 here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
/* RTP streams are established between A and B2. User A Hangs Up /* RTP streams are established between A and B2. User A Hangs Up
with User B2. */ with User B2. */
F17 BYE A -> Proxy F17 BYE A -> Proxy
BYE sip:UserB2@there.com SIP/2.0 BYE 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:UserB2@there.com> Route: <sip:UserB@110.111.112.114>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F18 BYE Proxy -> B2 F18 BYE Proxy -> B2
BYE sip:UserB2@there.com SIP/2.0 BYE sip:UserB2@there.com 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 here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F19 200 OK B2 -> Proxy F19 200 OK B2 -> 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
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F20 200 OK Proxy -> A F20 200 OK Proxy -> A
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
2.9 3-way Conference 2.9 3-way Conference
User A calls User B, User B then invites user C to a 3-way call. User User A calls User B, User B then invites user C to a 3-way call. User
B will mix the audio streams (act as the conference bridge). If user B will mix the audio streams (act as the conference bridge). If user
B drops out of the call then the entire call is dropped. This is not B drops out of the call then the entire call is dropped. This is not
a fully meshed conference, and does not make use of the concepts in a fully meshed conference, and does not make use of the concepts in
skipping to change at page 71, line 24 skipping to change at page 74, line 24
individual users. The signaling for the implementation of Single individual users. The signaling for the implementation of Single
Line Extension and Find-Me is the same, the difference may be in the Line Extension and Find-Me is the same, the difference may be in the
provisioning of the service. provisioning of the service.
Message Details Message Details
F1 INVITE A -> Proxy F1 INVITE A -> Proxy
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t= 0 0 t= 0 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F2 INVITE Proxy -> B1 F2 INVITE Proxy -> B1
INVITE sip:UserB1@there.com SIP/2.0 INVITE 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
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t= 0 0 t= 0 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F3 (100 Trying) Proxy -> A F3 (100 Trying) Proxy -> A
SIP/2.0 100 Trying SIP/2.0 100 Trying
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F4 180 Ringing B1 -> Proxy F4 180 Ringing B1 -> Proxy
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
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> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F5 180 Ringing Proxy -> A F5 180 Ringing Proxy -> A
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
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:UserB1@there.com 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> From: BigGuy <sip:UserA@here.com>;tag=1234567
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> From: BigGuy <sip:UserA@here.com>;tag=1234567
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 Cancelled B1 -> Proxy F8 487 Request Terminated B1 -> Proxy
SIP/2.0 487 Request Cancelled 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> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F9 ACK Proxy -> B1 F9 ACK Proxy -> B1
ACK sip:UserB1@there.com SIP/2.0 ACK 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> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F10 INVITE Proxy -> B2 F10 INVITE Proxy -> B2
INVITE sip:UserB2@there.com SIP/2.0 INVITE sip:UserB2@110.111.112.114 SIP/2.0
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=0 0 t=0 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F11 480 Not Logged In B2 -> Proxy F11 480 Not Logged In B2 -> Proxy
SIP/2.0 480 Not Logged In SIP/2.0 480 Not Logged In
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=314756 To: LittleGuy <sip:UserB@there.com>;tag=314756
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F12 ACK Proxy -> B2 F12 ACK Proxy -> B2
ACK sip:UserB2@there.com SIP/2.0 ACK sip:UserB2@110.111.112.114 SIP/2.0
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=314756 To: LittleGuy <sip:UserB@there.com>;tag=314756
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F13 INVITE Proxy -> B3 F13 INVITE Proxy -> B3
INVITE sip:UserB3@there.com SIP/2.0 INVITE sip:UserB3@110.111.112.115 SIP/2.0
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.3 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.3
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=0 0 t=0 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F14 486 Busy Here B3 -> Proxy F14 486 Busy Here B3 -> Proxy
SIP/2.0 486 Busy Here SIP/2.0 486 Busy Here
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.3 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.3
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7654321 To: LittleGuy <sip:UserB@there.com>;tag=7654321
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F15 ACK Proxy -> B3 F15 ACK Proxy -> B3
ACK sip:UserB3@there.com SIP/2.0 ACK sip:UserB3@110.111.112.115 SIP/2.0
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.3 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.3
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7654321 To: LittleGuy <sip:UserB@there.com>;tag=7654321
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F16 INVITE Proxy -> B4 F16 INVITE Proxy -> B4
INVITE sip:UserB4@there.com SIP/2.0 INVITE sip:UserB4@110.111.112.116 SIP/2.0
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.4 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.4
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=0 0 t=0 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F17 180 Ringing B4 -> Proxy F17 180 Ringing B4 -> Proxy
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.4 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.4
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7137136 To: LittleGuy <sip:UserB@there.com>;tag=7137136
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F18 180 Ringing B4 -> Proxy F18 180 Ringing B4 -> Proxy
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7137136 To: LittleGuy <sip:UserB@there.com>;tag=7137136
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F19 200 OK B4 -> Proxy F19 200 OK B4 -> Proxy
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.4 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.4
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7137136 To: LittleGuy <sip:UserB@there.com>;tag=7137136
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB4@there.com> Contact: <sip:UserB4@110.111.112.116>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844527 2890844527 IN IP4 client4.there.com o=UserB 2890844527 2890844527 IN IP4 client4.there.com
s=Session SDP s=Session SDP
c=IN IP4 110.111.112.116 c=IN IP4 110.111.112.116
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
F20 200 OK Proxy -> A F20 200 OK Proxy -> A
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
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7137136 To: LittleGuy <sip:UserB@there.com>;tag=7137136
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB4@there.com> Contact: <sip:UserB4@110.111.112.113.116>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844527 2890844527 IN IP4 client4.there.com o=UserB 2890844527 2890844527 IN IP4 client4.there.com
s=Session SDP s=Session SDP
c=IN IP4 110.111.112.116 c=IN IP4 110.111.112.116
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
F21 ACK A -> Proxy F21 ACK A -> Proxy
ACK sip:UserB4@there.com SIP/2.0 ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Route: <UserB4@there.com> Route: <sip:UserB4@110.111.112.116>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7137136 To: LittleGuy <sip:UserB@there.com>;tag=7137136
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F22 ACK Proxy -> B4 F22 ACK Proxy -> B4
ACK sip:UserB4@there.com SIP/2.0 ACK sip:UserB4@110.111.112.116 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 here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7137136 To: LittleGuy <sip:UserB@there.com>;tag=7137136
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
/* RTP streams are established between A and B4*/ /* RTP streams are established between A and B4*/
/* User B4 Hangs Up with User A. */ /* User B4 Hangs Up with User A. */
F23 BYE B4 -> Proxy F23 BYE B4 -> Proxy
BYE sip:UserA@here.com SIP/2.0 BYE sip:UserA@here.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060 Via: SIP/2.0/UDP there.com:5060
Route: <sip:UserA@here.com> Route: <sip:UserA@100.101.102.103>
From: LittleGuy <sip:UserB@there.com>;tag=7137136 From: LittleGuy <sip:UserB@there.com>;tag=7137136
To: BigGuy <sip:UserA@here.com> To: BigGuy <sip:UserA@here.com>;tag=1234567
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 BYE CSeq: 1 BYE
Content-Length: 0 Content-Length: 0
F24 BYE Proxy -> A F24 BYE Proxy -> A
BYE sip:UserA@here.com SIP/2.0 BYE 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
From: LittleGuy <sip:UserB@there.com>;tag=7137136 From: LittleGuy <sip:UserB@there.com>;tag=7137136
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 BYE CSeq: 1 BYE
Content-Length: 0 Content-Length: 0
F25 200 OK A -> Proxy F25 200 OK A -> Proxy
skipping to change at page 79, line 42 skipping to change at page 82, line 42
to call user B. Messages F1, F2, and F3 are included to show that to call user B. Messages F1, F2, and F3 are included to show that
User B does not accept INVITEs that have not been screened by the User B does not accept INVITEs that have not been screened by the
proxy. proxy.
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
/* User B only accepts INVITEs that have been screened by the proxy /* User B only accepts INVITEs that have been screened by the proxy
*/ */
F2 305 Use Proxy B -> A F2 305 Use Proxy B -> A
SIP/2.0 305 Use Proxy SIP/2.0 305 Use Proxy
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=342123 To: LittleGuy <sip:UserB@there.com>;tag=342123
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: <sip:ss1.wcom.com> Contact: <sip:ss1.wcom.com>
Content-Length: 0 Content-Length: 0
F3 ACK A -> B F3 ACK A -> B
ACK sip:UserB@there.com SIP/2.0 ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=342123 To: LittleGuy <sip:UserB@there.com>;tag=342123
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
/* A retries the call through the proxy */ /* A retries the call through the proxy */
F4 INVITE A -> Proxy 1 F4 INVITE A -> Proxy 1
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 INVITE CSeq: 2 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
/* Proxy 1 challenges User A for authentication */ /* Proxy 1 challenges User A for authentication */
F5 407 Proxy Authorization Required Proxy 1 -> A F5 407 Proxy Authorization Required Proxy 1 -> A
SIP/2.0 407 Proxy Authorization Required SIP/2.0 407 Proxy Authorization Required
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7886765 To: LittleGuy <sip:UserB@there.com>;tag=7886765
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 INVITE CSeq: 2 INVITE
Proxy-Authenticate: Digest realm="MCI WorldCom SIP", Proxy-Authenticate: Digest realm="MCI WorldCom SIP",
domain="sip:ss1.wcom.com", nonce="ea9c8e88df84f1cec4341ae6cbe5a359", domain="sip:ss1.wcom.com", nonce="ea9c8e88df84f1cec4341ae6cbe5a359",
opaque="", stale=FALSE, algorithm=MD5 opaque="", stale=FALSE, algorithm=MD5
Content-Length: 0 Content-Length: 0
F6 ACK A -> Proxy 1 F6 ACK A -> Proxy 1
ACK sip:UserB@there.com SIP/2.0 ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=7886765 To: LittleGuy <sip:UserB@there.com>;tag=7886765
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 ACK CSeq: 2 ACK
Content-Length: 0 Content-Length: 0
/* User A responds by sending an INVITE with authentication /* User A responds by sending an INVITE with authentication
credentials in it. */ credentials in it. */
F7 INVITE A -> Proxy 1 F7 INVITE A -> Proxy 1
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 3 INVITE CSeq: 3 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Proxy-Authorization: DIGEST username="UserA", Proxy-Authorization: DIGEST username="UserA",
realm="MCI WorldCom SIP", nonce="ae9137be1c87d175c2dd63302a0d6e0a", realm="MCI WorldCom SIP", nonce="ae9137be1c87d175c2dd63302a0d6e0a",
opaque="", uri="sip:ss1.wcom.com", opaque="", uri="sip:ss1.wcom.com",
response="bbaec39f943bdcb3620d90afc548a45c" response="bbaec39f943bdcb3620d90afc548a45c"
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F8 403 Screening Failure (Terminating) Proxy 1 -> A F8 403 Screening Failure (Terminating) Proxy 1 -> A
SIP/2.0 403 Screening Failure (Terminating) SIP/2.0 403 Screening Failure (Terminating)
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=ffe254 To: LittleGuy <sip:UserB@there.com>;tag=ffe254
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 3 INVITE CSeq: 3 INVITE
Content-Length: 0 Content-Length: 0
F9 ACK A -> Proxy 1 F9 ACK A -> Proxy 1
ACK sip:UserB@there.com SIP/2.0 ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=ffe254 To: LittleGuy <sip:UserB@there.com>;tag=ffe254
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 3 ACK CSeq: 3 ACK
Content-Length: 0 Content-Length: 0
2.13 2.13
Call Management (Outgoing Call Screening) Call Management (Outgoing Call Screening)
User A Proxy User B User A Proxy User B
| | | | | |
skipping to change at page 83, line 34 skipping to change at page 86, line 34
User A has an outgoing call screening list, User B is included on the User A has an outgoing call screening list, User B is included on the
list of addresses User A will not be able to place a call to. User A list of addresses User A will not be able to place a call to. User A
attempts to call user B. attempts to call user B.
Message Details Message Details
F1 INVITE A -> Proxy 1 F1 INVITE A -> Proxy 1
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
/* Proxy 1 challenges User A for authentication */ /* Proxy 1 challenges User A for authentication */
F2 407 Proxy Authorization Required Proxy 1 -> A F2 407 Proxy Authorization Required Proxy 1 -> A
SIP/2.0 407 Proxy Authorization Required SIP/2.0 407 Proxy Authorization Required
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=90210 To: LittleGuy <sip:UserB@there.com>;tag=90210
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Proxy-Authenticate: Digest realm="MCI WorldCom SIP", Proxy-Authenticate: Digest realm="MCI WorldCom SIP",
domain="sip:ss1.wcom.com", nonce="ea9c8e88df84f1cec4341ae6cbe5a359", domain="sip:ss1.wcom.com", nonce="ea9c8e88df84f1cec4341ae6cbe5a359",
opaque="", stale=FALSE, algorithm=MD5 opaque="", stale=FALSE, algorithm=MD5
Content-Length: 0 Content-Length: 0
F3 ACK A -> Proxy 1 F3 ACK A -> Proxy 1
ACK sip:UserB@there.com SIP/2.0 ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=90210 To: LittleGuy <sip:UserB@there.com>;tag=90210
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
/* User A responds be sending an INVITE with authentication /* User A responds be sending an INVITE with authentication
credentials in it. */ credentials in it. */
F4 INVITE A -> Proxy 1 F4 INVITE A -> Proxy 1
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 INVITE CSeq: 2 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Proxy-Authorization: DIGEST username="UserA", realm="MCI WorldCom Proxy-Authorization: DIGEST username="UserA", realm="MCI WorldCom
SIP", nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="", SIP", nonce="cb360afc54bbaec39f943bd820d9a45c", opaque="",
uri="sip:ss1.wcom.com", response="b9d2e5bcdec9f69ab2a9b44f270285a6" uri="sip:ss1.wcom.com", response="b9d2e5bcdec9f69ab2a9b44f270285a6"
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=3034423619 0 t=3034423619 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F5 403 Screening Failure (Originating) Proxy 1 -> A F5 403 Screening Failure (Originating) Proxy 1 -> A
SIP/2.0 403 Screening Failure (Originating) SIP/2.0 403 Screening Failure (Originating)
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=18017 To: LittleGuy <sip:UserB@there.com>;tag=18017
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 INVITE CSeq: 2 INVITE
Content-Length: 0 Content-Length: 0
F6 ACK A -> Proxy 1 F6 ACK A -> Proxy 1
ACK sip:UserB@there.com SIP/2.0 ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=18017 To: LittleGuy <sip:UserB@there.com>;tag=18017
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 ACK CSeq: 2 ACK
Content-Length: 0 Content-Length: 0
2.14 2.14
Call Park
User A User B Park Server
| | |
| INVITE F1 | |
|------------->| |
|180 Ringing F2| |
|<-------------| |
| 200 OK F3 | |
|<-------------| |
| ACK F4 | |
|------------->| |
| RTP Media | |
|<============>| |
| User B Parks Call |
| | REFER Refer-To: A F5
| |------------->|
| | 202 F6 |
| |<-------------|
| INVITE F7 Referred-By: B |
|<----------------------------|
| 200 OK F8 |
|---------------------------->|
| ACK F9 |
|<----------------------------|
| RTP Music |
|<===========================>|
| BYE F10 | |
|------------->| NOTIFY F12 |
| 200 OK F11 |<-------------|
|<-------------| 200 OK F13 |
| |------------->|
| User B picks up the call |
| | |
| INVITE F14 | |
|<-------------| |
| 200 F15 | |
|------------->| |
| ACK F16 | |
|<-------------| |
| RTP Media | |
|<============>| |
| BYE F17 |
|---------------------------->|
| 200 OK F18 |
|<----------------------------|
| No more RTP Music |
In this example, User A calls User B. User B then parks the call at
the Park Server by sending a REFER to the Park Server. The server
sends an INVITE to A which replaces the session between A and B. The
call is accepted by A and causes A to send a BYE to B. User B
receives notification of the successful park, and also receives the
Call-ID in the application/sip body of the NOTIFY response. When
User B wishes to retrieve the call, a new INVITE is sent to A which
replaces the session with the Park Server. User A accepts the call
and sends a BYE to the Park Server. If someone besides User B
retrieves the call, then this becomes Call Park and Pickup.
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 A -> B
INVITE sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060
From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345601@here.com
CSeq: 1 INVITE
Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP
c=IN IP4 100.101.102.103
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F2 180 Ringing B -> A
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP there.com:5060
From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=314159
Call-ID: 12345601@here.com
CSeq: 1 INVITE
Content-Length: 0
F3 200 OK B -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP there.com:5060
From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=314159
Call-ID: 12345601@here.com
CSeq: 1 INVITE
Contact: <sip:UserB@110.111.112.113>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserB 2890844527 2890844527 IN IP4 client.there.com
s=Session SDP
c=IN IP4 110.111.112.113
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F4 ACK A -> B
ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060
From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=314159
Call-ID: 12345601@here.com
CSeq: 1 ACK
Content-Length: 0
/* User B 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 B -> Park Server
REFER sip:park@server.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=02134
To: Park Server <sip:park@server.com>
Call-ID: 4802029847@there.com
CSeq: 1 REFER
Refer-To: <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>
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>
Content-Length: 0
F6 202 Accepted Park Server -> B
SIP/2.0 202 Accepted
Via: SIP/2.0/UDP there.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=02134
To: Park Server <sip:park@server.com>;tag=56323
Call-ID: 4802029847@there.com
CSeq: 1 REFER
Content-Length: 0
/* Park Server places call to User A to replace session between A and
B */
F7 INVITE Park Server -> A
INVITE sip:UserA@100.101.102.103 SIP/2.0
Via: SIP/2.0/UDP server.com:5060
From: <sip:park@server.com>;tag=0111
To: <sip:UserA@100.101.102.103>
Call-ID: a5-75-34-12-76@server.com
CSeq: 1 INVITE
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>
Replaces: 12345601@here.com;from-tag=314159;to-tag=1234567
Accept-Contact: <sip:UserA@100.101.102.103>;only=true
Content-Type: application/sdp
Content-Length: ...
v=0
o=ParkServer 2890844576 2890844576 IN IP4 Park.server.com
s=Session SDP
c=IN IP4 50.60.70.80
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F8 200 OK A-> Park Server
SIP/2.0 200 OK
Via: SIP/2.0/UDP server.com:5060
From: <sip:park@server.com>;tag=0111
To: BigGuy <sip:UserA@100.101.102.103>;tag=098594
Call-ID: a5-75-34-12-76@server.com
CSeq: 1 INVITE
Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP
c=IN IP4 100.101.102.103
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=recvonly
F9 ACK Park Server -> A
ACK sip:UserA@100.101.102.103 SIP/2.0
Via: SIP/2.0/UDP server.com:5060
From: <sip:park@server.com>;tag=0111
To: BigGuy <sip:UserA@100.101.102.103>;tag=098594
Call-ID: a5-75-34-12-76@server.com
CSeq: 1 ACK
Content-Length: 0
F10 BYE A -> B
ACK sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP there.com:5060
From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=314159
Call-ID: 12345601@here.com
CSeq: 2 BYE
Content-Length: 0
F11 200 OK B -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP there.com:5060
From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=314159
Call-ID: 12345601@here.com
CSeq: 2 BYE
Content-Length: 0
/* Park Server reports success back to B by returning all the SIP
headers in 200 OK response */
F12 NOTIFY Park Server -> B
NOTIFY sip:UserB@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
To: LittleGuy <sip:UserB@there.com>;tag=02134
From: Park Server <sip:park@server.com>;tag=56323
Call-ID: 4802029847@there.com
CSeq: 1 NOTIFY
Event: refer
Content-Type: application/sip
Content-Length: ...
SIP/2.0 200 OK
Via: SIP/2.0/UDP server.com:5060
From: <sip:park@server.com>;tag=0111
To: BigGuy <sip:UserA@100.101.102.103>;tag=098594
Call-ID: a5-75-34-12-76@server.com
CSeq: 1 INVITE
Contact: <sip:UserA@100.101.102.103>
F13 200 OK B -> Park Server
SIP/2.0 200 OK
Via: SIP/2.0/UDP here.com:5060
To: LittleGuy <sip:UserB@there.com>;tag=02134
From: Park Server <sip:park@server.com>;tag=56323
Call-ID: 4802029847@there.com
CSeq: 1 NOTIFY
Content-Length: 0
/* User A is now parked at the Park Server */
/* User B picks up the call by sending an INVITE to A which replaces
the existing session with the Park/Park Server. Note that B knows
the Call-ID of the existing session from the NOTIFY response. */
/* Another UA besides B can pickup the call as long as it can
construct the appropriate Replaces header. */
F14 INVITE B -> A
INVITE sip:UserA@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=5893461
To: BigGuy <sip:UserA@here.com>
Call-ID: 6485356@here.com
CSeq: 1 INVITE
Contact: <sip:UserB@110.111.112.113>
Replaces: a5-75-34-12-76@server.com;from-tag=098594;to-tag=0111
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserB 2890844528 2890844528 IN IP4 client.there.com
s=Session SDP
c=IN IP4 110.111.112.113
t=3034423619 0
m=audio 3456 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F15 200 OK A -> B
SIP/2.0 200 OK
Via: SIP/2.0/UDP here.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=5893461
To: BigGuy <sip:UserA@here.com>;tag=222
Call-ID: 6485356@here.com
CSeq: 1 INVITE
Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp
Content-Length: ...
v=0
o=UserA 2890844527 2890844527 IN IP4 client.here.com
s=Session SDP
c=IN IP4 100.101.102.103
t=3034423619 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
F16 ACK B -> A
ACK sip:UserA@there.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
From: LittleGuy <sip:UserB@there.com>;tag=5893461
To: BigGuy <sip:UserA@here.com>;tag=222
Call-ID: 6485356@here.com
CSeq: 1 ACK
Content-Length: 0
/* A replaces the session to the Park Server with the new session and
generates a BYE to disconnect the Park Server */
F17 BYE A -> Park Server
BYE sip:park@server.com SIP/2.0
Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com>;tag=098594
To: <sip:park@server.com>;tag=0111
Call-ID: a5-75-34-12-76@server.com
CSeq: 1 BYE
Content-Length: 0
F18 200 OK Park Server -> A
SIP/2.0 200 OK
Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com>;tag=098594
To: <sip:park@server.com>;tag=0111
Call-ID: a5-75-34-12-76@server.com
CSeq: 1 BYE
Content-Length: 0
2.15
Call Pickup Call Pickup
User A Proxy User B1 User B2 User A Proxy User B1 User B2
| | | | | | | |
| INVITE F1 | | | | INVITE F1 | | |
|--------------->| INVITE F2 | | |--------------->| INVITE F2 | |
|(100 Trying) F3 |------------->| | |(100 Trying) F3 |------------->| |
|<---------------|180 Ringing F4| | |<---------------|180 Ringing F4| |
| 180 Ringing F5 |<-------------| | | 180 Ringing F5 |<-------------| |
|<---------------| | | |<---------------| | |
skipping to change at page 87, line 8 skipping to change at page 98, line 8
up the call and sends a REGISTER with Expires:0 to the proxy which up the call and sends a REGISTER with Expires:0 to the proxy which
recognizes this as a call pickup not a register based on the Request- recognizes this as a call pickup not a register based on the Request-
URI. The proxy server then forks the INVITE by sending it to B2 who URI. The proxy server then forks the INVITE by sending it to B2 who
answers. The proxy then cancels the B1 fork of the INVITE. answers. The proxy then cancels the B1 fork of the INVITE.
Message Details Message Details
F1 INVITE A -> Proxy F1 INVITE A -> Proxy
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=0 0 t=0 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F2 INVITE Proxy -> B1 F2 INVITE Proxy -> B1
INVITE sip:UserB1@there.com SIP/2.0 INVITE 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
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=0 0 t=0 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F3 (100 Trying) Proxy -> A F3 (100 Trying) Proxy -> A
SIP/2.0 100 Trying SIP/2.0 100 Trying
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F4 180 Ringing B1 -> Proxy F4 180 Ringing B1 -> Proxy
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
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> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=3145678 To: LittleGuy <sip:UserB@there.com>;tag=3145678
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F5 180 Ringing Proxy -> A F5 180 Ringing Proxy -> A
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=3145678 To: LittleGuy <sip:UserB@there.com>;tag=3145678
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
/* User B2 decides to pick up the call */ /* User B2 decides to pick up the call */
F6 REGISTER B2 -> Proxy F6 REGISTER B2 -> Proxy
REGISTER sip:pickupgroup37.ss1.wcom.com SIP/2.0 REGISTER sip:pickupgroup37.ss1.wcom.com SIP/2.0
Via: SIP/2.0/UDP b2.there.com:5060 Via: SIP/2.0/UDP b2.there.com:5060
From: LittleGuy <sip:UserB2@there.com> From: LittleGuy <sip:UserB2@there.com>;tag=8675309
To: LittleGuy <sip:UserB2@there.com> To: LittleGuy <sip:UserB2@there.com>
Call-ID: 563456212@b2.there.com Call-ID: 563456212@b2.there.com
CSeq: 1 REGISTER CSeq: 1 REGISTER
Contact: BigGuy <sip:UserB2@there.com> Contact: <sip:UserB2@110.111.112.114>
Expires: 0 Expires: 0
Content-Length: 0 Content-Length: 0
F7 200 OK Proxy -> B2 F7 200 OK Proxy -> B2
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP b2.there.com:5060 Via: SIP/2.0/UDP b2.there.com:5060
From: LittleGuy <sip:UserB2@there.com> From: LittleGuy <sip:UserB2@there.com>;tag=8675309
To: LittleGuy <sip:UserB2@there.com> To: LittleGuy <sip:UserB2@there.com>;tag=2913
Call-ID: 563456212@b2.there.com Call-ID: 563456212@b2.there.com
CSeq: 1 REGISTER CSeq: 1 REGISTER
Contact: BigGuy <sip:UserB2@there.com> Contact: <sip:UserB2@110.111.112.114>
Expires: 0 Expires: 0
Content-Length: 0 Content-Length: 0
/* Proxy recognizes the REGISTER directed at pickgroup37.ss1.wcom.com /* Proxy recognizes the REGISTER directed at pickgroup37.ss1.wcom.com
as being a call pickup attempt for the pending INVITE to B1. The as being a call pickup attempt for the pending INVITE to B1. The
proxy then forks the INVITE and sends it to B2. */ proxy then forks the INVITE and sends it to B2. */
F8 INVITE Proxy -> B2 F8 INVITE Proxy -> B2
INVITE sip:UserB2@there.com SIP/2.0 INVITE sip:UserB2@there.com SIP/2.0
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com> To: LittleGuy <sip:UserB@there.com>
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: BigGuy <sip:UserA@here.com> Contact: <sip:UserA@100.101.102.103>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserA 2890844526 2890844526 IN IP4 client.here.com o=UserA 2890844526 2890844526 IN IP4 client.here.com
s=Session SDP s=Session SDP
c=IN IP4 100.101.102.103 c=IN IP4 100.101.102.103
t=0 0 t=0 0
m=audio 49170 RTP/AVP 0 m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
F9 180 Ringing B2 -> Proxy F9 180 Ringing B2 -> Proxy
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F10 180 Proxy -> A F10 180 Proxy -> A
SIP/2.0 180 Ringing SIP/2.0 180 Ringing
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F11 200 OK B2 -> Proxy F11 200 OK B2 -> Proxy
SIP/2.0 200 OK SIP/2.0 200 OK
Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2 Via: SIP/2.0/UDP ss1.wcom.com:5060;branch=83749.2
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB2@there.com> Contact: <sip:UserB2@110.111.112.114>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844527 2890844527 IN IP4 client2.there.com o=UserB 2890844527 2890844527 IN IP4 client2.there.com
s=Session SDP s=Session SDP
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
F12 200 OK Proxy -> A F12 200 OK Proxy -> A
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
Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com> Record-Route: <sip:UserB@there.com;maddr=ss1.wcom.com>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Contact: LittleGuy <sip:UserB2@there.com> Contact: <sip:UserB2@110.111.112.114>
Content-Type: application/sdp Content-Type: application/sdp
Content-Length: ... Content-Length: ...
v=0 v=0
o=UserB 2890844527 2890844527 IN IP4 client2.there.com o=UserB 2890844527 2890844527 IN IP4 client2.there.com
s=Session SDP s=Session SDP
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@there.com 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> From: BigGuy <sip:UserA@here.com>;tag=1234567
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> From: BigGuy <sip:UserA@here.com>;tag=1234567
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:UserB2@there.com> Route: <sip:UserB@110.111.112.114>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F16 ACK Proxy -> B2 F16 ACK Proxy -> B2
ACK sip:UserB2@there.com SIP/2.0 ACK sip:UserB2@110.111.112.114 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 here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
F17 487 Request Cancelled B1 -> Proxy F17 487 Request Terminated B1 -> Proxy
SIP/2.0 487 Request Cancelled 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> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=3145678 To: LittleGuy <sip:UserB@there.com>;tag=3145678
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 INVITE CSeq: 1 INVITE
Content-Length: 0 Content-Length: 0
F18 ACK Proxy -> B1 F18 ACK Proxy -> B1
ACK sip:UserB1@there.com SIP/2.0 ACK 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> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=3145678 To: LittleGuy <sip:UserB@there.com>;tag=3145678
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 1 ACK CSeq: 1 ACK
Content-Length: 0 Content-Length: 0
/* RTP streams are established between A and B2. User A Hangs Up /* RTP streams are established between A and B2. User A Hangs Up
with User B2. */ with User B2. */
F19 BYE A -> Proxy F19 BYE A -> Proxy
BYE sip:UserB2@there.com SIP/2.0 BYE 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:UserB2@there.com> Route: <sip:UserB@110.111.112.114>
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F20 BYE Proxy -> B2 F20 BYE Proxy -> B2
BYE sip:UserB2@there.com SIP/2.0 BYE sip:UserB2@there.com 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 here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F21 200 OK B2 -> Proxy F21 200 OK B2 -> 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
Via: SIP/2.0/UDP here.com:5060 Via: SIP/2.0/UDP here.com:5060
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
F22 200 OK Proxy -> A F22 200 OK Proxy -> A
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
From: BigGuy <sip:UserA@here.com> From: BigGuy <sip:UserA@here.com>;tag=1234567
To: LittleGuy <sip:UserB@there.com>;tag=123456 To: LittleGuy <sip:UserB@there.com>;tag=765432
Call-ID: 12345600@here.com Call-ID: 12345600@here.com
CSeq: 2 BYE CSeq: 2 BYE
Content-Length: 0 Content-Length: 0
Acknowledgements Acknowledgements
The authors wish to thank the following individuals for their The authors wish to thank the following individuals for their
assistance and review of this call flows document: Rohan Mahey, assistance and review of this call flows document: Rohan Mahey,
Jonathan Rosenberg, Hemant Agrawal, Henry Sinnreich, Dean Willis, Jonathan Rosenberg, Hemant Agrawal, Henry Sinnreich, Dean Willis,
David Devanatham, Joe Pizzimenti, Matt Cannon, John Hearty, the David Devanatham, Joe Pizzimenti, Matt Cannon, John Hearty, the
whole MCI WorldCom IPOP Design team, Scott Orton, Greg Osterhout, Pat whole MCI WorldCom IPOP Design team, Scott Orton, Greg Osterhout, Pat
Sollee, Doug Weisenberg, Danny Mistry, Steve McKinnon, and Denise Sollee, Doug Weisenberg, Danny Mistry, Steve McKinnon, and Denise
Ingram, Denise Caballero, Tom Redman, Ilya Slain, Pat Sollee, John Ingram, Denise Caballero, Tom Redman, Ilya Slain, Pat Sollee, John
Truetken, and others from MCI WorldCom, 3Com, Cisco, Lucent and Truetken, and others from MCI WorldCom, 3Com, Cisco, Lucent and
Nortel. Nortel.
3 References 3 References
[1] S. Bradner, "The Internet Standards Process -- Revision 3", BCP [1] S. Bradner, "The Internet Standards Process -- Revision 3", BCP
9, RFC 2026, October 1996. 9, RFC 2026, October 1996.
[2] A. Johnston, S. Donovan, R. Sparks, C. Cunningham, D. Willis, J. [2] M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg, "SIP:
Session Initiation Protocol", RFC 2543, March 1999.
[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, March 2001, Work in Draft, Internet Engineering Task Force, June 2001, Work in
Progress. Progress.
[3] R. Sparks, "SIP Call Control Transfer", Internet Draft, [4] R. Sparks, "SIP Call Control Transfer", Internet Draft,
Internet Engineering Task Force, February 2001, Internet Engineering Task Force, February 2001,
Work in Progress. Work in Progress.
[4] M. Handley, H. Schulzrinne, E. Schooler, and J. Rosenberg, "SIP: [5] B. Biggs and R. Dean, "The SIP Replaces header," Internet Draft,
Session Initiation Protocol", RFC 2543, March 1999. Internet Engineering Task Force, November 2000,
Work in Progress.
[6] H. Schulzrinne and J. Rosenberg, "SIP Caller Preferences and
Callee Capabilities," Internet Engineering Task Force, June 2001,
Work in Progress.
[7] J. Rosenberg, J. Peterson, H. Schulzrinne, and G. Camarillo,
"Third Party Call Control in SIP," Internet Engineering Task
Force, March 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@digitalari.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
Steve Donovan Email: sdonovan@dynamicsoft.com Steve Donovan Email: sdonovan@dynamicsoft.com
Kevin Summers Email: kevin.summers@sonusnet.com Kevin Summers Email: kevin.summers@sonusnet.com
Copyright Notice Copyright Notice
 End of changes. 

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