Janus: back to the future of WebRTC History IETF WebRTC Janus - - PowerPoint PPT Presentation

janus back to the future of webrtc
SMART_READER_LITE
LIVE PREVIEW

Janus: back to the future of WebRTC History IETF WebRTC Janus - - PowerPoint PPT Presentation

TF-WebRTC L. Miniero Meetecho Janus: back to the future of WebRTC History IETF WebRTC Janus Gateways Lorenzo Miniero Requirements Architecture lorenzo@meetecho.com Next steps 1 st TF-WebRTC meeting 15 th December 2014, Paris Outline


slide-1
SLIDE 1

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Janus: back to the future of WebRTC

Lorenzo Miniero lorenzo@meetecho.com 1st TF-WebRTC meeting 15th December 2014, Paris

slide-2
SLIDE 2

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Outline

1 A brief introduction 2 A stroll through time

IETF activities and “running code” WebRTC related efforts

3 Janus: a general purpose WebRTC gateway

WebRTC and gateways Programmable real-time media components A modular and extensible architecture

4 Next steps

slide-3
SLIDE 3

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Who am I?

  • Someone not used to this cold!
  • From sunny Sorrento, Italy
  • Current activities
  • Ph.D Student @ UniNA
  • Co-founder @ Meetecho
  • Worked on real-time applications for a long time
  • IETF participant
  • 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/delusionsmaster
slide-4
SLIDE 4

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

What is Meetecho?

  • A startup focused on real-time multimedia applications
  • Academic spin-off of the University of Napoli Federico II
  • Official tool for remote participation @ IETF
  • At first born to turn research into a product
  • Efforts on XCON (Centralized Conferencing) and

MEDIACTRL (Media Server Control)

  • Meetecho Web Conferencing and Collaboration
  • Widened the scope to cover multimedia in general
  • How is it pronounced, you say??
  • Good question!
  • https://www.youtube.com/watch?v=TkgDOMSv9PE
slide-5
SLIDE 5

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

A few more words on Meetecho

Meetecho comes in different flavours

  • Interactive Webinar (IETF-style)
  • Web conference
  • UCC (Unified Communication and Collaboration)

What’s in there? Enjoy watching our teaser spot on: http://www.meetecho.com

WebRTC audio/video

Jabber chat

Slides

Etherpad support

Application/desktop sharing

Whiteboard

Polling

Moderation

Mobile apps

IPv6 support

slide-6
SLIDE 6

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

First steps: IETF67 @ San Diego (2006)

Don’t try this at home!

slide-7
SLIDE 7

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

First steps: IETF67 @ San Diego (2006)

Live demo of the BFCP/CCMP protocols in action (XCON) Open source project: http://confiance.sourceforge.net

slide-8
SLIDE 8

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Binary Floor Control Protocol (BFCP)

Open source project: http://sourceforge.net/projects/libbfcp/

slide-9
SLIDE 9

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Centralized Conferencing Manipulation Protocol (CCMP)

Authors: CCMP http://tools.ietf.org/html/rfc6503 and examples http://tools.ietf.org/html/rfc6504

slide-10
SLIDE 10

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

XCON/DCON: Stand-alone client

slide-11
SLIDE 11

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

One step further: from XCON to MEDIACTRL

Open source project: http://mediactrl.sourceforge.net

slide-12
SLIDE 12

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

MEDIACTRL: programming media control

slide-13
SLIDE 13

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

MEDIACTRL: programming media control

slide-14
SLIDE 14

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

MEDIACTRL: programming media control

slide-15
SLIDE 15

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Prototype and demos @ IETF (“running code”)

slide-16
SLIDE 16

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Prototype and demos @ IETF (“running code”)

slide-17
SLIDE 17

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Prototype and demos @ IETF (“running code”)

slide-18
SLIDE 18

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

More scalability: Media Resource Brokering

Design Team: IVR http://tools.ietf.org/html/rfc6231 and Mixer http://tools.ietf.org/html/rfc6505 Authors: MRB http://tools.ietf.org/html/rfc6917 and examples http://tools.ietf.org/html/rfc7058

slide-19
SLIDE 19

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

First WebRTC steps

  • RTCWEB BoF in IETF 80 (March 2011, Prague)
  • First Meetecho RPS “experiment” at the same meeting
  • Meetecho already RTP- and web-based for a while
  • RTP Java applet implemented for the purpose
  • Other protocols (SIP

, BFCP , XMPP , etc.) wrapped by HTTP

  • Started working on WebRTC as soon as it came out
  • https://groups.google.com/forum/#!topic/discuss-

