SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
World Wide SIP



          Iñaki Baz Castillo – XtraTelecom S.L.U.
           José Luis Millán – XtraTelecom S.L.U.
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
WebRTC
Establecimiento de Sesión Multimedia (II)

➔   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



                         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

Kamailio SIP proxy/registrar      Kamailio SIP proxy/registrar
         aliax.net                         jssip.net



                          OverSIP SIP
                          oversip.net




           JsSIP                                 JsSIP
     sip:ibc@aliax.net                  sip:jmillan@jssip.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)




  World Wide SIP

Más contenido relacionado

La actualidad más candente

Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network InterfacesKernel TLV
 
Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with PrometheusShiao-An Yuan
 
Kamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesKamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesPaolo Visintin
 
Introduction to MPI
Introduction to MPIIntroduction to MPI
Introduction to MPIyaman dua
 
Fantastic Buildpacks and Where to Find Them
Fantastic Buildpacks and Where to Find ThemFantastic Buildpacks and Where to Find Them
Fantastic Buildpacks and Where to Find ThemJoe Kutner
 
Session Initiation Protocol - In depth analysis
Session Initiation Protocol - In depth analysisSession Initiation Protocol - In depth analysis
Session Initiation Protocol - In depth analysischinmaypadhye1985
 
Scaling Asterisk with Kamailio
Scaling Asterisk with KamailioScaling Asterisk with Kamailio
Scaling Asterisk with KamailioFred Posner
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceMoises Silva
 
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...Tokuhiro Matsuno
 
Google Authenticator, possible attacks and prevention
Google Authenticator, possible attacks and preventionGoogle Authenticator, possible attacks and prevention
Google Authenticator, possible attacks and preventionBoštjan Cigan
 
DNS Security
DNS SecurityDNS Security
DNS Securityinbroker
 
Monitoring MongoDB Atlas with Datadog
Monitoring MongoDB Atlas with DatadogMonitoring MongoDB Atlas with Datadog
Monitoring MongoDB Atlas with DatadogMongoDB
 
SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingSIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingHossein Yavari
 
Network Address Translation (NAT)
Network Address Translation (NAT)Network Address Translation (NAT)
Network Address Translation (NAT)Joud Khattab
 
Slides du meetup devops aix-marseille d'ocotbre 2023
Slides du meetup devops aix-marseille d'ocotbre 2023Slides du meetup devops aix-marseille d'ocotbre 2023
Slides du meetup devops aix-marseille d'ocotbre 2023Frederic Leger
 

La actualidad más candente (20)

Dns
DnsDns
Dns
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network Interfaces
 
Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with Prometheus
 
WebRTC on Mobile
WebRTC on MobileWebRTC on Mobile
WebRTC on Mobile
 
Kamailio with Docker and Kubernetes
Kamailio with Docker and KubernetesKamailio with Docker and Kubernetes
Kamailio with Docker and Kubernetes
 
Introduction to MPI
Introduction to MPIIntroduction to MPI
Introduction to MPI
 
Fantastic Buildpacks and Where to Find Them
Fantastic Buildpacks and Where to Find ThemFantastic Buildpacks and Where to Find Them
Fantastic Buildpacks and Where to Find Them
 
Session Initiation Protocol - In depth analysis
Session Initiation Protocol - In depth analysisSession Initiation Protocol - In depth analysis
Session Initiation Protocol - In depth analysis
 
Scaling Asterisk with Kamailio
Scaling Asterisk with KamailioScaling Asterisk with Kamailio
Scaling Asterisk with Kamailio
 
Aidl service
Aidl serviceAidl service
Aidl service
 
Scaling FreeSWITCH Performance
Scaling FreeSWITCH PerformanceScaling FreeSWITCH Performance
Scaling FreeSWITCH Performance
 
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
promgen - prometheus managemnet tool / simpleclient_java hacks @ Prometheus c...
 
Google Authenticator, possible attacks and prevention
Google Authenticator, possible attacks and preventionGoogle Authenticator, possible attacks and prevention
Google Authenticator, possible attacks and prevention
 
DPDK In Depth
DPDK In DepthDPDK In Depth
DPDK In Depth
 
DNS Security
DNS SecurityDNS Security
DNS Security
 
Monitoring MongoDB Atlas with Datadog
Monitoring MongoDB Atlas with DatadogMonitoring MongoDB Atlas with Datadog
Monitoring MongoDB Atlas with Datadog
 
SIPREC RTPEngine Media Forking
SIPREC RTPEngine Media ForkingSIPREC RTPEngine Media Forking
SIPREC RTPEngine Media Forking
 
Network Address Translation (NAT)
Network Address Translation (NAT)Network Address Translation (NAT)
Network Address Translation (NAT)
 
Protocol Buffers
Protocol BuffersProtocol Buffers
Protocol Buffers
 
