JsSIP: SIP + WebRTC

2,850
-1

Published on

Iñaki Baz + José Luis Millán
Xtra Telecom S.L.U
VoIP2Day + ElastixWorld

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Es la mas divertida presentación que he visto en mi vida, Gracias Iñaki y José
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total Views
2,850
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
70
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

JsSIP: SIP + WebRTC

  1. 1. World Wide SIP Iñaki Baz Castillo – XtraTelecom S.L.U. José Luis Millán – XtraTelecom S.L.U.
  2. 2. WebRTCComunicación Multimedia en el Navegador World Wide SIP
  3. 3. Estado del Arte➔ Facebook & Skype➔ Google Hangouts World Wide SIP
  4. 4. Estado del Arte (II)➔ Instalación➔ Plugins➔ Uso exclusivo en aplicaciones del proveedor World Wide SIP
  5. 5. WebRTC Aplicaciones➔ Help Desk➔ Venta online➔ Atención de clientes online➔ Asistencia remota➔ Redes sociales World Wide SIP
  6. 6. World Wide SIP
  7. 7. WebRTCArquitectura World Wide SIP
  8. 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. 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. 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. 11. WebRTCEstablecimiento 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
  12. 12. World Wide SIP
  13. 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. 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. 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. 16. WebRTC Implementaciones➔ Mozilla Firefox➔ Google Chrome➔ Safari➔ IE World Wide SIP
  17. 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. 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 SIPThis specification defines a new WebSocket sub-protocol(as defined in section 1.9 in RFC6455) for transportingSIP messages between a WebSocket client and server [...] World Wide SIP
  19. 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. 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. 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. 22. SIP y WebRTC (III)➔ ¿Implementan SIP los navegadores? World Wide SIP
  23. 23. SIP y WebRTC (IV)➔ Entonces... ¿Cómo puede un navegador utilizar SIP? World Wide SIP
  24. 24. JsSIP➔ Librería SIP en JavaScript para aplicaciones web: ➔ http://www.jssip.net (próximamente) World Wide SIP
  25. 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. 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. 27. JsSIP (IV)➔ ¿Es un softphone? World Wide SIP
  28. 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. 29. JsSIP APIWorld Wide SIP
  30. 30. JsSIP API (II)World Wide SIP
  31. 31. JsSIPAPI (III)World Wide SIP
  32. 32. JsSIPAPI (IV)World Wide SIP
  33. 33. JsSIP API (V)World Wide SIP
  34. 34. Otras Implementaciones➔ SIPML5 World Wide SIP
  35. 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. 36. OverSIP➔ SIP Proxy con transporte WebSocket: ➔ http://oversip.net ➔ https://github.com/versatica/OverSIP World Wide SIP
  37. 37. Otras Implementaciones➔ Kamailio➔ Asterisk World Wide SIP
  38. 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. 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. 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
  41. 41. World Wide SIP
  42. 42. Arquitectura DemoKamailio 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. 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. 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. 45. Next Step (II) World Wide SIP
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×