Upload
palosanto-solutions
View
3.355
Download
4
Embed Size (px)
DESCRIPTION
Iñaki Baz + José Luis Millán Xtra Telecom S.L.U VoIP2Day + ElastixWorld
Citation preview
World Wide SIP
Iñaki Baz Castillo – XtraTelecom S.L.U.
José Luis Millán – XtraTelecom S.L.U.
World Wide SIP
WebRTC
Comunicación Multimedia en el Navegador
World Wide SIP
Estado del Arte
➔ Facebook & Skype➔ Google Hangouts
World Wide SIP
Estado del Arte (II)
➔ Instalación➔ Plugins➔ Uso exclusivo en aplicaciones del proveedor
World Wide SIP
WebRTCAplicaciones
➔ Help Desk➔ Venta online➔ Atención de clientes online➔ Asistencia remota➔ Redes sociales
World Wide SIP
World Wide SIP
WebRTCArquitectura
World Wide SIP
WebRTCMedia
➔ Códecs➔ Narrowband audio: G.711➔ Wideband audio: Opus➔ Vídeo: Debate entre VP8 y H.264 AVC
World Wide SIP
WebRTCMedia (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
World Wide SIP
WebRTCEstablecimiento de Sesión Multimedia
➔ Solicitud de acceso a los dispositivos de media a través del navegador➔ Cámara➔ Micrófono
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
WebRTCEstablecimiento de Sesión Multimedia (II)
World Wide SIP
World Wide SIP
WebRTCSeñ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
World Wide SIP
WebRTCSeñ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...)
World Wide SIP
WebRTCEstá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
World Wide SIP
WebRTCImplementaciones
➔ Mozilla Firefox➔ Google Chrome➔ Safari➔ IE
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”
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 [...]
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?
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
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
World Wide SIP
SIP y WebRTC (III)
➔ ¿Implementan SIP los navegadores?
World Wide SIP
SIP y WebRTC (IV)
➔ Entonces...
¿Cómo puede un navegador utilizar SIP?
World Wide SIP
JsSIP
➔ Librería SIP en JavaScript para aplicaciones web:➔ http://www.jssip.net (próximamente)
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)
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
World Wide SIP
JsSIP (IV)
➔ ¿Es un softphone?
World Wide SIP
JsSIPFuncionamiento
➔ Configuración➔ Conexión WS➔ Registro SIP➔ Recepción de mensajes SIP➔ Parseo, transacciones, diálogos, sesiones...➔ Diseño basado en callbacks (eventos)➔ Acciones (iniciar llamada, mensajería...)
World Wide SIP
JsSIPAPI
World Wide SIP
JsSIPAPI (II)
World Wide SIP
JsSIPAPI (III)
World Wide SIP
JsSIPAPI (IV)
World Wide SIP
JsSIPAPI (V)
World Wide SIP
Otras Implementaciones
➔ SIPML5
World Wide SIP
SIP sobre WebSocketen 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
World Wide SIP
OverSIP
➔ SIP Proxy con transporte WebSocket:➔ http://oversip.net➔ https://github.com/versatica/OverSIP
World Wide SIP
Otras Implementaciones
➔ Kamailio➔ Asterisk
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
World Wide SIP
JsSIP + OverSIPAplicaciones
➔ 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
World Wide SIP
JsSIP + OverSIPAplicaciones (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 !!!
World Wide SIP
World Wide SIP
Arquitectura Demo
OverSIP SIPoversip.net
Kamailio SIP proxy/registrarjssip.net
JsSIPsip:[email protected]
JsSIPsip:[email protected]
Kamailio SIP proxy/registraraliax.net
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...
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?
World Wide SIP
Next Step (II)