Slides du meetup devops aix-marseille d'ocotbre 2023
Slides du meetup devops aix-marseille d'ocotbre 2023Slides du meetup devops aix-marseille d'ocotbre 2023
Slides du meetup devops aix-marseille d'ocotbre 2023
 

Similar a JsSIP: SIP + WebRTC

JsSIP: SIP + WebRTC (el futuro está aquí)
JsSIP: SIP + WebRTC (el futuro está aquí)JsSIP: SIP + WebRTC (el futuro está aquí)
JsSIP: SIP + WebRTC (el futuro está aquí)OpenDireito
 
voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...
voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...
voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...VOIP2DAY
 
[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
 
Sipml5 to Elastix
Sipml5 to ElastixSipml5 to Elastix
Sipml5 to Elastixnavaismo
 
Webinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisWebinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisQuobis
 
[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
 
Si sólo ves un webphone no entiendes WebRTC
Si sólo ves un webphone no entiendes WebRTCSi sólo ves un webphone no entiendes WebRTC
Si sólo ves un webphone no entiendes WebRTCPaloSanto Solutions
 
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
 
[VoIP2Day 2013] Si sólo ves un webphone no entiendes WebRTC
[VoIP2Day 2013] Si sólo ves un webphone no entiendes WebRTC[VoIP2Day 2013] Si sólo ves un webphone no entiendes WebRTC
[VoIP2Day 2013] Si sólo ves un webphone no entiendes WebRTCIñaki Baz Castillo
 
Seguridad en VoIP - Hackelarre
Seguridad en VoIP - HackelarreSeguridad en VoIP - Hackelarre
Seguridad en VoIP - HackelarrePablo Garaizar
 
Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...
Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...
Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...Internet Security Auditors
 
Introducción a silverlight
Introducción a silverlightIntroducción a silverlight
Introducción a silverlightricardomeanaG9
 
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
 
Soluciones SIP Carrier Class con OpenSIPS
Soluciones SIP Carrier Class con OpenSIPSSoluciones SIP Carrier Class con OpenSIPS
Soluciones SIP Carrier Class con OpenSIPSAlejandro Rios Peña
 
2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdf2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdfCarlosDavidMontellan
 

Similar a JsSIP: SIP + WebRTC (20)

JsSIP: SIP + WebRTC (el futuro está aquí)
JsSIP: SIP + WebRTC (el futuro está aquí)JsSIP: SIP + WebRTC (el futuro está aquí)
JsSIP: SIP + WebRTC (el futuro está aquí)
 
voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...
voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...
voip2day 2012 - Js sip sip + webrtc (el futuro ya esta aqui) by iniaki baz y ...
 
World Wide SIP
World Wide SIPWorld Wide SIP
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)
 
Sipml5 to Elastix
Sipml5 to ElastixSipml5 to Elastix
Sipml5 to Elastix
 
SIPML5toElastix
SIPML5toElastixSIPML5toElastix
SIPML5toElastix
 
Webinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - QuobisWebinar WebRTC y HTML5 (spanish) - Quobis
Webinar WebRTC y HTML5 (spanish) - Quobis
 
[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
 
Si sólo ves un webphone no entiendes WebRTC
Si sólo ves un webphone no entiendes WebRTCSi sólo ves un webphone no entiendes WebRTC
Si sólo ves un webphone no entiendes WebRTC
 
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
 
[VoIP2Day 2013] Si sólo ves un webphone no entiendes WebRTC
[VoIP2Day 2013] Si sólo ves un webphone no entiendes WebRTC[VoIP2Day 2013] Si sólo ves un webphone no entiendes WebRTC
[VoIP2Day 2013] Si sólo ves un webphone no entiendes WebRTC
 
Seguridad en VoIP - Hackelarre
Seguridad en VoIP - HackelarreSeguridad en VoIP - Hackelarre
Seguridad en VoIP - Hackelarre
 
Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...
Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...
Seguridad en Redes Convergentes: Seguridad en Voz sobre IP (VoIP). White Hack...
 
Introducción a silverlight
Introducción a silverlightIntroducción a silverlight
Introducción a silverlight
 
Seguridad en VoIP
Seguridad en VoIPSeguridad en VoIP
Seguridad en VoIP
 
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
 
Soluciones SIP Carrier Class con OpenSIPS
Soluciones SIP Carrier Class con OpenSIPSSoluciones SIP Carrier Class con OpenSIPS
Soluciones SIP Carrier Class con OpenSIPS
 
2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdf2. Revision de Tecnologias Web.pdf
2. Revision de Tecnologias Web.pdf
 

Más de PaloSanto Solutions

Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...PaloSanto Solutions
 
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?PaloSanto Solutions
 
Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...PaloSanto Solutions
 
Queuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadasQueuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadasPaloSanto Solutions
 
La evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadasLa evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadasPaloSanto Solutions
 
Integrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyXIntegrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyXPaloSanto Solutions
 
Usando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTUsando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTPaloSanto Solutions
 
Todo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBXTodo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBXPaloSanto Solutions
 
Gestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMSGestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMSPaloSanto Solutions
 
Escalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIPEscalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIPPaloSanto Solutions
 
Elastix unified communications server cookbook
Elastix unified communications server cookbookElastix unified communications server cookbook
Elastix unified communications server cookbookPaloSanto Solutions
 
Seguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detalladoSeguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detalladoPaloSanto Solutions
 
Dynamic calls with Text To Speech
Dynamic calls with Text To SpeechDynamic calls with Text To Speech
Dynamic calls with Text To SpeechPaloSanto Solutions
 
Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)PaloSanto Solutions
 
Building a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsBuilding a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsPaloSanto Solutions
 
Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia PaloSanto Solutions
 
Módulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de ElastixMódulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de ElastixPaloSanto Solutions
 

Más de PaloSanto Solutions (20)

Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
 
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
 
Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...
 
Queuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadasQueuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadas
 
La evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadasLa evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadas
 
WebRTC … ¡vamos a discar!
WebRTC … ¡vamos a discar!WebRTC … ¡vamos a discar!
WebRTC … ¡vamos a discar!
 
Integrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyXIntegrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyX
 
Usando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTUsando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MT
 
Todo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBXTodo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBX
 
Gestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMSGestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMS
 
Escalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIPEscalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIP
 
Elastix unified communications server cookbook
Elastix unified communications server cookbookElastix unified communications server cookbook
Elastix unified communications server cookbook
 
Seguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detalladoSeguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detallado
 
Dynamic calls with Text To Speech
Dynamic calls with Text To SpeechDynamic calls with Text To Speech
Dynamic calls with Text To Speech
 
Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)
 
