Your SlideShare is downloading. ×
[4K Conf 2012] SIP y WebRTC para Seres Humanos (tm)
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

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

1,230
views

Published on

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

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,230
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
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. SIP y WebRTCpara Seres Humanos (TM) Iñaki Baz Castillo <ibc@aliax.net> Versatica
  • 2. WebRTCComunicación audio/vídeo en elnavegador nativa (sin plugins)API JavaScript para acceso a losdispositivos multimedia SRTP/DATA
  • 3. ¿Estás seguro?
  • 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. WebRTC – AplicacionesAudio/vídeo en redes socialesHelp DeskVenta onlineAtención de clientes onlineAsistencia remotaPBX corporativa
  • 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. WebRTC – MediaCódecs Narrowband audio: G.711 Wideband audio: Opus Vídeo: Debate entre VP8 y H.264 AVC
  • 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. 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. WebRTC – Media IV (SDP) IP:puerto de escuchaAUDIO CODECS IP:puerto de escuchaVIDEO CODECS
  • 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. WebRTC – Funcionamiento SDP OFFER / ANSWERHTML/CSS/JavaScript HTML/CSS/JavaScript SRTP/DATA
  • 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. 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. WebRTC – Smartphones
  • 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. WebRTC – ImplementacionesNavegadores Chrome (ok pero beta) Firefox (muy muy beta) Safari (¿?) IE (¿?)
  • 18. WebRTC – Implementaciones (II) Servidores Asterisk 11 (beta)
  • 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. 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. 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. SIP over WebSocket II¿Necesito un gateway para quemi navegador hable SIP? O sea... NO
  • 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. 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. JsSIPLibrería SIP en JavaScript paraaplicaciones web: http://jssip.net https://github.com/versatica/JsSIP
  • 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. 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. JsSIP IV¿Es un softphone?
  • 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. OverSIPPrimer proxy SIP con WebSocket: http://oversip.net https://github.com/versatica/OverSIP
  • 31. OverSIP IIProxy SIP con transportes UDP,TCP, TLS y WebSocketDiseño escalable y eficienteProgramable en RubyOutbound Edge Proxy (RFC5626)
  • 32. Otros servidores SIP WebSocket Kamailio Asterisk OfficeSIP
  • 33. JsSIP + OverSIPComunicación multimedia entrenavegadores utilizando SIP comoprotocolo de señalizaciónComunicación SIP entrenavegadores y dispositivos SIPconvencionales
  • 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. 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. 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. 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. Muchas GraciasGracias a los asistentes...y a la organización del 4KConference¿Dudas? ¿Preguntas? @ibc_tw