WebRTC	
  RtpTransceiver	
  
Concepts,	
  use	
  cases,	
  varia4ons	
  
Dr	
  Alex	
  Gouaillard	
  
ORTC	
  /	
  Object	
  Model	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Cosmo	
  Consul5ng.,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Citrix	
  Systems,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
Rtp	
  
Sender	
  
Sctp	
  
Transport	
  
Rtp	
  
Receiver	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Local	
  
Track	
  
Data	
  
Channel	
  
Javascript	
  App	
  
NET	
   Ice	
  
Transport	
  
Dtls	
  
Transport	
  
Sctp	
  
Transport	
  
Remote	
  
Track	
  
Data	
  
Channel	
  
Javascript	
  App	
  
ORTC	
  /	
  Object	
  Model	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Cosmo	
  Consul5ng.,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Citrix	
  Systems,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
Rtp	
  
Sender	
  
Rtp	
  
Receiver	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Local	
  
Track	
  
NET	
  
Ice	
  
Transport	
  
Dtls	
  
Transport	
  
Rtp	
  
Sender	
  
WebRTC	
  /	
  Object	
  Model	
  
Example	
  1:	
  Audio	
  only,	
  1:1	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Rtp	
  
Receiver	
  
Remote	
  
Track	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Rtp	
  
Transceiver	
  
Remote	
  
Track	
  
Local	
  
Track	
  
Rtp	
  
Transceiver	
  
RTP	
  
RTCP	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Cosmo	
  Consul5ng.,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Citrix	
  Systems,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
Rtp	
  
Sender	
  
Rtp	
  
Receiver	
  
Local	
  
Track	
  
NET	
  
Remote	
  
Track	
  
Rtp	
  
Sender	
  
Local	
  
Track	
  
WebRTC	
  /	
  Object	
  Model	
  
Example	
  1:	
  Audio	
  only,	
  1:1,	
  rtcp-­‐mux	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Rtp	
  
Receiver	
  
Remote	
  
Track	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Rtp	
  
Transceiver	
  
Rtp	
  
Transceiver	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Cosmo	
  Consul5ng.,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Citrix	
  Systems,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
WebRTC	
  /	
  Object	
  Model	
  
Example	
  2:	
  Audio	
  +	
  Video,	
  1:1,	
  rtcp-­‐mux	
  
Rtp	
  
Sender	
  
Rtp	
  
Receiver	
  
Local	
  
Track	
  
NET	
  
Remote	
  
Track	
  
Rtp	
  
Sender	
  
Local	
  
Track	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Rtp	
  
Receiver	
  
Remote	
  
Track	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Rtp	
  
Transceiver	
  
Rtp	
  
Transceiver	
  
Rtp	
  
Sender	
  
Rtp	
  
Receiver	
  
Local	
  
Track	
  
NET	
  
Remote	
  
Track	
  
Rtp	
  
Sender	
  
Local	
  
Track	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Rtp	
  
Receiver	
  
Remote	
  
Track	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Rtp	
  
Transceiver	
  
Rtp	
  
Transceiver	
  
AUDIO	
  
VIDEO	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Cosmo	
  Consul5ng.,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Citrix	
  Systems,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
Rtp	
  
Sender	
  
Rtp	
  
Receiver	
  
Local	
  
Track	
  
NET	
  
Remote	
  
Track	
  
Local	
  
Track	
  
WebRTC	
  /	
  Object	
  Model	
  
Example	
  2:	
  Audio	
  +	
  Video,	
  1:1,	
  
rtcp-­‐mux	
  +	
  BUNDLE	
  
Ice	
  
Transport	
  
Rtp	
  
Receiver	
  
Remote	
  
Track	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Rtp	
  
Transceiver	
  
Rtp	
  
Transceiver	
  
Rtp	
  
Receiver	
  
Local	
  
Track	
  
Remote	
  
Track	
  
Rtp	
  
Receiver	
  
Local	
  
Track	
  
Rtp	
  
Sender	
  
Remote	
  
Track	
  
Rtp	
  
Transceiver	
  
Rtp	
  
Transceiver	
  
RTP	
  
RTCP	
  
Dtls	
  
Transport	
  
AUDIO	
  
VIDEO	
  
Rtp	
  
Sender	
  
Rtp	
  
Sender	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Cosmo	
  Consul5ng.,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Citrix	
  Systems,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
Rtp	
  Transceiver	
  
Rtp	
  Transceiver	
  
Rtp	
  
Sender	
  
Rtp	
  
Sender	
  
Rtp	
  
Sender	
  
Rtp	
  
Receiver	
  Track	
  
Rtp	
  
Sender	
  
Rtp	
  
Receiver	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Local	
  
Track	
  
