a tale of two worlds: bridging sip and webrtc with · pdf filea tale of two worlds: bridging...
TRANSCRIPT
![Page 1: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/1.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
A Tale Of Two Worlds:Bridging SIP And WebRTC With Janus
Lorenzo Miniero@elminiero
Kamailio World19th May 2016,
![Page 2: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/2.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Outline
1 A brief introduction
2 Some contextWebRTC and standardization activities
3 Janus: a general purpose WebRTC gatewayModular architectureA few words on Janus and SIPWhat is Janus used for today, and by whom?
4 Next steps
![Page 3: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/3.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
What’s Meetecho?
• A company born in 2009 as an academic spin-off• University research efforts brought to the market• Proudly brewed in sunny Napoli, Italy ,
• Focus on real-time multimedia applications• Web conferencing only, at first• Then widened the scope to multimedia in general• Strong perspective on standardization and open source
• WebRTC rulez!
• Several activities• Consulting services• Commercial support & licenses• Streaming of live events (e.g., IETF, ACM SIGCOMM, ...)• Products (conferencing, webinar, ...)
![Page 4: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/4.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
What’s Meetecho?
• A company born in 2009 as an academic spin-off• University research efforts brought to the market• Proudly brewed in sunny Napoli, Italy ,
• Focus on real-time multimedia applications• Web conferencing only, at first• Then widened the scope to multimedia in general• Strong perspective on standardization and open source
• WebRTC rulez!
• Several activities• Consulting services• Commercial support & licenses• Streaming of live events (e.g., IETF, ACM SIGCOMM, ...)• Products (conferencing, webinar, ...)
![Page 5: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/5.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
What’s Meetecho?
• A company born in 2009 as an academic spin-off• University research efforts brought to the market• Proudly brewed in sunny Napoli, Italy ,
• Focus on real-time multimedia applications• Web conferencing only, at first• Then widened the scope to multimedia in general• Strong perspective on standardization and open source
• WebRTC rulez!
• Several activities• Consulting services• Commercial support & licenses• Streaming of live events (e.g., IETF, ACM SIGCOMM, ...)• Products (conferencing, webinar, ...)
![Page 6: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/6.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
(*Napoli looks a bit like this...)
![Page 7: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/7.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Ok, ok, enough about you... what’s WebRTC about?
• Real-time media in a browser• Up to some time ago, no standard solution!
• No interoperability• Plugins needed to be installed anyway
WebRTC = Joint standardization efforts• Internet Engineering Task Force (IETF)• World Wide Web Consortium (W3C)
• 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
![Page 8: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/8.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Ok, ok, enough about you... what’s WebRTC about?
• Real-time media in a browser• Up to some time ago, no standard solution!
• No interoperability• Plugins needed to be installed anyway
WebRTC = Joint standardization efforts• Internet Engineering Task Force (IETF)• World Wide Web Consortium (W3C)
• 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
![Page 9: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/9.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Ok, ok, enough about you... what’s WebRTC about?
• Real-time media in a browser• Up to some time ago, no standard solution!
• No interoperability• Plugins needed to be installed anyway
WebRTC = Joint standardization efforts• Internet Engineering Task Force (IETF)• World Wide Web Consortium (W3C)
• 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
![Page 10: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/10.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
WebRTC reference architecture
![Page 11: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/11.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Involving a gateway (and applications)
![Page 12: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/12.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Involving different technologies as well
“What is a WebRTC Gateway anyway?”• https://webrtchacks.com/webrtc-gw/
![Page 13: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/13.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Involving different technologies as well
“What is a WebRTC Gateway anyway?”• https://webrtchacks.com/webrtc-gw/
![Page 14: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/14.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Janus: a general purpose WebRTC gateway
“In ancient Roman religion andmyth, Janus [..] is the god ofbeginnings and transitions, andthereby of gates, doors, passages,endings and time. He is usuallydepicted as having two faces, sincehe looks to the future and to thepast.”
— http://en.wikipedia.org/wiki/Janus
![Page 15: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/15.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Janus: a general purpose WebRTC gateway
• A door between the communications past and future• Legacy technologies (the “past”)• WebRTC (the “future”)
JanusGeneral purpose, open source WebRTC gateway• https://github.com/meetecho/janus-gateway• Demos and documentation: https://janus.conf.meetecho.com• Community: https://groups.google.com/forum/#!forum/meetecho-janus
![Page 16: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/16.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Modular architecture
• The core only implements the WebRTC stack• JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ...
• Plugins expose Janus API over different transports• Currently HTTP / WebSockets / RabbitMQ / Unix Sockets
• “Application” logic implemented in plugins too• 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• Streaming (→ Plain RTP to WebRTC!)• Video Room (→ Selective Forwarding Unit!)• SIP Gateway (→ “Legacy” SIP!)• ...
![Page 17: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/17.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Modular architecture
• The core only implements the WebRTC stack• JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ...
• Plugins expose Janus API over different transports• Currently HTTP / WebSockets / RabbitMQ / Unix Sockets
• “Application” logic implemented in plugins too• 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• Streaming (→ Plain RTP to WebRTC!)• Video Room (→ Selective Forwarding Unit!)• SIP Gateway (→ “Legacy” SIP!)• ...
![Page 18: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/18.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Modular architecture
• The core only implements the WebRTC stack• JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ...
• Plugins expose Janus API over different transports• Currently HTTP / WebSockets / RabbitMQ / Unix Sockets
• “Application” logic implemented in plugins too• 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• Streaming (→ Plain RTP to WebRTC!)• Video Room (→ Selective Forwarding Unit!)• SIP Gateway (→ “Legacy” SIP!)• ...
![Page 19: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/19.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Modular architecture
• The core only implements the WebRTC stack• JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ...
• Plugins expose Janus API over different transports• Currently HTTP / WebSockets / RabbitMQ / Unix Sockets
• “Application” logic implemented in plugins too• 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• Streaming (→ Plain RTP to WebRTC!)• Video Room (→ Selective Forwarding Unit!)• SIP Gateway (→ “Legacy” SIP!)• ...
![Page 20: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/20.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Extensible Architecture and API
![Page 21: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/21.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Extensible Architecture and API
![Page 22: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/22.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
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...• Multimedia conferencing with PSTN support
• Video Room (participants video & screen) + SIP (participants audio)
• Webinar with Q&A
• Video Room (screen) + Video Room (speakers) + Audio Bridge (questions)
• Social TV
• Streaming (TV channel) + Video Room (interaction)
• Contact center / Communication in social networks
• SIP plugin (calls) + Echo Test (diagnostics) + Record & Play (messaging)
![Page 23: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/23.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
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...• Multimedia conferencing with PSTN support
• Video Room (participants video & screen) + SIP (participants audio)
• Webinar with Q&A
• Video Room (screen) + Video Room (speakers) + Audio Bridge (questions)
• Social TV
• Streaming (TV channel) + Video Room (interaction)
• Contact center / Communication in social networks
• SIP plugin (calls) + Echo Test (diagnostics) + Record & Play (messaging)
![Page 24: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/24.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Webinar with Q/A
![Page 25: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/25.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Social TV
![Page 26: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/26.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Anything wrong? Check the Admin API!
• Requests/response API to interrogate Janus• Query server capabilities• Control some aspects (e.g., enable/disable debugging)• Inspect handles and WebRTC “internals”
• What about asynchronous events? More on that later!
http://www.meetecho.com/blog/understanding-the-janus-admin-api/
![Page 27: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/27.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Yeah, yeah, but what about SIP?
• As anticipated, SIP already available as a Janus plugin• Demo: https://janus.conf.meetecho.com/siptest
• Basically a WebRTC-to-SIP gateway• WebRTC on one side, SIP(S)/(S)RTP on the other end
• Janus SIP plugin acts as a SIP endpoint• SIP stack implemented with Sofia-SIP• WebRTC users only see the Janus API (JSON)• No transcoding, media is only relayed
• Simplifies life for web developers• No need to worry about a SIP stack (only SIP URIs)• Basic methods/events to handle call (call, answer, hangup)• Allows headers injection, for ad-hoc cases
![Page 28: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/28.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Yeah, yeah, but what about SIP?
• As anticipated, SIP already available as a Janus plugin• Demo: https://janus.conf.meetecho.com/siptest
• Basically a WebRTC-to-SIP gateway• WebRTC on one side, SIP(S)/(S)RTP on the other end
• Janus SIP plugin acts as a SIP endpoint• SIP stack implemented with Sofia-SIP• WebRTC users only see the Janus API (JSON)• No transcoding, media is only relayed
• Simplifies life for web developers• No need to worry about a SIP stack (only SIP URIs)• Basic methods/events to handle call (call, answer, hangup)• Allows headers injection, for ad-hoc cases
![Page 29: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/29.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Yeah, yeah, but what about SIP?
• As anticipated, SIP already available as a Janus plugin• Demo: https://janus.conf.meetecho.com/siptest
• Basically a WebRTC-to-SIP gateway• WebRTC on one side, SIP(S)/(S)RTP on the other end
• Janus SIP plugin acts as a SIP endpoint• SIP stack implemented with Sofia-SIP• WebRTC users only see the Janus API (JSON)• No transcoding, media is only relayed
• Simplifies life for web developers• No need to worry about a SIP stack (only SIP URIs)• Basic methods/events to handle call (call, answer, hangup)• Allows headers injection, for ad-hoc cases
![Page 30: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/30.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Yeah, yeah, but what about SIP?
• As anticipated, SIP already available as a Janus plugin• Demo: https://janus.conf.meetecho.com/siptest
• Basically a WebRTC-to-SIP gateway• WebRTC on one side, SIP(S)/(S)RTP on the other end
• Janus SIP plugin acts as a SIP endpoint• SIP stack implemented with Sofia-SIP• WebRTC users only see the Janus API (JSON)• No transcoding, media is only relayed
• Simplifies life for web developers• No need to worry about a SIP stack (only SIP URIs)• Basic methods/events to handle call (call, answer, hangup)• Allows headers injection, for ad-hoc cases
![Page 31: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/31.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
But what if you DON’T want it simple?
• You may want to have more control on SIP messaging
• e.g., to re-use stacks like JsSIP or SIP.js, or other reasons
• The existing SIP plugin doesn’t allow for that
• Complexity hidden from users, on purpose
• Only partial control (e.g., custom headers, INFO DTMF, negotiating security)
• BUT! Janus is extensible, so why not a new plugin?
• @saghul’s idea: “BoringSDP”!• A new plugin to only handle media gatewaying
• WebRTC and SIP SDPs both available to web user
• You handle SIP transactions yourself, and leave media to Janus
• You still need to communicate with Janus as well, of course
![Page 32: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/32.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
But what if you DON’T want it simple?
• You may want to have more control on SIP messaging
• e.g., to re-use stacks like JsSIP or SIP.js, or other reasons
• The existing SIP plugin doesn’t allow for that
• Complexity hidden from users, on purpose
• Only partial control (e.g., custom headers, INFO DTMF, negotiating security)
• BUT! Janus is extensible, so why not a new plugin?
• @saghul’s idea: “BoringSDP”!• A new plugin to only handle media gatewaying
• WebRTC and SIP SDPs both available to web user
• You handle SIP transactions yourself, and leave media to Janus
• You still need to communicate with Janus as well, of course
![Page 33: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/33.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
But what if you DON’T want it simple?
• You may want to have more control on SIP messaging
• e.g., to re-use stacks like JsSIP or SIP.js, or other reasons
• The existing SIP plugin doesn’t allow for that
• Complexity hidden from users, on purpose
• Only partial control (e.g., custom headers, INFO DTMF, negotiating security)
• BUT! Janus is extensible, so why not a new plugin?
• @saghul’s idea: “BoringSDP”!• A new plugin to only handle media gatewaying
• WebRTC and SIP SDPs both available to web user
• You handle SIP transactions yourself, and leave media to Janus
• You still need to communicate with Janus as well, of course
![Page 34: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/34.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
But what if you DON’T want it simple?
• You may want to have more control on SIP messaging
• e.g., to re-use stacks like JsSIP or SIP.js, or other reasons
• The existing SIP plugin doesn’t allow for that
• Complexity hidden from users, on purpose
• Only partial control (e.g., custom headers, INFO DTMF, negotiating security)
• BUT! Janus is extensible, so why not a new plugin?
• @saghul’s idea: “BoringSDP”!• A new plugin to only handle media gatewaying
• WebRTC and SIP SDPs both available to web user
• You handle SIP transactions yourself, and leave media to Janus
• You still need to communicate with Janus as well, of course
![Page 35: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/35.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
What is Janus used for today, and by whom?
• We use it ourselves for many things (obviously)• Web conferencing and Webinars• WebRTC-to-SIP gateway• Streaming of live events (e.g., IETF meetings)
• Many folks/companies also using it in creative ways!• E-learning• Coworking• Contact centers• TV broadcasting and Social TV• Surveillance systems• E-health• 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
![Page 36: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/36.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
What is Janus used for today, and by whom?
• We use it ourselves for many things (obviously)• Web conferencing and Webinars• WebRTC-to-SIP gateway• Streaming of live events (e.g., IETF meetings)
• Many folks/companies also using it in creative ways!• E-learning• Coworking• Contact centers• TV broadcasting and Social TV• Surveillance systems• E-health• 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
![Page 37: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/37.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
What is Janus used for today, and by whom?
• We use it ourselves for many things (obviously)• Web conferencing and Webinars• WebRTC-to-SIP gateway• Streaming of live events (e.g., IETF meetings)
• Many folks/companies also using it in creative ways!• E-learning• Coworking• Contact centers• TV broadcasting and Social TV• Surveillance systems• E-health• 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
![Page 38: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/38.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
“Director” room @ IETF meetings
Completely WebRTC-based media streams• Slides as a video feed from the beamer• Static video feed from the room• Dynamic video feeds for remote speakers
![Page 39: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/39.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Meetecho: IETF meeting example
https://ietf.org/meeting/remote-participation.html
![Page 40: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/40.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Meetecho: IETF recordings
https://www.youtube.com/user/ietf
![Page 41: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/41.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
A “silly” use case: The Jumping Sumo!
https://www.youtube.com/watch?v=isGSnMlKcss
![Page 42: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/42.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
A “silly” use case: The Jumping Sumo!
https://www.youtube.com/watch?v=isGSnMlKcss
![Page 43: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/43.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
“Matrix wins Best of Show at WebRTC World!”
https://www.youtube.com/watch?v=OMzDklvDS3c
![Page 44: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/44.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
“Matrix wins Best of Show at WebRTC World!”
https://www.youtube.com/watch?v=NpBStIIq6fM
![Page 45: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/45.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Jangouts (for "Janus Hangouts" ,)
https://github.com/jangouts/jangouts
![Page 46: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/46.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
SylkServer (SIP/XMPP Application Server)
http://sylkserver.com/
![Page 47: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/47.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Slack? (team co-working)
https://webrtchacks.com/dear-slack/https://webrtchacks.com/slack-webrtc-slacking/
![Page 48: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/48.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Lenovo’s AirClass (e-learning)
https://www.airclass.com
![Page 49: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/49.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Sqwiggle / Speak.io (team co-working)
https://www.sqwiggle.comhttps://speak.io
![Page 50: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/50.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Sqwiggle / Speak.io (team co-working)
https://www.sqwiggle.comhttps://speak.io
![Page 51: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/51.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Veeting rooms (web conferencing)
https://www.veeting.com
![Page 52: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/52.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
What to do next?
• Finalize the WebRTC implementation• Renegotiation, multistream, ...
• Keep on improving and fixing things• Code cleanup, reference counters, new modules, ...
• A recent idea: modular Events API!• Core and plugins generate events• Custom modules can subscribe to and handle them
• e.g., save to DB, send to external service, etc.• A couple of potentially interesting integrations
• Homer/HEP, for SIP calls and their relation to WebRTC• Live stats collection via callstats.io
Help us improve this!• Play with it, more testing is important• Write your own applications/wrappers/plugins!
![Page 53: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/53.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
What to do next?
• Finalize the WebRTC implementation• Renegotiation, multistream, ...
• Keep on improving and fixing things• Code cleanup, reference counters, new modules, ...
• A recent idea: modular Events API!• Core and plugins generate events• Custom modules can subscribe to and handle them
• e.g., save to DB, send to external service, etc.• A couple of potentially interesting integrations
• Homer/HEP, for SIP calls and their relation to WebRTC• Live stats collection via callstats.io
Help us improve this!• Play with it, more testing is important• Write your own applications/wrappers/plugins!
![Page 54: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/54.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
What to do next?
• Finalize the WebRTC implementation• Renegotiation, multistream, ...
• Keep on improving and fixing things• Code cleanup, reference counters, new modules, ...
• A recent idea: modular Events API!• Core and plugins generate events• Custom modules can subscribe to and handle them
• e.g., save to DB, send to external service, etc.• A couple of potentially interesting integrations
• Homer/HEP, for SIP calls and their relation to WebRTC• Live stats collection via callstats.io
Help us improve this!• Play with it, more testing is important• Write your own applications/wrappers/plugins!
![Page 55: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/55.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
What to do next?
• Finalize the WebRTC implementation• Renegotiation, multistream, ...
• Keep on improving and fixing things• Code cleanup, reference counters, new modules, ...
• A recent idea: modular Events API!• Core and plugins generate events• Custom modules can subscribe to and handle them
• e.g., save to DB, send to external service, etc.• A couple of potentially interesting integrations
• Homer/HEP, for SIP calls and their relation to WebRTC• Live stats collection via callstats.io
Help us improve this!• Play with it, more testing is important• Write your own applications/wrappers/plugins!
![Page 56: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/56.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Shameless bragging! Souvenirs from San Francisco ,
Innovation Challenge Panel/Pitchfest @ INFOCOM2016... we won!
![Page 57: A Tale Of Two Worlds: Bridging SIP And WebRTC With · PDF fileA Tale Of Two Worlds: Bridging SIP And WebRTC With Janus Lorenzo Miniero ... Echo Test Streaming (!Plain RTP to WebRTC!)](https://reader034.vdocuments.mx/reader034/viewer/2022051523/5a81736f7f8b9a38478d452d/html5/thumbnails/57.jpg)
KamailioWorld
L. Miniero
Intro
WebRTCStandardization
JanusModules and APIs
What about SIP?
A few examples
Next steps
Questions? Comments?
@elminiero