webrtc/YhI5fUpx1jc

  • http://lists.digium.com/pipermail/asterisk-dev/2013-

May/060355.html

  • A custom VP8 video mixer for Asterisk

MeetMe/ConfBridge

slide-20
SLIDE 20

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

First WebRTC steps

RTCWEB @ IETF84 Vancouver

slide-21
SLIDE 21

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Opus audio codec integration

  • Opus is a standard, high quality, adaptive audio codec
  • http://tools.ietf.org/html/rfc6716
  • Mandatory-To-Implement (MTI) in WebRTC!
  • Open source library available
  • http://opus-codec.org
  • Integrated by us in Asterisk
  • Transcoding support in open source patch
  • https://github.com/meetecho/asterisk-opus
  • Passthrough support in mainstream Asterisk 12
  • https://issues.asterisk.org/jira/browse/ASTERISK-21981
  • Tested in Meetecho
  • Streaming (HTML5 <audio>)
  • Multimedia conferences (mixing and transcoding)
slide-22
SLIDE 22

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Technical Plenary @ IETF87 in Berlin

  • Technical Plenary on Opus
  • Invited speaker with Google, Mozilla and Jitsi
slide-23
SLIDE 23

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Technical Plenary @ IETF87 in Berlin

  • Super-wideband (48kHz) Opus audio streaming
  • http://ietf87.conf.meetecho.com/index.php/WebRTC_Interface
slide-24
SLIDE 24

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Meetecho IETF World Tour 2011-2014 → J2

https://prezi.com/zleniguy6b_o/meetecho-ietf-world-tour- 2011-2014/

slide-25
SLIDE 25

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Meetecho @ IETF

slide-26
SLIDE 26

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Meetecho @ IETF

slide-27
SLIDE 27

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

“Director” room @ NOC in Honolulu

Completely WebRTC-based

  • Slides as a video feed from the beamer
  • Static video feed from the room
  • Dynamic video feeds for remote speakers
slide-28
SLIDE 28

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

WebRTC reference architecture

slide-29
SLIDE 29

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Involving a gateway (and applications)

slide-30
SLIDE 30

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Involving different technologies as well

slide-31
SLIDE 31

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Do we really need a gateway?

  • Several reasons for a YES, here
  • Relieve full-meshes (heavy on the client side)
  • Leveraging widespread technologies (e.g., SIP

infrastructures)

  • Fixing things between implementations
  • Reason for a NO?
  • You won’t go beyond 1-1 WebRTC communication
  • You don’t want an infrastructure
  • You don’t care about legacy stuff

“What is a WebRTC Gateway anyway?”

  • http://webrtchacks.com/webrtc-gw/
slide-32
SLIDE 32

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Real-time Media Components

  • Writing a gateway from scratch is a heavy task
  • Implementation of the WebRTC protocol suite
  • Bridge between “legacy” stuff (SIP

, RTMP , etc.) and WebRTC

  • Needs to support both (WebRTC gateway) → J1
  • What about statistics? → D1
  • Reachability may be an issue → D2
  • Programmable interface
  • Different applications/technologies, different

requirements

  • Dynamic management of media flows and users
  • Something a-la MEDIACTRL? → W1, B1, R1, R2
slide-33
SLIDE 33

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Janus: a general purpose WebRTC gateway

“In ancient Roman religion and myth, Janus [..] is the god of beginnings and transitions, and thereby of gates, doors, passages, endings and time. He is usually depicted as having two faces, since he looks to the future and to the past.”

— http://en.wikipedia.org/wiki/Janus

slide-34
SLIDE 34

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Janus: a general purpose WebRTC gateway

  • A door between the communications past and future
  • Legacy technologies (the “past”)
  • WebRTC (the “future”)

Janus General purpose, open source WebRTC gateway

  • https://github.com/meetecho/janus-gateway
  • Demos and documentation:

http://janus.conf.meetecho.com

  • Design and implementation of the gateway → J3
  • WebRTC suite re-implemented (core)
  • Modular architecture rewritten from scratch
  • Plugins as the MEDIACTRL “packages”
slide-35
SLIDE 35

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Modular architecture

  • The core only implements the WebRTC stack
  • JSEP/SDP

, ICE, DTLS-SRTP , Data Channels, ...

  • REST (HTTP) / WebSockets / RabbitMQ APIs
  • Application logic implemented in server side plugins
  • Users attach to plugins via the gateway core
  • The gateway handles the WebRTC stuff
  • Plugins route/manipulate the media/data
  • Some proof of concept plugins implemented
  • Echo Test (→ Self testing!)
  • Streaming (→ Live events!)
  • Conferencing (→ Communication!)
  • SIP Gateway (→ “Legacy” SIP!)
  • ...