Building a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsBuilding a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communications
 
Asterisk: the future is at REST
Asterisk: the future is at RESTAsterisk: the future is at REST
Asterisk: the future is at REST
 
Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia
 
Voicemail Avanzado
Voicemail AvanzadoVoicemail Avanzado
Voicemail Avanzado
 
Módulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de ElastixMódulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de Elastix
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 

Último (11)

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 

JsSIP: SIP + WebRTC

  • 1. World Wide SIP Iñaki Baz Castillo – XtraTelecom S.L.U. José Luis Millán – XtraTelecom S.L.U.
  • 2. WebRTC Comunicación Multimedia en el Navegador World Wide SIP
  • 3. Estado del Arte ➔ Facebook & Skype ➔ Google Hangouts World Wide SIP
  • 4. Estado del Arte (II) ➔ Instalación ➔ Plugins ➔ Uso exclusivo en aplicaciones del proveedor World Wide SIP
  • 5. WebRTC Aplicaciones ➔ Help Desk ➔ Venta online ➔ Atención de clientes online ➔ Asistencia remota ➔ Redes sociales World Wide SIP
  • 8. WebRTC Media ➔ Códecs ➔ Narrowband audio: G.711 ➔ Wideband audio: Opus ➔ Vídeo: Debate entre VP8 y H.264 AVC World Wide SIP
  • 9. 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
  • 10. 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
  • 11. WebRTC Establecimiento de Sesión Multimedia (II) ➔ 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 World Wide SIP
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. WebRTC Implementaciones ➔ Mozilla Firefox ➔ Google Chrome ➔ Safari ➔ IE World Wide SIP
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. SIP y WebRTC (III) ➔ ¿Implementan SIP los navegadores? World Wide SIP
  • 23. SIP y WebRTC (IV) ➔ Entonces... ¿Cómo puede un navegador utilizar SIP? World Wide SIP
  • 24. JsSIP ➔ Librería SIP en JavaScript para aplicaciones web: ➔ http://www.jssip.net (próximamente) World Wide SIP
  • 25. 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
  • 26. 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
  • 27. JsSIP (IV) ➔ ¿Es un softphone? World Wide SIP
  • 28. 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
  • 29. JsSIP API World Wide SIP
  • 34. Otras Implementaciones ➔ SIPML5 World Wide SIP
  • 35. 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
  • 36. OverSIP ➔ SIP Proxy con transporte WebSocket: ➔ http://oversip.net ➔ https://github.com/versatica/OverSIP World Wide SIP
  • 37. Otras Implementaciones ➔ Kamailio ➔ Asterisk World Wide SIP
  • 38. 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
  • 39. 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
  • 40. 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
  • 42. Arquitectura Demo Kamailio SIP proxy/registrar Kamailio SIP proxy/registrar aliax.net jssip.net OverSIP SIP oversip.net JsSIP JsSIP sip:ibc@aliax.net sip:jmillan@jssip.net World Wide SIP
  • 43. 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
  • 44. 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
  • 45. Next Step (II) World Wide SIP