NET	
   Ice	
  
Transport	
  
Dtls	
  
Transport	
  
Track	
  
Remote	
  
Track	
  
Rtp	
  
Receiver	
  Track	
  
Remote	
  
Track	
  
Rtp	
  
Sender	
   Track	
  
Local	
  
Track	
  
Example	
  2:	
  simplified	
  view	
  Rtp	
  Transceiver	
  
Rtp	
  Transceiver	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Cosmo	
  Consul5ng.,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Citrix	
  Systems,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
WebRTC	
  /	
  Object	
  Model	
  
Example	
  3:	
  Audio	
  +	
  Video	
  +	
  Data,	
  1:1,	
  
	
  rtcp-­‐mux	
  
Sctp	
  
Transport	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Data	
  
Channel	
  
NET	
   Ice	
  
Transport	
  
Dtls	
  
Transport	
  
Sctp	
  
Transport	
  
Data	
  
Channel	
  
Rtp	
  
Sender	
  
Rtp	
  
Receiver	
  
Local	
  
Track	
  
NET	
  
Remote	
  
Track	
  
Rtp	
  
Sender	
  
Local	
  
Track	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Rtp	
  
Receiver	
  
Remote	
  
Track	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Rtp	
  
Transceiver	
  
Rtp	
  
Transceiver	
  
Rtp	
  
Sender	
  
Rtp	
  
Receiver	
  
Local	
  
Track	
  
NET	
  
Remote	
  
Track	
  
Rtp	
  
Sender	
  
Local	
  
Track	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Rtp	
  
Receiver	
  
Remote	
  
Track	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Rtp	
  
Transceiver	
  
Rtp	
  
Transceiver	
  
AUDIO	
  
VIDEO	
  
DATA	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Cosmo	
  Consul5ng.,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Citrix	
  Systems,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
WebRTC	
  /	
  Object	
  Model	
  
Example	
  3:	
  Audio	
  +	
  Video	
  +	
  Data,	
  1:1,	
  
	
  rtcp-­‐mux	
  +	
  Bundle	
  
Rtp	
  Transceiver	
  
Rtp	
  Transceiver	
  
Rtp	
  
Sender	
  
Rtp	
  
Sender	
  
Rtp	
  
Sender	
  
Rtp	
  
Receiver	
  Track	
  
Rtp	
  
Sender	
  
Rtp	
  
Receiver	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Local	
  
Track	
  
NET	
   Ice	
  
Transport	
  
Dtls	
  
Transport	
  
Track	
  
Remote	
  
Track	
  
Rtp	
  
Receiver	
  Track	
  
Remote	
  
Track	
  
Rtp	
  
Sender	
   Track	
  
Local	
  
Track	
  
Rtp	
  Transceiver	
  
Rtp	
  Transceiver	
  
Sctp	
  
Transport	
  
Data	
  
Channel	
  
Sctp	
  
Transport	
  
Data	
  
Channel	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Cosmo	
  Consul5ng.,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Citrix	
  Systems,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
Data	
  
Channel	
  
Data	
  
Channel	
  
WebRTC	
  /	
  Object	
  Model	
  
Generic	
  
Rtp	
  Transceiver	
  
Rtp	
  Transceiver	
  
Rtp	
  
Sender	
  
Rtp	
  
Sender	
  
Rtp	
  
Sender	
  
Rtp	
  
Receiver	
  Track	
  
Rtp	
  
Sender	
  
Rtp	
  
Receiver	
  
Dtls	
  
Transport	
  
Ice	
  
Transport	
  
Local	
  
Track	
  
NET	
   Ice	
  
Transport	
  
Dtls	
  
Transport	
  
Track	
  
Remote	
  
Track	
  
Rtp	
  
Receiver	
  Track	
  
Remote	
  
Track	
  
Rtp	
  
Sender	
   Track	
  
Local	
  
Track	
  
Rtp	
  Transceiver	
  
Rtp	
  Transceiver	
  
Sctp	
  
Transport	
  
Data	
  
Channel	
  
Sctp	
  
Transport	
  
Data	
  
Channel	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Cosmo	
  Consul5ng.,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
©	
  Dr.	
  Alex	
  Gouaillard	
  @	
  Citrix	
  Systems,	
  2015.	
  Document	
  provided	
  under	
  CC	
  BY-­‐NC	
  4.0	
  
Full	
  Deck	
  Overview	
  
•  Correspondence	
  between	
  pipeline	
  and	
  SDP	
  
for	
  each	
  example	
  and	
  case	
  
•  Examples	
  and	
  SDPs	
  for	
  mul4	
  party,	
  simulcast	
  
and	
  more.	
  
Stay	
  Tuned	
  
	
  
hCp://webrtcbydralex.com	
  
