SlideShare a Scribd company logo
1 of 22
Download to read offline
WebRTC u
PBZ video chatu
Zoran Perak @ PBZ
2
Što je to WebRTC?
 Web Real-Time Communication (WebRTC) je tehnologija koja omogućuje direktnu komunikaciju
između dva internetska preglednika (peer-to-peer)
– video + zvuk
– podaci
 Media engine sa Javacript API-jem
 Standard u nastajanju
– W3C: web API
– IETF: protokoli i formati
Što WebRTC rješava?
 Upravljanje videom i zvukom
– "dogovor" oko korištenog standarada kodiranja s drugom stranom (SDP)
– poništavanje jeke
– automatska prilagodba kvalitete raspoloživoj brzini komunikacije
 Komunikacija s drugom stranom
– automatska uspostava veze
– korištenje "najkraćeg" puta
– zaobilaženje prepreka (STUN, TURN, ICE)
 Sigurnost (DTLS, SRTP, STCP)
3
Što WebRTC ne rješava?
 Signalizacija
– nije dio standarda
– razmjena inicijalnih podataka potrebnih za uspostavu veze potpuno u domeni aplikacije
– WebRTC proizvodi sve potrebne podatke – aplikacija ih razmjeni sa drugom stranom
4
Javascript API
Funkcionalnosti:
 Pristup lokalnom mikrofonu i kameri
 Komunikacija video i zvuka
 Komunikacija podataka
5
Javascript API
Objekti:
 MediaStream (getUserMedia)
– pristup kameri, mikrofonu i ekranu
 RTCPeerConnection
– kodiranje/dekodiranje videa/zvuka
– komunikacija s drugom stranom preko raznih mrežnih topologija
– dodavanje audio i video streamova
 RTCDataChannel
– razmjena proizvoljnih podataka sa drugom stranom (P2P)
6
MediaStream
 Predstavlja video i audio stream
 Može sadržavati više kanala
 Dobiva se Javascript pozivom navigator.getUserMedia()
7
MediaStream
8
RTCPeerConnection
 Kodiranje/dekodiranje videa i zvuka
 Uspostavlja i održava stabilnu vezu sa drugom stranom (RTCPeerConnection objektom u drugom
pregledniku)
 Prilagođavanje raspoloživoj brzini veze
 Sigurnost
 Inicijalno je potrebno odraditi signalizaciju (aplikacija):
– razmjena SDP paketa (offer – answer)
– razmjena ICE kandidata
9
RTCPeerConnection
10
RTCDataChannel
 Isti API kao WebSockects
 Vrlo mala latencija
 Pouzdana ili nepouzdana komunikacija (UDP/TCP)
 Sigurnost
11
Arhitektura
12
Aplikacija
13
Pronalaženje puta...
14
Sigurnost
 DTLS (Datagram Transport Layer Security)
 SRTP (Secure Real-time Transport Protocol)
15
Desktop:

 SDK
Android:

 SDK
iOS:
 SDK
Podrška
16
17
Video chat @
PBZ
 Implementacija video chata unutar internet bankarstva
 Korištenje postojećeg CCC rješenja (vanjski dobavljač)
– chat i video chat su samo dodatni kanal za komunikaciju
– poslovni procesi i infrastruktura se ne mijenjaju
 Problem P2P komunikacije zbog sigurnosti
– nije moguća direktna veza između klijenta i agenta u CCC-u
– korištenje TURN servera
18
PBZ
19
PBZ
20
PBZ
21
 http://www.webrtc.org
 http://www.html5rocks.com/en/tutorials/webrtc/basics/
 http://simpl.info/
 https://apprtc.appspot.com/
 http://simplewebrtc.com/
 https://webrtchacks.com/
22

More Related Content

Viewers also liked

Viewers also liked (20)

Javantura v4 - Java or Scala – Web development with Playframework 2.5.x - Kre...
Javantura v4 - Java or Scala – Web development with Playframework 2.5.x - Kre...Javantura v4 - Java or Scala – Web development with Playframework 2.5.x - Kre...
Javantura v4 - Java or Scala – Web development with Playframework 2.5.x - Kre...
 
