janus a general purpose webrtc gateway
play

Janus: a general purpose WebRTC gateway Standardization Gateways - PowerPoint PPT Presentation

Janus L. Miniero Intro WebRTC Janus: a general purpose WebRTC gateway Standardization Gateways Requirements Janus Modules and APIs Lorenzo Miniero lorenzo@meetecho.com A few examples Next steps FOSDEM 2016 Real Time devroom 30 th


  1. Janus L. Miniero Intro WebRTC Janus: a general purpose WebRTC gateway Standardization Gateways Requirements Janus Modules and APIs Lorenzo Miniero lorenzo@meetecho.com A few examples Next steps FOSDEM 2016 Real Time devroom 30 th January 2016, Brussels

  2. Outline Janus L. Miniero 1 A brief introduction Intro 2 Some context WebRTC Standardization WebRTC and standardization activities Gateways Requirements Janus 3 Writing a WebRTC gateway from scratch Modules and APIs Programmable Real-time Media Components A few examples Next steps 4 Janus: a general purpose WebRTC gateway Modular architecture What is it used for today, and by whom? 5 Next steps

  3. Who am I? Janus • Someone not used to this weather! L. Miniero • From sunny Sorrento, Italy � Intro • Current activities WebRTC Standardization • Just got my Ph.D @ UniNA Gateways • Co-founder @ Meetecho Requirements Janus • Worked on real-time applications for a long time Modules and APIs A few examples • IETF participant Next steps • Several WGs • First time in IETF67 San Diego (2006) • Open source contributor • libbfcp, libmsrp, confiance, mediactrl, Asterisk, ... • Janus WebRTC gateway main author • Getting older but, unlike whisky, not getting any better • https://twitter.com/elminiero

  4. Christmas in Napoli! Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps

  5. Real-time media in browsers Janus • No standard solution! L. Miniero • No interoperability Intro • Plugins need to be installed anyway WebRTC Standardization WebRTC = Joint standardization efforts Gateways Requirements • Internet Engineering Task Force (IETF) Janus Modules and APIs • World Wide Web Consortium (W3C) A few examples Next steps • RTCWEB (IETF) • Real-Time Communication in WEB browsers WG • Defines protocols and formats to use • WEBRTC (W3C) • Web Real-Time Communications WG • Defines UI and API to access devices

  6. WebRTC reference architecture Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps

  7. Involving a gateway (and applications) Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps

  8. Involving different technologies as well Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps

  9. Do we really need a gateway? Janus • Several reasons for a YES, here L. Miniero • Relieve full-meshes (heavy on the client side) Intro • Leveraging widespread technologies (e.g., SIP WebRTC Standardization infrastructures) Gateways • Fixing things between implementations Requirements Janus Modules and APIs • Reason for a NO? A few examples Next steps • You won’t go beyond interaction among few users • You don’t want an infrastructure • You don’t care about legacy stuff “What is a WebRTC Gateway anyway?” • http://webrtchacks.com/webrtc-gw/

  10. Real-time Media Components Janus • Writing a gateway from scratch is a heavy task L. Miniero • Implementation of the WebRTC protocol suite Intro WebRTC • Bridge between “legacy” stuff (SIP , RTMP , etc.) and Standardization WebRTC Gateways Requirements • Needs to support both (WebRTC gateway) Janus Modules and APIs • What about statistics? A few examples Next steps • Reachability may be an issue • Programmable interface • Different applications/technologies, different requirements • Dynamic management of media flows and users • Something à la MEDIACTRL?

  11. The WebRTC protocol suite Janus • Signalling (well, sort of) and Negotiation L. Miniero • Javascript Session Establishment Protocol (JSEP) • Session Description Protocol (SDP) adaptation Intro • Connection Establishment and NAT Traversal WebRTC Standardization • Session Traversal Utilities for NAT (STUN) Gateways • Traversal Using Relay NAT (TURN) Requirements • Interactive Connectivity Establishment (ICE) Janus Modules and APIs • Media Transport and Control A few examples • Real-time Transport (and Control) Protocol (RTP/RTCP) Next steps • Secure Extensions to RTP (SRTP) • Datagram Transport Layer Security (DTLS) • Media Transport and Control • Opus audio codec (MTI, Mandatory-to-implement) • VP8 video codec (MTI candidate) • Generic Data • WebRTC Data Channels (SCTP)

  12. Janus: a general purpose WebRTC gateway Janus L. Miniero “In ancient Roman religion Intro and myth, Janus [..] is the WebRTC god of beginnings and Standardization Gateways transitions, and thereby of Requirements gates, doors, passages, Janus Modules and APIs endings and time. He is A few examples usually depicted as having Next steps two faces, since he looks to the future and to the past.” — http://en.wikipedia.org/wiki/Janus

  13. Janus: a general purpose WebRTC gateway Janus • A door between the communications past and future L. Miniero • Legacy technologies (the “past”) Intro • WebRTC (the “future”) WebRTC Standardization Janus Gateways Requirements General purpose, open source WebRTC gateway Janus Modules and APIs • https://github.com/meetecho/janus-gateway A few examples Next steps • Demos and documentation: https://janus.conf.meetecho.com

  14. Modular architecture Janus • The core only implements the WebRTC stack L. Miniero • JSEP/SDP , ICE, DTLS-SRTP , Data Channels, ... Intro • Modules for API over HTTP / WebSockets / RabbitMQ WebRTC Standardization • Application logic implemented in server side plugins Gateways Requirements • Users attach to plugins via the gateway core Janus • The gateway handles the WebRTC stuff Modules and APIs A few examples • Plugins route/manipulate the media/data Next steps • Some proof of concept plugins implemented • Echo Test • Streaming ( → Live events!) • Conferencing ( → Meetecho!) • SIP Gateway ( → “Legacy” SIP!) • ...

  15. Extensible Architecture and API Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps

  16. Extensible Architecture and API Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps

  17. Extensible Architecture and API Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps

  18. Extensible Architecture and API Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps

  19. Extensible Architecture and API Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps

  20. Extensible Architecture and API Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps

  21. Plugins as “bricks” Janus • Each plugin is a feature, not an application L. Miniero • Application can be composed out of different features Intro WebRTC • Features as “bricks” for a complex scenario Standardization Gateways Requirements • A few examples... Janus • Webinar with Q&A Modules and APIs A few examples • Video Room (screen) + Video Room (speakers) + Audio Next steps Bridge (questions) • Video communication in social networks • SIP plugin (calls) + Echo Test (diagnostics) + Voice Mail (messaging) • Social TV • Streaming (TV channel) + Video Room (interaction)

  22. Webinar with Q/A Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps

  23. Social TV Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps

  24. How do I... Janus • ... use Janus in my web app? L. Miniero • JavaScript library available ( janus.js ) Intro • https://janus.conf.meetecho.com/docs/JS WebRTC • Several demos available to start from Standardization Gateways • ... use Janus, but keeping my API? Requirements Janus • Wrap the Janus API on the server side Modules and APIs • https://janus.conf.meetecho.com/docs/rest A few examples Next steps • https://janus.conf.meetecho.com/docs/resources • Effective way to control what users can do • Also helps to orchestrate pool of Janus servers • ... do this or that? • https://janus.conf.meetecho.com/docs/FAQ • https://groups.google.com/forum/#!forum/meetecho- janus

  25. Anything wrong? Check the Admin API! Janus • Requests/response API to poll Janus L. Miniero • Query server capabilities Intro • Control some aspects (e.g., enable/disable debugging) WebRTC • Inspect handles and WebRTC “internals” Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps http://www.meetecho.com/blog/understanding-the-janus- admin-api/

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend