Third party call control (3pcc)

1.

Third Party Call Control
Third Party Call Control(3pcc)
Alexandre Ling Lee
COMS W4995 VoIP Security
Instruction : Prof. Schulzrinne
1

2.

Third Party Call Control
Outline
3pcc
intro
3pcc call establishment
Error handling
Early media
SDP precondition
Case study
2

3.

Third 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
3

4.

Third 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
4

5.

Third Party Call Control
Logical view of 3PCC for a two-party session
http://www.lucent.com/livelink/0900940380044981_White_paper.pdf
5

6.

Third 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
6

7.

Third Party Call Control
Flow 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 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
8

9.

Third Party Call Control
Flow 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 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
10

11.

Third Party Call Control
Flow 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 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
12

13.

Third Party Call Control
Flow 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 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.
14

15.

Third 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
15

16.

Third 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
16

17.

Third 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.
17

18.

Third Party Call Control
Error 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 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
19

20.

Third Party Call Control
A
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 Control
Third Party Call Control and
-Early Media
-SDP Preconditions
21

22.

Third 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
22

23.

Third Party Call Control
SDP 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 Control
183 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 Control
A
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 Control
A
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 Control
Case Study
Click-to-dial
27

28.

Third Party Call Control
Click-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 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
29

30.

Third 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
30
English     Русский Правила