SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Introducing WebRTC
Rishi Khandelwal
Software Consultant
Knoldus Software LLP
Email : rishi@knoldus.com
Introduction
WebRTC (Web Real-Time Communication)
Supports browser-to-browser applications for voice calling,
video chat, and P2P file sharing without plugins.
Uses simple JavaScript APIs and HTML5.
Open source project
Released by Google.
Supporting browsers :Google chrome. Mozilla. Opera
WebRTC libraries

simpleRTC (http://simplewebrtc.com)

talky.io (http://talky.io) (uses simpleRTC)

lynckia/licode (http://lynckia.com/licode/)

holla (http://wearefractal.com/holla/)

easyRTC (http://easyrtc.com) (priologic)

peerjs (http://peerjs.com) (data channel)

rtc.io (http://www.rtc.io)
Key features
1. MediaStreams (aka getUserMedia), access to and control
of the user camera and microphone
2. PeerConnection, negotiate and connect clients in order to
allow direct communication
3. DataChannels, peer to peer data exchange
Prons and Cons
Prons :
No licenses or other fees are needed to start with it
The end user doesn't have to download and install additional software
Integration is performed using standard API accessed by JavaScript
Cons :
The support is partial and the documentation is very fragmented
Steps to show streaming
1. Set up video on a Web page
<video> element
2. Access local devices: camera, microphone
navigator.getUserMedia()
3. Display a/v from local or remote peer
createObjectURL
4. Connect to remote peers
PeerConnection API
Video element

HTML 5 element

Embed a video or movie on a web page.

Internet Explorer 9+, Firefox, Opera, Chrome, and Safari support

Supported media types : mp4, webm, ogg

Properties : controls, autoplay, muted, loop
<video src="videofile.ogg" autoplay controls></video>
Access local media
navigator.getUserMedia (
// constraints
{
video: true,
audio: true
},
// successCallback
function(localMediaStream) {
// DO the stuff with mediastream
},
// errorCallback
function(err) {
console.log("The following error occured: " + err);
} );
Permission Bar
Display video on webpage
<video id="sourcevid" controls></video>
<script>
var video = document.getElementById('sourcevid');
video.src = window.URL.createObjectURL(localMediaStream);
video.play();
</script>
Using easyrtc
// constraints
easyRTC.enableAudio(true);
easyRTC.enableVideo(true);
// Get local media stream
easyRTC.getLocalStream();
// get video reference
var video = element.getElementsByTagName('video')[0];
/* style */
video.className = 'video-sm state_1';
/* mute local stream */
video.muted = true;
/* output */
easyRTC.setVideoObjectSrc(video, stream);
Peerconnection API
1. easyRTC.connect(“application name”, sipRTC.success, sipRTC.failed);
2. easyRTC.call(rtcid);
3. easyRTC.setAcceptChecker(function(rtcid, callback) {
callback(true);
});
4. easyRTC.setLoggedInListener(sipRTC.peers);
5. easyRTC.setStreamAcceptor(sipRTC.inbound);
6. easyRTC.setOnStreamClosed(sipRTC.closed);
Continued...
Signalling
1. Signaling protocols are a way to coordinate and control the
communication between peers.
2. Signalling methods and protocols are not specfied by webrtc but by
application developer.
3. Usually the following information are shipped by signaling :
a. Session control messages (communication initialization & co.)
b. Network configuration (e.g. computer's IP address and port)
Continued...
STUN and ICE
ICE (Interactive Connectivity Establishment) is a framework for
connecting peers, such as two video chat clients.
STUN (Session Traversal Utilities for NAT) is a standardized set of
methods and a network protocol to allow an end host to discover
its public IP address if it is located behind a NAT.
STUN servers have a single task: to enable a peer behind a NAT to
find out its public address and port.
Continued...
1. Initially, ICE tries to connect peers directly, with the lowest
possible latency, via UDP.
2. If UDP fails, ICE tries TCP : first http, then https.
3. If direct communication fails due to enterprise NAT traversal and
firewalls, then ICE uses an intermediate (relay) Turn server.
Communication flow
References
http://slides.com/giorgionatili/webrtc/fullscreen#/5/3
http://html5videoguide.net/presentations/WebDirCode2012/#page17
http://www.slideshare.net/dhamavijays/webrtc-17414738
Introduction To Webrtc

Weitere Àhnliche Inhalte

Was ist angesagt?

Intro to WebSockets
Intro to WebSocketsIntro to WebSockets
Intro to WebSockets
Gaurav Oberoi
 

Was ist angesagt? (20)

HTTP/2 Changes Everything
HTTP/2 Changes EverythingHTTP/2 Changes Everything
HTTP/2 Changes Everything
 
Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF)
 
Intro to WebSockets
Intro to WebSocketsIntro to WebSockets
Intro to WebSockets
 
HTTP & HTTPS
HTTP & HTTPSHTTP & HTTPS
HTTP & HTTPS
 
Introduction to WebSockets
Introduction to WebSocketsIntroduction to WebSockets
Introduction to WebSockets
 
What is rtmp
What is rtmpWhat is rtmp
What is rtmp
 
CoAP Course for m2m and Internet of Things scenarios
CoAP Course for m2m and Internet of Things scenariosCoAP Course for m2m and Internet of Things scenarios
CoAP Course for m2m and Internet of Things scenarios
 
REST API
REST APIREST API
REST API
 
WebRTC Overview
WebRTC OverviewWebRTC Overview
WebRTC Overview
 
Rest API
Rest APIRest API
Rest API
 
Real-Time Streaming Protocol
Real-Time Streaming Protocol Real-Time Streaming Protocol
Real-Time Streaming Protocol
 
Wireshark
Wireshark Wireshark
Wireshark
 
HTTPS
HTTPSHTTPS
HTTPS
 
Tcp Udp Icmp And The Transport Layer
Tcp Udp Icmp And The Transport LayerTcp Udp Icmp And The Transport Layer
Tcp Udp Icmp And The Transport Layer
 
EtherChannel
EtherChannelEtherChannel
EtherChannel
 
An Introduction To REST API
An Introduction To REST APIAn Introduction To REST API
An Introduction To REST API
 
Dynamic ARP Inspection (DAI)
Dynamic ARP Inspection (DAI)Dynamic ARP Inspection (DAI)
Dynamic ARP Inspection (DAI)
 
DHCP
DHCPDHCP
DHCP
 
What is XMPP Protocol
What is XMPP ProtocolWhat is XMPP Protocol
What is XMPP Protocol
 
Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019Multistream in Janus @ CommCon 2019
Multistream in Janus @ CommCon 2019
 

Ähnlich wie Introduction To Webrtc

WebRTC & Firefox OS - presentation at Google
WebRTC & Firefox OS - presentation at GoogleWebRTC & Firefox OS - presentation at Google
WebRTC & Firefox OS - presentation at Google
Robert Nyman
 

Ähnlich wie Introduction To Webrtc (20)

WebRTC
WebRTCWebRTC
WebRTC
 
JooinK - DevFest Piemonte 2013
JooinK - DevFest Piemonte 2013JooinK - DevFest Piemonte 2013
JooinK - DevFest Piemonte 2013
 
[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC[workshop] The Revolutionary WebRTC
[workshop] The Revolutionary WebRTC
 
WebRTC + Socket.io: building a skype-like video chat with native javascript
WebRTC + Socket.io: building a skype-like video chat with native javascriptWebRTC + Socket.io: building a skype-like video chat with native javascript
WebRTC + Socket.io: building a skype-like video chat with native javascript
 
WebRTC ... GWT & in-browser computation
WebRTC ... GWT & in-browser computationWebRTC ... GWT & in-browser computation
WebRTC ... GWT & in-browser computation
 
WebRTC: Bring real-time to the web - Barcamp Saigon 2012
WebRTC: Bring real-time to the web - Barcamp Saigon 2012WebRTC: Bring real-time to the web - Barcamp Saigon 2012
WebRTC: Bring real-time to the web - Barcamp Saigon 2012
 
WebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the WebWebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the Web
 
WebRTC & Firefox OS - presentation at Google
WebRTC & Firefox OS - presentation at GoogleWebRTC & Firefox OS - presentation at Google
WebRTC & Firefox OS - presentation at Google
 
WebRTC 101 - How to get started building your first WebRTC application
WebRTC 101 - How to get started building your first WebRTC applicationWebRTC 101 - How to get started building your first WebRTC application
WebRTC 101 - How to get started building your first WebRTC application
 
ISM APAC TechTalk - WebRTC - Dimuthu Nilanka
ISM APAC TechTalk - WebRTC - Dimuthu NilankaISM APAC TechTalk - WebRTC - Dimuthu Nilanka
ISM APAC TechTalk - WebRTC - Dimuthu Nilanka
 
Using Groovy to empower WebRTC Network Systems
Using Groovy to empower WebRTC Network SystemsUsing Groovy to empower WebRTC Network Systems
Using Groovy to empower WebRTC Network Systems
 
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...Developing rich multimedia applications with Kurento: a tutorial for JavaScri...
Developing rich multimedia applications with Kurento: a tutorial for JavaScri...
 
DevCon5 (July 2014) - Acision SDK
DevCon5 (July 2014) - Acision SDKDevCon5 (July 2014) - Acision SDK
DevCon5 (July 2014) - Acision SDK
 
HTML5 Intoduction for Web Developers
HTML5 Intoduction for Web DevelopersHTML5 Intoduction for Web Developers
HTML5 Intoduction for Web Developers
 
WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)WebRTC standards update (Jul 2014)
WebRTC standards update (Jul 2014)
 
Html5 RTC - 1
Html5 RTC  - 1Html5 RTC  - 1
Html5 RTC - 1
 
Meego Widget Development using Qt WRT @iRajLal
Meego Widget Development using Qt WRT @iRajLalMeego Widget Development using Qt WRT @iRajLal
Meego Widget Development using Qt WRT @iRajLal
 
ìŠ€íŠžëŠŹë°êłŒ 디지턞 ê¶ŒëŠŹ êŽ€ëŠŹ
ìŠ€íŠžëŠŹë°êłŒ 디지턞 ê¶ŒëŠŹ êŽ€ëŠŹìŠ€íŠžëŠŹë°êłŒ 디지턞 ê¶ŒëŠŹ êŽ€ëŠŹ
ìŠ€íŠžëŠŹë°êłŒ 디지턞 ê¶ŒëŠŹ êŽ€ëŠŹ
 
WebRTC Standards & Implementation Q&A - All about browser interoperability
WebRTC Standards & Implementation Q&A - All about browser interoperabilityWebRTC Standards & Implementation Q&A - All about browser interoperability
WebRTC Standards & Implementation Q&A - All about browser interoperability
 
Open tok Android sdk - Droidcon
Open tok Android sdk - DroidconOpen tok Android sdk - Droidcon
Open tok Android sdk - Droidcon
 

Mehr von Knoldus Inc.

Mehr von Knoldus Inc. (20)

Supply chain security with Kubeclarity.pptx
Supply chain security with Kubeclarity.pptxSupply chain security with Kubeclarity.pptx
Supply chain security with Kubeclarity.pptx
 
Mastering Web Scraping with JSoup Unlocking the Secrets of HTML Parsing
Mastering Web Scraping with JSoup Unlocking the Secrets of HTML ParsingMastering Web Scraping with JSoup Unlocking the Secrets of HTML Parsing
Mastering Web Scraping with JSoup Unlocking the Secrets of HTML Parsing
 
Akka gRPC Essentials A Hands-On Introduction
Akka gRPC Essentials A Hands-On IntroductionAkka gRPC Essentials A Hands-On Introduction
Akka gRPC Essentials A Hands-On Introduction
 
Entity Core with Core Microservices.pptx
Entity Core with Core Microservices.pptxEntity Core with Core Microservices.pptx
Entity Core with Core Microservices.pptx
 
Introduction to Redis and its features.pptx
Introduction to Redis and its features.pptxIntroduction to Redis and its features.pptx
Introduction to Redis and its features.pptx
 
GraphQL with .NET Core Microservices.pdf
GraphQL with .NET Core Microservices.pdfGraphQL with .NET Core Microservices.pdf
GraphQL with .NET Core Microservices.pdf
 
NuGet Packages Presentation (DoT NeT).pptx
NuGet Packages Presentation (DoT NeT).pptxNuGet Packages Presentation (DoT NeT).pptx
NuGet Packages Presentation (DoT NeT).pptx
 
Data Quality in Test Automation Navigating the Path to Reliable Testing
Data Quality in Test Automation Navigating the Path to Reliable TestingData Quality in Test Automation Navigating the Path to Reliable Testing
Data Quality in Test Automation Navigating the Path to Reliable Testing
 
K8sGPTThe AI​ way to diagnose Kubernetes
K8sGPTThe AI​ way to diagnose KubernetesK8sGPTThe AI​ way to diagnose Kubernetes
K8sGPTThe AI​ way to diagnose Kubernetes
 
Introduction to Circle Ci Presentation.pptx
Introduction to Circle Ci Presentation.pptxIntroduction to Circle Ci Presentation.pptx
Introduction to Circle Ci Presentation.pptx
 
Robusta -Tool Presentation (DevOps).pptx
Robusta -Tool Presentation (DevOps).pptxRobusta -Tool Presentation (DevOps).pptx
Robusta -Tool Presentation (DevOps).pptx
 
Optimizing Kubernetes using GOLDILOCKS.pptx
Optimizing Kubernetes using GOLDILOCKS.pptxOptimizing Kubernetes using GOLDILOCKS.pptx
Optimizing Kubernetes using GOLDILOCKS.pptx
 
Azure Function App Exception Handling.pptx
Azure Function App Exception Handling.pptxAzure Function App Exception Handling.pptx
Azure Function App Exception Handling.pptx
 
CQRS Design Pattern Presentation (Java).pptx
CQRS Design Pattern Presentation (Java).pptxCQRS Design Pattern Presentation (Java).pptx
CQRS Design Pattern Presentation (Java).pptx
 
ETL Observability: Azure to Snowflake Presentation
ETL Observability: Azure to Snowflake PresentationETL Observability: Azure to Snowflake Presentation
ETL Observability: Azure to Snowflake Presentation
 
Scripting with K6 - Beyond the Basics Presentation
Scripting with K6 - Beyond the Basics PresentationScripting with K6 - Beyond the Basics Presentation
Scripting with K6 - Beyond the Basics Presentation
 
Getting started with dotnet core Web APIs
Getting started with dotnet core Web APIsGetting started with dotnet core Web APIs
Getting started with dotnet core Web APIs
 
Introduction To Rust part II Presentation
Introduction To Rust part II PresentationIntroduction To Rust part II Presentation
Introduction To Rust part II Presentation
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Configuring Workflows & Validators in JIRA
Configuring Workflows & Validators in JIRAConfiguring Workflows & Validators in JIRA
Configuring Workflows & Validators in JIRA
 

KĂŒrzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

KĂŒrzlich hochgeladen (20)

AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
 
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)
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
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...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 

Introduction To Webrtc

  • 1. Introducing WebRTC Rishi Khandelwal Software Consultant Knoldus Software LLP Email : rishi@knoldus.com
  • 2. Introduction WebRTC (Web Real-Time Communication) Supports browser-to-browser applications for voice calling, video chat, and P2P file sharing without plugins. Uses simple JavaScript APIs and HTML5. Open source project Released by Google. Supporting browsers :Google chrome. Mozilla. Opera
  • 3. WebRTC libraries  simpleRTC (http://simplewebrtc.com)  talky.io (http://talky.io) (uses simpleRTC)  lynckia/licode (http://lynckia.com/licode/)  holla (http://wearefractal.com/holla/)  easyRTC (http://easyrtc.com) (priologic)  peerjs (http://peerjs.com) (data channel)  rtc.io (http://www.rtc.io)
  • 4. Key features 1. MediaStreams (aka getUserMedia), access to and control of the user camera and microphone 2. PeerConnection, negotiate and connect clients in order to allow direct communication 3. DataChannels, peer to peer data exchange
  • 5. Prons and Cons Prons : No licenses or other fees are needed to start with it The end user doesn't have to download and install additional software Integration is performed using standard API accessed by JavaScript Cons : The support is partial and the documentation is very fragmented
  • 6. Steps to show streaming 1. Set up video on a Web page <video> element 2. Access local devices: camera, microphone navigator.getUserMedia() 3. Display a/v from local or remote peer createObjectURL 4. Connect to remote peers PeerConnection API
  • 7. Video element  HTML 5 element  Embed a video or movie on a web page.  Internet Explorer 9+, Firefox, Opera, Chrome, and Safari support  Supported media types : mp4, webm, ogg  Properties : controls, autoplay, muted, loop <video src="videofile.ogg" autoplay controls></video>
  • 8. Access local media navigator.getUserMedia ( // constraints { video: true, audio: true }, // successCallback function(localMediaStream) { // DO the stuff with mediastream }, // errorCallback function(err) { console.log("The following error occured: " + err); } );
  • 10. Display video on webpage <video id="sourcevid" controls></video> <script> var video = document.getElementById('sourcevid'); video.src = window.URL.createObjectURL(localMediaStream); video.play(); </script>
  • 11. Using easyrtc // constraints easyRTC.enableAudio(true); easyRTC.enableVideo(true); // Get local media stream easyRTC.getLocalStream(); // get video reference var video = element.getElementsByTagName('video')[0]; /* style */ video.className = 'video-sm state_1'; /* mute local stream */ video.muted = true; /* output */ easyRTC.setVideoObjectSrc(video, stream);
  • 12. Peerconnection API 1. easyRTC.connect(“application name”, sipRTC.success, sipRTC.failed); 2. easyRTC.call(rtcid); 3. easyRTC.setAcceptChecker(function(rtcid, callback) { callback(true); }); 4. easyRTC.setLoggedInListener(sipRTC.peers); 5. easyRTC.setStreamAcceptor(sipRTC.inbound); 6. easyRTC.setOnStreamClosed(sipRTC.closed);
  • 14. Signalling 1. Signaling protocols are a way to coordinate and control the communication between peers. 2. Signalling methods and protocols are not specfied by webrtc but by application developer. 3. Usually the following information are shipped by signaling : a. Session control messages (communication initialization & co.) b. Network configuration (e.g. computer's IP address and port)
  • 16. STUN and ICE ICE (Interactive Connectivity Establishment) is a framework for connecting peers, such as two video chat clients. STUN (Session Traversal Utilities for NAT) is a standardized set of methods and a network protocol to allow an end host to discover its public IP address if it is located behind a NAT. STUN servers have a single task: to enable a peer behind a NAT to find out its public address and port.
  • 17. Continued... 1. Initially, ICE tries to connect peers directly, with the lowest possible latency, via UDP. 2. If UDP fails, ICE tries TCP : first http, then https. 3. If direct communication fails due to enterprise NAT traversal and firewalls, then ICE uses an intermediate (relay) Turn server.