Your SlideShare is downloading. ×
JsSIP: SIP + WebRTC
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

JsSIP: SIP + WebRTC

2,310

Published on

Iñaki Baz + José Luis Millán …

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,310
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
64
Comments
1
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. World Wide SIP Iñaki Baz Castillo – XtraTelecom S.L.U. José Luis Millán – XtraTelecom S.L.U.
  • 2. WebRTCComunicació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
  • 6. World Wide SIP
  • 7. WebRTCArquitectura 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. 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. 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 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. 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 APIWorld Wide SIP
  • 30. JsSIP API (II)World Wide SIP
  • 31. JsSIPAPI (III)World Wide SIP
  • 32. JsSIPAPI (IV)World Wide SIP
  • 33. JsSIP API (V)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
  • 41. World Wide SIP
  • 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. 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

×