8. World Wide SIP
WebRTC
Media
➔ Códecs
➔ Narrowband audio: G.711
➔ Wideband audio: Opus
➔ Vídeo: Debate entre VP8 y H.264 AVC
9. World Wide SIP
WebRTC
Media (II)
➔ SRTP (RTP Seguro)
➔ Utiliza criptografía de clave simétrica para ofrecer
confidencialidad e integridad
➔ DTLS
➔ Equivalente a TLS sobre TCP
➔ ...pero sobre UDP
➔ Utilizado para intercambiar las claves utilizadas en
SRTP
10. World Wide SIP
WebRTC
Establecimiento de Sesión Multimedia
➔ Solicitud de acceso a los dispositivos de
media a través del navegador
➔ Cámara
➔ Micrófono
11. World Wide SIP
➔ Descubrimiento de dirección/es IP
➔ STUN: Descubrimiento de dirección IP
➔ Flujo multimedia directo entre terminaciones
➔ ICE: Comprueba la comunicación directa entre
sus direcciones IP y las direcciones IP del nodo
remoto
➔ Flujo multimedia a través de servidor público
➔ TURN: Relay público de media
WebRTC
Establecimiento de Sesión Multimedia (II)
13. World Wide SIP
WebRTC
Señalización
➔ Modelo Offer-Answer SDP (RFC 3264)
➔ Le pido un SDP a mi navegador
➔ Y el stack WebRTC me lo entrega acorde a mi
solicitud, mis dispositivos y mis recursos
14. World Wide SIP
WebRTC
Señalización (II)
➔ ¿Cómo hago llegar la oferta SDP al interlocutor?
➔ WebRTC no define el mecanismo de intercambio de
SDP
➔ Estamos en un navegador, ¿opciones?
➔ Enviar el SDP en un HTTP POST (con AJAX)
➔ El interlocutor hace HTTP long polling al servidor web para consultar
nuevas invitaciones
➔ Usar Flash para entregar/recibir el SDP
➔ HTTP Comet (conexión TCP “persistente”...)
➔ WebSocket (más adelante...)
15. World Wide SIP
WebRTC
Estándares
➔ IETF RTCWeb WG
➔ Se encarga de la estandarización de la
comunicación multimedia entre navegadores
➔ W3C WebRTC WG
➔ Define un set de APIs ECMAScript para manejar
el stack WebRTC y controlar las sesiones
multimedia
17. World Wide SIP
WebSocket
➔ WebSocket (RFC 6455)
➔ Transporte orientado a conexión sobre
TCP/TLS
➔ Comunicación bidireccional entre navegador
web y servidor web
➔ No más “HTTP long polling” o “Comet”
18. World Wide SIP
WebSocket como Transporte para SIP
➔ Nuevo transporte en la familia de transportes
SIP
➔ draft-ietf-sipcore-sip-websocket
The WebSocket Protocol as a Transport for SIP
This specification defines a new WebSocket sub-protocol
(as defined in section 1.9 in RFC6455) for transporting
SIP messages between a WebSocket client and server [...]
19. World Wide SIP
WebSocket como Transporte para SIP (II)
➔ Creo que lo he entendido...
¿Necesito un gateway para intercambiar
mensajes SIP entre mi teléfono y mi
navegador?
20. World Wide SIP
SIP y WebRTC
➔ Alternativa como mecanismo de señalización
en WebRTC
➔ Protocolo maduro y ampliamente
implementado
➔ Gracias a SIP sobre WebSocket es posible la
comunicación SIP entre navegadores así
como entre navegadores y dispositivos SIP
21. World Wide SIP
SIP y WebRTC (II)
➔ ¿Qué nos aporta?
Nos permite utilizar la infraestructura SIP
existente para dar cabida a los dispositivos
SIP del futuro: Los navegadores Web
23. World Wide SIP
SIP y WebRTC (IV)
➔ Entonces...
¿Cómo puede un navegador utilizar SIP?
24. World Wide SIP
JsSIP
➔ Librería SIP en JavaScript para aplicaciones
web:
➔ http://www.jssip.net (próximamente)
25. World Wide SIP
JsSIP (II)
➔ JsSIP se descarga junto a la página web
➔ Análogo a como se hace con jQuery
➔ API para crear clientes SIP (User Agents)
➔ Funcionalidades:
➔ Llamadas de audio/vídeo
➔ Registro SIP
➔ Mensajería SIP
➔ Subscripciones (BLF)
26. World Wide SIP
JsSIP (III)
➔ Maneja el stack WebRTC del navegador a
través del API WebRTC:
➔ Acceso a dispositivos multimedia
➔ Gestión de audio/vídeo
➔ Obtiene el SDP generado por el stack
WebRTC y se lo envía al remoto usando SIP
35. World Wide SIP
SIP sobre WebSocket
en el lado del Servidor
➔ ¿Por qué es necesario?
Los clientes SIP WebSocket se conectan al
servidor para envío y recepción de mensajes SIP
a través de la conexión WebSocket
➔ ¿Implica un nuevo nodo SIP?
No. Implica que los Proxies y resto de servidores
SIP implementen WebSocket como protocolo de
transporte, análogamente a UDP, TCP, SCTP, etc
36. World Wide SIP
OverSIP
➔ SIP Proxy con transporte WebSocket:
➔ http://oversip.net
➔ https://github.com/versatica/OverSIP
38. World Wide SIP
JsSIP + OverSIP
➔ Comunicación multimedia entre navegadores
utilizando SIP como protocolo de señalización
➔ Comunicación SIP entre navegadores y
dispositivos SIP convencionales
39. World Wide SIP
JsSIP + OverSIP
Aplicaciones
➔ Telefonía SIP en *TU* web:
➔ Dispositivo SIP en el navegador
➔ Comunicación entre los usuarios de tu web
➔ Atención de llamadas en tu web
➔ Telefonía en tu intranet
➔ Convergencia de CRM/ERP y telefonía
40. World Wide SIP
JsSIP + OverSIP
Aplicaciones (II)
➔ Dispositivo SIP en el navegador:
➔ Actualización de versiones centralizada
➔ ¡¡¡ Pulsa F5 !!!
➔ Configuración centralizada
➔ Más espacio en la mesa de escritorio
➔ Liberación de toma eléctrica
➔ Liberación de puerto Switch (+ PoE)
➔ ¿Gestionar 200 licencias de EyeBeam?
➔ ¡¡¡ Nooo !!!
43. World Wide SIP
Convergencia entre WebRTC y SIP (actual)
➔ Señalización resuelta:
➔ draft-ietf-sipcore-sip-websocket
➔ Media NO resuelta:
➔ PBX, Media Servers y teléfonos SIP actuales
requieren adaptarse para soportar SRTP sobre
DTLS, ICE, RTP streams multiplexados, etc...
44. World Wide SIP
Next Step
➔ 2011:
➔ Señalización SIP resuelta:
➔ SIP sobre WebSokcet (JsSIP + OverSIP)
➔ 2012:
➔ Audio/vídeo entre navegadores WebRTC
➔ 2013:
➔ ¿Convergencia SIP y WebRTC en el media?