SlideShare ist ein Scribd-Unternehmen logo
1 von 45
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
WebRTC
Aplicaciones
➔ Help Desk
➔ Venta online
➔ Atención de clientes online
➔ Asistencia remota
➔ Redes sociales
World Wide SIP
World Wide SIP
WebRTC
Arquitectura
World Wide SIP
WebRTC
Media
➔ Códecs
➔ Narrowband audio: G.711
➔ Wideband audio: Opus
➔ Vídeo: Debate entre VP8 y H.264 AVC
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
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
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)
World Wide SIP
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
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...)
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
World Wide SIP
WebRTC
Implementaciones
➔ 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
JsSIP
Funcionamiento
➔ 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
JsSIP
API
World Wide SIP
JsSIP
API (II)
World Wide SIP
JsSIP
API (III)
World Wide SIP
JsSIP
API (IV)
World Wide SIP
JsSIP
API (V)
World Wide SIP
Otras Implementaciones
➔ SIPML5
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
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 + 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
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 !!!
World Wide SIP
World Wide SIP
Arquitectura Demo
OverSIP SIP
oversip.net
Kamailio SIP proxy/registrar
jssip.net
JsSIP
sip:ibc@aliax.net
JsSIP
sip:jmillan@jssip.net
Kamailio SIP proxy/registrar
aliax.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)

Weitere ähnliche Inhalte

Was ist angesagt?

Sistema de videoconferencia basado en WebRTC con acceso a la PSTN
Sistema de videoconferencia basado en WebRTC con acceso a la PSTNSistema de videoconferencia basado en WebRTC con acceso a la PSTN
Sistema de videoconferencia basado en WebRTC con acceso a la PSTNPoncho Sandoval
 
Dockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloDockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloMarco Bellido
 
Servidores de aplicaciones para servicios web
Servidores de aplicaciones para servicios webServidores de aplicaciones para servicios web
Servidores de aplicaciones para servicios webmonse_pacheco
 
"Se han enviado al servidor de internet ficheros web creados mediante program...
"Se han enviado al servidor de internet ficheros web creados mediante program..."Se han enviado al servidor de internet ficheros web creados mediante program...
"Se han enviado al servidor de internet ficheros web creados mediante program...Cristina Gallego Blanco
 
Introduccion a Python para la web
Introduccion a Python para la webIntroduccion a Python para la web
Introduccion a Python para la webArsys
 
Origen del internet
 Origen del internet Origen del internet
Origen del internetpepin95
 
Netscape navigator
Netscape navigatorNetscape navigator
Netscape navigatormignav
 
"Websockets: Aplicación práctica" por @danielRomeroE - Charla incluida en el ...
"Websockets: Aplicación práctica" por @danielRomeroE - Charla incluida en el ..."Websockets: Aplicación práctica" por @danielRomeroE - Charla incluida en el ...
"Websockets: Aplicación práctica" por @danielRomeroE - Charla incluida en el ...Beperk.com
 
Creación de entornos de desarrollo con Vagrant
Creación de entornos de desarrollo con VagrantCreación de entornos de desarrollo con Vagrant
Creación de entornos de desarrollo con VagrantCarlos Gimeno Yáñez
 
1 2-3 drupal
1 2-3 drupal1 2-3 drupal
1 2-3 drupalxander21c
 
NodeJS y MongoDB
NodeJS y MongoDBNodeJS y MongoDB
NodeJS y MongoDBArsys
 
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphereVagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphereJavier Jerónimo Suárez
 

Was ist angesagt? (20)

El Proyecto Moby
El Proyecto MobyEl Proyecto Moby
El Proyecto Moby
 
Sistema de videoconferencia basado en WebRTC con acceso a la PSTN
Sistema de videoconferencia basado en WebRTC con acceso a la PSTNSistema de videoconferencia basado en WebRTC con acceso a la PSTN
Sistema de videoconferencia basado en WebRTC con acceso a la PSTN
 
Dockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrolloDockeriza tu entorno de desarrollo
Dockeriza tu entorno de desarrollo
 
Servidores de aplicaciones para servicios web
Servidores de aplicaciones para servicios webServidores de aplicaciones para servicios web
Servidores de aplicaciones para servicios web
 
Unidad 6 ftp
Unidad 6 ftpUnidad 6 ftp
Unidad 6 ftp
 
"Se han enviado al servidor de internet ficheros web creados mediante program...
"Se han enviado al servidor de internet ficheros web creados mediante program..."Se han enviado al servidor de internet ficheros web creados mediante program...
"Se han enviado al servidor de internet ficheros web creados mediante program...
 
