SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
WEBRTC STANDARDS AND
UNDERPINNINGS
Tim Panton, Westhawk Ltd - @steely_glint
What is webRTC?






Haven’t used webRTC
Your laptop is on wifi
Have Chrome/firefox
Browse to:
http://phono.com – click ‘call’
What did we just do?








Placed a video call with no plugins
zero config
just by browsing to a site
encrypted
free
over local wifi
WebRTC Definition








Realtime
voice / video /data
browser based
no plugins
secure
interoperable
Standards






IETF
W3C
Loosely based on pre-existing standards
$100s Millions of IPR - donated
Google, Cisco, Mozilla, Skype, Tropo, ATT, E///,
Lucent etc.
Big Picture
HTTP(s) signaling via webserver
Peer to Peer media between Browsers
Protocol standards (IETF)
The IETF has responsibility for the wire protocols
in RTCWeb
Signaling Standards
None!



It is up to the javascript in the browser
to do what ever is needed.
Media Standards (RIA 2.0)
Many!











STUN
ICE
TURN
DTLS
SRTP
RTCP
OPUS
ULAW
Why so many?
The network environment of a web browser is not the
same as a desk phone.




Security – hostile lans (coffee shops/hotels)
Variablity – home networks, wifi/3g
Programability – Javascript is dynamically
loadable

This stack of media standards addresses the
differences.
NAT

NAT

STUN and ICE address NAT
ICE sends multiple STUN packets down all possible interfaces to try and find a
path. First Bi-directional route found is used.
TURN
NAT

NAT

TURN is for when ICE fails to find a viable path
A TURN server in the cloud acts as a packet reflector
Many Telco 3g networks isolate users from each other.
MS
NAT

NAT

Bridging via a media server.
If additional services are required – recording, conferences, PSTN interop etc. then
bridging via a media server may be required.
DTLS
DTLS is the UDP version of TLS (as used in https etc)
It serves 2 purposes in the WebRTC




Exchange keys used by the SRTP media encryption
Carry the data channel streams
Demo – sharefest.me
Data channel provides Peer 2 Peer data between
browsers.
It can be used for file transfer, game moves etc.
It may also become important in M2M or IOT as a secure
NAT friendly P2P protocol.
Demo show file transfer between 2 browsers by sharing a
URL, but not through that server.
SRTP + RTCP
Encrypted version of the classic RTP protocol, with the
RTCP reporting mechanism.
Multiple media streams may be multiplexed over the
same pair of ports – still under discussion.
Standard Codecs
Audio





OPUS
Wideband
Flexible, efficient, loss correcting
Expensive to transcode
ULAW
Narrowband PSTN codec
High bandwidth
Poor in lossy/variable networks
Codecs - No video standard yet.
Video




VP8
H264

