This document discusses using Janus, an open-source WebRTC server, to facilitate access to Asterisk-based services from WebRTC. Janus acts as a gateway between legacy technologies like Asterisk and newer WebRTC technologies. It handles the WebRTC signaling and media processing, taking this load off of Asterisk. This allows Asterisk to focus on other tasks while Janus manages scaling of WebRTC services separately. Janus also provides benefits like supporting new WebRTC features that older systems like Asterisk 11/12 may not support yet.
4. Before moving on, what’s Meetecho?
• Co-founded in 2009 as an academic spin-off
• University research efforts brought to the market
• Recently got my Ph.D @ UniNA
• Completely independent from the University
• https://www.meetecho.com
• 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!
• Proudly brewed in sunny Napoli(*), Italy
5. Before moving on, what’s Meetecho?
• Co-founded in 2009 as an academic spin-off
• University research efforts brought to the market
• Recently got my Ph.D @ UniNA
• Completely independent from the University
• https://www.meetecho.com
• 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!
• Proudly brewed in sunny Napoli(*), Italy
6. Before moving on, what’s Meetecho?
• Co-founded in 2009 as an academic spin-off
• University research efforts brought to the market
• Recently got my Ph.D @ UniNA
• Completely independent from the University
• https://www.meetecho.com
• 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!
• Proudly brewed in sunny Napoli(*), Italy
9. How do you pay your bills?
• Meetecho Web Conferencing and Collaboration
• Meetings, conference calls, webinars, etc.
• Subscription, one-shot, ...
• Streaming of live events
• Internet Engineering Task Force (IETF)
• ACM SIGCOMM
• Consultancy services
• Mostly (but not only) involving WebRTC and Janus
• Installation and configuration
• Custom plugins for custom use cases
• Wrapping/orchestration of Janus resources
• Sponsored development on new features or improvements
• ...
• Commercial support and Janus licenses
10. How do you pay your bills?
• Meetecho Web Conferencing and Collaboration
• Meetings, conference calls, webinars, etc.
• Subscription, one-shot, ...
• Streaming of live events
• Internet Engineering Task Force (IETF)
• ACM SIGCOMM
• Consultancy services
• Mostly (but not only) involving WebRTC and Janus
• Installation and configuration
• Custom plugins for custom use cases
• Wrapping/orchestration of Janus resources
• Sponsored development on new features or improvements
• ...
• Commercial support and Janus licenses
11. How do you pay your bills?
• Meetecho Web Conferencing and Collaboration
• Meetings, conference calls, webinars, etc.
• Subscription, one-shot, ...
• Streaming of live events
• Internet Engineering Task Force (IETF)
• ACM SIGCOMM
• Consultancy services
• Mostly (but not only) involving WebRTC and Janus
• Installation and configuration
• Custom plugins for custom use cases
• Wrapping/orchestration of Janus resources
• Sponsored development on new features or improvements
• ...
• Commercial support and Janus licenses
12. How do you pay your bills?
• Meetecho Web Conferencing and Collaboration
• Meetings, conference calls, webinars, etc.
• Subscription, one-shot, ...
• Streaming of live events
• Internet Engineering Task Force (IETF)
• ACM SIGCOMM
• Consultancy services
• Mostly (but not only) involving WebRTC and Janus
• Installation and configuration
• Custom plugins for custom use cases
• Wrapping/orchestration of Janus resources
• Sponsored development on new features or improvements
• ...
• Commercial support and Janus licenses
25. Janus: a general purpose WebRTC server
“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
26. Janus: a general purpose WebRTC server
• A door between the communications past and future
• Legacy technologies (the “past”)
• WebRTC (the “future”)
Janus
General purpose, open source WebRTC server and gateway
• https://github.com/meetecho/janus-gateway
• Demos and documentation: https://janus.conf.meetecho.com
• Community: https://groups.google.com/forum/#!forum/meetecho-janus
27. Modular architecture
• The core only implements the WebRTC stack
• JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ...
• Recording/simulcasting/monitoring/etc. natively done here as well
• Plugins expose Janus API over different transports
• Currently HTTP / WebSockets / RabbitMQ / Unix Sockets / MQTT
• “Application” logic implemented in plugins too
• Users attach to plugins via the Janus core
• The core handles the WebRTC stuff
• Plugins route/manipulate the media/data
• Plugins used as “bricks” to compose application
• Streaming + VideoRoom = Social TV
• VideoRoom + AudioBridge or SIP + TextRoom = Webinar
• ...
28. Modular architecture
• The core only implements the WebRTC stack
• JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ...
• Recording/simulcasting/monitoring/etc. natively done here as well
• Plugins expose Janus API over different transports
• Currently HTTP / WebSockets / RabbitMQ / Unix Sockets / MQTT
• “Application” logic implemented in plugins too
• Users attach to plugins via the Janus core
• The core handles the WebRTC stuff
• Plugins route/manipulate the media/data
• Plugins used as “bricks” to compose application
• Streaming + VideoRoom = Social TV
• VideoRoom + AudioBridge or SIP + TextRoom = Webinar
• ...
29. Modular architecture
• The core only implements the WebRTC stack
• JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ...
• Recording/simulcasting/monitoring/etc. natively done here as well
• Plugins expose Janus API over different transports
• Currently HTTP / WebSockets / RabbitMQ / Unix Sockets / MQTT
• “Application” logic implemented in plugins too
• Users attach to plugins via the Janus core
• The core handles the WebRTC stuff
• Plugins route/manipulate the media/data
• Plugins used as “bricks” to compose application
• Streaming + VideoRoom = Social TV
• VideoRoom + AudioBridge or SIP + TextRoom = Webinar
• ...
30. Modular architecture
• The core only implements the WebRTC stack
• JSEP/SDP, ICE, DTLS-SRTP, Data Channels, ...
• Recording/simulcasting/monitoring/etc. natively done here as well
• Plugins expose Janus API over different transports
• Currently HTTP / WebSockets / RabbitMQ / Unix Sockets / MQTT
• “Application” logic implemented in plugins too
• Users attach to plugins via the Janus core
• The core handles the WebRTC stuff
• Plugins route/manipulate the media/data
• Plugins used as “bricks” to compose application
• Streaming + VideoRoom = Social TV
• VideoRoom + AudioBridge or SIP + TextRoom = Webinar
• ...
33. What can Janus do to help with SIP?
• Since day one, SIP support has been available as a Janus plugin
• Demo: https://janus.conf.meetecho.com/siptest
• Basically a WebRTC-to/from-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 (REGISTER, INVITE)
34. What can Janus do to help with SIP?
• Since day one, SIP support has been available as a Janus plugin
• Demo: https://janus.conf.meetecho.com/siptest
• Basically a WebRTC-to/from-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 (REGISTER, INVITE)
35. What can Janus do to help with SIP?
• Since day one, SIP support has been available as a Janus plugin
• Demo: https://janus.conf.meetecho.com/siptest
• Basically a WebRTC-to/from-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 (REGISTER, INVITE)
36. What can Janus do to help with SIP?
• Since day one, SIP support has been available as a Janus plugin
• Demo: https://janus.conf.meetecho.com/siptest
• Basically a WebRTC-to/from-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 (REGISTER, INVITE)
37. Yeah, yeah, but why should I care?
• Asterisk supports WebRTC out of the box
• Signalling done via SIP over WebSockets
• ICE support via pjnath
• DTLS-SRTP supported too
• Recently, added support for rtcp-mux too
• Sometimes helpful when it doesn’t have to, though
• Asterisk may already be responsible for a ton of other things
• What if we can at least remove the burden of WebRTC management?
• Lighten Asterisk, and WebRTC/services scaling can be done separately
• ... but having Janus in front of Asterisk can be useful for other reasons too
• More in the next few slides!
38. Yeah, yeah, but why should I care?
• Asterisk supports WebRTC out of the box
• Signalling done via SIP over WebSockets
• ICE support via pjnath
• DTLS-SRTP supported too
• Recently, added support for rtcp-mux too
• Sometimes helpful when it doesn’t have to, though
• Asterisk may already be responsible for a ton of other things
• What if we can at least remove the burden of WebRTC management?
• Lighten Asterisk, and WebRTC/services scaling can be done separately
• ... but having Janus in front of Asterisk can be useful for other reasons too
• More in the next few slides!
39. Yeah, yeah, but why should I care?
• Asterisk supports WebRTC out of the box
• Signalling done via SIP over WebSockets
• ICE support via pjnath
• DTLS-SRTP supported too
• Recently, added support for rtcp-mux too
• Sometimes helpful when it doesn’t have to, though
• Asterisk may already be responsible for a ton of other things
• What if we can at least remove the burden of WebRTC management?
• Lighten Asterisk, and WebRTC/services scaling can be done separately
• ... but having Janus in front of Asterisk can be useful for other reasons too
• More in the next few slides!
40. [PLEASE DON’T HIT ME] Asterisk 11/12!
• We already mentioned the “infamous” rtcp-mux constraint
• Normally RTP and RTCP are transported in different ports (e.g., RTCP = RTP + 1)
• rtcp-mux = muxing RTP and RTCP over the same transport
• Made mandatory since Chrome 57
• http://www.juandebravo.com/2017/02/15/rtcp-mux-in-webrtc
• Huge impact on SIP endpoints
• Most don’t support the new stuff WebRTC is adding, including rtcp-mux
• Definitely impacted Asterisk as well, when the news came out
• https://nimblea.pe/monkey-business/2017/01/19/webrtc-asterisk-and-chrome-57/
41. [PLEASE DON’T HIT ME] Asterisk 11/12!
• We already mentioned the “infamous” rtcp-mux constraint
• Normally RTP and RTCP are transported in different ports (e.g., RTCP = RTP + 1)
• rtcp-mux = muxing RTP and RTCP over the same transport
• Made mandatory since Chrome 57
• http://www.juandebravo.com/2017/02/15/rtcp-mux-in-webrtc
• Huge impact on SIP endpoints
• Most don’t support the new stuff WebRTC is adding, including rtcp-mux
• Definitely impacted Asterisk as well, when the news came out
• https://nimblea.pe/monkey-business/2017/01/19/webrtc-asterisk-and-chrome-57/
42. [PLEASE DON’T HIT ME] Asterisk 11/12!
• We already mentioned the “infamous” rtcp-mux constraint
• Normally RTP and RTCP are transported in different ports (e.g., RTCP = RTP + 1)
• rtcp-mux = muxing RTP and RTCP over the same transport
• Made mandatory since Chrome 57
• http://www.juandebravo.com/2017/02/15/rtcp-mux-in-webrtc
• Huge impact on SIP endpoints
• Most don’t support the new stuff WebRTC is adding, including rtcp-mux
• Definitely impacted Asterisk as well, when the news came out
• https://nimblea.pe/monkey-business/2017/01/19/webrtc-asterisk-and-chrome-57/
43. [PLEASE DON’T HIT ME] Asterisk 11/12!
• We already mentioned the “infamous” rtcp-mux constraint
• Normally RTP and RTCP are transported in different ports (e.g., RTCP = RTP + 1)
• rtcp-mux = muxing RTP and RTCP over the same transport
• Made mandatory since Chrome 57
• http://www.juandebravo.com/2017/02/15/rtcp-mux-in-webrtc
• Huge impact on SIP endpoints
• Most don’t support the new stuff WebRTC is adding, including rtcp-mux
• Definitely impacted Asterisk as well, when the news came out
• https://nimblea.pe/monkey-business/2017/01/19/webrtc-asterisk-and-chrome-57/
44. [PLEASE DON’T HIT ME] Asterisk 11/12!
• Asterisk developers promptly fixed this!
• http://blogs.asterisk.org/2017/04/26/rtcp-mux-webrtc/
• ... but ONLY for Asterisk >= 13.15.0 and >= 14.4.0
• Older versions don’t have this fix
• Now, you REALLY shouldn’t use older versions of Asterisk...
• ... but if for some reason you HAVE TO, Janus can fill that gap!
45. You may not want SIP in the browser
• By default, Asterisk requires you to do SIP in the browser
• SIP over WebSockets (e.g., via JsSIP)
• We explained how the Janus SIP plugin does SIP internally, instead
• A SIP stack is created for each new user
• The client exchanges messages via a JSON-based API
• There are indeed reasons why you may NOT want SIP in the browser...
1 Handling a whole SIP stack on the client side can be a nightmare
2 Using a simpler JSON API makes it easier for web developers
3 Wrapping SIP helps protecting from “well known” attacks (e.g., vulnerabilities)
4 Much easier to make “assumptions” on the traffic you’ll handle
5 Masking SIP also helps hiding the topology of the SIP infrastructure
46. You may not want SIP in the browser
• By default, Asterisk requires you to do SIP in the browser
• SIP over WebSockets (e.g., via JsSIP)
• We explained how the Janus SIP plugin does SIP internally, instead
• A SIP stack is created for each new user
• The client exchanges messages via a JSON-based API
• There are indeed reasons why you may NOT want SIP in the browser...
1 Handling a whole SIP stack on the client side can be a nightmare
2 Using a simpler JSON API makes it easier for web developers
3 Wrapping SIP helps protecting from “well known” attacks (e.g., vulnerabilities)
4 Much easier to make “assumptions” on the traffic you’ll handle
5 Masking SIP also helps hiding the topology of the SIP infrastructure
47. You may not want SIP in the browser
• By default, Asterisk requires you to do SIP in the browser
• SIP over WebSockets (e.g., via JsSIP)
• We explained how the Janus SIP plugin does SIP internally, instead
• A SIP stack is created for each new user
• The client exchanges messages via a JSON-based API
• There are indeed reasons why you may NOT want SIP in the browser...
1 Handling a whole SIP stack on the client side can be a nightmare
2 Using a simpler JSON API makes it easier for web developers
3 Wrapping SIP helps protecting from “well known” attacks (e.g., vulnerabilities)
4 Much easier to make “assumptions” on the traffic you’ll handle
5 Masking SIP also helps hiding the topology of the SIP infrastructure
48. You may not want SIP in the browser
• By default, Asterisk requires you to do SIP in the browser
• SIP over WebSockets (e.g., via JsSIP)
• We explained how the Janus SIP plugin does SIP internally, instead
• A SIP stack is created for each new user
• The client exchanges messages via a JSON-based API
• There are indeed reasons why you may NOT want SIP in the browser...
1 Handling a whole SIP stack on the client side can be a nightmare
2 Using a simpler JSON API makes it easier for web developers
3 Wrapping SIP helps protecting from “well known” attacks (e.g., vulnerabilities)
4 Much easier to make “assumptions” on the traffic you’ll handle
5 Masking SIP also helps hiding the topology of the SIP infrastructure
49. You may not want SIP in the browser
• By default, Asterisk requires you to do SIP in the browser
• SIP over WebSockets (e.g., via JsSIP)
• We explained how the Janus SIP plugin does SIP internally, instead
• A SIP stack is created for each new user
• The client exchanges messages via a JSON-based API
• There are indeed reasons why you may NOT want SIP in the browser...
1 Handling a whole SIP stack on the client side can be a nightmare
2 Using a simpler JSON API makes it easier for web developers
3 Wrapping SIP helps protecting from “well known” attacks (e.g., vulnerabilities)
4 Much easier to make “assumptions” on the traffic you’ll handle
5 Masking SIP also helps hiding the topology of the SIP infrastructure
50. You may not want SIP in the browser
• By default, Asterisk requires you to do SIP in the browser
• SIP over WebSockets (e.g., via JsSIP)
• We explained how the Janus SIP plugin does SIP internally, instead
• A SIP stack is created for each new user
• The client exchanges messages via a JSON-based API
• There are indeed reasons why you may NOT want SIP in the browser...
1 Handling a whole SIP stack on the client side can be a nightmare
2 Using a simpler JSON API makes it easier for web developers
3 Wrapping SIP helps protecting from “well known” attacks (e.g., vulnerabilities)
4 Much easier to make “assumptions” on the traffic you’ll handle
5 Masking SIP also helps hiding the topology of the SIP infrastructure
51. You may not want SIP in the browser
• By default, Asterisk requires you to do SIP in the browser
• SIP over WebSockets (e.g., via JsSIP)
• We explained how the Janus SIP plugin does SIP internally, instead
• A SIP stack is created for each new user
• The client exchanges messages via a JSON-based API
• There are indeed reasons why you may NOT want SIP in the browser...
1 Handling a whole SIP stack on the client side can be a nightmare
2 Using a simpler JSON API makes it easier for web developers
3 Wrapping SIP helps protecting from “well known” attacks (e.g., vulnerabilities)
4 Much easier to make “assumptions” on the traffic you’ll handle
5 Masking SIP also helps hiding the topology of the SIP infrastructure
52. You may not want SIP in the browser
• By default, Asterisk requires you to do SIP in the browser
• SIP over WebSockets (e.g., via JsSIP)
• We explained how the Janus SIP plugin does SIP internally, instead
• A SIP stack is created for each new user
• The client exchanges messages via a JSON-based API
• There are indeed reasons why you may NOT want SIP in the browser...
1 Handling a whole SIP stack on the client side can be a nightmare
2 Using a simpler JSON API makes it easier for web developers
3 Wrapping SIP helps protecting from “well known” attacks (e.g., vulnerabilities)
4 Much easier to make “assumptions” on the traffic you’ll handle
5 Masking SIP also helps hiding the topology of the SIP infrastructure
55. Making debugging/troubleshooting a bit less “hell”
• Establishing WebRTC PeerConnections might fail for different reasons
• ICE failures, DTLS handshake errors, MTU issues, etc.
• Can be even more problematic when you use different servers for the same app
• Different servers may handle different scenarios in a different way
• What if one works and the other doesn’t under the same conditions?
• Each WebRTC server has its libraries and debugging approaches
• This may be one more reason to deploy Janus as a frontend for WebRTC
• If SIP and, e.g., RTSP fail because of WebRTC, you know where to look at
• Several tools to use for debugging and troubleshooting
• Admin API (pull based)
• Event Handlers (async and modular, integrates with Homer/HEPIC)
• text2pcap support for dumping unencrypted traffic to .pcap (NEW!)
56. Making debugging/troubleshooting a bit less “hell”
• Establishing WebRTC PeerConnections might fail for different reasons
• ICE failures, DTLS handshake errors, MTU issues, etc.
• Can be even more problematic when you use different servers for the same app
• Different servers may handle different scenarios in a different way
• What if one works and the other doesn’t under the same conditions?
• Each WebRTC server has its libraries and debugging approaches
• This may be one more reason to deploy Janus as a frontend for WebRTC
• If SIP and, e.g., RTSP fail because of WebRTC, you know where to look at
• Several tools to use for debugging and troubleshooting
• Admin API (pull based)
• Event Handlers (async and modular, integrates with Homer/HEPIC)
• text2pcap support for dumping unencrypted traffic to .pcap (NEW!)
57. Making debugging/troubleshooting a bit less “hell”
• Establishing WebRTC PeerConnections might fail for different reasons
• ICE failures, DTLS handshake errors, MTU issues, etc.
• Can be even more problematic when you use different servers for the same app
• Different servers may handle different scenarios in a different way
• What if one works and the other doesn’t under the same conditions?
• Each WebRTC server has its libraries and debugging approaches
• This may be one more reason to deploy Janus as a frontend for WebRTC
• If SIP and, e.g., RTSP fail because of WebRTC, you know where to look at
• Several tools to use for debugging and troubleshooting
• Admin API (pull based)
• Event Handlers (async and modular, integrates with Homer/HEPIC)
• text2pcap support for dumping unencrypted traffic to .pcap (NEW!)
58. Making debugging/troubleshooting a bit less “hell”
• Establishing WebRTC PeerConnections might fail for different reasons
• ICE failures, DTLS handshake errors, MTU issues, etc.
• Can be even more problematic when you use different servers for the same app
• Different servers may handle different scenarios in a different way
• What if one works and the other doesn’t under the same conditions?
• Each WebRTC server has its libraries and debugging approaches
• This may be one more reason to deploy Janus as a frontend for WebRTC
• If SIP and, e.g., RTSP fail because of WebRTC, you know where to look at
• Several tools to use for debugging and troubleshooting
• Admin API (pull based)
• Event Handlers (async and modular, integrates with Homer/HEPIC)
• text2pcap support for dumping unencrypted traffic to .pcap (NEW!)
60. “One API to rule them all!”
• As explained before, it’s very common
to mix plugins to build complex apps
• e.g., VideoRoom + SIP for hybrid
videoconferencing with PSTN support
• Some real-world examples in just a
few slides, stay tuned!
• If you’re using Janus for other features,
why not extend it to SIP as well?
• Using a single and consistent API will
make your web developer happier
• Besides, see previous point on
debugging...
61. What is Janus used for today, and by whom?
• We use it ourselves for many things (obviously)
• Web conferencing, Webinars, SIP gateway, ...
• Many folks/companies also using it in creative ways!
• E-learning
• Coworking
• Contact centers
• TV broadcasting and Social TV
• Videogames streaming and coplaying
• Surveillance systems
• E-health
• Home automation & Internet of Things
• Mobile devices, Raspberry Pis, wearables, drones, etc.
• Several third-party tools available already
• https://janus.conf.meetecho.com/docs/resources
62. What is Janus used for today, and by whom?
• We use it ourselves for many things (obviously)
• Web conferencing, Webinars, SIP gateway, ...
• Many folks/companies also using it in creative ways!
• E-learning
• Coworking
• Contact centers
• TV broadcasting and Social TV
• Videogames streaming and coplaying
• Surveillance systems
• E-health
• Home automation & Internet of Things
• Mobile devices, Raspberry Pis, wearables, drones, etc.
• Several third-party tools available already
• https://janus.conf.meetecho.com/docs/resources
63. What is Janus used for today, and by whom?
• We use it ourselves for many things (obviously)
• Web conferencing, Webinars, SIP gateway, ...
• Many folks/companies also using it in creative ways!
• E-learning
• Coworking
• Contact centers
• TV broadcasting and Social TV
• Videogames streaming and coplaying
• Surveillance systems
• E-health
• Home automation & Internet of Things
• Mobile devices, Raspberry Pis, wearables, drones, etc.
• Several third-party tools available already
• https://janus.conf.meetecho.com/docs/resources
64. Streaming IETF meetings with Janus
https://www.vuc.me/2017/vuc640-ietf-remote-participation-with-lorenzo-miniero/
65. Streaming IETF meetings with Janus
https://www.vuc.me/2017/vuc640-ietf-remote-participation-with-lorenzo-miniero/
66. Streaming IETF meetings with Janus
https://www.vuc.me/2017/vuc640-ietf-remote-participation-with-lorenzo-miniero/
67. Streaming IETF meetings with Janus
https://www.vuc.me/2017/vuc640-ietf-remote-participation-with-lorenzo-miniero/
68. Streaming IETF meetings with Janus
https://www.vuc.me/2017/vuc640-ietf-remote-participation-with-lorenzo-miniero/
74. What to do next?
• Improve the WebRTC implementation
• Work on effective renegotiation (ICE restarts almost ready)
• Implement multistream (Unified Plan)
• SIP-wise, we have some alternatives almost ready
• SIPre (same as existing plugin, but based on libRE)
• NoSIP (media-only gateway, signalling left to the application)
• https://www.slideshare.net/LorenzoMiniero/janussip-opensips-2017
• WIP: a Janus Lua plugin!
• Media routing and manipulation done at the C level
• All the logic/signalling in Lua instead
Your application here!
• What if this was just what you needed? Play with it!
• ... and why not, write your own applications/wrappers/plugins!
75. What to do next?
• Improve the WebRTC implementation
• Work on effective renegotiation (ICE restarts almost ready)
• Implement multistream (Unified Plan)
• SIP-wise, we have some alternatives almost ready
• SIPre (same as existing plugin, but based on libRE)
• NoSIP (media-only gateway, signalling left to the application)
• https://www.slideshare.net/LorenzoMiniero/janussip-opensips-2017
• WIP: a Janus Lua plugin!
• Media routing and manipulation done at the C level
• All the logic/signalling in Lua instead
Your application here!
• What if this was just what you needed? Play with it!
• ... and why not, write your own applications/wrappers/plugins!
76. What to do next?
• Improve the WebRTC implementation
• Work on effective renegotiation (ICE restarts almost ready)
• Implement multistream (Unified Plan)
• SIP-wise, we have some alternatives almost ready
• SIPre (same as existing plugin, but based on libRE)
• NoSIP (media-only gateway, signalling left to the application)
• https://www.slideshare.net/LorenzoMiniero/janussip-opensips-2017
• WIP: a Janus Lua plugin!
• Media routing and manipulation done at the C level
• All the logic/signalling in Lua instead
Your application here!
• What if this was just what you needed? Play with it!
• ... and why not, write your own applications/wrappers/plugins!
77. What to do next?
• Improve the WebRTC implementation
• Work on effective renegotiation (ICE restarts almost ready)
• Implement multistream (Unified Plan)
• SIP-wise, we have some alternatives almost ready
• SIPre (same as existing plugin, but based on libRE)
• NoSIP (media-only gateway, signalling left to the application)
• https://www.slideshare.net/LorenzoMiniero/janussip-opensips-2017
• WIP: a Janus Lua plugin!
• Media routing and manipulation done at the C level
• All the logic/signalling in Lua instead
Your application here!
• What if this was just what you needed? Play with it!
• ... and why not, write your own applications/wrappers/plugins!