Javantura v4 - DMN – supplement your BPMN - Željko Šmaguc
Javantura v4 - DMN – supplement your BPMN - Željko ŠmagucJavantura v4 - DMN – supplement your BPMN - Željko Šmaguc
Javantura v4 - DMN – supplement your BPMN - Željko Šmaguc
 
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
Javantura v4 - FreeMarker in Spring web - Marin KalapaćJavantura v4 - FreeMarker in Spring web - Marin Kalapać
Javantura v4 - FreeMarker in Spring web - Marin Kalapać
 
Javantura v4 - JVM++ The GraalVM - Martin Toshev
Javantura v4 - JVM++ The GraalVM - Martin ToshevJavantura v4 - JVM++ The GraalVM - Martin Toshev
Javantura v4 - JVM++ The GraalVM - Martin Toshev
 
Javantura v4 - Getting started with Apache Spark - Dinko Srkoč
Javantura v4 - Getting started with Apache Spark - Dinko SrkočJavantura v4 - Getting started with Apache Spark - Dinko Srkoč
Javantura v4 - Getting started with Apache Spark - Dinko Srkoč
 
Javantura v4 - Let me tell you a story why Scrum is not for you - Roko Roić
Javantura v4 - Let me tell you a story why Scrum is not for you - Roko RoićJavantura v4 - Let me tell you a story why Scrum is not for you - Roko Roić
Javantura v4 - Let me tell you a story why Scrum is not for you - Roko Roić
 
Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...
Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...
Javantura v4 - KumuluzEE – Microservices with Java - Matjaž B. Jurič & Tilen ...
 
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel MitarJavantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
 
Javantura v4 - The power of cloud in professional services company - Ivan Krn...
Javantura v4 - The power of cloud in professional services company - Ivan Krn...Javantura v4 - The power of cloud in professional services company - Ivan Krn...
Javantura v4 - The power of cloud in professional services company - Ivan Krn...
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
 
Javantura v4 - Angular2 - Ionic2 - from birth to stable versions - Hrvoje Pek...
Javantura v4 - Angular2 - Ionic2 - from birth to stable versions - Hrvoje Pek...Javantura v4 - Angular2 - Ionic2 - from birth to stable versions - Hrvoje Pek...
Javantura v4 - Angular2 - Ionic2 - from birth to stable versions - Hrvoje Pek...
 
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip KovačekJavantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
Javantura v4 - Spring Boot and JavaFX - can they play together - Josip Kovaček
 
Javantura v4 - True RESTful Java Web Services with JSON API and Katharsis - M...
Javantura v4 - True RESTful Java Web Services with JSON API and Katharsis - M...Javantura v4 - True RESTful Java Web Services with JSON API and Katharsis - M...
Javantura v4 - True RESTful Java Web Services with JSON API and Katharsis - M...
 
Javantura v4 - What’s NOT new in modular Java - Milen Dyankov
Javantura v4 - What’s NOT new in modular Java - Milen DyankovJavantura v4 - What’s NOT new in modular Java - Milen Dyankov
Javantura v4 - What’s NOT new in modular Java - Milen Dyankov
 
Javantura v4 - Security architecture of the Java platform - Martin Toshev
Javantura v4 - Security architecture of the Java platform - Martin ToshevJavantura v4 - Security architecture of the Java platform - Martin Toshev
Javantura v4 - Security architecture of the Java platform - Martin Toshev
 
Javantura v4 - Java and lambdas and streams - are they better than for loops ...
Javantura v4 - Java and lambdas and streams - are they better than for loops ...Javantura v4 - Java and lambdas and streams - are they better than for loops ...
Javantura v4 - Java and lambdas and streams - are they better than for loops ...
 
Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...
Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...
Javantura v4 - (Spring)Boot your application on Red Hat middleware stack - Al...
 
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. JuričJavantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
Javantura v4 - Cloud-native Architectures and Java - Matjaž B. Jurič
 
Javantura v4 - Android App Development in 2017 - Matej Vidaković
Javantura v4 - Android App Development in 2017 - Matej VidakovićJavantura v4 - Android App Development in 2017 - Matej Vidaković
Javantura v4 - Android App Development in 2017 - Matej Vidaković
 
