Слайд 1Third Party Call Control
Third Party Call Control(3pcc)
Alexandre Ling Lee
COMS W4995 VoIP
Security
Instruction : Prof. Schulzrinne
Слайд 2Third Party Call Control
Outline
3pcc intro
3pcc call establishment
Error handling
Early media
SDP precondition
Case study
Слайд 3Third Party Call Control
3pcc Intro
3pcc
the ability of one entity to create
a call in which communication is actually between other parties.
use the mechanisms specified within the Session Initiation Protocol (SIP).
Examples of use:
Operator services
conferencing
Слайд 4Third Party Call Control
3pcc Intro-Controller
A controller
a SIP User Agent that
wishes to create a Session between two other user agents.
issue either its own or other’s party “forged” From address.
does not carry the media stream sent over the call channels.
often called back-2-back user agent
Слайд 5Third Party Call Control
Logical view of 3PCC for a two-party session
http://www.lucent.com/livelink/0900940380044981_White_paper.pdf
Слайд 6Third Party Call Control
3pcc call establishment
Flow I~ Flow IV
Establishment of this
session is created by a third party, referred to as the controller.
benefits and drawbacks to each of these flows
Слайд 7Third Party Call Control
Flow I – Simply and Elegant Flow
1
2
3
4
5
6
7
200 offer1
INVITE
no SDP
INVITE offer1
200 OK answer1
ACK
ACK answer1
RTP Media
Timeline
Слайд 8Third Party Call Control
Flow I – Simply and Elegant Flow
Pros:
simple
no
manipulation of the SDP by the controller
works for any media types supported by both endpoints.
Cons:
timeout problem
Слайд 9Third Party Call Control
1
2
3
5
6
7
10
200 sdp2
INVITE bh sdp1
INVITE sdp2
200 OK sdp3
ACK
INVITE sdp3
Timeline
RTP
Media
4
ACK
8
200 OK sdp2
9
ACK
bh= Black hole
connection address=0.0.0.0
Flow II-Alternative flow with bh sdp
Слайд 10Third Party Call Control
Flow II-Alternative flow with bh sdp
Pros:
all final responses
are immediately ACKed.
no timeout and message inefficiency problems of flow 1.
Cons:
the controller need know the media types to be used for the call
bh sdp sent and bh sdp response
Infinite loop of re-INVITEs
Слайд 11Third Party Call Control
Flow III
1
2
4
5
8
6
10
200 offer1
INVITE no SDP
INVITE no SDP
200 OK
offer2
ACK answer2
INVITE offer2’
Timeline
RTP Media
3
ACK answer1(bh)
7
200 answer2’
9
ACK
Слайд 12Third Party Call Control
Flow III
Pros:
operate without any spurious retransmissions or timeouts.
the
controller need not guess the media that will be used by the participants.
Cons:
Controller need to perform SDP manipulations.
Reorder and trim SDP X is done by controller, so that the media lines match up with those in some other SDP, Y.
The controller need to detect and terminate the call with different codecs and media line.
the flow is far more complicated than Flow I
Слайд 13Third Party Call Control
1
2
4
5
8
6
10
200 answer1 no media
INVITE offer1 no media
INVITE no
SDP
200 OK offer2
ACK answer2
INVITE offer2’
Timeline
RTP Media
3
ACK
7
200 answer2’
9
ACK
Flow IV - a variation on Flow III
Слайд 14Third Party Call Control
Flow IV - a variation on Flow III
Pros:
the media manipulations by controller is more simply.
Cons:
user A will be alerted without any media having been established yet.
If there is no media in common,
user annoyance and possibly resulting in billing events.
Слайд 15Third Party Call Control
Recommendation
FlowI
the simplest and the most efficient flow
User
B is actually an automata that will answer the call immediately.
media servers, conferencing servers, and messaging servers
Flow II
SHOULD NOT be used
Слайд 16Third Party Call Control
Recommendation
Flow III
MAY be used instead of FlowIV, but
it provides no additional benefits over Flow IV.
Flow IV
For calls to unknown entities, or to entities known to represent people, it is RECOMMENDED
Слайд 17Third Party Call Control
Error handling
Condition1:
one call is established to A, and
B would fail。
User B is busy
no media in common
the request time out
Solution:
the controller send a BYE to A.
Reason header--carries the status code from the error response.
Слайд 18Third Party Call Control
Error handling
Condition2:
1
2
4
5
6
200 answer1 no media
INVITE offer1 no media
INVITE
no SDP
180
INVITE offer2
3
ACK
7
491
8
ACK
180: Ringing
491: Request pending
Timeline
Слайд 19Third Party Call Control
Continued Processing
Central point of signaling between users
Help to
create a new BYE to finish the session
Forward the re-INVITE receive from one participants
Слайд 20Third Party Call Control
3
9
10
7
12
200 answer3’
INV no media
200 offer3
BYE
RTP Media
4
200 no media
ACK
1
Timeline
2
200
OK
6
INV no SDP
5
ACK
8
INV offer3’
11
ACK answer3
Слайд 21Third Party Call Control
Third Party Call Control and
-Early Media
-SDP Preconditions
Слайд 22Third Party Call Control
Early Media
The condition of where the session is
established.
Before the call is setup, the msg(tones or anouncements) that about this call
Слайд 23Third Party Call Control
SDP Preconditions
SIP extension
Signaling, resource reservation
Precondition about the users
is needed by the controller
Controller can cut the session if it is necessary(no overlapping codec or media)
There may be another possible the precondition is needed by the participant
Слайд 24Third Party Call Control
1
2
3
4
5
6
7
183 answer1 no media
INVITE offer1 no media
PRACK
200 OK
INVITE
no SDP
183 offer2
Des=sendrecv
Conf=recv
Cur=none
Timeline
UPDATE offer2’
Des=sendrecv
Conf=recv
Cur=none
8
200 UPDATE answer2’
Des=sendrecv
Conf=recv
Cur=none
9
PRACK answer2
Des=sendrecv
Conf=recv
Cur=none
10
200 PRACK
11
reservation
183 Session in Progress
Слайд 25Third Party Call Control
14
15
UPDATE offer3’
Des=sendrecv
Conf=recv
Cur=recv
200 UPDATE answer3’
Des=sendrecv
Conf=recv
Cur=send
16
200 UPDATE answer3
Des=sendrecv
Conf=recv
Cur=send
13
UPDATE offer3
Des=sendrecv
Conf=recv
Cur=recv
12
reservation
17
UPDATE offer4
Des=sendrecv
Conf=recv
Cur=sendrecv
18
UPDATE
offer4’
Des=sendrecv
Conf=recv
Cur=sendrecv
19
200 UPDATE answer4’
Des=sendrecv
Conf=recv
Cur=sendrecv
Timeline
Слайд 26Third Party Call Control
21
22
20
180 INVITE
180 INVITE
200 UPDATE answer4
Des=sendrecv
Conf=recv
Cur=sendrecv
26
ACK
25
200 INVITE
24
ACK
23
200 INVITE
Timeline
Слайд 27Third Party Call Control
Case Study
Click-to-dial
Слайд 28Third Party Call Control
1
7
11
5
8
12
200 OK offer2
HTTP OK
ACK
INV no SDP
RTP Media
2
HTTP 200
OK
INV offer2’
ACK’
6
Timeline
3
INV offer1 no media
4
INV answer1 no media
9
200 answer2
10
ACK answer2
Click-to-dial
Слайд 29Third Party Call Control
Recommendation
Offers and answers that contain a connection line
with an address of 0.0.0.0.
Re-INVITE requests that change the port to which media should be sent o Re-INVITEs that change the connection address
Re-INVITEs that add a media stream
Re-INVITEs that remove a media stream (setting its port to zero)
Re-INVITEs that add a codec amongst the set in a media stream
SDP Connection address of zero o Initial INVITE requests with a connection address of zero
Initial INVITE requests with no SDP
Initial INVITE requests with SDP but no media lines
Re-INVITEs with no SDP
Слайд 30Third Party Call Control
Reference
J. Rosenberg, J. Peterson, H. Schulzrinne, G. Camarillo,”
Best Current Practices for Third Party Call Control (3pcc) in the Session Initiation Protocol (SIP)”, RFC3725, Apr, 2004
T. Chiang, V. Gurbani, J.Reid,”The Need for Third-Party Call Control”,Lucent Tech., 2002