Asynchronous event/state notifications Janus Where were we? Admin - - PowerPoint PPT Presentation

asynchronous event state notifications
SMART_READER_LITE
LIVE PREVIEW

Asynchronous event/state notifications Janus Where were we? Admin - - PowerPoint PPT Presentation

FOSDEM2017 L. Miniero Asynchronous event/state notifications Janus Where were we? Admin API in the Janus WebRTC server Monitoring Event Handlers Homer/HEP Providing administrators and developers with more tools to manage a Janus instance


slide-1
SLIDE 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

slide-2
SLIDE 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

slide-3
SLIDE 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
slide-4
SLIDE 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
slide-5
SLIDE 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/

slide-6
SLIDE 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

slide-7
SLIDE 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": [ [..] ] }

slide-8
SLIDE 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": [ [..] ] }

slide-9
SLIDE 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": [ [..] ] }

slide-10
SLIDE 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": [ [..] ] }

slide-11
SLIDE 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": [ [..] ] }

slide-12
SLIDE 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": [ [..] ] }

slide-13
SLIDE 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
slide-14
SLIDE 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
slide-15
SLIDE 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
slide-16
SLIDE 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
slide-17
SLIDE 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

slide-18
SLIDE 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)
slide-19
SLIDE 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)
slide-20
SLIDE 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?
slide-21
SLIDE 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

slide-22
SLIDE 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

slide-23
SLIDE 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!
slide-24
SLIDE 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

slide-25
SLIDE 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/

slide-26
SLIDE 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" } } }

slide-27
SLIDE 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" } } }

slide-28
SLIDE 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" } } }

slide-29
SLIDE 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" } }

slide-30
SLIDE 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" } }

slide-31
SLIDE 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" } }

slide-32
SLIDE 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=0\r\n[..]" } } }

slide-33
SLIDE 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=0\r\n[..]" } } }

slide-34
SLIDE 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=0\r\n[..]" } } }

slide-35
SLIDE 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=0\r\n[..]" } } }

slide-36
SLIDE 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=0\r\n[..]" } } }

slide-37
SLIDE 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=0\r\n[..]" } } }

slide-38
SLIDE 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 } }

slide-39
SLIDE 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 } }

slide-40
SLIDE 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 } }

slide-41
SLIDE 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 } }

slide-42
SLIDE 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 } }

slide-43
SLIDE 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 } }

slide-44
SLIDE 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 } }

slide-45
SLIDE 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 } }

slide-46
SLIDE 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 } }

slide-47
SLIDE 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 } }

slide-48
SLIDE 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 } }

slide-49
SLIDE 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 } }

slide-50
SLIDE 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" } }

slide-51
SLIDE 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" } }

slide-52
SLIDE 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" } }

slide-53
SLIDE 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 } }

slide-54
SLIDE 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 } }

slide-55
SLIDE 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 } }

slide-56
SLIDE 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 } }

slide-57
SLIDE 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 } }

slide-58
SLIDE 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 } }

slide-59
SLIDE 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 } }

slide-60
SLIDE 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 } }

slide-61
SLIDE 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 } }

slide-62
SLIDE 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 } }

slide-63
SLIDE 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 } }

slide-64
SLIDE 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 } }

slide-65
SLIDE 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 } }

slide-66
SLIDE 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 } }

slide-67
SLIDE 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 } } }

slide-68
SLIDE 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 } } }

slide-69
SLIDE 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 } } }

slide-70
SLIDE 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/

slide-71
SLIDE 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" } } }

slide-72
SLIDE 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" } } }

slide-73
SLIDE 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" } } }

slide-74
SLIDE 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" } } }

slide-75
SLIDE 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" } } }

slide-76
SLIDE 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" } } }

slide-77
SLIDE 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 } } }

slide-78
SLIDE 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 } } }

slide-79
SLIDE 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 } } }

slide-80
SLIDE 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 } } }

slide-81
SLIDE 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 } } }

slide-82
SLIDE 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 } } }

slide-83
SLIDE 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" } }

slide-84
SLIDE 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" } }

slide-85
SLIDE 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" } }

slide-86
SLIDE 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)
slide-87
SLIDE 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)
slide-88
SLIDE 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)
slide-89
SLIDE 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)
slide-90
SLIDE 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)
slide-91
SLIDE 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!
slide-92
SLIDE 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!
slide-93
SLIDE 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!
slide-94
SLIDE 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!
slide-95
SLIDE 95

FOSDEM2017

  • L. Miniero

Janus

Where were we? Admin API

Monitoring

Event Handlers Homer/HEP

Demo

EchoTest VideoRoom

Next steps

Questions?

@elminiero @meetecho