Javantura v4 - Keycloak – instant login for your app - Marko Štrukelj
Javantura v4 - Keycloak – instant login for your app - Marko ŠtrukeljJavantura v4 - Keycloak – instant login for your app - Marko Štrukelj
Javantura v4 - Keycloak – instant login for your app - Marko Štrukelj
 

Similar to JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

PowerPoint format
PowerPoint formatPowerPoint format
PowerPoint formatVideoguy
 
Kako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloudKako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloudDubravko Marak
 
(ATD10) Postar zvoni dvaput - dostava podataka u Azureu
(ATD10) Postar zvoni dvaput - dostava podataka u Azureu(ATD10) Postar zvoni dvaput - dostava podataka u Azureu
(ATD10) Postar zvoni dvaput - dostava podataka u AzureuLuka Lovosevic
 
Osnove interneta
Osnove internetaOsnove interneta
Osnove internetastevansek
 
Adobe Flash Collaboration Service
Adobe Flash Collaboration ServiceAdobe Flash Collaboration Service
Adobe Flash Collaboration ServiceIvan Ilijasic
 
FSEC2011: Reverzni inzenjering Android aplikacija
FSEC2011: Reverzni inzenjering Android aplikacijaFSEC2011: Reverzni inzenjering Android aplikacija
FSEC2011: Reverzni inzenjering Android aplikacijaDinko Korunic
 
Web tehnologije u desktop developmentu
Web tehnologije u desktop developmentuWeb tehnologije u desktop developmentu
Web tehnologije u desktop developmentuDarko Kukovec
 
Komparacija-TCP-i-UDP-Elminv1.docx
Komparacija-TCP-i-UDP-Elminv1.docxKomparacija-TCP-i-UDP-Elminv1.docx
Komparacija-TCP-i-UDP-Elminv1.docxElminDafi
 
Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...
Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...
Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...Five
 
Big Brother Hrvatska 2007 - Case Study - BizBuzz
Big Brother Hrvatska 2007 - Case Study - BizBuzzBig Brother Hrvatska 2007 - Case Study - BizBuzz
Big Brother Hrvatska 2007 - Case Study - BizBuzzwebburza
 
Mobilne tehnologije za pristup središnjim bazama podataka
Mobilne tehnologije za pristup središnjim bazama podatakaMobilne tehnologije za pristup središnjim bazama podataka
Mobilne tehnologije za pristup središnjim bazama podatakaSlaven Brumec
 
White paper - Migracija IT rješenja u Cloud Hrvatskog Telekoma
White paper - Migracija IT rješenja u Cloud Hrvatskog TelekomaWhite paper - Migracija IT rješenja u Cloud Hrvatskog Telekoma
White paper - Migracija IT rješenja u Cloud Hrvatskog TelekomaHrvatski Telekom
 
Protokol za pokretanje_sesije
Protokol za pokretanje_sesijeProtokol za pokretanje_sesije
Protokol za pokretanje_sesijehej_ti
 
MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365
MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365
MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365Tomislav Lulic
 

Similar to JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak (20)

PowerPoint format
PowerPoint formatPowerPoint format
PowerPoint format
 
Kako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloudKako pretvoriti server_sobu_u_cloud
Kako pretvoriti server_sobu_u_cloud
 
(ATD10) Postar zvoni dvaput - dostava podataka u Azureu
(ATD10) Postar zvoni dvaput - dostava podataka u Azureu(ATD10) Postar zvoni dvaput - dostava podataka u Azureu
(ATD10) Postar zvoni dvaput - dostava podataka u Azureu
 
Osnove interneta
Osnove internetaOsnove interneta
Osnove interneta
 
Http protokol
Http protokolHttp protokol
Http protokol
 
Adobe Flash Collaboration Service
Adobe Flash Collaboration ServiceAdobe Flash Collaboration Service
Adobe Flash Collaboration Service
 
Tru64-Mreza
Tru64-MrezaTru64-Mreza
Tru64-Mreza
 
Javantura Zagreb 2014 - Java na klijenstskoj strani - Ivan Vučak
Javantura Zagreb 2014 - Java na klijenstskoj strani - Ivan VučakJavantura Zagreb 2014 - Java na klijenstskoj strani - Ivan Vučak
Javantura Zagreb 2014 - Java na klijenstskoj strani - Ivan Vučak
 
FSEC2011-Dinko
FSEC2011-DinkoFSEC2011-Dinko
FSEC2011-Dinko
 
