third party call control(3pcc)
DESCRIPTION
Third Party Call Control. Third Party Call Control(3pcc). Alexandre Ling Lee COMS W4995 VoIP Security Instruction : Prof. Schulzrinne . Third Party Call Control. Outline. 3pcc intro 3pcc call establishment Error handling Early media SDP precondition Case study. - PowerPoint PPT PresentationTRANSCRIPT
1
Third Party Call Control
Third Party Call Control(3pcc)
Alexandre Ling LeeCOMS W4995 VoIP Security
Instruction : Prof. Schulzrinne
2
Third Party Call Control
Outline
3pcc intro3pcc call establishmentError handlingEarly mediaSDP preconditionCase study
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
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
5
Third Party Call Control
Logical view of 3PCC for a two-party session
http://www.lucent.com/livelink/0900940380044981_White_paper.pdf
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
7
Third Party Call Control
Flow I – Simply and Elegant Flow
A
B
1
23
4
56
7
200 offer1
INVITE no SDP
INVITE offer1
200 OK answer1
ACKACK answer1
RTP Media
Timeline
<ring>
<ring><answer>
<answer>
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
9
Third Party Call Control
A
B
1
2 3
5
67
10
200 sdp2
INVITE bh sdp1INVITE sdp2
200 OK sdp3
ACKINVITE sdp3
Timeline
RTP Media
4 ACK
8 200 OK sdp29 ACK
bh= Black holeconnection address=0.0.0.0
Flow II-Alternative flow with bh sdp
<ring>
<ring><answer>
<answer>
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
11
Third Party Call Control
Flow III
A
B
1
2
4
5
8
6
10
200 offer1
INVITE no SDP
INVITE no SDP200 OK offer2
ACK answer2
INVITE offer2’
Timeline
RTP Media
3 ACK answer1(bh)
7 200 answer2’
9 ACK
<ring>
<ring>
<answer>
<answer>
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
13
Third Party Call Control
A
B
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’
TimelineRTP Media
3 ACK
7 200 answer2’
9 ACK
Flow IV - a variation on Flow III
<ring>
<ring>
<answer>
<answer>
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.
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
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
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.
18
Third Party Call Control
Error handling
Condition2:A
B
1
2
4
56
200 answer1 no media
INVITE offer1 no media
INVITE no SDP
180INVITE offer2
3 ACK
7 4918 ACK
<ring>
<ring>
180: Ringing491: Request pending
Timeline
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
20
Third Party Call Control
3
910
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 SDP5 ACK
8 INV offer3’
A B C
11 ACK answer3
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
23
Third 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
24
Third Party Call Control
A B1234
5
67
183 answer1 no mediaINVITE offer1 no media
PRACK200 OK
INVITE no SDP183 offer2Des=sendrecvConf=recvCur=none
Timeline
UPDATE offer2’Des=sendrecvConf=recvCur=none8 200 UPDATE answer2’Des=sendrecvConf=recvCur=none
9 PRACK answer2Des=sendrecvConf=recvCur=none10 200 PRACK
11 reservation
183 Session in Progress
25
Third Party Call Control
A B
14
15
<ring>
UPDATE offer3’Des=sendrecvConf=recvCur=recv200 UPDATE answer3’Des=sendrecvConf=recvCur=send
16 200 UPDATE answer3Des=sendrecvConf=recvCur=send
13 UPDATE offer3Des=sendrecvConf=recvCur=recv
12 reservation
17 UPDATE offer4Des=sendrecvConf=recvCur=sendrecv18 UPDATE offer4’Des=sendrecvConf=recvCur=sendrecv19 200 UPDATE answer4’Des=sendrecvConf=recvCur=sendrecv<ring>
Timeline
26
Third Party Call Control
A B
21
22
20
180 INVITE
180 INVITE
200 UPDATE answer4Des=sendrecvConf=recvCur=sendrecv
26 ACK
25 200 INVITE
24 ACK
23 200 INVITE<answer>
<answer>
Timeline
28
Third Party Call Control
User’s Phone1
7
11
5
8
12
200 OK offer2
HTTP OK
ACKINV 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 answer210 ACK answer2
Click-to-dial
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
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