slide-36
SLIDE 36

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Extensible Architecture and API

slide-37
SLIDE 37

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Extensible Architecture and API

slide-38
SLIDE 38

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Plugins as “bricks”

  • Each plugin is a feature, not an application
  • Application can be composed out of different features
  • Features as “bricks” for a complex scenario
  • A few examples...
  • Screensharing with Q&A
  • Video MCU (screen) + Video MCU (speakers) + Audio

Bridge (questions)

  • Video communication in social networks
  • SIP plugin (calls) + Echo Test (diagnostics) + Voice Mail

(messaging)

  • Social TV
  • Streaming (TV channel) + Video MCU (interaction)
slide-39
SLIDE 39

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Screen Sharing with Q/A

slide-40
SLIDE 40

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Social TV

slide-41
SLIDE 41

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

What is it used for today?

  • We use it ourselves for many things (obviously)
  • Web conferencing
  • Webinars and e-learning
  • Streaming of live events
  • WebRTC-to-SIP gateway
  • Many people/companies using it as well in even more

creative ways!

  • Coworking
  • TV broadcasting and Social TV
  • Home automation
  • Internet of Things
  • New third-party tools are starting to come out
  • New plugins for ad-hoc requirements
  • Server-side API wrappers (node.js, .NET, ...)
slide-42
SLIDE 42

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

What to do next?

  • Finalize the WebRTC implementation
  • Stabilize SSRC multiplexing
  • Add octets (besides strings) to DataChannels
  • Keep up-to-date with newest stuff
  • Mobile access
  • Janus stack for Android basically done, to refine
  • Already interoperable with libjingle_peerconnection
  • Improve the pluggable architecture
  • Plugins as “filters”, not only “sinks” (e.g., transcoders)
  • Plugins in series and/or in parallel
  • Help us improve this!
  • Play with it, more testing is important
  • Write your own plugins/applications!
slide-43
SLIDE 43

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Questions? Comments?

slide-44
SLIDE 44

TF-WebRTC

  • L. Miniero

Meetecho History

IETF WebRTC

Janus

Gateways Requirements Architecture

Next steps

Related Publications

  • International journals

J1 A. Amirante, T. Castaldi, L. Miniero, S. P . Romano, “On the seamless interaction between WebRTC browsers and SIP-based conferencing systems”, IEEE Communications Magazine 51(4), pg. 42-47 (April 2013) J2 A. Amirante, T. Castaldi, L. Miniero, S. P . Romano, “Meetecho: How We Turned an IETF Experiment into an IETF Tool”, IETF Journal, Volume 9, Issue 3, (March 2014) J3 A. Amirante, T. Castaldi, L. Miniero, S. P . Romano, “Janus: a general purpose WebRTC gateway”, IPTComm 2014, (in press)

  • Book chapters

B1 A. Amirante, T. Castaldi, L. Miniero and S. P . Romano. “Protocol Interactions among User Agents, Application Servers, and Media Servers: Standardization Efforts and Open Issues”, Intelligent Multimedia Technologies for Networking Applications: Techniques and

  • Tools. IGI Global, 2013. 48-63. Web. 7 Jan. 2013.

doi:10.4018/978-1-4666-2833-5.ch003

  • Conferences and workshops

W1 L. Miniero, “Improving the scalability of real-time multimedia applications using brokering of media resources”, InfQ 2013, June 13-14, 2013, Sorrento, Italy W2 A. Amirante, T. Castaldi, L. Miniero and S. P . Romano, “SOLEIL: Streaming Of Large-scale Events over Internet cLouds”, 11th Italian Networking Workshop, January 15-17, 2014, Cortina d’Ampezzo, Italy

  • Request For Comments (RFC)

R1 C. Boulton, L. Miniero, G. Munson, “Media Resource Brokering”, RFC6917, April 2013 R2 A. Amirante, T. Castaldi, L. Miniero, S. P . Romano, “Media Control Channel Framework (CFW) Call Flow Examples”, RFC7058, November 2013

  • Internet Drafts

D1 L. Miniero, S. Garcia Murillo, V. Pascual “Guidelines to support RTCP end-to-end in Back-to-Back User Agents (B2BUAs)”, draft-ietf-straw-b2bua-rtcp-02 D2 X. Chen, S. Garcia Murillo, O. Moskalenko, V. Pascual, L. Miniero, “WebSocket Protocol as a Transport for Traversal Using Relays around NAT (TURN)”, draft-chenxin-behave-turn-websocket-01