The pirate bay
The pirate bayThe pirate bay
The pirate bay
 
Introduccion a Python para la web
Introduccion a Python para la webIntroduccion a Python para la web
Introduccion a Python para la web
 
Origen del internet
 Origen del internet Origen del internet
Origen del internet
 
Netscape navigator
Netscape navigatorNetscape navigator
Netscape navigator
 
Navegadores
NavegadoresNavegadores
Navegadores
 
"Websockets: Aplicación práctica" por @danielRomeroE - Charla incluida en el ...
"Websockets: Aplicación práctica" por @danielRomeroE - Charla incluida en el ..."Websockets: Aplicación práctica" por @danielRomeroE - Charla incluida en el ...
"Websockets: Aplicación práctica" por @danielRomeroE - Charla incluida en el ...
 
Presentación1
Presentación1Presentación1
Presentación1
 
Creación de entornos de desarrollo con Vagrant
Creación de entornos de desarrollo con VagrantCreación de entornos de desarrollo con Vagrant
Creación de entornos de desarrollo con Vagrant
 
Curso Vagrant
Curso VagrantCurso Vagrant
Curso Vagrant
 
Vagrant
VagrantVagrant
Vagrant
 
1 2-3 drupal
1 2-3 drupal1 2-3 drupal
1 2-3 drupal
 
NodeJS y MongoDB
NodeJS y MongoDBNodeJS y MongoDB
NodeJS y MongoDB
 
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphereVagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere
Vagrant para automatizar entornos DEV/PRO: VirtualBox y vSphere
 
20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript
 

Andere mochten auch

10 Insightful Quotes On Designing A Better Customer Experience
10 Insightful Quotes On Designing A Better Customer Experience10 Insightful Quotes On Designing A Better Customer Experience
10 Insightful Quotes On Designing A Better Customer ExperienceYuan Wang
 
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanPost Planner
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionIn a Rocket
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting PersonalKirsty Hulse
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldabaux singapore
 

Andere mochten auch (7)

Stay Up To Date on the Latest Happenings in the Boardroom: Recommended Summer...
Stay Up To Date on the Latest Happenings in the Boardroom: Recommended Summer...Stay Up To Date on the Latest Happenings in the Boardroom: Recommended Summer...
Stay Up To Date on the Latest Happenings in the Boardroom: Recommended Summer...
 
10 Insightful Quotes On Designing A Better Customer Experience
10 Insightful Quotes On Designing A Better Customer Experience10 Insightful Quotes On Designing A Better Customer Experience
10 Insightful Quotes On Designing A Better Customer Experience
 
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media Plan
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 

Ähnlich wie WebRTC SIP

[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)Iñaki Baz Castillo
 
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTCIñaki Baz Castillo
 
Sipml5 to Elastix
Sipml5 to ElastixSipml5 to Elastix
Sipml5 to Elastixnavaismo
 
V2 d2013 jose l millan e iñaki baz - webrtc
V2 d2013   jose l millan e iñaki baz  - webrtcV2 d2013   jose l millan e iñaki baz  - webrtc
V2 d2013 jose l millan e iñaki baz - webrtcVOIP2DAY
 
WebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduWebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduMicael Gallego
 
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 Micael Gallego
 
Introducción a silverlight
Introducción a silverlightIntroducción a silverlight
Introducción a silverlightricardomeanaG9
 
Concepto de Streaming,webcasting,
Concepto de Streaming,webcasting,Concepto de Streaming,webcasting,
Concepto de Streaming,webcasting,picitapastor
 
Concepto de streaming,webcasting y CMS
Concepto de streaming,webcasting y CMSConcepto de streaming,webcasting y CMS
Concepto de streaming,webcasting y CMSpicitapastor
 
Concepto de streaming
Concepto de streamingConcepto de streaming
Concepto de streamingpicitapastor
 
2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdf2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdfCarlosDavidMontellan
 
Unidad 10: La capa de aplicación
Unidad 10: La capa de aplicaciónUnidad 10: La capa de aplicación
Unidad 10: La capa de aplicacióncarmenrico14
 
Seguridad en VoIP - Hackelarre
Seguridad en VoIP - HackelarreSeguridad en VoIP - Hackelarre
Seguridad en VoIP - HackelarrePablo Garaizar
 
Taller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboards
Taller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboardsTaller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboards
Taller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboardsSofia2 Smart Platform
 
Webcast hyperv trabajando con discos de red
Webcast   hyperv trabajando con discos de redWebcast   hyperv trabajando con discos de red
Webcast hyperv trabajando con discos de redITSanchez
 

