Similar presentations:
Third party call control (3pcc)
1.
Third Party Call ControlThird Party Call Control(3pcc)
Alexandre Ling Lee
COMS W4995 VoIP Security
Instruction : Prof. Schulzrinne
1
2.
Third Party Call ControlOutline
3pcc
intro
3pcc call establishment
Error handling
Early media
SDP precondition
Case study
2
3.
Third Party Call Control3pcc 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
3
4.
Third Party Call Control3pcc 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
4
5.
Third Party Call ControlLogical view of 3PCC for a two-party session
http://www.lucent.com/livelink/0900940380044981_White_paper.pdf
5
6.
Third Party Call Control3pcc 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
6
7.
Third Party Call ControlFlow I – Simply and Elegant Flow
A
1
INVITE no SDP
<ring>
200 offer1
2
<answer>
INVITE offer1
3
4
6
200 OK answer1
ACK answer1
7
5
B <ring>
<answer>
ACK
RTP Media
Timeline
7
8.
Third Party Call ControlFlow 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
8
9.
Third Party Call ControlFlow II-Alternative flow with bh sdp
A
bh= Black hole
connection address=0.0.0.0
1
INVITE bh sdp1
<ring>
200 sdp2
2
<answer>
4
ACK
7
5
INVITE sdp3
INVITE sdp2
200 OK sdp3
6
B
<ring>
<answer>
ACK
200 OK sdp2
8
9
3
ACK
10
RTP Media
Timeline
9
10.
Third Party Call ControlFlow 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
10
11.
Third Party Call ControlFlow III
<ring>
A
1
INVITE no SDP
200 offer1
2
<answer>
3
ACK answer1(bh)
200 OK offer2
5
6
INVITE offer2’
7
9
INVITE no SDP
4
<ring>
<answer>
200 answer2’
8
ACK
10
B
ACK answer2
RTP Media
Timeline
11
12.
Third Party Call ControlFlow 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
12
13.
Third Party Call ControlFlow IV - a variation on Flow III
A
1 INVITE offer1 no media
2 200 answer1 no media
3 ACK
4 INVITE no SDP
5 200 OK offer2
<ring>
<answer>
6 INVITE offer2’
B
<ring>
<answer>
7 200 answer2’
8
9 ACK
10
ACK answer2
RTP Media
Timeline
13
14.
Third Party Call ControlFlow 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.
14
15.
Third Party Call ControlRecommendation
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
15
16.
Third Party Call ControlRecommendation
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
16
17.
Third Party Call ControlError 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.
17
18.
Third Party Call ControlError handling
Condition2:
A
180: Ringing
491: Request pending
1 INVITE offer1 no media
<ring>
2 200 answer1 no media
3
ACK
6
INVITE offer2
7
8
4
5
INVITE no SDP
B
<ring>
180
491
ACK
Timeline
18
19.
Third Party Call ControlContinued 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
19
20.
Third Party Call ControlA
B
1 BYE
C
2 200 OK
3 INV no media
4 200 no media
5 ACK
6 INV no SDP
7 200 offer3
8 INV offer3’
9 200 answer3’
10 ACK
11 ACK answer3
Timeline
12
RTP Media
20
21.
Third Party Call ControlThird Party Call Control and
-Early Media
-SDP Preconditions
21
22.
Third Party Call ControlEarly Media
The condition of where the session
is established.
Before the call is setup, the
msg(tones or anouncements) that
about this call
22
23.
Third Party Call ControlSDP Preconditions
SIP extension
Precondition about the users is needed by
the controller
Signaling, resource reservation
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
23
24.
Third Party Call Control183 Session in Progress
A
B
1 INVITE offer1 no media
2 183 answer1 no media
3 PRACK
4 200 OK
5 INVITE no SDP
6 183 offer2
Des=sendrecv
Conf=recv
Cur=none
7 UPDATE offer2’
Des=sendrecv
Conf=recv
Cur=none
8 200 UPDATE answer2’
Des=sendrecv
Conf=recv
Cur=none
11
9 PRACK answer2
Des=sendrecv
Conf=recv
Cur=none
10 200 PRACK
reservation
Timeline
24
25.
Third Party Call ControlA
12
13 UPDATE offer3
Des=sendrecv
Conf=recv
Cur=recv
16 200 UPDATE answer3
Des=sendrecv
Conf=recv
Cur=send
18 UPDATE offer4’
Des=sendrecv
Conf=recv
Cur=sendrecv
<ring>
B
reservation
14 UPDATE offer3’
Des=sendrecv
Conf=recv
Cur=recv
15 200 UPDATE answer3’
Des=sendrecv
Conf=recv
Cur=send
17 UPDATE offer4
Des=sendrecv
Conf=recv
Cur=sendrecv
<ring>
19 200 UPDATE answer4’
Des=sendrecv
Conf=recv
Cur=sendrecv
Timeline
25
26.
Third Party Call ControlA
20 200 UPDATE answer4
Des=sendrecv
Conf=recv
Cur=sendrecv
21 180 INVITE
<answer>
B
22 180 INVITE
23 200 INVITE
24 ACK
<answer>
25 200 INVITE
26 ACK
Timeline
26
27.
Third Party Call ControlCase Study
Click-to-dial
27
28.
Third Party Call ControlClick-to-dial
1 HTTP OK
User’s
Phone
2 HTTP 200 OK
3 INV offer1 no media
4 INV answer1 no media
5 ACK
6 INV no SDP
7 200 OK offer2
8 INV offer2’
9 200 answer2
10 ACK answer2
11 ACK’
12
RTP Media
Timeline
28
29.
Third Party Call ControlRecommendation
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
29
30.
Third Party Call ControlReference
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
30