FSEC2011: Reverzni inzenjering Android aplikacija
FSEC2011: Reverzni inzenjering Android aplikacijaFSEC2011: Reverzni inzenjering Android aplikacija
FSEC2011: Reverzni inzenjering Android aplikacija
 
Web tehnologije u desktop developmentu
Web tehnologije u desktop developmentuWeb tehnologije u desktop developmentu
Web tehnologije u desktop developmentu
 
Komparacija-TCP-i-UDP-Elminv1.docx
Komparacija-TCP-i-UDP-Elminv1.docxKomparacija-TCP-i-UDP-Elminv1.docx
Komparacija-TCP-i-UDP-Elminv1.docx
 
Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...
Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...
Razvoj aplikacija za Google Chromecast - Branimir Conjar, Matija Kovačić, Kre...
 
Big Brother Hrvatska 2007 - Case Study - BizBuzz
Big Brother Hrvatska 2007 - Case Study - BizBuzzBig Brother Hrvatska 2007 - Case Study - BizBuzz
Big Brother Hrvatska 2007 - Case Study - BizBuzz
 
PPT
PPTPPT
PPT
 
Mobilne tehnologije za pristup središnjim bazama podataka
Mobilne tehnologije za pristup središnjim bazama podatakaMobilne tehnologije za pristup središnjim bazama podataka
Mobilne tehnologije za pristup središnjim bazama podataka
 
Maturski mreze
Maturski mrezeMaturski mreze
Maturski mreze
 
White paper - Migracija IT rješenja u Cloud Hrvatskog Telekoma
White paper - Migracija IT rješenja u Cloud Hrvatskog TelekomaWhite paper - Migracija IT rješenja u Cloud Hrvatskog Telekoma
White paper - Migracija IT rješenja u Cloud Hrvatskog Telekoma
 
Protokol za pokretanje_sesije
Protokol za pokretanje_sesijeProtokol za pokretanje_sesije
Protokol za pokretanje_sesije
 
MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365
MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365
MSNetwork 4 - Enterprise funkcionalnosti u malim tvrtkama sa Office 365
 

More from HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association

More from HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association (20)

Java cro'21 the best tools for java developers in 2021 - hujak
Java cro'21   the best tools for java developers in 2021 - hujakJava cro'21   the best tools for java developers in 2021 - hujak
Java cro'21 the best tools for java developers in 2021 - hujak
 
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK KeynoteJavaCro'21 - Java is Here To Stay - HUJAK Keynote
JavaCro'21 - Java is Here To Stay - HUJAK Keynote
 
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan LozićJavantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
Javantura v7 - Behaviour Driven Development with Cucumber - Ivan Lozić
 
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
Javantura v7 - The State of Java - Today and Tomowwow - HUJAK's Community Key...
 
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
Javantura v7 - Learning to Scale Yourself: The Journey from Coder to Leader -...
 
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
JavaCro'19 - The State of Java and Software Development in Croatia - Communit...
 
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander RadovanJavantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
Javantura v6 - Java in Croatia and HUJAK - Branko Mihaljević, Aleksander Radovan
 
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
Javantura v6 - On the Aspects of Polyglot Programming and Memory Management i...
 
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
Javantura v6 - Case Study: Marketplace App with Java and Hyperledger Fabric -...
 
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
Javantura v6 - How to help customers report bugs accurately - Miroslav Čerkez...
 
Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - When remote work really works - the secrets behind successful ...Javantura v6 - When remote work really works - the secrets behind successful ...
Javantura v6 - When remote work really works - the secrets behind successful ...
 
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Kotlin-Java Interop - Matej VidakovićJavantura v6 - Kotlin-Java Interop - Matej Vidaković
Javantura v6 - Kotlin-Java Interop - Matej Vidaković
 
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
Javantura v6 - Spring HATEOAS hypermedia-driven web services, and clients tha...
 
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
Javantura v6 - End to End Continuous Delivery of Microservices for Kubernetes...
 
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
Javantura v6 - Istio Service Mesh - The magic between your microservices - Ma...
 
Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - How can you improve the quality of your application - Ioannis ...Javantura v6 - How can you improve the quality of your application - Ioannis ...
Javantura v6 - How can you improve the quality of your application - Ioannis ...
 
