[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)

1,470
-1

Published on

My presentation about SIP and WebRTC in 4K Conf Bogota 2012 (Colombia).

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

No notes for slide

[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)

  1. 1. SIP y WebRTCpara Seres Humanos (TM) Iñaki Baz Castillo <ibc@aliax.net> Versatica
  2. 2. WebRTCComunicación audio/vídeo en elnavegador nativa (sin plugins)API JavaScript para acceso a losdispositivos multimedia SRTP/DATA
  3. 3. ¿Estás seguro?
  4. 4. WebRTC – EstándaresIETF RTCWeb WG Especificaciones multimedia y de seguridad en WebRTCW3C WebRTC WG Define un set de APIs ECMAScript para manejar el stack WebRTC en aplicaciones webEstado En pleno desarrollo de especificaciones e implementaciones (“beta” 100%)
  5. 5. WebRTC – AplicacionesAudio/vídeo en redes socialesHelp DeskVenta onlineAtención de clientes onlineAsistencia remotaPBX corporativa
  6. 6. WebRTC – ArquitecturaAplicación web (HTML + CSS +JavaScript) Innovación instantáneaStack WebRTC en el navegador Manejado vía API JavaScript por la aplicación webAudio/vídeo RTP nativo
  7. 7. WebRTC – MediaCódecs Narrowband audio: G.711 Wideband audio: Opus Vídeo: Debate entre VP8 y H.264 AVC
  8. 8. WebRTC – Media IISTUN / ICE (RFC 5389 y RFC 5245) La panacea para el NAT Autodescubrimiento de IP pública(s) Comprobación de conexión entre peers y verificación (garantía de que enviamos nuestro media al peer con el que hemos negociado la sesión) El media va directo entre navegadores a través de la mejor rutaSRTP-DTLS (RFC 3711 y RFC 6347) SRTP: RTP cifrado (clave simétrica) sobre DTLS DTLS: Capa de cifrado sobre UDP (similar a TLS sobre TCP) Se usa para negociar la clave simétrica que se usará en SRTPTURN (RFC 5766): Traversal Using Relays around NAT Túnel RTP para casos de NAT insalvables
  9. 9. WebRTC – Media IIISDP (RFC 3264): Session Description Protocol Se usa en SIP y XMPP (Jingle) Indica IP y puerto de escucha Selección de codecs de audio/vídeo SSRC: diferentes streams sobre el mismo flujo RTP (ej: multi audio/vídeo conferencia) Profile SAVPF (no es común en SIP...) ¿Problema de interoperabilidad? Sí
  10. 10. WebRTC – Media IV (SDP) IP:puerto de escuchaAUDIO CODECS IP:puerto de escuchaVIDEO CODECS
  11. 11. WebRTC – DispositivosEl stack WebRTC del navegadortiene acceso al micrófono ywebcam Se solicita autorización al usuario ¿Os imagináis el riesgo si no fuese así?
  12. 12. WebRTC – Funcionamiento SDP OFFER / ANSWERHTML/CSS/JavaScript HTML/CSS/JavaScript SRTP/DATA
  13. 13. WebRTC – Funcionamiento IIVisitamos una web con nuestronavegadorLa web incluye código JavaScript queusa el API WebRTCEl usuario quiere iniciar una sesiónde media (o recibe una invitación)con otro usuario web (u otro servicioWebRTC)
  14. 14. WebRTC – Funcionamiento IIIJavaScript solicita al stack WebRTC recursos de audio/vídeoEl stack WebRTC devuelve un SDP a JavaScriptLa aplicación web envía el SDP el peer (¿cómo? másadelante)Mismo proceso en el peerComienza STUN / ICE, se verifican los peers y se estableceun camino para el mediaSobre ese camino se envía el SRTP con audio/vídeo
  15. 15. WebRTC – Smartphones
  16. 16. WebRTC – Smartphones IIEspeculando... Android y Firefox OS incluirán un stack WebRTC ¿iOS? ni idea... Las apps nativas podrán hacer uso de él
  17. 17. WebRTC – ImplementacionesNavegadores Chrome (ok pero beta) Firefox (muy muy beta) Safari (¿?) IE (¿?)
  18. 18. WebRTC – Implementaciones (II) Servidores Asterisk 11 (beta)
  19. 19. WebRTC – Señalización¿Cómo hago llegar la oferta SDP al peer? WebRTC no define el mecanismo de intercambio de SDP (“up to the web developer”)Estamos en un navegador, ¿opciones? Enviar el SDP en un HTTP POST (con AJAX) El peer hace HTTP long polling al servidor web para consultar nuevas invitaciones Usar Flash para entregar/recibir el SDP (puaj...) HTTP Comet (conexión TCP “persistente”...) WebSocket
  20. 20. WebSocketWebSocket (RFC 6455)Transporte orientado a conexiónsobre TCP/TLSComunicación bidireccional entrenavegador web y servidor web No más “HTTP long polling” o “Comet”
  21. 21. SIP over WebSocket Nuevo transporte para SIP (junto a UDP, TCP y SCTP) draft-ietf-sipcore-sip-websocket The WebSocket Protocol as a Transport for SIPThis specification defines a new WebSocket sub-protocol (asdefined in section 1.9 in RFC6455) for transporting SIPmessages between a WebSocket client and server [...]
  22. 22. SIP over WebSocket II¿Necesito un gateway para quemi navegador hable SIP? O sea... NO
  23. 23. SIP over WebSocket IIIAlternativa como mecanismo deseñalización en WebRTCProtocolo maduro y ampliamenteimplementadoGracias a SIP sobre WebSocket esposible la comunicación SIP entrenavegadores así como entrenavegadores y dispositivos SIP
  24. 24. SIP over WebSocket IV¿Qué nos aporta? Permite conectar navegadores web a infraestructura SIP existente¡OJO! Estamos hablando sólo de señalización
  25. 25. JsSIPLibrería SIP en JavaScript paraaplicaciones web: http://jssip.net https://github.com/versatica/JsSIP
  26. 26. JsSIP IIJsSIP se descarga junto a la página web Análogo a como se hace con jQueryAPI para crear clientes SIP (User Agents)Funcionalidades: Llamadas de audio/vídeo Mensajería instantánea Presencia Subscripciones (BLF)
  27. 27. JsSIP IIIManeja el stack WebRTC delnavegador a través del API WebRTC: Acceso a dispositivos multimedia Gestión de audio/vídeoObtiene el SDP generado por el stackWebRTC y se lo envía al remotousando SIP
  28. 28. JsSIP IV¿Es un softphone?
  29. 29. Servidor SIP WebSocket¿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
  30. 30. OverSIPPrimer proxy SIP con WebSocket: http://oversip.net https://github.com/versatica/OverSIP
  31. 31. OverSIP IIProxy SIP con transportes UDP,TCP, TLS y WebSocketDiseño escalable y eficienteProgramable en RubyOutbound Edge Proxy (RFC5626)
  32. 32. Otros servidores SIP WebSocket Kamailio Asterisk OfficeSIP
  33. 33. JsSIP + OverSIPComunicación multimedia entrenavegadores utilizando SIP comoprotocolo de señalizaciónComunicación SIP entrenavegadores y dispositivos SIPconvencionales
  34. 34. JsSIP + OverSIP IITelefonía SIP en TU web: Comunicación entre usuarios web y otros dispositivos SIP Integración PBX y PSTN Telefonía en tu intranet Convergencia de CRM/ERP y telefonía
  35. 35. JsSIP + OverSIP IIIDispositivo SIP en el navegador: ¡ Sin instalación de software ! Actualización de versiones centralizada ¡¡¡ Pulsa F5 !!! Configuración y provisión centralizada
  36. 36. Demo – Arquitectura Kamailio SIP proxy/registrar sip:jssip.net OverSIP SIPServidor Web Apache Outbound Proxy http://tryit.jssip.net JsSIP JsSIP sip:ibc@jssip.net sip:saghul@jssip.net
  37. 37. Convergencia SIP y WebRTCSeñalización resuelta: draft-ietf-sipcore-sip-websocketMedia NO resuelta: PBX, Media Servers y teléfonos SIP actuales requieren adaptarse para soportar SDP con perfil SAVPF (SRTP-DTLS, ICE, SSRC, etc...)
  38. 38. Muchas GraciasGracias a los asistentes...y a la organización del 4KConference¿Dudas? ¿Preguntas? @ibc_tw

×