Ähnlich wie WebRTC SIP (20)

[VoIP2Day 2012] World Wide SIP
[VoIP2Day 2012] World Wide SIP[VoIP2Day 2012] World Wide SIP
[VoIP2Day 2012] World Wide SIP
 
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
 
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC
[ElastixWorld 2013 Mexico] Si sólo ves un webphone no entiendes WebRTC
 
Sipml5 to Elastix
Sipml5 to ElastixSipml5 to Elastix
Sipml5 to Elastix
 
WebRTC Synopsis
WebRTC SynopsisWebRTC Synopsis
WebRTC Synopsis
 
V2 d2013 jose l millan e iñaki baz - webrtc
V2 d2013   jose l millan e iñaki baz  - webrtcV2 d2013   jose l millan e iñaki baz  - webrtc
V2 d2013 jose l millan e iñaki baz - webrtc
 
WebRTC en tu web con OpenVidu
WebRTC en tu web con OpenViduWebRTC en tu web con OpenVidu
WebRTC en tu web con OpenVidu
 
OpenVidu Commitconf 2018
OpenVidu Commitconf 2018 OpenVidu Commitconf 2018
OpenVidu Commitconf 2018
 
Introducción a silverlight
Introducción a silverlightIntroducción a silverlight
Introducción a silverlight
 
Concepto de Streaming,webcasting,
Concepto de Streaming,webcasting,Concepto de Streaming,webcasting,
Concepto de Streaming,webcasting,
 
Concepto de streaming,webcasting y CMS
Concepto de streaming,webcasting y CMSConcepto de streaming,webcasting y CMS
Concepto de streaming,webcasting y CMS
 
Concepto de streaming
Concepto de streamingConcepto de streaming
Concepto de streaming
 
Autobuses de Madrid en tiempo real con Azure Relay
Autobuses de Madrid en tiempo real con Azure RelayAutobuses de Madrid en tiempo real con Azure Relay
Autobuses de Madrid en tiempo real con Azure Relay
 
2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdf2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdf
 
Unidad 10: La capa de aplicación
Unidad 10: La capa de aplicaciónUnidad 10: La capa de aplicación
Unidad 10: La capa de aplicación
 
Seguridad en VoIP - Hackelarre
Seguridad en VoIP - HackelarreSeguridad en VoIP - Hackelarre
Seguridad en VoIP - Hackelarre
 
Taller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboards
Taller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboardsTaller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboards
Taller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboards
 
ENSA_Module_8.pptx
ENSA_Module_8.pptxENSA_Module_8.pptx
ENSA_Module_8.pptx
 
Juegos html5
Juegos html5Juegos html5
Juegos html5
 
Webcast hyperv trabajando con discos de red
Webcast   hyperv trabajando con discos de redWebcast   hyperv trabajando con discos de red
Webcast hyperv trabajando con discos de red
 

WebRTC SIP

  • 1. World Wide SIP Iñaki Baz Castillo – XtraTelecom S.L.U. José Luis Millán – XtraTelecom S.L.U.
  • 2. World Wide SIP WebRTC Comunicación Multimedia en el Navegador
  • 3. World Wide SIP Estado del Arte ➔ Facebook & Skype ➔ Google Hangouts
  • 4. World Wide SIP Estado del Arte (II) ➔ Instalación ➔ Plugins ➔ Uso exclusivo en aplicaciones del proveedor
  • 5. World Wide SIP WebRTC Aplicaciones ➔ Help Desk ➔ Venta online ➔ Atención de clientes online ➔ Asistencia remota ➔ Redes sociales
  • 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
  • 16. World Wide SIP WebRTC Implementaciones ➔ Mozilla Firefox ➔ Google Chrome ➔ Safari ➔ IE
  • 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
  • 22. World Wide SIP SIP y WebRTC (III) ➔ ¿Implementan SIP los navegadores?
  • 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
  • 27. World Wide SIP JsSIP (IV) ➔ ¿Es un softphone?
  • 28. World Wide SIP JsSIP Funcionamiento ➔ 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...)
  • 34. World Wide SIP Otras Implementaciones ➔ SIPML5
  • 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
  • 37. World Wide SIP Otras Implementaciones ➔ Kamailio ➔ Asterisk
  • 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 !!!
  • 42. World Wide SIP Arquitectura Demo OverSIP SIP oversip.net Kamailio SIP proxy/registrar jssip.net JsSIP sip:ibc@aliax.net JsSIP sip:jmillan@jssip.net Kamailio SIP proxy/registrar aliax.net
  • 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?
  • 45. World Wide SIP Next Step (II)