@agouaillard	
  on	
  twiCer	
  

WebRTC Object Model API - Transceivers

  • 1.
    WebRTC  RtpTransceiver   Concepts,  use  cases,  varia4ons   Dr  Alex  Gouaillard  
  • 2.
    ORTC  /  Object  Model   ©  Dr.  Alex  Gouaillard  @  Cosmo  Consul5ng.,  2015.  Document  provided  under  CC  BY-­‐NC  4.0   ©  Dr.  Alex  Gouaillard  @  Citrix  Systems,  2015.  Document  provided  under  CC  BY-­‐NC  4.0  
  • 3.
    Rtp   Sender   Sctp   Transport   Rtp   Receiver   Dtls   Transport   Ice   Transport   Local   Track   Data   Channel   Javascript  App   NET   Ice   Transport   Dtls   Transport   Sctp   Transport   Remote   Track   Data   Channel   Javascript  App   ORTC  /  Object  Model   ©  Dr.  Alex  Gouaillard  @  Cosmo  Consul5ng.,  2015.  Document  provided  under  CC  BY-­‐NC  4.0   ©  Dr.  Alex  Gouaillard  @  Citrix  Systems,  2015.  Document  provided  under  CC  BY-­‐NC  4.0  
  • 4.
    Rtp   Sender   Rtp   Receiver   Dtls   Transport   Ice   Transport   Local   Track   NET   Ice   Transport   Dtls   Transport   Rtp   Sender   WebRTC  /  Object  Model   Example  1:  Audio  only,  1:1   Dtls   Transport   Ice   Transport   Rtp   Receiver   Remote   Track   Dtls   Transport   Ice   Transport   Rtp   Transceiver   Remote   Track   Local   Track   Rtp   Transceiver   RTP   RTCP   ©  Dr.  Alex  Gouaillard  @  Cosmo  Consul5ng.,  2015.  Document  provided  under  CC  BY-­‐NC  4.0   ©  Dr.  Alex  Gouaillard  @  Citrix  Systems,  2015.  Document  provided  under  CC  BY-­‐NC  4.0  
  • 5.
    Rtp   Sender   Rtp   Receiver   Local   Track   NET   Remote   Track   Rtp   Sender   Local   Track   WebRTC  /  Object  Model   Example  1:  Audio  only,  1:1,  rtcp-­‐mux   Dtls   Transport   Ice   Transport   Rtp   Receiver   Remote   Track   Dtls   Transport   Ice   Transport   Rtp   Transceiver   Rtp   Transceiver   ©  Dr.  Alex  Gouaillard  @  Cosmo  Consul5ng.,  2015.  Document  provided  under  CC  BY-­‐NC  4.0   ©  Dr.  Alex  Gouaillard  @  Citrix  Systems,  2015.  Document  provided  under  CC  BY-­‐NC  4.0  
  • 6.
    WebRTC  /  Object  Model   Example  2:  Audio  +  Video,  1:1,  rtcp-­‐mux   Rtp   Sender   Rtp   Receiver   Local   Track   NET   Remote   Track   Rtp   Sender   Local   Track   Dtls   Transport   Ice   Transport   Rtp   Receiver   Remote   Track   Dtls   Transport   Ice   Transport   Rtp   Transceiver   Rtp   Transceiver   Rtp   Sender   Rtp   Receiver   Local   Track   NET   Remote   Track   Rtp   Sender   Local   Track   Dtls   Transport   Ice   Transport   Rtp   Receiver   Remote   Track   Dtls   Transport   Ice   Transport   Rtp   Transceiver   Rtp   Transceiver   AUDIO   VIDEO   ©  Dr.  Alex  Gouaillard  @  Cosmo  Consul5ng.,  2015.  Document  provided  under  CC  BY-­‐NC  4.0   ©  Dr.  Alex  Gouaillard  @  Citrix  Systems,  2015.  Document  provided  under  CC  BY-­‐NC  4.0  
  • 7.
    Rtp   Sender   Rtp   Receiver   Local   Track   NET   Remote   Track   Local   Track   WebRTC  /  Object  Model   Example  2:  Audio  +  Video,  1:1,   rtcp-­‐mux  +  BUNDLE   Ice   Transport   Rtp   Receiver   Remote   Track   Dtls   Transport   Ice   Transport   Rtp   Transceiver   Rtp   Transceiver   Rtp   Receiver   Local   Track   Remote   Track   Rtp   Receiver   Local   Track   Rtp   Sender   Remote   Track   Rtp   Transceiver   Rtp   Transceiver   RTP   RTCP   Dtls   Transport   AUDIO   VIDEO   Rtp   Sender   Rtp   Sender   ©  Dr.  Alex  Gouaillard  @  Cosmo  Consul5ng.,  2015.  Document  provided  under  CC  BY-­‐NC  4.0   ©  Dr.  Alex  Gouaillard  @  Citrix  Systems,  2015.  Document  provided  under  CC  BY-­‐NC  4.0  
  • 8.
    Rtp  Transceiver   Rtp  Transceiver   Rtp   Sender   Rtp   Sender   Rtp   Sender   Rtp   Receiver  Track   Rtp   Sender   Rtp   Receiver   Dtls   Transport   Ice   Transport   Local   Track   NET   Ice   Transport   Dtls   Transport   Track   Remote   Track   Rtp   Receiver  Track   Remote   Track   Rtp   Sender   Track   Local   Track   Example  2:  simplified  view  Rtp  Transceiver   Rtp  Transceiver   ©  Dr.  Alex  Gouaillard  @  Cosmo  Consul5ng.,  2015.  Document  provided  under  CC  BY-­‐NC  4.0   ©  Dr.  Alex  Gouaillard  @  Citrix  Systems,  2015.  Document  provided  under  CC  BY-­‐NC  4.0  
  • 9.
    WebRTC  /  Object  Model   Example  3:  Audio  +  Video  +  Data,  1:1,    rtcp-­‐mux   Sctp   Transport   Dtls   Transport   Ice   Transport   Data   Channel   NET   Ice   Transport   Dtls   Transport   Sctp   Transport   Data   Channel   Rtp   Sender   Rtp   Receiver   Local   Track   NET   Remote   Track   Rtp   Sender   Local   Track   Dtls   Transport   Ice   Transport   Rtp   Receiver   Remote   Track   Dtls   Transport   Ice   Transport   Rtp   Transceiver   Rtp   Transceiver   Rtp   Sender   Rtp   Receiver   Local   Track   NET   Remote   Track   Rtp   Sender   Local   Track   Dtls   Transport   Ice   Transport   Rtp   Receiver   Remote   Track   Dtls   Transport   Ice   Transport   Rtp   Transceiver   Rtp   Transceiver   AUDIO   VIDEO   DATA   ©  Dr.  Alex  Gouaillard  @  Cosmo  Consul5ng.,  2015.  Document  provided  under  CC  BY-­‐NC  4.0   ©  Dr.  Alex  Gouaillard  @  Citrix  Systems,  2015.  Document  provided  under  CC  BY-­‐NC  4.0  
  • 10.
    WebRTC  /  Object  Model   Example  3:  Audio  +  Video  +  Data,  1:1,    rtcp-­‐mux  +  Bundle   Rtp  Transceiver   Rtp  Transceiver   Rtp   Sender   Rtp   Sender   Rtp   Sender   Rtp   Receiver  Track   Rtp   Sender   Rtp   Receiver   Dtls   Transport   Ice   Transport   Local   Track   NET   Ice   Transport   Dtls   Transport   Track   Remote   Track   Rtp   Receiver  Track   Remote   Track   Rtp   Sender   Track   Local   Track   Rtp  Transceiver   Rtp  Transceiver   Sctp   Transport   Data   Channel   Sctp   Transport   Data   Channel   ©  Dr.  Alex  Gouaillard  @  Cosmo  Consul5ng.,  2015.  Document  provided  under  CC  BY-­‐NC  4.0   ©  Dr.  Alex  Gouaillard  @  Citrix  Systems,  2015.  Document  provided  under  CC  BY-­‐NC  4.0  
  • 11.
    Data   Channel   Data   Channel   WebRTC  /  Object  Model   Generic   Rtp  Transceiver   Rtp  Transceiver   Rtp   Sender   Rtp   Sender   Rtp   Sender   Rtp   Receiver  Track   Rtp   Sender   Rtp   Receiver   Dtls   Transport   Ice   Transport   Local   Track   NET   Ice   Transport   Dtls   Transport   Track   Remote   Track   Rtp   Receiver  Track   Remote   Track   Rtp   Sender   Track   Local   Track   Rtp  Transceiver   Rtp  Transceiver   Sctp   Transport   Data   Channel   Sctp   Transport   Data   Channel   ©  Dr.  Alex  Gouaillard  @  Cosmo  Consul5ng.,  2015.  Document  provided  under  CC  BY-­‐NC  4.0   ©  Dr.  Alex  Gouaillard  @  Citrix  Systems,  2015.  Document  provided  under  CC  BY-­‐NC  4.0  
  • 12.
    Full  Deck  Overview   •  Correspondence  between  pipeline  and  SDP   for  each  example  and  case   •  Examples  and  SDPs  for  mul4  party,  simulcast   and  more.   Stay  Tuned     hCp://webrtcbydralex.com   @agouaillard  on  twiCer