WebRTC Synopsis

22
José Luis Millán Iñaki Baz Castillo

Transcript of WebRTC Synopsis

Page 1: WebRTC Synopsis

José Luis MillánIñaki Baz Castillo

Page 2: WebRTC Synopsis

¿ Qué es WebRTC ?

● Comunicación en tiempo real para la Web● WebRTC Media

– Características del media transmitido

● WebRTC API– API JavaScript para browsers

Page 3: WebRTC Synopsis

● Características y requerimientos del media transmitido– RTP audio/vídeo

– DataChannel (new)● Envío y recepción de datos custom en tiempo real

● Codecs MTI (Must To Implement)– Audio: Opus, Alaw, Ulaw

– Vídeo: VP8, H.264 (no decidido)

WebRTC Media

Page 4: WebRTC Synopsis

WebRTC Media

● Establecimiento de media– Ambos peers encuentran el camino más rápido para transmitir

media de uno a otro

– ICE / STUN / TURN

● Seguridad– RTP audio/vídeo encriptado con DTLS-SRTP

– DataChannel encriptado con DTLS (SCTP sobre DTLS sobre UDP)

– Media Consent (ICE garantiza que transmitimos media al destino correcto)

Page 5: WebRTC Synopsis

WebRTC Media

● ¿Quién debe/puede implementar todos estos requisitos?– Desktop Browsers (Chrome, Firefox, Internet Explorer,

Opera...)● ¿ Smartphone Browsers ? mmm...

– Apps en smartphones y tablets

– Servidores (Asterisk, FreeSwitch, Google Hangouts...)

● Interoperabilidad a nivel de media entre distintos dispositivos– NOTA: Nadie ha hablado aún de señalización

Page 6: WebRTC Synopsis

WebRTC API

● API JavaScript para browsers– getUserMedia(): solicitar permisos de micrófono y/o webcam

– RTCPeerConnection: Clase JavaScript para iniciar una sesión WebRTC con otro peer

● Envío y recepción de múltiples MediaStream de audio/vídeo● DataChannel para envío y recepción de datos custom

Page 7: WebRTC Synopsis

WebRTC API

● SDP Offer/Answer– API WebRTC para solicitar un SDP a nuestro browser

● Y se lo enviamos al peer remoto

– Recibimos el SDP del peer remoto● Y lo usamos a través del API WebRTC

● ¿Cómo transmitimos y recibimos el SDP?– WebSocket

● SIP over WebSocket● XMPP/Jingle over WebSocket● Lo-que-sea over WebSocket

– HTTP AJAX (para no recargar la página)

– WebRTC no impone el tipo de de señalización en red

Page 8: WebRTC Synopsis

WebRTC F.A.Q.

Page 9: WebRTC Synopsis
Page 10: WebRTC Synopsis
Page 11: WebRTC Synopsis
Page 12: WebRTC Synopsis
Page 13: WebRTC Synopsis
Page 14: WebRTC Synopsis
Page 15: WebRTC Synopsis
Page 16: WebRTC Synopsis
Page 17: WebRTC Synopsis

Casos de Uso WebRTC

● Póker online– Nadie “llama” a nadie

● ChatRoulette– Enseñemos nuestras partes íntimas, ¡pero sin Flash!

● Un nuevo “Skype”– ¿Sólo Web?

● Puesto de callcenter– ¡Plugin para Asterisk!

● Telefonía doméstica– mmm...

Page 18: WebRTC Synopsis

Casos de Uso WebRTC

● Hacer feliz a tu abuela

¡¡¡ DEMO !!!

Page 19: WebRTC Synopsis

RetroRTC

Page 20: WebRTC Synopsis

Arquitectura RetroRTCPSTNSIP over WebSocket

SIP over UDP/TCP

ICE

RTP

Page 21: WebRTC Synopsis

Proyectos Relacionados

● http://jssip.net● http://oversip.net

Page 22: WebRTC Synopsis

Muchas Gracias

@ibc_tw

@jomivi

● A los asistentes● A Avanzada7 por organizar el VOIP2DAY

– (el mejor evento de VoIP de Europa)

● A todos los que lo hacen posible