Javantura v6 - Just say it v2 - Pavao Varela Petrac
Javantura v6 - Just say it v2 - Pavao Varela PetracJavantura v6 - Just say it v2 - Pavao Varela Petrac
Javantura v6 - Just say it v2 - Pavao Varela Petrac
 
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Automation of web apps testing - Hrvoje RuhekJavantura v6 - Automation of web apps testing - Hrvoje Ruhek
Javantura v6 - Automation of web apps testing - Hrvoje Ruhek
 
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
Javantura v6 - Master the Concepts Behind the Java 10 Challenges and Eliminat...
 
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario KusekJavantura v6 - Building IoT Middleware with Microservices - Mario Kusek
Javantura v6 - Building IoT Middleware with Microservices - Mario Kusek
 

JavaCro'15 - WebRTC in PBZ video chat - Zoran Perak

  • 1. WebRTC u PBZ video chatu Zoran Perak @ PBZ
  • 2. 2 Što je to WebRTC?  Web Real-Time Communication (WebRTC) je tehnologija koja omogućuje direktnu komunikaciju između dva internetska preglednika (peer-to-peer) – video + zvuk – podaci  Media engine sa Javacript API-jem  Standard u nastajanju – W3C: web API – IETF: protokoli i formati
  • 3. Što WebRTC rješava?  Upravljanje videom i zvukom – "dogovor" oko korištenog standarada kodiranja s drugom stranom (SDP) – poništavanje jeke – automatska prilagodba kvalitete raspoloživoj brzini komunikacije  Komunikacija s drugom stranom – automatska uspostava veze – korištenje "najkraćeg" puta – zaobilaženje prepreka (STUN, TURN, ICE)  Sigurnost (DTLS, SRTP, STCP) 3
  • 4. Što WebRTC ne rješava?  Signalizacija – nije dio standarda – razmjena inicijalnih podataka potrebnih za uspostavu veze potpuno u domeni aplikacije – WebRTC proizvodi sve potrebne podatke – aplikacija ih razmjeni sa drugom stranom 4
  • 5. Javascript API Funkcionalnosti:  Pristup lokalnom mikrofonu i kameri  Komunikacija video i zvuka  Komunikacija podataka 5
  • 6. Javascript API Objekti:  MediaStream (getUserMedia) – pristup kameri, mikrofonu i ekranu  RTCPeerConnection – kodiranje/dekodiranje videa/zvuka – komunikacija s drugom stranom preko raznih mrežnih topologija – dodavanje audio i video streamova  RTCDataChannel – razmjena proizvoljnih podataka sa drugom stranom (P2P) 6
  • 7. MediaStream  Predstavlja video i audio stream  Može sadržavati više kanala  Dobiva se Javascript pozivom navigator.getUserMedia() 7
  • 9. RTCPeerConnection  Kodiranje/dekodiranje videa i zvuka  Uspostavlja i održava stabilnu vezu sa drugom stranom (RTCPeerConnection objektom u drugom pregledniku)  Prilagođavanje raspoloživoj brzini veze  Sigurnost  Inicijalno je potrebno odraditi signalizaciju (aplikacija): – razmjena SDP paketa (offer – answer) – razmjena ICE kandidata 9
  • 11. RTCDataChannel  Isti API kao WebSockects  Vrlo mala latencija  Pouzdana ili nepouzdana komunikacija (UDP/TCP)  Sigurnost 11
  • 15. Sigurnost  DTLS (Datagram Transport Layer Security)  SRTP (Secure Real-time Transport Protocol) 15
  • 18. PBZ  Implementacija video chata unutar internet bankarstva  Korištenje postojećeg CCC rješenja (vanjski dobavljač) – chat i video chat su samo dodatni kanal za komunikaciju – poslovni procesi i infrastruktura se ne mijenjaju  Problem P2P komunikacije zbog sigurnosti – nije moguća direktna veza između klijenta i agenta u CCC-u – korištenje TURN servera 18
  • 22.  http://www.webrtc.org  http://www.html5rocks.com/en/tutorials/webrtc/basics/  http://simpl.info/  https://apprtc.appspot.com/  http://simplewebrtc.com/  https://webrtchacks.com/ 22