A valid request URL is required to generate request examples{
"received": true,
"outcome": "published"
}{
"error": {
"code": "invalid_event"
}
}{
"error": {
"code": "invalid_signature"
}
}{
"error": {
"code": "payload_too_large",
"message": "<string>"
}
}{
"error": {
"code": "rate_limited",
"message": "<string>"
}
}Where the media server delivers room events
NOT AN ENDPOINT YOU CALL. The media server behind live video posts here when somebody joins or leaves a device’s room and when a stream’s tracks come and go. What it drives is one thing: a robot arm’s live stream stops a few seconds after its last viewer leaves, instead of the 30 seconds the arm waits by itself. It changes nothing a customer holds.
NO CREDENTIAL OF OURS AUTHENTICATES IT, because the sender holds none. A delivery is authenticated by a token in Authorization, signed with the media server project’s secret and carrying the SHA-256 of the body, checked before the body is parsed.
WHAT THE STATUS CODES MEAN. 200 is settled, including a repeat of an event already handled and an event this service does not read. 400 is an authentic delivery that is not readable as an event. 401 is a delivery that is not authentic. A repeat of an event id already handled changes nothing.
A body over 65536 bytes is refused as it streams.
ON A DEPLOYMENT WITHOUT LIVE VIDEO CONFIGURED it answers 404, as if it were not there.
Hosted deployments only. A local checkout does not mount this route, so calling it there is a 404.
A valid request URL is required to generate request examples{
"received": true,
"outcome": "published"
}{
"error": {
"code": "invalid_event"
}
}{
"error": {
"code": "invalid_signature"
}
}{
"error": {
"code": "payload_too_large",
"message": "<string>"
}
}{
"error": {
"code": "rate_limited",
"message": "<string>"
}
}Body
The media server's own event envelope, byte for byte as it sent it. Read only once the signature matches.
The media server defines this shape. Fields beyond the ones named here travel through and are ignored.
The media server's id for this event. What makes a repeat recognisable.
The event type. room_started, room_finished, participant_joined, participant_left, track_published and track_unpublished are read; any other is settled and ignored.
The room, by name.
Who joined or left, by sid and identity.
Which track, by sid.