SlideShare a Scribd company logo
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Asynchronous event/state notifications
in the Janus WebRTC server
Providing administrators and developers with more tools to manage a Janus instance
Lorenzo Miniero
@elminiero
FOSDEM 2017 Real Time devroom
4th February 2017, Brussels
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Outline
1 Janus: a general purpose WebRTC gateway (application) server
Where were we? (FOSDEM 2016)
First take at monitoring: the Admin API
2 A new type of Janus plugins: Event Handlers
An asynchronous approach to monitoring/troubleshooting
Real example: integrating Homer as a monitoring framework
3 Playing with Event Handlers: a look at the real thing
Monitoring a single PeerConnection: Echo Test
Correlating multiple PeerConnections: Video Room
4 Next steps
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Janus: a general purpose WebRTC gateway server
• 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: https://janus.conf.meetecho.com
• Community: https://groups.google.com/forum/#!forum/meetecho-janus
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
A quick recap: 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 / 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 can be combined on client side as “bricks”
• Video SFU, Audio MCU, SIP gatewaying, broadcasting, etc.
FOSDEM 2016 slides
• http://bit.ly/2jQGsgh
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
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”
• ... assuming you know the identifiers to query (session/handle)
http://www.meetecho.com/blog/understanding-the-janus-admin-api/
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Admin API overview: polling for information
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Admin API overview: polling for information
{
"session_id": 6281631500841242,
"handle_id": 6383008526518405,
"plugin": "janus.plugin.echotest",
[..]
"plugin_specific": {
[..]
},
"flags": {
[..]
},
"sdps": {
[..]
},
"streams": [
[..]
]
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Admin API overview: polling for information
{
"session_id": 6281631500841242,
"handle_id": 6383008526518405,
"plugin": "janus.plugin.echotest",
[..]
"plugin_specific": {
[..]
},
"flags": {
[..]
},
"sdps": {
[..]
},
"streams": [
[..]
]
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Admin API overview: polling for information
{
"session_id": 6281631500841242,
"handle_id": 6383008526518405,
"plugin": "janus.plugin.echotest",
[..]
"plugin_specific": {
[..]
},
"flags": {
[..]
},
"sdps": {
[..]
},
"streams": [
[..]
]
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Admin API overview: polling for information
{
"session_id": 6281631500841242,
"handle_id": 6383008526518405,
"plugin": "janus.plugin.echotest",
[..]
"plugin_specific": {
[..]
},
"flags": {
[..]
},
"sdps": {
[..]
},
"streams": [
[..]
]
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Admin API overview: polling for information
{
"session_id": 6281631500841242,
"handle_id": 6383008526518405,
"plugin": "janus.plugin.echotest",
[..]
"plugin_specific": {
[..]
},
"flags": {
[..]
},
"sdps": {
[..]
},
"streams": [
[..]
]
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Admin API overview: polling for information
{
"session_id": 6281631500841242,
"handle_id": 6383008526518405,
"plugin": "janus.plugin.echotest",
[..]
"plugin_specific": {
[..]
},
"flags": {
[..]
},
"sdps": {
[..]
},
"streams": [
[..]
]
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
An asynchronous approach to monitoring/troubleshooting
• Admin API is cool, but is request/response...
• Needs you to poll again to see changes
• Information is lost when session/handle is gone
• What about an asynchronous approach instead?
• A new mechanism: Event Handlers
• Core and plugins generate events
• Shared “header” (e.g., to identify target of event)
• Different type of events allows for filtering
• Custom modules can subscribe to and handle them
• e.g., save to DB, send to external service, CDR, etc.
• Sample Event Handler forwards JSON events via HTTP
• Third-party plugins may provide integration with existing frameworks
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
An asynchronous approach to monitoring/troubleshooting
• Admin API is cool, but is request/response...
• Needs you to poll again to see changes
• Information is lost when session/handle is gone
• What about an asynchronous approach instead?
• A new mechanism: Event Handlers
• Core and plugins generate events
• Shared “header” (e.g., to identify target of event)
• Different type of events allows for filtering
• Custom modules can subscribe to and handle them
• e.g., save to DB, send to external service, CDR, etc.
• Sample Event Handler forwards JSON events via HTTP
• Third-party plugins may provide integration with existing frameworks
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
An asynchronous approach to monitoring/troubleshooting
• Admin API is cool, but is request/response...
• Needs you to poll again to see changes
• Information is lost when session/handle is gone
• What about an asynchronous approach instead?
• A new mechanism: Event Handlers
• Core and plugins generate events
• Shared “header” (e.g., to identify target of event)
• Different type of events allows for filtering
• Custom modules can subscribe to and handle them
• e.g., save to DB, send to external service, CDR, etc.
• Sample Event Handler forwards JSON events via HTTP
• Third-party plugins may provide integration with existing frameworks
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
An asynchronous approach to monitoring/troubleshooting
• Admin API is cool, but is request/response...
• Needs you to poll again to see changes
• Information is lost when session/handle is gone
• What about an asynchronous approach instead?
• A new mechanism: Event Handlers
• Core and plugins generate events
• Shared “header” (e.g., to identify target of event)
• Different type of events allows for filtering
• Custom modules can subscribe to and handle them
• e.g., save to DB, send to external service, CDR, etc.
• Sample Event Handler forwards JSON events via HTTP
• Third-party plugins may provide integration with existing frameworks
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Event Handlers overview: routing and managing async events
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Type of events
• Different events you can subscribe to
• Session related events (e.g., session created/destroyed, etc.)
• Handle related events (e.g., handle attached/detached, etc.)
• JSEP related events (e.g., got/sent offer/answer)
• WebRTC related events (e.g., PeerConnection up/down, ICE state changes,
DTLS state, etc.)
• Media related events (e.g., media started/stopped flowing, stats on
packets/bytes, etc.)
• Plugin-originated events (specific to the application)
• Transport-originated (specific to the transport)
• Correlation possible on different identifiers
• Transport instances that originate specific session
• Opaque ID applications can set on handles of same “user”
• Plugin-specific identifiers (e.g., in VideoRoom)
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Type of events
• Different events you can subscribe to
• Session related events (e.g., session created/destroyed, etc.)
• Handle related events (e.g., handle attached/detached, etc.)
• JSEP related events (e.g., got/sent offer/answer)
• WebRTC related events (e.g., PeerConnection up/down, ICE state changes,
DTLS state, etc.)
• Media related events (e.g., media started/stopped flowing, stats on
packets/bytes, etc.)
• Plugin-originated events (specific to the application)
• Transport-originated (specific to the transport)
• Correlation possible on different identifiers
• Transport instances that originate specific session
• Opaque ID applications can set on handles of same “user”
• Plugin-specific identifiers (e.g., in VideoRoom)
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Sample Event Handler: a first proof-of-concept
• Example of Event Handler we provide out of the box
• Simply forwards all events as JSON to an HTTP backend
• Supports basic authentication
• Can group events (i.e., JSON array vs. multiple JSON objects)
• Implements simple retransmission (exponential back-off)
• Does nothing more than that: logic needs to be elsewhere
• HTTP backend decides what to do with events, if anything
• Demo in a minute to show exactly that!
• May be extended later on with different transports
• e.g., WebSockets, RabbitMQ, etc.
• ... or does this belong to different handlers entirely?
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Sample Event Handler example: notifying an Admin
application
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Sample Event Handler example: notifying an Admin
application
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
A real-world example: Homer/HEP integration!
• Monitoring Janus sessions through a popular tool
• Homer/HEP intercepts the events Janus sends
• These events are correlated and displayed
• More on that in just a few minutes!
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Meetecho+Janus+Homer: awesome on multiple levels!
https://www.youtube.com/watch?v=TkgDOMSv9PE
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
• Sample Event Handler forwards all events to web backend
• node.js web backend saves events to DB
http://www.meetecho.com/blog/event-handlers-a-practical-example/
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 1,
"timestamp": 1485872279008725,
"session_id": 192621687169800,
"event": {
"name": "created",
"transport": {
"transport": "janus.transport.http",
"id": "0x60e00003e160"
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 1,
"timestamp": 1485872279008725,
"session_id": 192621687169800,
"event": {
"name": "created",
"transport": {
"transport": "janus.transport.http",
"id": "0x60e00003e160"
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 1,
"timestamp": 1485872279008725,
"session_id": 192621687169800,
"event": {
"name": "created",
"transport": {
"transport": "janus.transport.http",
"id": "0x60e00003e160"
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 2,
"timestamp": 1485872279029549,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"name": "attached",
"plugin": "janus.plugin.echotest",
"opaque_id": "echotest-l7jLWaHvyU9q"
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 2,
"timestamp": 1485872279029549,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"name": "attached",
"plugin": "janus.plugin.echotest",
"opaque_id": "echotest-l7jLWaHvyU9q"
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 2,
"timestamp": 1485872279029549,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"name": "attached",
"plugin": "janus.plugin.echotest",
"opaque_id": "echotest-l7jLWaHvyU9q"
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 8,
"timestamp": 1485872279129034,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"owner": "remote",
"jsep": {
"type": "offer",
"sdp": "v=0rn[..]"
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 8,
"timestamp": 1485872279129034,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"owner": "remote",
"jsep": {
"type": "offer",
"sdp": "v=0rn[..]"
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 8,
"timestamp": 1485872279129034,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"owner": "remote",
"jsep": {
"type": "offer",
"sdp": "v=0rn[..]"
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 8,
"timestamp": 1485872279131464,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"owner": "local",
"jsep": {
"type": "answer",
"sdp": "v=0rn[..]"
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 8,
"timestamp": 1485872279131464,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"owner": "local",
"jsep": {
"type": "answer",
"sdp": "v=0rn[..]"
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 8,
"timestamp": 1485872279131464,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"owner": "local",
"jsep": {
"type": "answer",
"sdp": "v=0rn[..]"
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 16,
"timestamp": 1485872279153835,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"ice": "connecting",
"stream_id": 1,
"component_id": 1
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 16,
"timestamp": 1485872279153835,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"ice": "connecting",
"stream_id": 1,
"component_id": 1
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 16,
"timestamp": 1485872279153835,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"ice": "connecting",
"stream_id": 1,
"component_id": 1
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 16,
"timestamp": 1485872279230699,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"ice": "connected",
"stream_id": 1,
"component_id": 1
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 16,
"timestamp": 1485872279230699,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"ice": "connected",
"stream_id": 1,
"component_id": 1
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 16,
"timestamp": 1485872279349240,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"selected-pair": "192.168.1.69:33755 [host,udp]
<-> 192.168.1.69:55537 [host,udp]",
"stream_id": 1,
"component_id": 1
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 16,
"timestamp": 1485872279349240,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"selected-pair": "192.168.1.69:33755 [host,udp]
<-> 192.168.1.69:55537 [host,udp]",
"stream_id": 1,
"component_id": 1
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 16,
"timestamp": 1485872279349713,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"dtls": "trying",
"stream_id": 1,
"component_id": 1
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 16,
"timestamp": 1485872279349713,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"dtls": "trying",
"stream_id": 1,
"component_id": 1
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 16,
"timestamp": 1485872279349713,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"dtls": "trying",
"stream_id": 1,
"component_id": 1
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 16,
"timestamp": 1485872279361899,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"dtls": "connected",
"stream_id": 1,
"component_id": 1
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 16,
"timestamp": 1485872279361899,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"dtls": "connected",
"stream_id": 1,
"component_id": 1
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 16,
"timestamp": 1485872279362615,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"connection": "webrtcup"
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 16,
"timestamp": 1485872279362615,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"connection": "webrtcup"
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 16,
"timestamp": 1485872279362615,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"connection": "webrtcup"
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 32,
"timestamp": 1485872279386850,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"media": "audio",
"receiving": true
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 32,
"timestamp": 1485872279386850,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"media": "audio",
"receiving": true
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 32,
"timestamp": 1485872279386850,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"media": "audio",
"receiving": true
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 32,
"timestamp": 1485872279559121,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"media": "video",
"receiving": true
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 32,
"timestamp": 1485872279559121,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"media": "video",
"receiving": true
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 32,
"timestamp": 1485872279559121,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"media": "video",
"receiving": true
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 32,
"timestamp": 1485872280230983,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"media": "audio",
"base": 48000,
"lsr": 454522762,
"lost": 0,
"lost-by-remote": 0,
"jitter-local": 134488,
"jitter-remote": 0,
"packets-received": 43,
"packets-sent": 43,
"bytes-received": 4089,
"bytes-sent": 4519,
"nacks-received": 0,
"nacks-sent": 0
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 32,
"timestamp": 1485872280230983,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"media": "audio",
"base": 48000,
"lsr": 454522762,
"lost": 0,
"lost-by-remote": 0,
"jitter-local": 134488,
"jitter-remote": 0,
"packets-received": 43,
"packets-sent": 43,
"bytes-received": 4089,
"bytes-sent": 4519,
"nacks-received": 0,
"nacks-sent": 0
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 32,
"timestamp": 1485872280230983,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"media": "audio",
"base": 48000,
"lsr": 454522762,
"lost": 0,
"lost-by-remote": 0,
"jitter-local": 134488,
"jitter-remote": 0,
"packets-received": 43,
"packets-sent": 43,
"bytes-received": 4089,
"bytes-sent": 4519,
"nacks-received": 0,
"nacks-sent": 0
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 32,
"timestamp": 1485872281236922,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"media": "audio",
"base": 48000,
"lsr": 454522762,
"lost": 0,
"lost-by-remote": 0,
"jitter-local": 5338,
"jitter-remote": 0,
"packets-received": 93,
"packets-sent": 93,
"bytes-received": 8940,
"bytes-sent": 9870,
"nacks-received": 0,
"nacks-sent": 0
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 32,
"timestamp": 1485872280231007,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"media": "video",
"base": 90000,
"lsr": 454528520,
"lost": 0,
"lost-by-remote": 0,
"jitter-local": 42459,
"jitter-remote": 3,
"packets-received": 45,
"packets-sent": 45,
"bytes-received": 22779,
"bytes-sent": 23229,
"nacks-received": 0,
"nacks-sent": 0
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 32,
"timestamp": 1485872280231007,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"media": "video",
"base": 90000,
"lsr": 454528520,
"lost": 0,
"lost-by-remote": 0,
"jitter-local": 42459,
"jitter-remote": 3,
"packets-received": 45,
"packets-sent": 45,
"bytes-received": 22779,
"bytes-sent": 23229,
"nacks-received": 0,
"nacks-sent": 0
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 32,
"timestamp": 1485872280231007,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"media": "video",
"base": 90000,
"lsr": 454528520,
"lost": 0,
"lost-by-remote": 0,
"jitter-local": 42459,
"jitter-remote": 3,
"packets-received": 45,
"packets-sent": 45,
"bytes-received": 22779,
"bytes-sent": 23229,
"nacks-received": 0,
"nacks-sent": 0
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 32,
"timestamp": 1485872281236949,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"media": "video",
"base": 90000,
"lsr": 454619874,
"lost": 0,
"lost-by-remote": 0,
"jitter-local": 6537,
"jitter-remote": 2,
"packets-received": 74,
"packets-sent": 74,
"bytes-received": 39933,
"bytes-sent": 40673,
"nacks-received": 0,
"nacks-sent": 0
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 64,
"timestamp": 1485872288429976,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"plugin": "janus.plugin.echotest",
"data": {
"audio_active": true,
"video_active": true,
"bitrate": 256000
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 64,
"timestamp": 1485872288429976,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"plugin": "janus.plugin.echotest",
"data": {
"audio_active": true,
"video_active": true,
"bitrate": 256000
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Monitoring a single PeerConnection: Echo Test
{
"type": 64,
"timestamp": 1485872288429976,
"session_id": 192621687169800,
"handle_id": 7684775393694722,
"event": {
"plugin": "janus.plugin.echotest",
"data": {
"audio_active": true,
"video_active": true,
"bitrate": 256000
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
• VideoRoom demo uses “opaque ID” with handles for correlation
• Again, node.js web backend stores events in updated DB
http://www.meetecho.com/blog/correlating-janus-event-handlers/
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
{
"type": 64,
"timestamp": 1485877400989640,
"session_id": 6706708418803609,
"handle_id": 5978921396405279,
"event": {
"plugin": "janus.plugin.videoroom",
"data": {
"event": "joined",
"room": 1234,
"id": 8361242010771549,
"private_id": 2895980005,
"display": "ciccio"
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
{
"type": 64,
"timestamp": 1485877400989640,
"session_id": 6706708418803609,
"handle_id": 5978921396405279,
"event": {
"plugin": "janus.plugin.videoroom",
"data": {
"event": "joined",
"room": 1234,
"id": 8361242010771549,
"private_id": 2895980005,
"display": "ciccio"
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
{
"type": 64,
"timestamp": 1485877400989640,
"session_id": 6706708418803609,
"handle_id": 5978921396405279,
"event": {
"plugin": "janus.plugin.videoroom",
"data": {
"event": "joined",
"room": 1234,
"id": 8361242010771549,
"private_id": 2895980005,
"display": "ciccio"
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
{
"type": 64,
"timestamp": 1485877410046996,
"session_id": 2273950556695883,
"handle_id": 7656381184336435,
"event": {
"plugin": "janus.plugin.videoroom",
"data": {
"event": "joined",
"room": 1234,
"id": 5265065137454348,
"private_id": 935695062,
"display": "pippo"
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
{
"type": 64,
"timestamp": 1485877410046996,
"session_id": 2273950556695883,
"handle_id": 7656381184336435,
"event": {
"plugin": "janus.plugin.videoroom",
"data": {
"event": "joined",
"room": 1234,
"id": 5265065137454348,
"private_id": 935695062,
"display": "pippo"
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
{
"type": 64,
"timestamp": 1485877410046996,
"session_id": 2273950556695883,
"handle_id": 7656381184336435,
"event": {
"plugin": "janus.plugin.videoroom",
"data": {
"event": "joined",
"room": 1234,
"id": 5265065137454348,
"private_id": 935695062,
"display": "pippo"
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
{
"type": 64,
"timestamp": 1485877410162143,
"session_id": 2273950556695883,
"handle_id": 3756409443147593,
"event": {
"plugin": "janus.plugin.videoroom",
"data": {
"event": "subscribing",
"room": 1234,
"feed": 8361242010771549,
"private_id": 935695062
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
{
"type": 64,
"timestamp": 1485877410162143,
"session_id": 2273950556695883,
"handle_id": 3756409443147593,
"event": {
"plugin": "janus.plugin.videoroom",
"data": {
"event": "subscribing",
"room": 1234,
"feed": 8361242010771549,
"private_id": 935695062
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
{
"type": 64,
"timestamp": 1485877410162143,
"session_id": 2273950556695883,
"handle_id": 3756409443147593,
"event": {
"plugin": "janus.plugin.videoroom",
"data": {
"event": "subscribing",
"room": 1234,
"feed": 8361242010771549,
"private_id": 935695062
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
{
"type": 64,
"timestamp": 1485877414055211,
"session_id": 6706708418803609,
"handle_id": 6827135960427146,
"event": {
"plugin": "janus.plugin.videoroom",
"data": {
"event": "subscribing",
"room": 1234,
"feed": 5265065137454348,
"private_id": 2895980005
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
{
"type": 64,
"timestamp": 1485877414055211,
"session_id": 6706708418803609,
"handle_id": 6827135960427146,
"event": {
"plugin": "janus.plugin.videoroom",
"data": {
"event": "subscribing",
"room": 1234,
"feed": 5265065137454348,
"private_id": 2895980005
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
{
"type": 64,
"timestamp": 1485877414055211,
"session_id": 6706708418803609,
"handle_id": 6827135960427146,
"event": {
"plugin": "janus.plugin.videoroom",
"data": {
"event": "subscribing",
"room": 1234,
"feed": 5265065137454348,
"private_id": 2895980005
}
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
{
"type": 2,
"timestamp": 1485877399393018,
"session_id": 6706708418803609,
"handle_id": 5978921396405279,
"event": {
"name": "attached",
"plugin": "janus.plugin.videoroom",
"opaque_id": "videoroomtest-3REdGHcrZPMk"
}
}
{
"type": 2,
"timestamp": 1485877408504312,
"session_id": 2273950556695883,
"handle_id": 7656381184336435,
"event": {
"name": "attached",
"plugin": "janus.plugin.videoroom",
"opaque_id": "videoroomtest-vZEKMO4F5JiL"
}
}
{
"type": 2,
"timestamp": 1485877410137130,
"session_id": 2273950556695883,
"handle_id": 3756409443147593,
"event": {
"name": "attached",
"plugin": "janus.plugin.videoroom",
"opaque_id": "videoroomtest-vZEKMO4F5JiL"
}
}
{
"type": 2,
"timestamp": 1485877414039724,
"session_id": 6706708418803609,
"handle_id": 6827135960427146,
"event": {
"name": "attached",
"plugin": "janus.plugin.videoroom",
"opaque_id": "videoroomtest-3REdGHcrZPMk"
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
{
"type": 2,
"timestamp": 1485877399393018,
"session_id": 6706708418803609,
"handle_id": 5978921396405279,
"event": {
"name": "attached",
"plugin": "janus.plugin.videoroom",
"opaque_id": "videoroomtest-3REdGHcrZPMk"
}
}
{
"type": 2,
"timestamp": 1485877408504312,
"session_id": 2273950556695883,
"handle_id": 7656381184336435,
"event": {
"name": "attached",
"plugin": "janus.plugin.videoroom",
"opaque_id": "videoroomtest-vZEKMO4F5JiL"
}
}
{
"type": 2,
"timestamp": 1485877410137130,
"session_id": 2273950556695883,
"handle_id": 3756409443147593,
"event": {
"name": "attached",
"plugin": "janus.plugin.videoroom",
"opaque_id": "videoroomtest-vZEKMO4F5JiL"
}
}
{
"type": 2,
"timestamp": 1485877414039724,
"session_id": 6706708418803609,
"handle_id": 6827135960427146,
"event": {
"name": "attached",
"plugin": "janus.plugin.videoroom",
"opaque_id": "videoroomtest-3REdGHcrZPMk"
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
{
"type": 2,
"timestamp": 1485877399393018,
"session_id": 6706708418803609,
"handle_id": 5978921396405279,
"event": {
"name": "attached",
"plugin": "janus.plugin.videoroom",
"opaque_id": "videoroomtest-3REdGHcrZPMk"
}
}
{
"type": 2,
"timestamp": 1485877408504312,
"session_id": 2273950556695883,
"handle_id": 7656381184336435,
"event": {
"name": "attached",
"plugin": "janus.plugin.videoroom",
"opaque_id": "videoroomtest-vZEKMO4F5JiL"
}
}
{
"type": 2,
"timestamp": 1485877410137130,
"session_id": 2273950556695883,
"handle_id": 3756409443147593,
"event": {
"name": "attached",
"plugin": "janus.plugin.videoroom",
"opaque_id": "videoroomtest-vZEKMO4F5JiL"
}
}
{
"type": 2,
"timestamp": 1485877414039724,
"session_id": 6706708418803609,
"handle_id": 6827135960427146,
"event": {
"name": "attached",
"plugin": "janus.plugin.videoroom",
"opaque_id": "videoroomtest-3REdGHcrZPMk"
}
}
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
• ciccio (6706708418803609 / videoroomtest-3REdGHcrZPMk)
• Publishing with ID 8361242010771549 (handle 5978921396405279)
• Subscribed to ID 5265065137454348 (handle 6827135960427146)
• pippo (2273950556695883 / videoroomtest-vZEKMO4F5JiL)
• Publishing with ID 5265065137454348 (handle 7656381184336435)
• Subscribed to ID 8361242010771549 (handle 3756409443147593)
• Hey, they’re both publishing and subscribed to each other! (d’uh...)
• PS: did you notice private_id? It can also help, in VideoRoom...
• PPS: What about transports? (spoiler alert: both used HTTP)
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
• ciccio (6706708418803609 / videoroomtest-3REdGHcrZPMk)
• Publishing with ID 8361242010771549 (handle 5978921396405279)
• Subscribed to ID 5265065137454348 (handle 6827135960427146)
• pippo (2273950556695883 / videoroomtest-vZEKMO4F5JiL)
• Publishing with ID 5265065137454348 (handle 7656381184336435)
• Subscribed to ID 8361242010771549 (handle 3756409443147593)
• Hey, they’re both publishing and subscribed to each other! (d’uh...)
• PS: did you notice private_id? It can also help, in VideoRoom...
• PPS: What about transports? (spoiler alert: both used HTTP)
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
• ciccio (6706708418803609 / videoroomtest-3REdGHcrZPMk)
• Publishing with ID 8361242010771549 (handle 5978921396405279)
• Subscribed to ID 5265065137454348 (handle 6827135960427146)
• pippo (2273950556695883 / videoroomtest-vZEKMO4F5JiL)
• Publishing with ID 5265065137454348 (handle 7656381184336435)
• Subscribed to ID 8361242010771549 (handle 3756409443147593)
• Hey, they’re both publishing and subscribed to each other! (d’uh...)
• PS: did you notice private_id? It can also help, in VideoRoom...
• PPS: What about transports? (spoiler alert: both used HTTP)
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
• ciccio (6706708418803609 / videoroomtest-3REdGHcrZPMk)
• Publishing with ID 8361242010771549 (handle 5978921396405279)
• Subscribed to ID 5265065137454348 (handle 6827135960427146)
• pippo (2273950556695883 / videoroomtest-vZEKMO4F5JiL)
• Publishing with ID 5265065137454348 (handle 7656381184336435)
• Subscribed to ID 8361242010771549 (handle 3756409443147593)
• Hey, they’re both publishing and subscribed to each other! (d’uh...)
• PS: did you notice private_id? It can also help, in VideoRoom...
• PPS: What about transports? (spoiler alert: both used HTTP)
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Correlating multiple PeerConnections: Video Room
• ciccio (6706708418803609 / videoroomtest-3REdGHcrZPMk)
• Publishing with ID 8361242010771549 (handle 5978921396405279)
• Subscribed to ID 5265065137454348 (handle 6827135960427146)
• pippo (2273950556695883 / videoroomtest-vZEKMO4F5JiL)
• Publishing with ID 5265065137454348 (handle 7656381184336435)
• Subscribed to ID 8361242010771549 (handle 3756409443147593)
• Hey, they’re both publishing and subscribed to each other! (d’uh...)
• PS: did you notice private_id? It can also help, in VideoRoom...
• PPS: What about transports? (spoiler alert: both used HTTP)
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
What to do next?
• Event Handlers are a very recent addition
• Still figuring out if existing events are enough
• Are the correlation identifiers sufficient?
• Experimenting with this will give us more info
• Hopefully more Event Handlers in the future
• Homer/HEP native module on the way!
• Other cool ideas for features/integration?
• Monitoring/troubleshooting framework
• Student working on it (Master Degree thesis)
Help us improve this!
• Play with it, more testing is important
• Write your own applications/handlers!
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
What to do next?
• Event Handlers are a very recent addition
• Still figuring out if existing events are enough
• Are the correlation identifiers sufficient?
• Experimenting with this will give us more info
• Hopefully more Event Handlers in the future
• Homer/HEP native module on the way!
• Other cool ideas for features/integration?
• Monitoring/troubleshooting framework
• Student working on it (Master Degree thesis)
Help us improve this!
• Play with it, more testing is important
• Write your own applications/handlers!
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
What to do next?
• Event Handlers are a very recent addition
• Still figuring out if existing events are enough
• Are the correlation identifiers sufficient?
• Experimenting with this will give us more info
• Hopefully more Event Handlers in the future
• Homer/HEP native module on the way!
• Other cool ideas for features/integration?
• Monitoring/troubleshooting framework
• Student working on it (Master Degree thesis)
Help us improve this!
• Play with it, more testing is important
• Write your own applications/handlers!
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
What to do next?
• Event Handlers are a very recent addition
• Still figuring out if existing events are enough
• Are the correlation identifiers sufficient?
• Experimenting with this will give us more info
• Hopefully more Event Handlers in the future
• Homer/HEP native module on the way!
• Other cool ideas for features/integration?
• Monitoring/troubleshooting framework
• Student working on it (Master Degree thesis)
Help us improve this!
• Play with it, more testing is important
• Write your own applications/handlers!
FOSDEM2017
L. Miniero
Janus
Where were we?
Admin API
Monitoring
Event Handlers
Homer/HEP
Demo
EchoTest
VideoRoom
Next steps
Questions?
@elminiero
@meetecho

More Related Content

What's hot

Ppt ct scan abdomen pada kasus tumor hati
Ppt ct scan abdomen pada kasus tumor hatiPpt ct scan abdomen pada kasus tumor hati
Ppt ct scan abdomen pada kasus tumor hati
Nona Zesifa
 
portofolio apendisitis akut
portofolio apendisitis akutportofolio apendisitis akut
portofolio apendisitis akut
Reny Erawati
 
Aula de histessalpingografia e dacriocistografia
Aula de histessalpingografia e dacriocistografiaAula de histessalpingografia e dacriocistografia
Aula de histessalpingografia e dacriocistografia
lucianooliveira306
 
BAKTIF T1 BAB 1.pdf
BAKTIF T1 BAB 1.pdfBAKTIF T1 BAB 1.pdf
BAKTIF T1 BAB 1.pdf
YANTIBINTISULAIMANKP
 
1. INTROD CONTRASTE.pptx
1. INTROD CONTRASTE.pptx1. INTROD CONTRASTE.pptx
1. INTROD CONTRASTE.pptx
CURSO TÉCNICO CEPRAMED
 
Makalah lopografi kritisi
Makalah lopografi kritisiMakalah lopografi kritisi
Makalah lopografi kritisi
p1337430216043
 
Teknik Radiografi 3 Sistem Biliari
Teknik Radiografi 3 Sistem BiliariTeknik Radiografi 3 Sistem Biliari
Teknik Radiografi 3 Sistem Biliari
Nona Zesifa
 
Pertolongan pertama pmr mula
Pertolongan pertama pmr mulaPertolongan pertama pmr mula
Pertolongan pertama pmr mulaJunk Assasaqi
 
Teknik pemeriksaan radiografi oral colecystography
Teknik pemeriksaan radiografi oral colecystographyTeknik pemeriksaan radiografi oral colecystography
Teknik pemeriksaan radiografi oral colecystographyIch Bin Fandy
 
Apoyos en caso de desastre en edificion de trabajo
Apoyos en caso de desastre en edificion de trabajoApoyos en caso de desastre en edificion de trabajo
Apoyos en caso de desastre en edificion de trabajo
CECY50
 
Urinary system.pptx
Urinary system.pptxUrinary system.pptx
Urinary system.pptx
CLASH CATALYSTS
 

What's hot (11)

Ppt ct scan abdomen pada kasus tumor hati
Ppt ct scan abdomen pada kasus tumor hatiPpt ct scan abdomen pada kasus tumor hati
Ppt ct scan abdomen pada kasus tumor hati
 
portofolio apendisitis akut
portofolio apendisitis akutportofolio apendisitis akut
portofolio apendisitis akut
 
Aula de histessalpingografia e dacriocistografia
Aula de histessalpingografia e dacriocistografiaAula de histessalpingografia e dacriocistografia
Aula de histessalpingografia e dacriocistografia
 
BAKTIF T1 BAB 1.pdf
BAKTIF T1 BAB 1.pdfBAKTIF T1 BAB 1.pdf
BAKTIF T1 BAB 1.pdf
 
1. INTROD CONTRASTE.pptx
1. INTROD CONTRASTE.pptx1. INTROD CONTRASTE.pptx
1. INTROD CONTRASTE.pptx
 
Makalah lopografi kritisi
Makalah lopografi kritisiMakalah lopografi kritisi
Makalah lopografi kritisi
 
Teknik Radiografi 3 Sistem Biliari
Teknik Radiografi 3 Sistem BiliariTeknik Radiografi 3 Sistem Biliari
Teknik Radiografi 3 Sistem Biliari
 
Pertolongan pertama pmr mula
Pertolongan pertama pmr mulaPertolongan pertama pmr mula
Pertolongan pertama pmr mula
 
Teknik pemeriksaan radiografi oral colecystography
Teknik pemeriksaan radiografi oral colecystographyTeknik pemeriksaan radiografi oral colecystography
Teknik pemeriksaan radiografi oral colecystography
 
Apoyos en caso de desastre en edificion de trabajo
Apoyos en caso de desastre en edificion de trabajoApoyos en caso de desastre en edificion de trabajo
Apoyos en caso de desastre en edificion de trabajo
 
Urinary system.pptx
Urinary system.pptxUrinary system.pptx
Urinary system.pptx
 

Similar to FOSDEM2017 - Janus Event Handlers

Janus/HOMER/HEPIC @ OpenSIPS18
Janus/HOMER/HEPIC @ OpenSIPS18Janus/HOMER/HEPIC @ OpenSIPS18
Janus/HOMER/HEPIC @ OpenSIPS18
Lorenzo Miniero
 
Monitoring as an entry point for collaboration
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaboration
Julien Pivotto
 
ObserveIT Remote Access Monitoring Software - Corporate Presentation
ObserveIT Remote Access Monitoring Software - Corporate PresentationObserveIT Remote Access Monitoring Software - Corporate Presentation
ObserveIT Remote Access Monitoring Software - Corporate Presentation
ObserveIT
 
When e-commerce meets Symfony
When e-commerce meets SymfonyWhen e-commerce meets Symfony
When e-commerce meets Symfony
Marc Morera
 
HFM API Deep Dive – Making a Better Financial Management Client
HFM API Deep Dive – Making a Better Financial Management ClientHFM API Deep Dive – Making a Better Financial Management Client
HFM API Deep Dive – Making a Better Financial Management Client
Charles Beyer
 
Creating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services APICreating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services API
David Keener
 
Building a microservice architecture for a 100mio# revenue company
Building a microservice architecture for a 100mio# revenue companyBuilding a microservice architecture for a 100mio# revenue company
Building a microservice architecture for a 100mio# revenue company
ProjectAcom
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Alberto González Trastoy
 
Costruire applicazioni multi-tenant e piattaforme SaaS in PHP con Innomatic
Costruire applicazioni multi-tenant e piattaforme SaaS in PHP con InnomaticCostruire applicazioni multi-tenant e piattaforme SaaS in PHP con Innomatic
Costruire applicazioni multi-tenant e piattaforme SaaS in PHP con Innomatic
Innoteam Srl
 
Prometheus: From technical metrics to business observability
Prometheus: From technical metrics to business observabilityPrometheus: From technical metrics to business observability
Prometheus: From technical metrics to business observability
Julien Pivotto
 
Part 2 / 4: How to Intelligently Process and Deliver Real-Time Data with FME ...
Part 2 / 4: How to Intelligently Process and Deliver Real-Time Data with FME ...Part 2 / 4: How to Intelligently Process and Deliver Real-Time Data with FME ...
Part 2 / 4: How to Intelligently Process and Deliver Real-Time Data with FME ...
Safe Software
 
SCOM Tips and Tricks
SCOM Tips and TricksSCOM Tips and Tricks
SCOM Tips and Tricks
Christian Heitkamp
 
Admin Tech Clash: Discussing Best (and Worst) Administration Practices from ...
Admin Tech Clash: Discussing Best (and Worst) Administration Practices from  ...Admin Tech Clash: Discussing Best (and Worst) Administration Practices from  ...
Admin Tech Clash: Discussing Best (and Worst) Administration Practices from ...
Christoph Adler
 
Production debugging web applications
Production debugging web applicationsProduction debugging web applications
Production debugging web applications
Ido Flatow
 
An Introduction to Microservices
An Introduction to MicroservicesAn Introduction to Microservices
An Introduction to Microservices
Ad van der Veer
 
Design Microservice Architectures the Right Way
Design Microservice Architectures the Right WayDesign Microservice Architectures the Right Way
Design Microservice Architectures the Right Way
C4Media
 
ReflectInsight - Let your application speak volume
ReflectInsight - Let your application speak volumeReflectInsight - Let your application speak volume
ReflectInsight - Let your application speak volume
Callon Campbell
 
What is going on? Application Diagnostics on Azure - Copenhagen .NET User Group
What is going on? Application Diagnostics on Azure - Copenhagen .NET User GroupWhat is going on? Application Diagnostics on Azure - Copenhagen .NET User Group
What is going on? Application Diagnostics on Azure - Copenhagen .NET User Group
Maarten Balliauw
 
OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...
OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...
OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...
FINOS
 

Similar to FOSDEM2017 - Janus Event Handlers (20)

Janus/HOMER/HEPIC @ OpenSIPS18
Janus/HOMER/HEPIC @ OpenSIPS18Janus/HOMER/HEPIC @ OpenSIPS18
Janus/HOMER/HEPIC @ OpenSIPS18
 
Monitoring as an entry point for collaboration
Monitoring as an entry point for collaborationMonitoring as an entry point for collaboration
Monitoring as an entry point for collaboration
 
ObserveIT Remote Access Monitoring Software - Corporate Presentation
ObserveIT Remote Access Monitoring Software - Corporate PresentationObserveIT Remote Access Monitoring Software - Corporate Presentation
ObserveIT Remote Access Monitoring Software - Corporate Presentation
 
When e-commerce meets Symfony
When e-commerce meets SymfonyWhen e-commerce meets Symfony
When e-commerce meets Symfony
 
Kscope presentation 2013
Kscope presentation 2013Kscope presentation 2013
Kscope presentation 2013
 
HFM API Deep Dive – Making a Better Financial Management Client
HFM API Deep Dive – Making a Better Financial Management ClientHFM API Deep Dive – Making a Better Financial Management Client
HFM API Deep Dive – Making a Better Financial Management Client
 
Creating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services APICreating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services API
 
Building a microservice architecture for a 100mio# revenue company
Building a microservice architecture for a 100mio# revenue companyBuilding a microservice architecture for a 100mio# revenue company
Building a microservice architecture for a 100mio# revenue company
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Costruire applicazioni multi-tenant e piattaforme SaaS in PHP con Innomatic
Costruire applicazioni multi-tenant e piattaforme SaaS in PHP con InnomaticCostruire applicazioni multi-tenant e piattaforme SaaS in PHP con Innomatic
Costruire applicazioni multi-tenant e piattaforme SaaS in PHP con Innomatic
 
Prometheus: From technical metrics to business observability
Prometheus: From technical metrics to business observabilityPrometheus: From technical metrics to business observability
Prometheus: From technical metrics to business observability
 
Part 2 / 4: How to Intelligently Process and Deliver Real-Time Data with FME ...
Part 2 / 4: How to Intelligently Process and Deliver Real-Time Data with FME ...Part 2 / 4: How to Intelligently Process and Deliver Real-Time Data with FME ...
Part 2 / 4: How to Intelligently Process and Deliver Real-Time Data with FME ...
 
SCOM Tips and Tricks
SCOM Tips and TricksSCOM Tips and Tricks
SCOM Tips and Tricks
 
Admin Tech Clash: Discussing Best (and Worst) Administration Practices from ...
Admin Tech Clash: Discussing Best (and Worst) Administration Practices from  ...Admin Tech Clash: Discussing Best (and Worst) Administration Practices from  ...
Admin Tech Clash: Discussing Best (and Worst) Administration Practices from ...
 
Production debugging web applications
Production debugging web applicationsProduction debugging web applications
Production debugging web applications
 
An Introduction to Microservices
An Introduction to MicroservicesAn Introduction to Microservices
An Introduction to Microservices
 
Design Microservice Architectures the Right Way
Design Microservice Architectures the Right WayDesign Microservice Architectures the Right Way
Design Microservice Architectures the Right Way
 
ReflectInsight - Let your application speak volume
ReflectInsight - Let your application speak volumeReflectInsight - Let your application speak volume
ReflectInsight - Let your application speak volume
 
What is going on? Application Diagnostics on Azure - Copenhagen .NET User Group
What is going on? Application Diagnostics on Azure - Copenhagen .NET User GroupWhat is going on? Application Diagnostics on Azure - Copenhagen .NET User Group
What is going on? Application Diagnostics on Azure - Copenhagen .NET User Group
 
OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...
OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...
OSSF 2018 - Brandon Jung of GitLab - Is Your DevOps 'Tool Tax' Weighing You D...
 

More from Lorenzo Miniero

WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
Lorenzo Miniero
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Lorenzo Miniero
 
Getting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC ServerGetting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC Server
Lorenzo Miniero
 
WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023
Lorenzo Miniero
 
BWE in Janus
BWE in JanusBWE in Janus
BWE in Janus
Lorenzo Miniero
 
The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023
Lorenzo Miniero
 
Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023
Lorenzo Miniero
 
Become a rockstar using FOSS!
Become a rockstar using FOSS!Become a rockstar using FOSS!
Become a rockstar using FOSS!
Lorenzo Miniero
 
Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022
Lorenzo Miniero
 
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
Lorenzo Miniero
 
WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022
Lorenzo Miniero
 
WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21
Lorenzo Miniero
 
WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021
Lorenzo Miniero
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021
Lorenzo Miniero
 
Janus + Audio @ Open Source World
Janus + Audio @ Open Source WorldJanus + Audio @ Open Source World
Janus + Audio @ Open Source World
Lorenzo Miniero
 
JamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConferenceJamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConference
Lorenzo Miniero
 
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDScaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
Lorenzo Miniero
 
Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021
Lorenzo Miniero
 
Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021
Lorenzo Miniero
 
Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021
Lorenzo Miniero
 

More from Lorenzo Miniero (20)

WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Getting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC ServerGetting AV1/SVC to work in the Janus WebRTC Server
Getting AV1/SVC to work in the Janus WebRTC Server
 
WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023WebRTC Broadcasting @ TADSummit 2023
WebRTC Broadcasting @ TADSummit 2023
 
BWE in Janus
BWE in JanusBWE in Janus
BWE in Janus
 
The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023The challenges of hybrid meetings @ CommCon 2023
The challenges of hybrid meetings @ CommCon 2023
 
Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023Real-Time Text and WebRTC @ Kamailio World 2023
Real-Time Text and WebRTC @ Kamailio World 2023
 
Become a rockstar using FOSS!
Become a rockstar using FOSS!Become a rockstar using FOSS!
Become a rockstar using FOSS!
 
Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022Janus SFU cascading @ IIT-RTC 2022
Janus SFU cascading @ IIT-RTC 2022
 
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022SIP transfer with Janus/WebRTC @ OpenSIPS 2022
SIP transfer with Janus/WebRTC @ OpenSIPS 2022
 
WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022
 
WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21
 
WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021WHIP and Janus @ IIT-RTC 2021
WHIP and Janus @ IIT-RTC 2021
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021
 
Janus + Audio @ Open Source World
Janus + Audio @ Open Source WorldJanus + Audio @ Open Source World
Janus + Audio @ Open Source World
 
JamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConferenceJamRTC @ Wonder WebRTC unConference
JamRTC @ Wonder WebRTC unConference
 
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDScaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
 
Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021
 
Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021Janus + NDI @ ClueCon 2021
Janus + NDI @ ClueCon 2021
 
Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021
 

Recently uploaded

Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 

Recently uploaded (20)

Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 

FOSDEM2017 - Janus Event Handlers

  • 1. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Asynchronous event/state notifications in the Janus WebRTC server Providing administrators and developers with more tools to manage a Janus instance Lorenzo Miniero @elminiero FOSDEM 2017 Real Time devroom 4th February 2017, Brussels
  • 2. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Outline 1 Janus: a general purpose WebRTC gateway (application) server Where were we? (FOSDEM 2016) First take at monitoring: the Admin API 2 A new type of Janus plugins: Event Handlers An asynchronous approach to monitoring/troubleshooting Real example: integrating Homer as a monitoring framework 3 Playing with Event Handlers: a look at the real thing Monitoring a single PeerConnection: Echo Test Correlating multiple PeerConnections: Video Room 4 Next steps
  • 3. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Janus: a general purpose WebRTC gateway server • 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: https://janus.conf.meetecho.com • Community: https://groups.google.com/forum/#!forum/meetecho-janus
  • 4. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps A quick recap: 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 / 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 can be combined on client side as “bricks” • Video SFU, Audio MCU, SIP gatewaying, broadcasting, etc. FOSDEM 2016 slides • http://bit.ly/2jQGsgh
  • 5. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom 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” • ... assuming you know the identifiers to query (session/handle) http://www.meetecho.com/blog/understanding-the-janus-admin-api/
  • 6. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Admin API overview: polling for information
  • 7. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Admin API overview: polling for information { "session_id": 6281631500841242, "handle_id": 6383008526518405, "plugin": "janus.plugin.echotest", [..] "plugin_specific": { [..] }, "flags": { [..] }, "sdps": { [..] }, "streams": [ [..] ] }
  • 8. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Admin API overview: polling for information { "session_id": 6281631500841242, "handle_id": 6383008526518405, "plugin": "janus.plugin.echotest", [..] "plugin_specific": { [..] }, "flags": { [..] }, "sdps": { [..] }, "streams": [ [..] ] }
  • 9. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Admin API overview: polling for information { "session_id": 6281631500841242, "handle_id": 6383008526518405, "plugin": "janus.plugin.echotest", [..] "plugin_specific": { [..] }, "flags": { [..] }, "sdps": { [..] }, "streams": [ [..] ] }
  • 10. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Admin API overview: polling for information { "session_id": 6281631500841242, "handle_id": 6383008526518405, "plugin": "janus.plugin.echotest", [..] "plugin_specific": { [..] }, "flags": { [..] }, "sdps": { [..] }, "streams": [ [..] ] }
  • 11. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Admin API overview: polling for information { "session_id": 6281631500841242, "handle_id": 6383008526518405, "plugin": "janus.plugin.echotest", [..] "plugin_specific": { [..] }, "flags": { [..] }, "sdps": { [..] }, "streams": [ [..] ] }
  • 12. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Admin API overview: polling for information { "session_id": 6281631500841242, "handle_id": 6383008526518405, "plugin": "janus.plugin.echotest", [..] "plugin_specific": { [..] }, "flags": { [..] }, "sdps": { [..] }, "streams": [ [..] ] }
  • 13. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps An asynchronous approach to monitoring/troubleshooting • Admin API is cool, but is request/response... • Needs you to poll again to see changes • Information is lost when session/handle is gone • What about an asynchronous approach instead? • A new mechanism: Event Handlers • Core and plugins generate events • Shared “header” (e.g., to identify target of event) • Different type of events allows for filtering • Custom modules can subscribe to and handle them • e.g., save to DB, send to external service, CDR, etc. • Sample Event Handler forwards JSON events via HTTP • Third-party plugins may provide integration with existing frameworks
  • 14. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps An asynchronous approach to monitoring/troubleshooting • Admin API is cool, but is request/response... • Needs you to poll again to see changes • Information is lost when session/handle is gone • What about an asynchronous approach instead? • A new mechanism: Event Handlers • Core and plugins generate events • Shared “header” (e.g., to identify target of event) • Different type of events allows for filtering • Custom modules can subscribe to and handle them • e.g., save to DB, send to external service, CDR, etc. • Sample Event Handler forwards JSON events via HTTP • Third-party plugins may provide integration with existing frameworks
  • 15. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps An asynchronous approach to monitoring/troubleshooting • Admin API is cool, but is request/response... • Needs you to poll again to see changes • Information is lost when session/handle is gone • What about an asynchronous approach instead? • A new mechanism: Event Handlers • Core and plugins generate events • Shared “header” (e.g., to identify target of event) • Different type of events allows for filtering • Custom modules can subscribe to and handle them • e.g., save to DB, send to external service, CDR, etc. • Sample Event Handler forwards JSON events via HTTP • Third-party plugins may provide integration with existing frameworks
  • 16. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps An asynchronous approach to monitoring/troubleshooting • Admin API is cool, but is request/response... • Needs you to poll again to see changes • Information is lost when session/handle is gone • What about an asynchronous approach instead? • A new mechanism: Event Handlers • Core and plugins generate events • Shared “header” (e.g., to identify target of event) • Different type of events allows for filtering • Custom modules can subscribe to and handle them • e.g., save to DB, send to external service, CDR, etc. • Sample Event Handler forwards JSON events via HTTP • Third-party plugins may provide integration with existing frameworks
  • 17. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Event Handlers overview: routing and managing async events
  • 18. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Type of events • Different events you can subscribe to • Session related events (e.g., session created/destroyed, etc.) • Handle related events (e.g., handle attached/detached, etc.) • JSEP related events (e.g., got/sent offer/answer) • WebRTC related events (e.g., PeerConnection up/down, ICE state changes, DTLS state, etc.) • Media related events (e.g., media started/stopped flowing, stats on packets/bytes, etc.) • Plugin-originated events (specific to the application) • Transport-originated (specific to the transport) • Correlation possible on different identifiers • Transport instances that originate specific session • Opaque ID applications can set on handles of same “user” • Plugin-specific identifiers (e.g., in VideoRoom)
  • 19. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Type of events • Different events you can subscribe to • Session related events (e.g., session created/destroyed, etc.) • Handle related events (e.g., handle attached/detached, etc.) • JSEP related events (e.g., got/sent offer/answer) • WebRTC related events (e.g., PeerConnection up/down, ICE state changes, DTLS state, etc.) • Media related events (e.g., media started/stopped flowing, stats on packets/bytes, etc.) • Plugin-originated events (specific to the application) • Transport-originated (specific to the transport) • Correlation possible on different identifiers • Transport instances that originate specific session • Opaque ID applications can set on handles of same “user” • Plugin-specific identifiers (e.g., in VideoRoom)
  • 20. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Sample Event Handler: a first proof-of-concept • Example of Event Handler we provide out of the box • Simply forwards all events as JSON to an HTTP backend • Supports basic authentication • Can group events (i.e., JSON array vs. multiple JSON objects) • Implements simple retransmission (exponential back-off) • Does nothing more than that: logic needs to be elsewhere • HTTP backend decides what to do with events, if anything • Demo in a minute to show exactly that! • May be extended later on with different transports • e.g., WebSockets, RabbitMQ, etc. • ... or does this belong to different handlers entirely?
  • 21. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Sample Event Handler example: notifying an Admin application
  • 22. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Sample Event Handler example: notifying an Admin application
  • 23. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps A real-world example: Homer/HEP integration! • Monitoring Janus sessions through a popular tool • Homer/HEP intercepts the events Janus sends • These events are correlated and displayed • More on that in just a few minutes!
  • 24. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Meetecho+Janus+Homer: awesome on multiple levels! https://www.youtube.com/watch?v=TkgDOMSv9PE
  • 25. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test • Sample Event Handler forwards all events to web backend • node.js web backend saves events to DB http://www.meetecho.com/blog/event-handlers-a-practical-example/
  • 26. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 1, "timestamp": 1485872279008725, "session_id": 192621687169800, "event": { "name": "created", "transport": { "transport": "janus.transport.http", "id": "0x60e00003e160" } } }
  • 27. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 1, "timestamp": 1485872279008725, "session_id": 192621687169800, "event": { "name": "created", "transport": { "transport": "janus.transport.http", "id": "0x60e00003e160" } } }
  • 28. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 1, "timestamp": 1485872279008725, "session_id": 192621687169800, "event": { "name": "created", "transport": { "transport": "janus.transport.http", "id": "0x60e00003e160" } } }
  • 29. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 2, "timestamp": 1485872279029549, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "name": "attached", "plugin": "janus.plugin.echotest", "opaque_id": "echotest-l7jLWaHvyU9q" } }
  • 30. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 2, "timestamp": 1485872279029549, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "name": "attached", "plugin": "janus.plugin.echotest", "opaque_id": "echotest-l7jLWaHvyU9q" } }
  • 31. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 2, "timestamp": 1485872279029549, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "name": "attached", "plugin": "janus.plugin.echotest", "opaque_id": "echotest-l7jLWaHvyU9q" } }
  • 32. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 8, "timestamp": 1485872279129034, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "owner": "remote", "jsep": { "type": "offer", "sdp": "v=0rn[..]" } } }
  • 33. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 8, "timestamp": 1485872279129034, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "owner": "remote", "jsep": { "type": "offer", "sdp": "v=0rn[..]" } } }
  • 34. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 8, "timestamp": 1485872279129034, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "owner": "remote", "jsep": { "type": "offer", "sdp": "v=0rn[..]" } } }
  • 35. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 8, "timestamp": 1485872279131464, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "owner": "local", "jsep": { "type": "answer", "sdp": "v=0rn[..]" } } }
  • 36. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 8, "timestamp": 1485872279131464, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "owner": "local", "jsep": { "type": "answer", "sdp": "v=0rn[..]" } } }
  • 37. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 8, "timestamp": 1485872279131464, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "owner": "local", "jsep": { "type": "answer", "sdp": "v=0rn[..]" } } }
  • 38. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 16, "timestamp": 1485872279153835, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "ice": "connecting", "stream_id": 1, "component_id": 1 } }
  • 39. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 16, "timestamp": 1485872279153835, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "ice": "connecting", "stream_id": 1, "component_id": 1 } }
  • 40. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 16, "timestamp": 1485872279153835, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "ice": "connecting", "stream_id": 1, "component_id": 1 } }
  • 41. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 16, "timestamp": 1485872279230699, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "ice": "connected", "stream_id": 1, "component_id": 1 } }
  • 42. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 16, "timestamp": 1485872279230699, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "ice": "connected", "stream_id": 1, "component_id": 1 } }
  • 43. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 16, "timestamp": 1485872279349240, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "selected-pair": "192.168.1.69:33755 [host,udp] <-> 192.168.1.69:55537 [host,udp]", "stream_id": 1, "component_id": 1 } }
  • 44. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 16, "timestamp": 1485872279349240, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "selected-pair": "192.168.1.69:33755 [host,udp] <-> 192.168.1.69:55537 [host,udp]", "stream_id": 1, "component_id": 1 } }
  • 45. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 16, "timestamp": 1485872279349713, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "dtls": "trying", "stream_id": 1, "component_id": 1 } }
  • 46. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 16, "timestamp": 1485872279349713, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "dtls": "trying", "stream_id": 1, "component_id": 1 } }
  • 47. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 16, "timestamp": 1485872279349713, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "dtls": "trying", "stream_id": 1, "component_id": 1 } }
  • 48. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 16, "timestamp": 1485872279361899, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "dtls": "connected", "stream_id": 1, "component_id": 1 } }
  • 49. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 16, "timestamp": 1485872279361899, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "dtls": "connected", "stream_id": 1, "component_id": 1 } }
  • 50. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 16, "timestamp": 1485872279362615, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "connection": "webrtcup" } }
  • 51. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 16, "timestamp": 1485872279362615, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "connection": "webrtcup" } }
  • 52. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 16, "timestamp": 1485872279362615, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "connection": "webrtcup" } }
  • 53. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 32, "timestamp": 1485872279386850, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "media": "audio", "receiving": true } }
  • 54. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 32, "timestamp": 1485872279386850, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "media": "audio", "receiving": true } }
  • 55. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 32, "timestamp": 1485872279386850, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "media": "audio", "receiving": true } }
  • 56. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 32, "timestamp": 1485872279559121, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "media": "video", "receiving": true } }
  • 57. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 32, "timestamp": 1485872279559121, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "media": "video", "receiving": true } }
  • 58. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 32, "timestamp": 1485872279559121, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "media": "video", "receiving": true } }
  • 59. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 32, "timestamp": 1485872280230983, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "media": "audio", "base": 48000, "lsr": 454522762, "lost": 0, "lost-by-remote": 0, "jitter-local": 134488, "jitter-remote": 0, "packets-received": 43, "packets-sent": 43, "bytes-received": 4089, "bytes-sent": 4519, "nacks-received": 0, "nacks-sent": 0 }
  • 60. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 32, "timestamp": 1485872280230983, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "media": "audio", "base": 48000, "lsr": 454522762, "lost": 0, "lost-by-remote": 0, "jitter-local": 134488, "jitter-remote": 0, "packets-received": 43, "packets-sent": 43, "bytes-received": 4089, "bytes-sent": 4519, "nacks-received": 0, "nacks-sent": 0 }
  • 61. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 32, "timestamp": 1485872280230983, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "media": "audio", "base": 48000, "lsr": 454522762, "lost": 0, "lost-by-remote": 0, "jitter-local": 134488, "jitter-remote": 0, "packets-received": 43, "packets-sent": 43, "bytes-received": 4089, "bytes-sent": 4519, "nacks-received": 0, "nacks-sent": 0 }
  • 62. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 32, "timestamp": 1485872281236922, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "media": "audio", "base": 48000, "lsr": 454522762, "lost": 0, "lost-by-remote": 0, "jitter-local": 5338, "jitter-remote": 0, "packets-received": 93, "packets-sent": 93, "bytes-received": 8940, "bytes-sent": 9870, "nacks-received": 0, "nacks-sent": 0 }
  • 63. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 32, "timestamp": 1485872280231007, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "media": "video", "base": 90000, "lsr": 454528520, "lost": 0, "lost-by-remote": 0, "jitter-local": 42459, "jitter-remote": 3, "packets-received": 45, "packets-sent": 45, "bytes-received": 22779, "bytes-sent": 23229, "nacks-received": 0, "nacks-sent": 0 }
  • 64. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 32, "timestamp": 1485872280231007, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "media": "video", "base": 90000, "lsr": 454528520, "lost": 0, "lost-by-remote": 0, "jitter-local": 42459, "jitter-remote": 3, "packets-received": 45, "packets-sent": 45, "bytes-received": 22779, "bytes-sent": 23229, "nacks-received": 0, "nacks-sent": 0 }
  • 65. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 32, "timestamp": 1485872280231007, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "media": "video", "base": 90000, "lsr": 454528520, "lost": 0, "lost-by-remote": 0, "jitter-local": 42459, "jitter-remote": 3, "packets-received": 45, "packets-sent": 45, "bytes-received": 22779, "bytes-sent": 23229, "nacks-received": 0, "nacks-sent": 0 }
  • 66. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 32, "timestamp": 1485872281236949, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "media": "video", "base": 90000, "lsr": 454619874, "lost": 0, "lost-by-remote": 0, "jitter-local": 6537, "jitter-remote": 2, "packets-received": 74, "packets-sent": 74, "bytes-received": 39933, "bytes-sent": 40673, "nacks-received": 0, "nacks-sent": 0 }
  • 67. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 64, "timestamp": 1485872288429976, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "plugin": "janus.plugin.echotest", "data": { "audio_active": true, "video_active": true, "bitrate": 256000 } } }
  • 68. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 64, "timestamp": 1485872288429976, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "plugin": "janus.plugin.echotest", "data": { "audio_active": true, "video_active": true, "bitrate": 256000 } } }
  • 69. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Monitoring a single PeerConnection: Echo Test { "type": 64, "timestamp": 1485872288429976, "session_id": 192621687169800, "handle_id": 7684775393694722, "event": { "plugin": "janus.plugin.echotest", "data": { "audio_active": true, "video_active": true, "bitrate": 256000 } } }
  • 70. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room • VideoRoom demo uses “opaque ID” with handles for correlation • Again, node.js web backend stores events in updated DB http://www.meetecho.com/blog/correlating-janus-event-handlers/
  • 71. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room { "type": 64, "timestamp": 1485877400989640, "session_id": 6706708418803609, "handle_id": 5978921396405279, "event": { "plugin": "janus.plugin.videoroom", "data": { "event": "joined", "room": 1234, "id": 8361242010771549, "private_id": 2895980005, "display": "ciccio" } } }
  • 72. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room { "type": 64, "timestamp": 1485877400989640, "session_id": 6706708418803609, "handle_id": 5978921396405279, "event": { "plugin": "janus.plugin.videoroom", "data": { "event": "joined", "room": 1234, "id": 8361242010771549, "private_id": 2895980005, "display": "ciccio" } } }
  • 73. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room { "type": 64, "timestamp": 1485877400989640, "session_id": 6706708418803609, "handle_id": 5978921396405279, "event": { "plugin": "janus.plugin.videoroom", "data": { "event": "joined", "room": 1234, "id": 8361242010771549, "private_id": 2895980005, "display": "ciccio" } } }
  • 74. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room { "type": 64, "timestamp": 1485877410046996, "session_id": 2273950556695883, "handle_id": 7656381184336435, "event": { "plugin": "janus.plugin.videoroom", "data": { "event": "joined", "room": 1234, "id": 5265065137454348, "private_id": 935695062, "display": "pippo" } } }
  • 75. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room { "type": 64, "timestamp": 1485877410046996, "session_id": 2273950556695883, "handle_id": 7656381184336435, "event": { "plugin": "janus.plugin.videoroom", "data": { "event": "joined", "room": 1234, "id": 5265065137454348, "private_id": 935695062, "display": "pippo" } } }
  • 76. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room { "type": 64, "timestamp": 1485877410046996, "session_id": 2273950556695883, "handle_id": 7656381184336435, "event": { "plugin": "janus.plugin.videoroom", "data": { "event": "joined", "room": 1234, "id": 5265065137454348, "private_id": 935695062, "display": "pippo" } } }
  • 77. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room { "type": 64, "timestamp": 1485877410162143, "session_id": 2273950556695883, "handle_id": 3756409443147593, "event": { "plugin": "janus.plugin.videoroom", "data": { "event": "subscribing", "room": 1234, "feed": 8361242010771549, "private_id": 935695062 } } }
  • 78. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room { "type": 64, "timestamp": 1485877410162143, "session_id": 2273950556695883, "handle_id": 3756409443147593, "event": { "plugin": "janus.plugin.videoroom", "data": { "event": "subscribing", "room": 1234, "feed": 8361242010771549, "private_id": 935695062 } } }
  • 79. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room { "type": 64, "timestamp": 1485877410162143, "session_id": 2273950556695883, "handle_id": 3756409443147593, "event": { "plugin": "janus.plugin.videoroom", "data": { "event": "subscribing", "room": 1234, "feed": 8361242010771549, "private_id": 935695062 } } }
  • 80. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room { "type": 64, "timestamp": 1485877414055211, "session_id": 6706708418803609, "handle_id": 6827135960427146, "event": { "plugin": "janus.plugin.videoroom", "data": { "event": "subscribing", "room": 1234, "feed": 5265065137454348, "private_id": 2895980005 } } }
  • 81. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room { "type": 64, "timestamp": 1485877414055211, "session_id": 6706708418803609, "handle_id": 6827135960427146, "event": { "plugin": "janus.plugin.videoroom", "data": { "event": "subscribing", "room": 1234, "feed": 5265065137454348, "private_id": 2895980005 } } }
  • 82. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room { "type": 64, "timestamp": 1485877414055211, "session_id": 6706708418803609, "handle_id": 6827135960427146, "event": { "plugin": "janus.plugin.videoroom", "data": { "event": "subscribing", "room": 1234, "feed": 5265065137454348, "private_id": 2895980005 } } }
  • 83. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room { "type": 2, "timestamp": 1485877399393018, "session_id": 6706708418803609, "handle_id": 5978921396405279, "event": { "name": "attached", "plugin": "janus.plugin.videoroom", "opaque_id": "videoroomtest-3REdGHcrZPMk" } } { "type": 2, "timestamp": 1485877408504312, "session_id": 2273950556695883, "handle_id": 7656381184336435, "event": { "name": "attached", "plugin": "janus.plugin.videoroom", "opaque_id": "videoroomtest-vZEKMO4F5JiL" } } { "type": 2, "timestamp": 1485877410137130, "session_id": 2273950556695883, "handle_id": 3756409443147593, "event": { "name": "attached", "plugin": "janus.plugin.videoroom", "opaque_id": "videoroomtest-vZEKMO4F5JiL" } } { "type": 2, "timestamp": 1485877414039724, "session_id": 6706708418803609, "handle_id": 6827135960427146, "event": { "name": "attached", "plugin": "janus.plugin.videoroom", "opaque_id": "videoroomtest-3REdGHcrZPMk" } }
  • 84. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room { "type": 2, "timestamp": 1485877399393018, "session_id": 6706708418803609, "handle_id": 5978921396405279, "event": { "name": "attached", "plugin": "janus.plugin.videoroom", "opaque_id": "videoroomtest-3REdGHcrZPMk" } } { "type": 2, "timestamp": 1485877408504312, "session_id": 2273950556695883, "handle_id": 7656381184336435, "event": { "name": "attached", "plugin": "janus.plugin.videoroom", "opaque_id": "videoroomtest-vZEKMO4F5JiL" } } { "type": 2, "timestamp": 1485877410137130, "session_id": 2273950556695883, "handle_id": 3756409443147593, "event": { "name": "attached", "plugin": "janus.plugin.videoroom", "opaque_id": "videoroomtest-vZEKMO4F5JiL" } } { "type": 2, "timestamp": 1485877414039724, "session_id": 6706708418803609, "handle_id": 6827135960427146, "event": { "name": "attached", "plugin": "janus.plugin.videoroom", "opaque_id": "videoroomtest-3REdGHcrZPMk" } }
  • 85. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room { "type": 2, "timestamp": 1485877399393018, "session_id": 6706708418803609, "handle_id": 5978921396405279, "event": { "name": "attached", "plugin": "janus.plugin.videoroom", "opaque_id": "videoroomtest-3REdGHcrZPMk" } } { "type": 2, "timestamp": 1485877408504312, "session_id": 2273950556695883, "handle_id": 7656381184336435, "event": { "name": "attached", "plugin": "janus.plugin.videoroom", "opaque_id": "videoroomtest-vZEKMO4F5JiL" } } { "type": 2, "timestamp": 1485877410137130, "session_id": 2273950556695883, "handle_id": 3756409443147593, "event": { "name": "attached", "plugin": "janus.plugin.videoroom", "opaque_id": "videoroomtest-vZEKMO4F5JiL" } } { "type": 2, "timestamp": 1485877414039724, "session_id": 6706708418803609, "handle_id": 6827135960427146, "event": { "name": "attached", "plugin": "janus.plugin.videoroom", "opaque_id": "videoroomtest-3REdGHcrZPMk" } }
  • 86. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room • ciccio (6706708418803609 / videoroomtest-3REdGHcrZPMk) • Publishing with ID 8361242010771549 (handle 5978921396405279) • Subscribed to ID 5265065137454348 (handle 6827135960427146) • pippo (2273950556695883 / videoroomtest-vZEKMO4F5JiL) • Publishing with ID 5265065137454348 (handle 7656381184336435) • Subscribed to ID 8361242010771549 (handle 3756409443147593) • Hey, they’re both publishing and subscribed to each other! (d’uh...) • PS: did you notice private_id? It can also help, in VideoRoom... • PPS: What about transports? (spoiler alert: both used HTTP)
  • 87. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room • ciccio (6706708418803609 / videoroomtest-3REdGHcrZPMk) • Publishing with ID 8361242010771549 (handle 5978921396405279) • Subscribed to ID 5265065137454348 (handle 6827135960427146) • pippo (2273950556695883 / videoroomtest-vZEKMO4F5JiL) • Publishing with ID 5265065137454348 (handle 7656381184336435) • Subscribed to ID 8361242010771549 (handle 3756409443147593) • Hey, they’re both publishing and subscribed to each other! (d’uh...) • PS: did you notice private_id? It can also help, in VideoRoom... • PPS: What about transports? (spoiler alert: both used HTTP)
  • 88. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room • ciccio (6706708418803609 / videoroomtest-3REdGHcrZPMk) • Publishing with ID 8361242010771549 (handle 5978921396405279) • Subscribed to ID 5265065137454348 (handle 6827135960427146) • pippo (2273950556695883 / videoroomtest-vZEKMO4F5JiL) • Publishing with ID 5265065137454348 (handle 7656381184336435) • Subscribed to ID 8361242010771549 (handle 3756409443147593) • Hey, they’re both publishing and subscribed to each other! (d’uh...) • PS: did you notice private_id? It can also help, in VideoRoom... • PPS: What about transports? (spoiler alert: both used HTTP)
  • 89. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room • ciccio (6706708418803609 / videoroomtest-3REdGHcrZPMk) • Publishing with ID 8361242010771549 (handle 5978921396405279) • Subscribed to ID 5265065137454348 (handle 6827135960427146) • pippo (2273950556695883 / videoroomtest-vZEKMO4F5JiL) • Publishing with ID 5265065137454348 (handle 7656381184336435) • Subscribed to ID 8361242010771549 (handle 3756409443147593) • Hey, they’re both publishing and subscribed to each other! (d’uh...) • PS: did you notice private_id? It can also help, in VideoRoom... • PPS: What about transports? (spoiler alert: both used HTTP)
  • 90. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Correlating multiple PeerConnections: Video Room • ciccio (6706708418803609 / videoroomtest-3REdGHcrZPMk) • Publishing with ID 8361242010771549 (handle 5978921396405279) • Subscribed to ID 5265065137454348 (handle 6827135960427146) • pippo (2273950556695883 / videoroomtest-vZEKMO4F5JiL) • Publishing with ID 5265065137454348 (handle 7656381184336435) • Subscribed to ID 8361242010771549 (handle 3756409443147593) • Hey, they’re both publishing and subscribed to each other! (d’uh...) • PS: did you notice private_id? It can also help, in VideoRoom... • PPS: What about transports? (spoiler alert: both used HTTP)
  • 91. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps What to do next? • Event Handlers are a very recent addition • Still figuring out if existing events are enough • Are the correlation identifiers sufficient? • Experimenting with this will give us more info • Hopefully more Event Handlers in the future • Homer/HEP native module on the way! • Other cool ideas for features/integration? • Monitoring/troubleshooting framework • Student working on it (Master Degree thesis) Help us improve this! • Play with it, more testing is important • Write your own applications/handlers!
  • 92. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps What to do next? • Event Handlers are a very recent addition • Still figuring out if existing events are enough • Are the correlation identifiers sufficient? • Experimenting with this will give us more info • Hopefully more Event Handlers in the future • Homer/HEP native module on the way! • Other cool ideas for features/integration? • Monitoring/troubleshooting framework • Student working on it (Master Degree thesis) Help us improve this! • Play with it, more testing is important • Write your own applications/handlers!
  • 93. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps What to do next? • Event Handlers are a very recent addition • Still figuring out if existing events are enough • Are the correlation identifiers sufficient? • Experimenting with this will give us more info • Hopefully more Event Handlers in the future • Homer/HEP native module on the way! • Other cool ideas for features/integration? • Monitoring/troubleshooting framework • Student working on it (Master Degree thesis) Help us improve this! • Play with it, more testing is important • Write your own applications/handlers!
  • 94. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps What to do next? • Event Handlers are a very recent addition • Still figuring out if existing events are enough • Are the correlation identifiers sufficient? • Experimenting with this will give us more info • Hopefully more Event Handlers in the future • Homer/HEP native module on the way! • Other cool ideas for features/integration? • Monitoring/troubleshooting framework • Student working on it (Master Degree thesis) Help us improve this! • Play with it, more testing is important • Write your own applications/handlers!
  • 95. FOSDEM2017 L. Miniero Janus Where were we? Admin API Monitoring Event Handlers Homer/HEP Demo EchoTest VideoRoom Next steps Questions? @elminiero @meetecho