Janus: a General Purpose Webrtc Gateway Gateways Requirements

Janus: a General Purpose Webrtc Gateway Gateways Requirements

Janus L. Miniero Intro WebRTC Standardization Janus: a general purpose WebRTC gateway Gateways Requirements Janus Modules and APIs A few examples Lorenzo Miniero [email protected] Next steps FOSDEM 2016 Real Time devroom 30th January 2016, Brussels Outline Janus L. Miniero 1 A brief introduction Intro WebRTC 2 Some context Standardization Gateways WebRTC and standardization activities Requirements Janus 3 Writing a WebRTC gateway from scratch Modules and APIs A few examples Programmable Real-time Media Components Next steps 4 Janus: a general purpose WebRTC gateway Modular architecture What is it used for today, and by whom? 5 Next steps Who am I? Janus • Someone not used to this weather! L. Miniero • From sunny Sorrento, Italy Intro , WebRTC • Current activities Standardization • Just got my Ph.D @ UniNA Gateways Requirements • Co-founder @ Meetecho Janus Modules and APIs • Worked on real-time applications for a long time 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 Christmas in Napoli! Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps Real-time media in browsers Janus • No standard solution! L. Miniero • No interoperability Intro • Plugins need to be installed anyway WebRTC Standardization Gateways WebRTC = Joint standardization efforts Requirements Janus • Internet Engineering Task Force (IETF) Modules and APIs A few examples • World Wide Web Consortium (W3C) 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 WebRTC reference architecture Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps Involving a gateway (and applications) Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps Involving different technologies as well Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps Do we really need a gateway? Janus L. Miniero • Several reasons for a YES, here Intro • Relieve full-meshes (heavy on the client side) WebRTC • Leveraging widespread technologies (e.g., SIP Standardization infrastructures) Gateways Requirements • Fixing things between implementations Janus Modules and APIs A few examples • Reason for a NO? 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/ Real-time Media Components Janus L. Miniero • Writing a gateway from scratch is a heavy task Intro • Implementation of the WebRTC protocol suite WebRTC Standardization • Bridge between “legacy” stuff (SIP, RTMP, etc.) and Gateways WebRTC Requirements Janus • Needs to support both (WebRTC gateway) Modules and APIs A few examples • What about statistics? Next steps • Reachability may be an issue • Programmable interface • Different applications/technologies, different requirements • Dynamic management of media flows and users • Something à la MEDIACTRL? The WebRTC protocol suite Janus • Signalling (well, sort of) and Negotiation L. Miniero • Javascript Session Establishment Protocol (JSEP) Intro • Session Description Protocol (SDP) adaptation WebRTC • Connection Establishment and NAT Traversal Standardization • Session Traversal Utilities for NAT (STUN) Gateways Requirements • Traversal Using Relay NAT (TURN) Janus • Interactive Connectivity Establishment (ICE) Modules and APIs A few examples • Media Transport and Control Next steps • Real-time Transport (and Control) Protocol (RTP/RTCP) • 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) Janus: a general purpose WebRTC gateway Janus L. Miniero Intro “In ancient Roman religion WebRTC and myth, Janus [..] is the Standardization god of beginnings and Gateways Requirements transitions, and thereby of Janus gates, doors, passages, Modules and APIs A few examples endings and time. He is Next steps usually depicted as having two faces, since he looks to the future and to the past.” — http://en.wikipedia.org/wiki/Janus 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 Gateways Janus Requirements Janus General purpose, open source WebRTC gateway Modules and APIs A few examples • https://github.com/meetecho/janus-gateway Next steps • Demos and documentation: https://janus.conf.meetecho.com Modular architecture Janus L. Miniero • The core only implements the WebRTC stack • Intro JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ... WebRTC • Modules for API over HTTP / WebSockets / RabbitMQ Standardization Gateways • Application logic implemented in server side plugins Requirements • Users attach to plugins via the gateway core Janus Modules and APIs • The gateway handles the WebRTC stuff A few examples Next steps • Plugins route/manipulate the media/data • Some proof of concept plugins implemented • Echo Test • Streaming (! Live events!) • Conferencing (! Meetecho!) • SIP Gateway (! “Legacy” SIP!) • ... Extensible Architecture and API Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps Extensible Architecture and API Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps Extensible Architecture and API Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps Extensible Architecture and API Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps Extensible Architecture and API Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps Extensible Architecture and API Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps Plugins as “bricks” Janus L. Miniero • Each plugin is a feature, not an application Intro • Application can be composed out of different features WebRTC Standardization • Features as “bricks” for a complex scenario Gateways Requirements • A few examples... Janus Modules and APIs • A few examples Webinar with Q&A Next steps • Video Room (screen) + Video Room (speakers) + Audio Bridge (questions) • Video communication in social networks • SIP plugin (calls) + Echo Test (diagnostics) + Voice Mail (messaging) • Social TV • Streaming (TV channel) + Video Room (interaction) Webinar with Q/A Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps Social TV Janus L. Miniero Intro WebRTC Standardization Gateways Requirements Janus Modules and APIs A few examples Next steps 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 Standardization • Several demos available to start from Gateways Requirements • ... use Janus, but keeping my API? Janus • Wrap the Janus API on the server side Modules and APIs A few examples • https://janus.conf.meetecho.com/docs/rest 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 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 Standardization • Inspect handles and WebRTC “internals” Gateways Requirements Janus Modules and APIs A few examples Next steps http://www.meetecho.com/blog/understanding-the-janus- admin-api/ What is Janus used for today, and by whom? Janus • We use it ourselves for many things (obviously) L. Miniero • Web conferencing and Webinars Intro • WebRTC-to-SIP gateway WebRTC • Standardization Streaming of live events (e.g., IETF meetings) Gateways • Many folks/companies also using it in creative ways! Requirements Janus • E-learning Modules and APIs • A few examples Coworking Next steps • TV broadcasting and Social TV • Home automation • Internet of Things • Mobile devices, Raspberry Pis, drones, etc. • New third-party tools are starting to come out • https://janus.conf.meetecho.com/docs/resources • New plugins for ad-hoc requirements • Server-side API wrappers (node.js, .NET, ...) “Director” room @ IETF meetings Janus L. Miniero Completely WebRTC-based media streams Intro • Slides as a video feed from the beamer WebRTC • Static video feed from the room Standardization Gateways • Dynamic video feeds for remote speakers Requirements Janus Modules and APIs A few examples Next steps Meetecho: IETF meeting example Janus L. Miniero Intro WebRTC Standardization Gateways Requirements

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    41 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us