300 likes | 313 Views
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.
E N D
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
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
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
Third Party Call Control Logical view of 3PCC for a two-party session http://www.lucent.com/livelink/0900940380044981_White_paper.pdf
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
B A Third Party Call Control Flow I – Simply and Elegant Flow INVITE no SDP 1 <ring> 2 200 offer1 <answer> INVITE offer1 3 <ring> 200 OK answer1 4 <answer> ACK 5 ACK answer1 6 7 RTP Media Timeline
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
B A Third Party Call Control Flow II-Alternative flow with bh sdp bh= Black hole connection address=0.0.0.0 1 INVITE bh sdp1 <ring> 2 200 sdp2 <answer> 3 INVITE sdp2 <ring> ACK 4 200 OK sdp3 <answer> 5 6 ACK INVITE sdp3 7 200 OK sdp2 8 ACK 9 10 RTP Media Timeline
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
B A Third Party Call Control Flow III 1 INVITE no SDP <ring> 2 200 offer1 <answer> ACKanswer1(bh) 3 4 INVITE no SDP <ring> 200 OK offer2 5 <answer> INVITEoffer2’ 6 200answer2’ 7 8 ACK answer2 ACK 9 10 RTP Media Timeline
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
B A Third Party Call Control Flow IV - a variation on Flow III 1 INVITE offer1 no media 2 200 answer1 no media 3 ACK 4 INVITE no SDP <ring> 200 OK offer2 5 <answer> INVITE offer2’ 6 <ring> 200 answer2’ 7 <answer> 8 ACK answer2 9 ACK 10 RTP Media Timeline
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.
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
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
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.
B A Third Party Call Control Error handling • Condition2: 180: Ringing 491: Request pending 1 INVITE offer1 no media <ring> 200 answer1 no media 2 <ring> ACK 3 4 INVITE no SDP INVITE offer2 6 180 5 491 7 ACK 8 Timeline
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
C B A Third Party Call Control 1 BYE 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 12 RTP Media Timeline
Third Party Call Control Third Party Call Control and -Early Media -SDP Preconditions
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
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
B A Third Party Call Control 183 Session in Progress 1 INVITE offer1 no media 2 183 answer1 no media PRACK 3 200 OK 4 INVITE no SDP 5 183 offer2 Des=sendrecv Conf=recv Cur=none 6 7 UPDATE offer2’ Des=sendrecv Conf=recv Cur=none 200 UPDATE answer2’ Des=sendrecv Conf=recv Cur=none 8 PRACK answer2 Des=sendrecv Conf=recv Cur=none 9 10 200 PRACK reservation 11 Timeline
B A Third Party Call Control reservation 12 UPDATE offer3 Des=sendrecv Conf=recv Cur=recv 13 UPDATE offer3’ Des=sendrecv Conf=recv Cur=recv 14 15 200 UPDATE answer3’ Des=sendrecv Conf=recv Cur=send 200 UPDATE answer3 Des=sendrecv Conf=recv Cur=send 16 UPDATE offer4 Des=sendrecv Conf=recv Cur=sendrecv 17 UPDATE offer4’ Des=sendrecv Conf=recv Cur=sendrecv <ring> 18 200 UPDATE answer4’ Des=sendrecv Conf=recv Cur=sendrecv 19 <ring> Timeline
B A Third Party Call Control 200 UPDATE answer4 Des=sendrecv Conf=recv Cur=sendrecv 20 180 INVITE 21 <answer> 22 180 INVITE 23 200 INVITE 24 ACK <answer> 25 200 INVITE 26 ACK Timeline
Third Party Call Control Case Study Click-to-dial
User’s Phone Third Party Call Control Click-to-dial 1 HTTP OK 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
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
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