Differences are largely commercial and
legal rather than technical, either is plenty
good enough.
Standard APIs (W3c)
These are the API’s offered to the javascript
programmer – aka ‘JSEP’
Javascript : getUserMedia()
navigator.webkitGetUserMedia({
'audio':true,
'video':true
},
function(stream) {
var url =webkitURL.createObjectURL(stream);
createPeer(stream);

},
function(error) {
});
Javascript : RTCPeerConnection
pc = new RTCPeerConnection(configuration,constraints);
pc.onicecandidate = function(evt) {
sendCandyToAlice(evt.candidate);
};
pc.onaddstream = function (event) {
var remotePlay = document.getElementById(”videoTag");
remotePlay.src = webkitURL.createObjectURL(event.stream);
};
pc.addStream(localStream);
pc.createOffer(
function(offer) {
pc.setLocalDescription(offer);
sendOfferToAlice(pc.localDescription.sdp);
},
null, constraints);
HTML : <Video> tag





Extended to accept a webRTC stream as a source
Either a local or remote
See previous slides
Additional mute etc.
Javascript:RTCSessionDescription
function onMessageFromAlice(message){
var sd = new RTCSessionDescription(

{'sdp':message,'type':"answer”} );
pc.setRemoteDescription(sd,sessionOk,sessionFail);
}
Dissention with SDP as an API








SDP is emitted by pc.createOffer()
Complex SDP
May be manipulated to select codecs/candidates…
Source of much complaint
Currently ill defined
May be replaced in 2.0 std
Other co-operating W3C APIs




WebGL
Can be used to apply effects to video
WebAudio
Can be used to apply effects to audio

Both will be able to be applied to local or remote
streams
Javascript libraries






Most web coders will use a library
JS Sip
ATT.js
Phono
OpenRTC
Demo – WebGL effects
Demo of WebGL doing realtime effects on a webRTC
video stream

Más contenido relacionado

La actualidad más candente

Zigbee intro v5
Zigbee intro v5Zigbee intro v5
Zigbee intro v5
rajrayala
 

La actualidad más candente (20)

NZNOG 2020 - The Trouble With NAT
NZNOG 2020 - The Trouble With NATNZNOG 2020 - The Trouble With NAT
NZNOG 2020 - The Trouble With NAT
 
Brief LoRaWAN Overview
Brief LoRaWAN OverviewBrief LoRaWAN Overview
Brief LoRaWAN Overview
 
Netflow slides
Netflow slidesNetflow slides
Netflow slides
 
DASH7 Alliance Protocol Technical Presentation
DASH7 Alliance Protocol Technical PresentationDASH7 Alliance Protocol Technical Presentation
DASH7 Alliance Protocol Technical Presentation
 
The Role of the Communication Protocols in the IoT: Pitfalls and Advantages
The Role of the Communication Protocols in the IoT: Pitfalls and AdvantagesThe Role of the Communication Protocols in the IoT: Pitfalls and Advantages
The Role of the Communication Protocols in the IoT: Pitfalls and Advantages
 
Getting the Most Out of Bluetooth 5
Getting the Most Out of Bluetooth 5Getting the Most Out of Bluetooth 5
Getting the Most Out of Bluetooth 5
 
How to Configure NetFlow v5 & v9 on Cisco Routers
How to Configure NetFlow v5 & v9 on Cisco RoutersHow to Configure NetFlow v5 & v9 on Cisco Routers
How to Configure NetFlow v5 & v9 on Cisco Routers
 
Iot protocols seminar
Iot protocols seminarIot protocols seminar
Iot protocols seminar
 
Albert Chen Work experience20150722
Albert Chen Work experience20150722Albert Chen Work experience20150722
Albert Chen Work experience20150722
 
Dash7 alliance protocol - where rfid meets wsn
Dash7 alliance protocol -  where rfid meets wsnDash7 alliance protocol -  where rfid meets wsn
Dash7 alliance protocol - where rfid meets wsn
 
LPWAN Cost Webinar
LPWAN Cost WebinarLPWAN Cost Webinar
LPWAN Cost Webinar
 
Wifi- technology_moni
Wifi- technology_moniWifi- technology_moni
Wifi- technology_moni
 
Sigfox Technology Overview (nov 2017)
Sigfox Technology Overview (nov 2017)Sigfox Technology Overview (nov 2017)
Sigfox Technology Overview (nov 2017)
 
AntTail white paper: Technology scan IoT Datacommunications: LoRa, NB-IoT, GPRS
AntTail white paper: Technology scan IoT Datacommunications: LoRa, NB-IoT, GPRSAntTail white paper: Technology scan IoT Datacommunications: LoRa, NB-IoT, GPRS
AntTail white paper: Technology scan IoT Datacommunications: LoRa, NB-IoT, GPRS
 
Where is the 6 GHz beef?
Where is the 6 GHz beef?Where is the 6 GHz beef?
Where is the 6 GHz beef?
 
What is Wi-Fi 6? - C&T RF Antennas Inc
What is Wi-Fi 6? - C&T RF Antennas IncWhat is Wi-Fi 6? - C&T RF Antennas Inc
What is Wi-Fi 6? - C&T RF Antennas Inc
 
8051 zigbee interface
8051 zigbee interface8051 zigbee interface
8051 zigbee interface
 
Wi-Fi Module
Wi-Fi ModuleWi-Fi Module
Wi-Fi Module
 
Zigbee intro v5
Zigbee intro v5Zigbee intro v5
Zigbee intro v5
 
Internet and studio to transmitter link (STL)
Internet and studio to transmitter link (STL)Internet and studio to transmitter link (STL)
Internet and studio to transmitter link (STL)
 

Similar a WebRTC Standards from Tim Panton

Videoconferencing Technology Workshop
Videoconferencing Technology WorkshopVideoconferencing Technology Workshop
Videoconferencing Technology Workshop
Videoguy
 

Similar a WebRTC Standards from Tim Panton (20)

Building a WebRTC Communication and collaboration platform - techleash barcamp
Building a WebRTC Communication and collaboration platform  -  techleash barcampBuilding a WebRTC Communication and collaboration platform  -  techleash barcamp
Building a WebRTC Communication and collaboration platform - techleash barcamp
 
WebRTC overview
WebRTC overviewWebRTC overview
WebRTC overview
 
WebRTC, Whats in it for me?
WebRTC, Whats in it for me?WebRTC, Whats in it for me?
WebRTC, Whats in it for me?
 
Effective and Secure Scheme for Video Multicasting using Real Time Transport ...
Effective and Secure Scheme for Video Multicasting using Real Time Transport ...Effective and Secure Scheme for Video Multicasting using Real Time Transport ...
Effective and Secure Scheme for Video Multicasting using Real Time Transport ...
 
WebRCT
WebRCTWebRCT
WebRCT
 
WebRTC presentation
WebRTC presentationWebRTC presentation
WebRTC presentation
 
Webrt integration by altanai bisht
Webrt integration by altanai bishtWebrt integration by altanai bisht
Webrt integration by altanai bisht
 
DevCon 5 (December 2013) - WebRTC & WebSockets
DevCon 5 (December 2013) - WebRTC & WebSocketsDevCon 5 (December 2013) - WebRTC & WebSockets
DevCon 5 (December 2013) - WebRTC & WebSockets
 
Voice Over IP (VoIP) and STREAMING
Voice Over IP (VoIP) and STREAMINGVoice Over IP (VoIP) and STREAMING
Voice Over IP (VoIP) and STREAMING
 
WebRTC Videobroadcasting
WebRTC VideobroadcastingWebRTC Videobroadcasting
WebRTC Videobroadcasting
 
Internet Video
Internet VideoInternet Video
Internet Video
 
What is WebRTC and How does it work?
What is WebRTC and How does it work?What is WebRTC and How does it work?
What is WebRTC and How does it work?
 
Html5 RTC - 1
Html5 RTC  - 1Html5 RTC  - 1
Html5 RTC - 1
 
Workshop oracle
Workshop oracleWorkshop oracle
Workshop oracle
 
Videoconferencing Technology Workshop
Videoconferencing Technology WorkshopVideoconferencing Technology Workshop
Videoconferencing Technology Workshop
 
WbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeekWbeRTC in IOT presented in KrankyGeek
WbeRTC in IOT presented in KrankyGeek
 
Webrtc and tokbox
Webrtc and tokboxWebrtc and tokbox
Webrtc and tokbox
 
Webrtc in Real world
Webrtc in Real world Webrtc in Real world
Webrtc in Real world
 
Getting the best out of WebRTC
Getting the best out of WebRTCGetting the best out of WebRTC
Getting the best out of WebRTC
 
Getting the Best Out Of WebRTC - Astricon 2014
Getting the Best Out Of WebRTC - Astricon 2014Getting the Best Out Of WebRTC - Astricon 2014
Getting the Best Out Of WebRTC - Astricon 2014
 

Más de Alan Quayle

Más de Alan Quayle (20)

What is a vCon?
What is a vCon?What is a vCon?
What is a vCon?
 
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
 
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
 
What makes a cellular IoT API great? Tobias Goebel
What makes a cellular IoT API great? Tobias GoebelWhat makes a cellular IoT API great? Tobias Goebel
What makes a cellular IoT API great? Tobias Goebel
 
eSIM as Root of Trust for IoT security, João Casal
eSIM as Root of Trust for IoT security, João CasaleSIM as Root of Trust for IoT security, João Casal
eSIM as Root of Trust for IoT security, João Casal
 
Architecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeArchitecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin Sime
 
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
 
Programmable Testing for Programmable Telcos, Andreas Granig
Programmable Testing for Programmable Telcos, Andreas GranigProgrammable Testing for Programmable Telcos, Andreas Granig
Programmable Testing for Programmable Telcos, Andreas Granig
 
How to best maximize the conversation data stream for your business? Surbhi R...
How to best maximize the conversation data stream for your business? Surbhi R...How to best maximize the conversation data stream for your business? Surbhi R...
How to best maximize the conversation data stream for your business? Surbhi R...
 
Latest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
Latest Updates and Experiences in Launching Local Language Tools, Karel BourgoisLatest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
Latest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
 
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
 
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
 
Open Source Telecom Software Survey 2022, Alan Quayle
Open Source Telecom Software Survey 2022, Alan QuayleOpen Source Telecom Software Survey 2022, Alan Quayle
Open Source Telecom Software Survey 2022, Alan Quayle
 
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei IancuOpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
 
TADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
TADS 2022 - Shifting from Voice to Workflow Management, Filipe LeitaoTADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
TADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
 
What happened since we last met TADSummit 2022, Alan Quayle
What happened since we last met TADSummit 2022, Alan QuayleWhat happened since we last met TADSummit 2022, Alan Quayle
What happened since we last met TADSummit 2022, Alan Quayle
 
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike BromwichStacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
 
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
 
Founding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
Founding a Startup in Telecoms. The good, the bad and the ugly. João CamarateFounding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
Founding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
 
How to bring down your own RTC platform. Sandro Gauci
How to bring down your own RTC platform. Sandro GauciHow to bring down your own RTC platform. Sandro Gauci
How to bring down your own RTC platform. Sandro Gauci
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 

WebRTC Standards from Tim Panton

  • 1. WEBRTC STANDARDS AND UNDERPINNINGS Tim Panton, Westhawk Ltd - @steely_glint
  • 2. What is webRTC?      Haven’t used webRTC Your laptop is on wifi Have Chrome/firefox Browse to: http://phono.com – click ‘call’
  • 3. What did we just do?       Placed a video call with no plugins zero config just by browsing to a site encrypted free over local wifi
  • 4. WebRTC Definition       Realtime voice / video /data browser based no plugins secure interoperable
  • 5. Standards      IETF W3C Loosely based on pre-existing standards $100s Millions of IPR - donated Google, Cisco, Mozilla, Skype, Tropo, ATT, E///, Lucent etc.
  • 6. Big Picture HTTP(s) signaling via webserver Peer to Peer media between Browsers
  • 7. Protocol standards (IETF) The IETF has responsibility for the wire protocols in RTCWeb
  • 8. Signaling Standards None!  It is up to the javascript in the browser to do what ever is needed.
  • 9. Media Standards (RIA 2.0) Many!         STUN ICE TURN DTLS SRTP RTCP OPUS ULAW
  • 10. Why so many? The network environment of a web browser is not the same as a desk phone.    Security – hostile lans (coffee shops/hotels) Variablity – home networks, wifi/3g Programability – Javascript is dynamically loadable This stack of media standards addresses the differences.
  • 11. NAT NAT STUN and ICE address NAT ICE sends multiple STUN packets down all possible interfaces to try and find a path. First Bi-directional route found is used.
  • 12. TURN NAT NAT TURN is for when ICE fails to find a viable path A TURN server in the cloud acts as a packet reflector Many Telco 3g networks isolate users from each other.
  • 13. MS NAT NAT Bridging via a media server. If additional services are required – recording, conferences, PSTN interop etc. then bridging via a media server may be required.
  • 14. DTLS DTLS is the UDP version of TLS (as used in https etc) It serves 2 purposes in the WebRTC   Exchange keys used by the SRTP media encryption Carry the data channel streams
  • 15. Demo – sharefest.me Data channel provides Peer 2 Peer data between browsers. It can be used for file transfer, game moves etc. It may also become important in M2M or IOT as a secure NAT friendly P2P protocol. Demo show file transfer between 2 browsers by sharing a URL, but not through that server.
  • 16. SRTP + RTCP Encrypted version of the classic RTP protocol, with the RTCP reporting mechanism. Multiple media streams may be multiplexed over the same pair of ports – still under discussion.
  • 17. Standard Codecs Audio   OPUS Wideband Flexible, efficient, loss correcting Expensive to transcode ULAW Narrowband PSTN codec High bandwidth Poor in lossy/variable networks
  • 18. Codecs - No video standard yet. Video   VP8 H264 Differences are largely commercial and legal rather than technical, either is plenty good enough.
  • 19. Standard APIs (W3c) These are the API’s offered to the javascript programmer – aka ‘JSEP’
  • 20. Javascript : getUserMedia() navigator.webkitGetUserMedia({ 'audio':true, 'video':true }, function(stream) { var url =webkitURL.createObjectURL(stream); createPeer(stream); }, function(error) { });
  • 21. Javascript : RTCPeerConnection pc = new RTCPeerConnection(configuration,constraints); pc.onicecandidate = function(evt) { sendCandyToAlice(evt.candidate); }; pc.onaddstream = function (event) { var remotePlay = document.getElementById(”videoTag"); remotePlay.src = webkitURL.createObjectURL(event.stream); }; pc.addStream(localStream); pc.createOffer( function(offer) { pc.setLocalDescription(offer); sendOfferToAlice(pc.localDescription.sdp); }, null, constraints);
  • 22. HTML : <Video> tag     Extended to accept a webRTC stream as a source Either a local or remote See previous slides Additional mute etc.
  • 23. Javascript:RTCSessionDescription function onMessageFromAlice(message){ var sd = new RTCSessionDescription( {'sdp':message,'type':"answer”} ); pc.setRemoteDescription(sd,sessionOk,sessionFail); }
  • 24. Dissention with SDP as an API       SDP is emitted by pc.createOffer() Complex SDP May be manipulated to select codecs/candidates… Source of much complaint Currently ill defined May be replaced in 2.0 std
  • 25. Other co-operating W3C APIs   WebGL Can be used to apply effects to video WebAudio Can be used to apply effects to audio Both will be able to be applied to local or remote streams
  • 26. Javascript libraries      Most web coders will use a library JS Sip ATT.js Phono OpenRTC
  • 27. Demo – WebGL effects Demo of WebGL doing realtime effects on a webRTC video stream