Webhook Events
Event name | Theme | Description |
---|---|---|
session.open.success, session.close.success | Session | Triggered during the start and end of a session |
peer.join.success, peer.leave.success, peer.join.failure, peer.leave.failure | Peer | Triggered when a peer join/leave succeeds/fails |
room.end.success | Room | Triggered when a room ends |
track.recording.started.success, track.recording.success, track.recording.failure | Track Recording | Triggered during the start, end, and failure of a track recording |
stream.recording.success, stream.recording.failure | Stream Recording | Triggered at the end of a stream recording |
recording.success, recording.failed | SFU Recording | Triggered at the end of a SFU recording |
beam.started.success, beam.stopped.success, beam.recording.success, beam.failure | RTMP Streaming & Browser Recording | Triggered during the start, end, and failure of RTMP streaming and/or browser recording |
hls.started.success, hls.stopped.success, hls.recording.success, hls.failure | HLS Streaming Events | Triggered during the start, end, and failure of HLS streaming and/or HLS recording |
role.change.success | Role Change Events | Triggered when a role is updated |
transcription.started.success, transcription.success, transcription.failure | Transcription Events | Triggered at the start and end of transcription |
ingest.start.success, ingest.end.success, ingest.start.failure, ingest.failure | RTMP Ingestion Events | Triggered at the start and end of RTMP Ingestion |
Event payload
Event is a JSON dictionary which has the following keys.
Name | Type | Description |
---|---|---|
version | string | Version of the event Example: 2.0 |
id | string | Id of the event Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
app_id | string | App ID from which this event is generated Example: 5ff5881b80b66969e1fb35f6 |
account_id | string | Customer ID from which this event is generated Example: 5ff5881b80b66969e1fb35f4 |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
timestamp | timestamp (in UTC) | Timestamp of the event Example: 2020-11-11T16:32:17Z |
type | string | Type of the event Example: peer.join.success |
data | dict | Event data. Its keys will be different for different type of event. Example: < See description below > |
Sample event
{ "version": "2.0", "id": "6c75de35-b778-4fb0-88ae-114c28dc285f", "account_id": "60b8e13a6eb86d8101b57354", "timestamp": "2021-08-08T07:04:15Z", "type": "peer.join.success", "data": { "joined_at": "2021-08-08T07:04:15.001380432Z", "peer_id": "83b869e1-9a4b-4037-84b2-913cf76e4392", "role": "host", "room_id": "60b8e13a6eb86d8101b57354", "room_name": "test room", "session_id": "610f81ee870dde099a249948", "template_id": "66112497abcd52312556c4gg", "user_id": "user.001", "user_name": "test user" } }
Session Events
session.open.success
This event will be sent when session opens successfully.
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
room_name | string | Room name provided when creating the room Example: Test Room |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2021-11-30T12:58:49Z", "type": "session.open.success", "data": { "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "session_started_at": "2021-11-30T12:58:49.97291247Z" } }
session.close.success
This event will be sent when session closes successfully.
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
room_name | string | Room name provided when creating the room Example: Test Room |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
session_duration | int | Duration the user spent in the room in seconds Example: 36000 |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
session_stopped_at | timestamp (in UTC) | Timestamp when session ended Example: 2020-11-11T16:32:17Z |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2021-11-30T12:58:49Z", "type": "session.close.success", "data": { "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "session_duration": 600, "session_started_at": "2021-11-30T12:48:49.97291247Z", "session_stopped_at": "2021-11-30T12:58:49.97291247Z" } }
Peer Events
peer.join.success
This event will be sent when any peer joins the room successfully
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
room_name | string | Room name provided when creating the room Example: Test Room |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
peer_id | string | 100ms assigned id to identify the joining user Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
user_id | string | User id assigned by the customer Example: user.001 |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
user_name | string | User name of the joining user Example: Test user |
user_data | string | User data of the joining user Example: {"isHandRaised":true} |
role | string | Role of the joining user Example: host |
joined_at | timestamp (in UTC) | Timestamp when user joined Example: 2020-11-11T16:32:17Z |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
type | string | Defines the type of peer to join the room. It is 'sip' for peers joining through SIP and 'regular' for peers joining directly |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:58:49Z", "type": "peer.join.success", "data": { "joined_at": "2021-11-30T12:58:49.97291247Z", "peer_id": "********-****-****-****-***********", "role": "********", "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "type": "regular", "user_id": "************************", "user_name": "********", "user_data": "", "session_started_at": "2021-11-30T12:58:49.97291247Z" } }
peer.leave.success
This event will be sent when peer leaves the room
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
room_name | string | Room name provided when creating the room Example: Test Room |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
peer_id | string | 100ms assigned id to identify the joining user Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
user_id | string | User id assigned by the customer Example: user.001 |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
user_name | string | User name of the user Example: Test user |
user_data | string | User data of the user Example: {"isHandRaised":true} |
role | string | Role of the user Example: host |
left_at | timestamp (in UTC) | Timestamp when user left Example: 2020-11-11T17:32:17Z |
duration | int | Duration the user spent in the room in seconds Example: 36000 |
reason | string | Reason for the peer leaving, see more details below Example: client request |
message | string | Reason specified while kicking peer out of room, see more details below Example: removed due to misconduct |
joined_at | timestamp (in UTC) | Timestamp when user joined Example: 2020-11-11T16:32:17Z |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
type | string | Defines the type of peer to join the room. It is 'sip' for peers joining through SIP and 'regular' for peers joining directly |
Peer Leave Reason
client request
: if the peer leaves the room (leave request is sent from the app/client-side).- Example scenarios:
- If the peer clicks the
Leave/End
button. - If the peer refreshes or closes the tab while using one of 100ms demo links (
https://<YOUR_SUB_DOMAIN>.app.100ms.live/preview/nnd-eke-tpp
)
- If the peer clicks the
- Example scenarios:
peer kicked
: if the peer is removed by someone else from an active room using the Client SDK or the Server API.- Example scenarios:
- If the peer is removed by a role which has
Can remove participant from the room
permissions enabled in the template. - If the peer is removed using the remove peer API from the application server.
Note: If you remove a peer from an active room using the client SDK or the server API, you can pass the reason as a message and thepeer.leave.success
event will contain the same in themessage
field.
- If the peer is removed by a role which has
- Example scenarios:
websocket closed
: network issues- Example scenario:
- If there's an abrupt network disconnection from the client side (peer) without any further attempts to reconnect, the 100ms server will close the WebSocket connection after 60 seconds. This can happen if the app is forcefully closed or the network is disconnected.
- Example scenario:
ice connection state closed
: network issues- Example scenario:
- Suppose there's an abrupt network disconnection at the media transport level from the client side (peer) without any further attempts to reconnect. In that case, the 100ms server will close the WebSocket connection after 60 seconds. This can happen if network config changes prohibit media packets from being sent/received by the client. Possible causes could be firewall changes or connection overwhelming because of higher downloads than the network can handle.
- Example scenario:
server removed peer
: network issues- Example scenario:
- If there are any server-side anomalies, like a server failure mid-way into the call, it will remove peers with this error. The occurrence of this is rare.
- Example scenario:
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:58:58Z", "type": "peer.leave.success", "data": { "duration": 40, "joined_at": "2021-11-30T12:58:49.97291247Z", "left_at": "2021-11-30T12:58:58.500451704Z", "peer_id": "********-****-****-****-***********", "reason": "client request", "message": "removed due to misconduct", "role": "********", "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "type": "regular", "user_id": "************************", "user_name": "********", "user_data": "", "session_started_at": "2021-11-30T12:58:49.97291247Z" } }
peer.join.failure
This event will be sent when a peer fails to join a room. This can occur when,
- Server is overloaded and results in timeout
- Network disconnection
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
room_name | string | Room name provided when creating the room Example: Test Room |
peer_id | string | 100ms assigned id to identify the joining user Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
user_id | string | User id assigned by the customer Example: user.001 |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
user_name | string | User name of the user Example: Test user |
user_data | string | User data of the user Example: {"isHandRaised":true} |
role | string | Role of the user Example: host |
joined_at | timestamp (in UTC) | Timestamp when user joined Example: 2020-11-11T16:32:17Z |
error_message | string | Reason for failure Example: Peer not joined |
type | string | Defines the type of peer to join the room. It is 'sip' for peers joining through SIP and 'regular' for peers joining directly |
Peer join failure Reason
role not allowed
network disconnection
duplicate peer id
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-25T09:10:35Z", "type": "peer.join.failure", "data": { "joined_at": "0001-01-01T00:00:00Z", "peer_id": "********-****-****-****-***********", "role": "********", "room_id": "************************", "room_name": "**********", "user_id": "************************", "template_id": "************************", "type": "regular", "user_name": "********", "user_data": "", "error_message": "role not allowed" } }
peer.leave.failure
This event will be sent when the peer leave fails. This can occur when,
- peer.leave is called twice
- peer.leave is called before peer.join or if peer.join has failed
- peer.leave is called after peer is kicked out of room / room has ended
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
room_name | string | Room name provided when creating the room Example: Test Room |
peer_id | string | 100ms assigned id to identify the joining user Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
user_id | string | User id assigned by the customer Example: user.001 |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
user_name | string | User name of the user Example: Test user |
user_data | string | User data of the user Example: {"isHandRaised":true} |
role | string | Role of the user Example: host |
left_at | timestamp (in UTC) | Timestamp when user left Example: 2020-11-11T17:32:17Z |
duration | int | Duration the user spent in the room in seconds Example: 36000 |
error_message | string | Reason for failure Example: Peer not joined |
joined_at | timestamp (in UTC) | Timestamp when user joined Example: 2020-11-11T16:32:17Z |
type | string | Defines the type of peer to join the room. It is 'sip' for peers joining through SIP and 'regular' for peers joining directly |
Peer leave failure Reason
peer not joined
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:55:51Z", "type": "peer.leave.failure", "data": { "duration": 0, "left_at": "0001-01-01T00:00:00Z", "joined_at": "2021-11-30T12:58:49.97291247Z", "peer_id": "********-****-****-****-***********", "role": "********", "room_id": "************************", "room_name": "**********", "user_id": "************************", "template_id": "************************", "type": "regular", "user_name": "********", "user_data": "", "error_message": "Peer not joined" } }
Room Events
room.end.success
This event will be sent when room end is called and then it is successful.
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
room_name | string | Room name provided when creating the room Example: Test Room |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
peer_id | string | 100ms assigned id to identify the joining user Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
user_id | string | User id assigned by the customer Example: user.001 |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
user_name | string | User name of the user Example: Test user |
role | string | Role of the user Example: host |
lock_room | bool | Flag to indicate if the room was lock Example: false |
reason | string | Reason specified with end room call Example: End Room by admin |
source | string | Source of end room api call Example: peer |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-25T09:10:35Z", "type": "room.end.success", "data": { "peer_id": "********-****-****-****-***********", "role": "********", "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "user_id": "************************", "user_name": "********", "lock_room": false, "reason": "****************", "source": "peer", "session_started_at": "2021-11-30T12:58:49.97291247Z" } }
room.end.failure
This event will be sent when room end is called and the it is unsuccessful.
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
room_name | string | Room name provided when creating the room Example: Test Room |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
peer_id | string | 100ms assigned id to identify the joining user Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
user_id | string | User id assigned by the customer Example: user.001 |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
user_name | string | User name of the user Example: Test user |
role | string | Role of the user Example: host |
lock_room | bool | Flag to indicate if the room was lock Example: false |
reason | string | Reason specified with end room call Example: End Room by admin |
source | string | Source of end room api call Example: peer |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
error_message | string | Error message to indicate the reason of failure Example: session not found |
error_code | int | Error code for failure Example: 404 |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-25T09:10:35Z", "type": "room.end.failure", "data": { "peer_id": "********-****-****-****-***********", "role": "********", "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "user_id": "************************", "user_name": "********", "lock_room": false, "reason": "****************", "source": "peer", "session_started_at": "2021-11-30T12:58:49.97291247Z", "error_code": 404, "error_message": "session not found" } }
Role change Events
role.change.success
This event will be sent when the role change for a peer is successful.
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
room_name | string | Room name provided when creating the room Example: Test Room |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
peer_id | string | 100ms assigned id to identify the joining user Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
user_id | string | User id assigned by the customer Example: user.001 |
user_name | string | User name of the user Example: Test user |
user_data | string | User data of the user Example: {"isHandRaised":true} |
previous_role | string | Previous role of the peer Example: host |
role | string | New role of the user Example: host |
joined_at | timestamp (in UTC) | Timestamp when user joined Example: 2020-11-11T16:32:17Z |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
role_changed_at | timestamp (in UTC) | Timestamp when role changed Example: 2020-10-11T16:32:17Z |
role_change_requested_by | string | Id of the peer who requested for role change. This field won't be present if role is changed using API Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2021-11-30T12:58:49Z", "type": "role.change.success", "data": { "joined_at": "2021-11-30T12:58:49.97291247Z", "peer_id": "********-****-****-****-***********", "role_change_requested_by": "********-****-****-****-***********", "role": "********", "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "user_id": "************************", "user_name": "********", "user_data": "", "previous_role": "********", "session_started_at": "2021-11-30T12:48:49.97291247Z", "role_changed_at": "2021-11-30T12:58:49.97291247Z" } }
role.change.failure
This event will be sent when the role change for a peer fails. For example:
- When there's an attempt to change peer's role to a specific role whose limit has already been reached.
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
room_name | string | Room name provided when creating the room Example: Test Room |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
peer_id | string | 100ms assigned id to identify the joining user Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
user_id | string | User id assigned by the customer Example: user.001 |
user_name | string | User name of the user Example: Test user |
user_data | string | User data of the user Example: {"isHandRaised":true} |
role | string | New role of the user Example: host |
joined_at | timestamp (in UTC) | Timestamp when user joined Example: 2020-11-11T16:32:17Z |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
error_message | string | Role change error message (description) Example: role limit reached |
role_change_requested_by | string | Id of the peer who requested for role change. This field won't be present if role is changed using API Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2021-11-30T12:58:49Z", "type": "role.change.failure", "data": { "peer_id": "********-****-****-****-***********", "role_change_requested_by": "********-****-****-****-***********", "role": "********", "room_id": "************************", "room_name": "**********", "session_id": "************************", "template_id": "************************", "user_id": "************************", "user_name": "********", "user_data": "", "session_started_at": "2021-11-30T12:48:49.97291247Z", "joined_at": "2021-11-30T12:58:49.97291247Z", "error_message": "role limit reached" } }
Track Recording Events
track.recording.started.success
This event will be sent when individual track recording is started
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312dff |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
peer_id | string | 100ms assigned id to identify the peer Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
stream_id | string | ID of the stream to which this track belongs Example: 5a09bf30-c076-469f-bfd4-15eb068366e8 |
track_id | string | ID of the track being recorded Example: 3c1e5e95-fdd1-49ba-bb08-66a0b7493b5b |
track_type | string | Type of the track being recorded, either video or audio |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2024-02-06T20:01:16Z", "type": "track.recording.started.success", "data": { "peer_id": "********-****-****-****-***********", "room_id": "************************", "session_id": "************************", "stream_id": "********-****-****-****-***********", "track_id": "********-****-****-****-***********", "track_type": "video" } }
track.recording.success
This event will be sent when individual track recording is completed
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312dff |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
peer_id | string | 100ms assigned id to identify the peer Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
stream_id | string | ID of the stream to which this track belongs Example: 5a09bf30-c076-469f-bfd4-15eb068366e8 |
track_id | string | ID of the track being recorded Example: 3c1e5e95-fdd1-49ba-bb08-66a0b7493b5b |
track_type | string | Type of the track being recorded, either video or audio |
size | string | Size of the track recording in bytes |
duration | string | Duration of the track recording in seconds |
recording_id | string | 100ms assigned id to the recording Example: 5ff5881b80b66969e1fb35f4 |
recording_path | string | Upload path of the recorded track Example: s3://bucket/prefix/ac.webm |
recording_presigned_url | string | Presigned URL for the recorded track Example: https://bucket/prefix/ac.webm |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2024-02-06T20:01:16Z", "type": "track.recording.success", "data": { "peer_id": "********-****-****-****-***********", "room_id": "************************", "session_id": "************************", "stream_id": "********-****-****-****-***********", "track_id": "********-****-****-****-***********", "track_type": "video", "size": 22989889, "recording_id": "************************", "recording_path": "s3://bucket/prefix/ac.webm", "recording_presigned_url": "https://bucket/prefix/ac.webm", } }
track.recording.failure
This event will be sent if an individual track recording fails
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312dff |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
peer_id | string | 100ms assigned id to identify the peer Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
stream_id | string | ID of the stream to which this track belongs Example: 5a09bf30-c076-469f-bfd4-15eb068366e8 |
track_id | string | ID of the track being recorded Example: 3c1e5e95-fdd1-49ba-bb08-66a0b7493b5b |
track_type | string | Type of the track being recorded, either video or audio |
size | string | Size of the track recording in bytes |
duration | string | Duration of the track recording in seconds |
recording_id | string | 100ms assigned id to the recording Example: 5ff5881b80b66969e1fb35f4 |
recording_path | string | Upload path of the recorded track Example: s3://bucket/prefix/ac.webm |
error_message | string | Error message indicating the reason for failure |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2024-02-06T20:01:16Z", "type": "track.recording.success", "data": { "peer_id": "********-****-****-****-***********", "room_id": "************************", "session_id": "************************", "stream_id": "********-****-****-****-***********", "track_id": "********-****-****-****-***********", "track_type": "video", "size": 22989889, "recording_id": "************************", "recording_path": "s3://bucket/prefix/ac.webm", "error_message": "INTERNAL_ERROR" } }
Stream Recording Events
stream.recording.success
This event will be sent when individual stream recording is completed
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312dff |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
peer_id | string | 100ms assigned id to identify the peer Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
stream_id | string | ID of the stream to which this track belongs Example: 5a09bf30-c076-469f-bfd4-15eb068366e8 |
user_id | string | User id assigned by the customer Example: user.001 |
size | string | Size of the track recording in bytes |
duration | string | Duration of the track recording in seconds |
recording_id | string | 100ms assigned id to the recording Example: 5ff5881b80b66969e1fb35f4 |
recording_path | string | Upload path of the recorded track Example: s3://bucket/prefix/ac.webm |
recording_presigned_url | string | Presigned URL for the recorded track Example: https://bucket/prefix/ac.webm |
stream_type | string | Type of the stream, regular, screen or audio |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2024-02-12T15:39:55Z", "type": "stream.recording.success", "data": { "duration": 185, "peer_id": "********-****-****-****-***********", "recording_id": "************************", "recording_path": "s3://bucket/prefix/ac.mp4", "recording_presigned_url": "https://bucket/prefix/ac.mp4", "room_id": "************************", "session_id": "************************", "size": 22989889, "stream_id": "********-****-****-****-***********", "type": "regular", "user_id": "********-****-****-****-***********" } }
stream.recording.failure
This event will be sent when individual stream recording fails
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312dff |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
peer_id | string | 100ms assigned id to identify the peer Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
stream_id | string | ID of the stream to which this track belongs Example: 5a09bf30-c076-469f-bfd4-15eb068366e8 |
user_id | string | User id assigned by the customer Example: user.001 |
size | string | Size of the track recording in bytes |
duration | string | Duration of the track recording in seconds |
recording_id | string | 100ms assigned id to the recording Example: 5ff5881b80b66969e1fb35f4 |
recording_path | string | Upload path of the recorded track Example: s3://bucket/prefix/ac.webm |
stream_type | string | Type of the stream, regular, screen or audio |
error_message | string | Error message indicating the reason for failure |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2024-02-12T15:39:55Z", "type": "stream.recording.failure", "data": { "duration": 1, "peer_id": "********-****-****-****-***********", "recording_id": "************************", "recording_path": "s3://bucket/prefix/ac.mp4", "room_id": "************************", "session_id": "************************", "size": 2298, "stream_id": "********-****-****-****-***********", "type": "regular", "user_id": "********-****-****-****-***********", "error_message": "INTERNAL_ERROR" } }
SFU Recording Events
recording.success
This event will be sent when final composed recording is generated and uploaded to the destination
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312dff |
room_name | string | Room name assigned by you when creating room Example: class-9-batch-2 |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
location | string | (Deprecated, use recording_path) URI of the recorded video along with the storage type Example: s3://bucket/prefix/ac.mp4 |
URL | string | (Deprecated, use recording_presigned_url) HTTPS url to recorded session file on storage bucket Example: https://upload-location/bucket/beam/ac.mp4 |
duration | int | Duration the user spent in the room in seconds Example: 3600 |
recording_path | string | Upload path of the recorded video such as s3 URI Example: s3://bucket/prefix/ac.mp4 |
recording_presigned_url | string | Presigned URL for the recorded video, for download. Valid for 24 hours Example: https://upload-location/bucket/ac.mp4 |
chat_recording_path | string | Upload path of chat recording files such as s3 URI Example: s3://bucket/prefix/ac.csv |
chat_recording_presigned_url | string | Pre signed url for chat recording files Example: https://upload-location/bucket/chat.csv |
size | int | Size of the recorded video (in bytes) Example: 10024 |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
session_stopped_at | timestamp (in UTC) | Timestamp when session ended Example: 2020-11-11T16:32:17Z |
Sample
{ "version": "1.0", "id": "********-****-****-****-***********", "app_id": "************************", "account_id": "************************", "timestamp": "2021-11-30T20:12:35Z", "type": "recording.success", "data": { "duration": 600, "room_id": "************************", "room_name": "TestRoom1", "session_id": "************************", "template_id": "************************", "recording_path": "s3://<file-bucket-address>.mp4", "recording_presigned_url": "https://<file-access-url>?<signature>", "chat_recording_path": "s3://<chat-recording-address>.csv", "chat_recording_presigned_url": "https://<chat-recording-access-url>?<signature>", "size": 13933649, "session_started_at": "2021-11-30T12:48:49.97291247Z", "session_stopped_at": "2021-11-30T12:58:49.97291247Z" } }
recording.failed
This event will be sent when failure occurs during final recording composition or upload to storage
Attributes
Name | Type | Description |
---|---|---|
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
room_name | string | Room name assigned by you when creating room Example: class-9-batch-2 |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
error | string | Error message Example: Upload Failure |
error_type | string | Error type Example: CLOUD_ACCESS_ERROR |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
session_stopped_at | timestamp (in UTC) | Timestamp when session ended Example: 2020-11-11T16:32:17Z |
Error types
Type | Message | Description |
---|---|---|
INPUT_ERROR | No input streams available to create recording | Recording could not be created because there were no streams for this session |
CLOUD_ACCESS_ERROR | Error accessing cloud bucket. Please make sure upload config is correct | Unable to access the configured cloud bucket to upload/download streams |
CONFIG_ERROR, MEMORY_ERROR, PROCESSING_CMD_ERROR, API_ERROR | INTERNAL_ERROR | Internal errors |
Sample
{ "version": "1.0", "id": "********-****-****-****-***********", "app_id": "************************", "account_id": "************************", "timestamp": "2021-11-23T09:04:25Z", "type": "recording.failed", "data": { "error": "INTERNAL_ERROR", "error_type": "CONFIG_ERROR", "room_id": "************************", "room_name": "TestRoom1", "session_id": "************************", "template_id": "************************", "session_started_at": "2021-11-30T12:48:49.97291247Z", "session_stopped_at": "2021-11-30T12:58:49.97291247Z" } }
RTMP Streaming & Browser Recording Events
beam.started.success
This event is sent when RTMP streaming and/or browser recording is successfully triggered
Attributes
Name | Type | Description |
---|---|---|
beam_id | string | Unique beam id Example: 61d3def54b616982bd80ed83 |
job_id | string | Beam job id Example: 60b8e1d96eb86d8101b57359 |
recording_enabled | bool | Indicates whether recording is enabled or not Example: true |
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
peer_id | string | 100ms assigned id to identify the joining user Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
metadata_id | string | Webhook metadata ID Example: 14f350f5-18c4-46ca-8a33-71cbcc836600 |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
metadata_timestamp | timestamp (in UTC) | Webhook message creation timestamp Example: 2020-11-11T17:32:17Z |
start_delay | int | Time taken by beam to start recording Example: 12 |
state_name | string | Beam state identifier Example: Started |
state_timestamp | timestamp (in UTC) | Timestamp at which beam state changed Example: 2020-11-11T17:32:18Z |
max_width | int | Maximum width of the screen supported for streaming / recording in pixels Example: 1280 |
max_height | int | Maximum height of the screen supported for streaming / recording in pixels Example: 720 |
meeting_url | string | meeting_url provided at rtmp start Example: "https://app.100ms.live/room_id" |
rtmp | array | List of RTMP objects provided at rtmp start Example: [{"url": "http://test.com"}] |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:58:46Z", "type": "beam.started.success", "data": { "beam_id": "************************", "job_id": "************************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T12:58:46.400759043Z", "peer_id": "********-****-****-****-***********", "recording_enabled": true, "room_id": "************************", "session_id": "************************", "template_id": "************************", "start_delay": 12, "max_width": 1280, "max_height": 720, "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "rtmp": [{ "url": "http://test.com" }], "session_started_at": "2021-11-30T12:58:49.97291247Z" } }
beam.stopped.success
This event is sent when RTMP streaming and/or browser recording is successfully stopped
Attributes
Name | Type | Description |
---|---|---|
beam_id | string | Unique beam id Example: 61d3def54b616982bd80ed83 |
job_id | string | Beam job id Example: 60b8e1d96eb86d8101b57359 |
recording_enabled | bool | Indicates whether recording is enabled or not Example: true |
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
peer_id | string | 100ms assigned id to identify the joining user Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
metadata_id | string | Webhook metadata ID Example: 14f350f5-18c4-46ca-8a33-71cbcc836600 |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
metadata_timestamp | timestamp (in UTC) | Webhook message creation timestamp Example: 2020-11-11T17:32:17Z |
state_name | string | Beam state identifier Example: Stopped |
state_timestamp | timestamp (in UTC) | Timestamp at which beam state changed Example: 2020-11-11T17:32:18Z |
duration | int | Duration of RTMP streaming / recording in seconds Example: 12 |
max_width | int | Maximum width of the screen supported for streaming / recording in pixels Example: 1280 |
max_height | int | Maximum height of the screen supported for streaming / recording in pixels Example: 720 |
meeting_url | string | meeting_url provided at rtmp start Example: "https://app.100ms.live/room_id" |
rtmp | array | List of RTMP objects provided at rtmp start Example: [{"url": "http://test.com"}] |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
reason | string | The reason why the beam session stopped. Can be either by the user or beam itself in cases like an error occuring Example: client request |
Beam Stop Reason
client request
: if a stop beam request is received. Can be triggered from app, or api, or through an internal stop request when end room is called.- Example scenarios:
- If a peer clicks stop streaming, or stop recording, or end room when beam is running
- If a stop request is sent through api
- Example scenarios:
max duration reached
: if the max duration is reached. Configured in template asmaxDuration
, defaults to 4 hours.- Example scenarios:
- If beam has been running for
maxDuration
and no stop request has been sent
- If beam has been running for
- Example scenarios:
room ended
: if the room has been ended but no stop request is sent. In such case, beam auto-detects room end, and stops in a minute if no stop request has been sent.- Example scenarios:
- If meeting url set doesn't correspond to the room_id provided in the start request, calling room end won't send a stop request. So, beam detects this and stops.
- Example scenarios:
last peer left
: if there's no one else in the room apart from beam for a long time. Currently, this is set to 5 minutes.- Example scenarios:
- If everyone in the room leaves and forgets to stop beam, it'll be automatically stopped in 5 minutes.
- Example scenarios:
failure: <error_type>
: if any failure occurs causing minion to stop. Theerror_type
corresponds to theerror_type
inbeam.failure
webhook.- Example scenarios:
- If a wrong meeting url is given, where the beam peer cannot join. Beam retries and fails with
MAX_RETRIES_REACHED
. In this case,reason
will befailure: MAX_RETRIES_REACHED
- If a wrong meeting url is given, where the beam peer cannot join. Beam retries and fails with
- Example scenarios:
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:59:57Z", "type": "beam.stopped.success", "data": { "beam_id": "************************", "job_id": "************************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T12:59:57.797972469Z", "peer_id": "********-****-****-****-***********", "recording_enabled": true, "room_id": "************************", "session_id": "************************", "template_id": "************************", "duration": 56, "max_height": 720, "max_width": 1280, "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "rtmp": [{ "url": "http://test.com" }], "session_started_at": "2021-11-30T12:58:49.97291247Z", "reason": "client request" } }
beam.recording.success
This event is sent when beam successfully records the room and uploads the video to storage
Attributes
Name | Type | Description |
---|---|---|
beam_id | string | Unique beam id Example: 61d3def54b616982bd80ed83 |
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
peer_id | string | 100ms assigned id to identify the joining user Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
metadata_id | string | Webhook metadata ID Example: 14f350f5-18c4-46ca-8a33-71cbcc836600 |
metadata_timestamp | timestamp (in UTC) | Webhook message creation timestamp Example: 2020-11-11T17:32:17Z |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
created_at | timestamp (in UTC) | Timestamp at which recording was created Example: 2020-11-11T17:12:17Z |
duration | int | Duration of beam recording (seconds) Example: 79 |
location | string | (Deprecated, use recording_presigned_url) HTTPS url to recorded session file on storage bucket Example: https://upload-location/bucket/beam/ac.mp4* |
started_at | timestamp (in UTC) | Beam recording started at Example: 2020-11-11T17:12:27Z |
stopped_at | timestamp (in UTC) | Beam recording stopped at Example: 2020-11-11T17:32:15Z |
max_width | int | Maximum width of the screen supported for recording in pixels Example: 1280 |
max_height | int | Maximum height of the screen supported for recording in pixels Example: 720 |
recording_id | string | 100ms assigned id to the recording Example: 5ff5881b80b66969e1fb35f4 |
recording_path | string | Upload path of the recorded video such as s3 URI Example: s3://bucket/prefix/ac.mp4 |
recording_presigned_url | string | Presigned URL for the recorded video, for download Example: https://upload-location/bucket/ac.mp4 |
chat_recording_path | string | Upload path of chat recording files such as s3 URI Example: s3://bucket/prefix/ac.csv |
chat_recording_presigned_url | string | Pre signed url for chat recording files Example: https://upload-location/bucket/chat.csv |
meeting_url | string | meeting_url provided at rtmp start Example: "https://app.100ms.live/room_id" |
rtmp | array | List of RTMP objects provided at rtmp start Example: [{"url": "http://test.com"}] |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
size | int | Size of the recording (in bytes) Example: 10024 |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:59:57Z", "type": "beam.recording.success", "data": { "beam_id": "************************", "created_at": "2021-11-30T12:59:57.672493658Z", "duration": 79, "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T12:59:57.679491494Z", "peer_id": "********-****-****-****-***********", "recording_id": "************************", "recording_path": "s3://bucket/prefix/ac.mp4", "recording_presigned_url": "https://<file access URL>", "chat_recording_path": "s3://<chat-recording-address>.csv", "chat_recording_presigned_url": "https://<chat-recording-access-url>?<signature>", "room_id": "************************", "started_at": "2021-11-30T12:58:34.051Z", "stopped_at": "2021-11-30T12:59:56.778Z", "session_id": "************************", "template_id": "************************", "max_height": 720, "max_width": 1280, "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "rtmp": [{ "url": "http://test.com" }], "session_started_at": "2021-11-30T12:58:49.97291247Z", "size": 10024 } }
beam.failure
This event will be sent when there are failures in RTMP streaming and/or browser recording. This can occur when,
- Invalid RTMP URL
- Browser failed to load the web-app
- Incorrect storage (S3) credentials
- Other unexpected errors
Please check the below table for possible error types, messages and description.
Error types
Type | Message | Description |
---|---|---|
INTERNAL_ERROR | Internal error | Internal errors in beam. |
MAX_RETRIES_REACHED | Beam couldn't connect to Meeting URL after <max_count> retries. Check if meeting URL is correct. | Sent when Beam cannot join meeting URL after predefined number of max retries. |
UPLOAD_ERROR | Failed to upload recordings. Check if upload config is correct. | Sent when there are failures in uploading recordings. This is most likely due to incorrect upload config. |
BEAM_STOPPED | Beam stopped too early | Beam takes a few seconds to start, if a stop request is sent before that, we send BEAM_STOPPED error. |
Attributes
Name | Type | Description |
---|---|---|
beam_id | string | Unique beam id Example: 61d3def54b616982bd80ed83 |
job_id | string | Beam job id Example: 60b8e1d96eb86d8101b57359 |
recording_enabled | bool | Indicates whether recording is enabled or not Example: true |
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
peer_id | string | 100ms assigned id to identify the joining user Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
error_code | int | Beam error code Example: 1 (Deprecated) |
error_message | string | Beam error message (description) Example: Failed to upload recordings. Check if upload config is correct. |
error_type | string | Beam error type Example: UPLOAD_ERROR |
metadata_id | string | Webhook metadata ID Example: 14f350f5-18c4-46ca-8a33-71cbcc836600 |
metadata_timestamp | timestamp (in UTC) | Webhook message creation timestamp Example: 2020-11-11T17:32:17Z |
state_name | string | Beam state identifier Example: Failed (Deprecated) |
state_timestamp | timestamp (in UTC) | Timestamp at which beam state changed Example: 2020-11-11T17:32:18Z (Deprecated) |
duration | int | Duration of RTMP streaming / recording in seconds Example: 12 |
max_width | int | Maximum width of the screen supported for streaming / recording in pixels Example: 1280 |
max_height | int | Maximum height of the screen supported for streaming / recording in pixels Example: 720 |
meeting_url | string | meeting_url provided at rtmp start Example: "https://app.100ms.live/room_id" |
rtmp | array | List of RTMP objects provided at rtmp start Example: [{"url": "http://test.com"}] |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T20:36:55Z", "type": "beam.failure", "data": { "beam_id": "************************", "error_code": 1, "error_message": "Failed to upload recordings. Check if upload config is correct.", "error_type": "UPLOAD_ERROR", "job_id": "************************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T20:36:55.807155801Z", "peer_id": "********-****-****-****-***********", "recording_enabled": true, "room_id": "************************", "session_id": "************************", "template_id": "************************", "max_height": 720, "max_width": 1280, "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "rtmp": [{ "url": "http://test.com" }], "duration": 56, "session_started_at": "2021-11-30T12:58:49.97291247Z" } }
HLS Streaming Events
hls.started.success
This event is sent when HLS streaming is successfully triggered
Attributes
Name | Type | Description |
---|---|---|
beam_id | string | Unique beam id Example: 61d3def54b616982bd80ed83 |
job_id | string | Beam job id Example: 60b8e1d96eb86d8101b57359 |
recording_single_file_per_layer_enabled | bool | Indicates whether HLS recording should be available as separate files for various dimensions supported. Output will be Individual mp4 file per HLS layer. Example: false |
recording_vod_playlist_enabled | bool | Indicates whether Video on Demand is enabled or not. Output will be a ZIP file of m3u8 format with all the chunks. Example: false |
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
peer_id | string | 100ms assigned id to identify the joining user Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
meeting_url | string | meeting_url provided at HLS start Example: "https://app.100ms.live/room_id" |
metadata_id | string | Webhook metadata ID Example: 14f350f5-18c4-46ca-8a33-71cbcc836600 |
metadata_timestamp | timestamp (in UTC) | Webhook message creation timestamp Example: 2020-11-11T17:32:17Z |
start_delay | int | Time taken by beam to start streaming Example: 12 |
state_name | string | Beam state identifier Example: HLSStarted |
state_timestamp | timestamp (in UTC) | Timestamp at which beam state changed Example: 2020-11-11T17:32:18Z |
max_width | int | Maximum width of the screen supported for streaming / recording in pixels Example: 1280 |
max_height | int | Maximum height of the screen supported for streaming / recording in pixels Example: 720 |
url | string | HLS live streaming url Example: https://100ms-live.m3u8 |
started_at | timestamp (in UTC) | Timestamp at which HLS started Example: 2020-11-11T17:32:18Z |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:58:46Z", "type": "hls.started.success", "data": { "beam_id": "************************", "job_id": "************************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T12:58:46.400759043Z", "peer_id": "********-****-****-****-***********", "recording_single_file_per_layer_enabled": false, "recording_vod_playlist_enabled": false, "room_id": "************************", "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "session_id": "************************", "template_id": "************************", "start_delay": 12, "max_width": 1280, "max_height": 720, "url": "https://100ms-live.m3u8", "started_at": "2021-11-30T12:58:46.400759043Z", "session_started_at": "2021-11-30T12:58:49.97291247Z" } }
hls.stopped.success
This event is sent when HLS streaming is successfully stopped
Attributes
Name | Type | Description |
---|---|---|
beam_id | string | Unique beam id Example: 61d3def54b616982bd80ed83 |
job_id | string | Beam job id Example: 60b8e1d96eb86d8101b57359 |
recording_single_file_per_layer_enabled | bool | Indicates whether HLS recording should be available as separate files for various dimensions supported. Output will be Individual mp4 file per HLS layer. Example: false |
recording_vod_playlist_enabled | bool | Indicates whether Video on Demand is enabled or not. Output will be a ZIP file of m3u8 format with all the chunks. Example: false |
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
peer_id | string | 100ms assigned id to identify the joining user Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
max_width | int | Maximum width of the screen supported for HLS streaming / recording in pixels Example: 1280 |
max_height | int | Maximum height of the screen supported for HLS streaming / recording in pixels Example: 720 |
meeting_url | string | meeting_url provided at HLS start Example: "https://app.100ms.live/room_id" |
metadata_id | string | Webhook metadata ID Example: 14f350f5-18c4-46ca-8a33-71cbcc836600 |
metadata_timestamp | timestamp (in UTC) | Webhook message creation timestamp Example: 2020-11-11T17:32:17Z |
state_name | string | Beam state identifier Example: HLSStopped |
state_timestamp | timestamp (in UTC) | Timestamp at which beam state changed Example: 2020-11-11T17:32:18Z |
url | string | HLS live streaming url Example: https://100ms-live.m3u8 |
duration | int | Duration of HLS streaming in seconds Example: 12 |
started_at | timestamp (in UTC) | Timestamp at which HLS started Example: 2020-11-11T17:32:18Z |
stopped_at | timestamp (in UTC) | Timestamp at which HLS stopped Example: 2020-11-11T17:32:18Z |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
reason | string | The reason why the beam session stopped. Can be either by the user or beam itself in cases like an error occuring Example: client request |
live_transcription_enabled | bool | Specifies if live transcription was enabled for the stream |
HLS Stop Reason
client request
: if a stop beam request is received. Can be triggered from app, or api, or through an internal stop request when end room is called.- Example scenarios:
- If a peer clicks stop streaming, or stop recording, or end room when beam is running
- If a stop request is sent through api
- Example scenarios:
max duration reached
: if the max duration is reached. Configured in template asmaxDuration
, defaults to 4 hours.- Example scenarios:
- If beam has been running for
maxDuration
and no stop request has been sent
- If beam has been running for
- Example scenarios:
room ended
: if the room has been ended but no stop request is sent. In such case, beam auto-detects room end, and stops in a minute if no stop request has been sent.- Example scenarios:
- If meeting url set doesn't correspond to the room_id provided in the start request, calling room end won't send a stop request. So, beam detects this and stops.
- Example scenarios:
last peer left
: if there's no one else in the room apart from beam for a long time. Currently, this is set to 5 minutes.- Example scenarios:
- If everyone in the room leaves and forgets to stop beam, it'll be automatically stopped in 5 minutes.
- Example scenarios:
failure: <error_type>
: if any failure occurs causing minion to stop. Theerror_type
corresponds to theerror_type
inbeam.failure
webhook.- Example scenarios:
- If a wrong meeting url is given, where the beam peer cannot join. Beam retries and fails with
MAX_RETRIES_REACHED
. In this case,reason
will befailure: MAX_RETRIES_REACHED
- If a wrong meeting url is given, where the beam peer cannot join. Beam retries and fails with
- Example scenarios:
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T12:59:57Z", "type": "hls.stopped.success", "data": { "beam_id": "************************", "job_id": "************************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T12:59:57.797972469Z", "peer_id": "********-****-****-****-***********", "recording_single_file_per_layer_enabled": false, "recording_vod_playlist_enabled": false, "room_id": "************************", "max_height": 720, "max_width": 1280, "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "session_id": "************************", "template_id": "************************", "duration": 56, "started_at": "2021-11-30T12:59:57.797972469Z", "stopped_at": "2021-11-30T12:59:57.797972469Z", "session_started_at": "2021-11-30T12:58:49.97291247Z", "reason": "client request" } }
hls.failure
This event will be sent when there are failures in HLS streaming and/or recording. This can occur when,
- The meeting_url is invalid
- Other unexpected errors with HLS streaming / recording.
Please check the below table for possible error types, messages and description.
Error types
Type | Message | Description |
---|---|---|
INTERNAL_ERROR | Internal error | Internal errors in beam. |
MAX_RETRIES_REACHED | Beam couldn't connect to Meeting URL after <max_count> retries. Check if meeting URL is correct. | Sent when Beam cannot join meeting URL after predefined number of max retries. |
UPLOAD_ERROR | Failed to upload recordings. Check if upload config is correct. | Sent when there are failures in uploading recordings. This is most likely due to incorrect upload config. |
BEAM_STOPPED | Beam stopped too early | Beam takes a few seconds to start, if a stop request is sent before that, we send BEAM_STOPPED error. |
Attributes
Name | Type | Description |
---|---|---|
beam_id | string | Unique beam id Example: 61d3def54b616982bd80ed83 |
job_id | string | Beam job id Example: 60b8e1d96eb86d8101b57359 |
recording_single_file_per_layer_enabled | bool | Indicates whether HLS recording should be available as separate files for various dimensions supported. Output will be Individual mp4 file per HLS layer. Example: false |
recording_vod_playlist_enabled | bool | Indicates whether Video on Demand is enabled or not. Output will be a ZIP file of m3u8 format with all the chunks. Example: false |
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
peer_id | string | 100ms assigned id to identify the joining user Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
max_width | int | Maximum width of the screen supported for HLS streaming / recording in pixels Example: 1280 |
max_height | int | Maximum height of the screen supported for HLS streaming / recording in pixels Example: 720 |
meeting_url | string | meeting_url provided at HLS start Example: "https://app.100ms.live/room_id" |
error_code | int | Beam error code Example: 1 (Deprecated) |
error_message | string | Beam error message (description) Example: Failed to upload recordings. Check if upload config is correct. |
error_type | string | Beam error type Example: UPLOAD_ERROR |
metadata_id | string | Webhook metadata ID Example: 14f350f5-18c4-46ca-8a33-71cbcc836600 |
metadata_timestamp | timestamp (in UTC) | Webhook message creation timestamp Example: 2020-11-11T17:32:17Z |
state_name | string | Beam state identifier Example: HLSFailed (Deprecated) |
state_timestamp | timestamp (in UTC) | Timestamp at which beam state changed Example: 2020-11-11T17:32:18Z (Deprecated) |
duration | int | Duration of HLS streaming in seconds Example: 12 |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T20:36:55Z", "type": "hls.failure", "data": { "beam_id": "************************", "error_code": 1, "error_message": "Failed to upload recordings. Check if upload config is correct.", "error_type": "UPLOAD_ERROR", "job_id": "************************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T20:36:55.807155801Z", "peer_id": "********-****-****-****-***********", "recording_single_file_per_layer_enabled": false, "recording_vod_playlist_enabled": false, "room_id": "************************", "max_height": 720, "max_width": 1280, "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "session_id": "************************", "template_id": "************************", "duration": 56, "session_started_at": "2021-11-30T12:58:49.97291247Z" } }
hls.recording.success
This event will be sent when HLS recordings are successful and uploaded to the storage
Attributes
Name | Type | Description |
---|---|---|
beam_id | string | Unique beam id Example: 61d3def54b616982bd80ed83 |
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
metadata_id | string | Webhook metadata ID Example: 14f350f5-18c4-46ca-8a33-71cbcc836600 |
metadata_timestamp | timestamp (in UTC) | Webhook message creation timestamp Example: 2020-11-11T17:32:17Z |
duration | int | Duration of HLS recording in seconds Example: 12 |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
hls_vod_recording_path | string | Upload path of the HLS VOD playlist such as s3 URL Example: s3://bucket/prefix/ac.mp4 |
hls_vod_recording_presigned_url | string | This will be a playable CDN URL for the VOD file or the pre-signed URL of the M3U8 file, depending upon the configured storage and the VOD upload format. Learn more about this here Example: https://upload-location/bucket/hls-vod.zip , https://upload-location/bucket/hls-vod.m3u8 |
chat_recording_path | string | Upload path of chat recording files such as s3 URI Example: s3://bucket/prefix/ac.csv |
chat_recording_presigned_url | string | Pre signed url for chat recording files Example: https://upload-location/bucket/chat.csv |
hls_vod_recording_size | int | Size of the HLS vod recording (in bytes) Example: 10024 |
max_width | int | Maximum width of the screen supported for HLS recording in pixels Example: 1280 |
max_height | int | Maximum height of the screen supported for HLS recording in pixels Example: 720 |
meeting_url | string | meeting_url provided at HLS start Example: "https://app.100ms.live/room_id" |
recording_created_at | timestamp (in UTC) | Timestamp at which recording was created Example: 2020-11-11T17:12:17Z |
started_at | timestamp (in UTC) | Timestamp at which HLS started Example: 2020-11-11T17:32:18Z |
stopped_at | timestamp (in UTC) | Timestamp at which HLS stopped Example: 2020-11-11T17:32:18Z |
recording_id | string | 100ms assigned id to the recording Example: 5ff5881b80b66969e1fb35f4 |
recording_single_files | array | List of recording details per layer. layer="0" is the highest quality layer Example: < see below > |
recording_hls_vod_playlist_location | string | (Deprecated, use hls_vod_recording_presigned_url) Pre signed url for HLS vod playlist url. Example: < see below >* |
recording_thumbnails | array | List of thumbnails generated Example: < see below > |
session_started_at | timestamp (in UTC) | Timestamp when session started Example: 2020-11-11T16:32:17Z |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "timestamp": "2021-11-30T20:36:55Z", "type": "hls.recording.success", "data": { "beam_id": "************************", "session_id": "************************", "template_id": "************************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2021-11-30T20:36:55.807155801Z", "room_id": "************************", "duration": 56, "max_height": 720, "max_width": 1280, "meeting_url": "https://app.100ms.live/preview/rpe-pwl-akt?token=beam_recording", "hls_vod_recording_path": "s3://<hls-vod-bucket-address>.m3u8", "hls_vod_recording_presigned_url": "https://<hls-vod-access-url>?<signature>", "chat_recording_path": "s3://<chat-recording-address>.csv", "chat_recording_presigned_url": "https://<chat-recording-access-url>?<signature>", "hls_vod_recording_size": 10024, "recording_id": "************************", "recording_single_files": [ { "asset_id": "646acb659348ac0ada47d9ef", "layer": "0", "recording_path": "s3://<file-0-bucket-address>.mp4", "recording_presigned_url": "https://<file-0-access-url>?<signature-0>", "size": 10024, "width": 1920, "height": 1080 }, { "asset_id": "646acb659348ac0ada47d0cb", "layer": "1", "recording_path": "s3://<file-1-bucket-address>.mp4", "recording_presigned_url": "https://<file-1-access-url>?<signature-1>", "size": 5012, "width": 1280, "height": 720 }, { "asset_id": "646acb659348ac0ada4748fc", "layer": "2", "recording_path": "s3://<file-2-bucket-address>.mp4", "recording_presigned_url": "https://<file-2-access-url>?<signature-2>", "size": 2506, "width": 640, "height": 480 }, { "asset_id": "646acb659348ac0aba470cdc", "layer": "3", "recording_path": "s3://<file-3-bucket-address>.mp4", "recording_presigned_url": "https://<file-3-access-url>?<signature-3>", "size": 1024, "width": 480, "height": 360 } ], "recording_thumbnails": [ { "width": 1280, "height": 720, "offset": 60, "location": "s3://<thumbnail-file-bucket-address>.png", "url": "https://<thumbnail-access-url>?<signature3>" } ], "recording_created_at": "2021-11-30T12:59:57.672493658Z", "started_at": "2021-11-30T12:59:57.797972469Z", "stopped_at": "2021-11-30T12:59:57.797972469Z", "session_started_at": "2021-11-30T12:58:49.97291247Z" } }
Transcription Events
transcription.started.success
This event is sent when transcription is started post completion of the recording.
Attributes
Name | Type | Description |
---|---|---|
account_id | string | Customer ID from which this event is generated Example: 5ff5881b80b66969e1fb35f4 |
app_id | string | App ID from which this event is generated Example: 5ff5881b80b66969e1fb35f6 |
recording_id | string | 100ms assigned id to the recording Example: 5ff5881b80b66969e1fb35f4 |
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
room_name | string | Room name provided when creating the room Example: Test Room |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
metadata_id | string | Webhook metadata ID Example: 14f350f5-18c4-46ca-8a33-71cbcc836600 |
transcription_id | string | 100ms assigned id to identify the transcription Example: 648aabbcafd9fc711c815270 |
metadata_timestamp | timestamp (in UTC) | Webhook message creation timestamp Example: 2020-11-11T17:32:17Z |
duration | int | Duration of the recording file that is transcribed in seconds Example: 25 |
summary_json_asset_id | string | 100ms assigned id to the generated summary (json) asset Example: 64899f07651605b7aadc2579 |
transcript_json_asset_id | string | 100ms assigned id to the generated transcription (json) asset Example: 64899f07651605b7aadc2578 |
transcript_srt_asset_id | string | 100ms assigned id to the generated transcription (srt) asset Example: 64899f07651605b7aadc2577 |
transcript_txt_asset_id | string | 100ms assigned id to the generated transcription (txt) asset Example: 64899f07651605b7aadc2576 |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2023-06-15T06:17:39Z", "type": "transcription.started.success", "data": { "account_id": "***********************", "app_id": "***********************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2023-06-15T06:17:39.986637275Z", "recording_id": "***********************", "room_id": "***********************", "room_name": "***********", "transcription_id": "***********************", "session_id": "***********************", "duration": 23, "summary_json_asset_id": "***********************", "transcript_json_asset_id": "***********************", "transcript_srt_asset_id": "***********************", "transcript_txt_asset_id": "***********************" } }
transcription.success
This event is sent when transcription is successful and the assets are uploaded to the storage.
Attributes
Name | Type | Description |
---|---|---|
account_id | string | Customer ID from which this event is generated Example: 5ff5881b80b66969e1fb35f4 |
app_id | string | App ID from which this event is generated Example: 5ff5881b80b66969e1fb35f6 |
recording_id | string | 100ms assigned id to the recording Example: 5ff5881b80b66969e1fb35f4 |
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
room_name | string | Room name provided when creating the room Example: Test Room |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
metadata_id | string | Webhook metadata ID Example: 14f350f5-18c4-46ca-8a33-71cbcc836600 |
transcription_id | string | 100ms assigned id to identify the transcription Example: 648aabbcafd9fc711c815270 |
metadata_timestamp | timestamp (in UTC) | Webhook message creation timestamp Example: 2020-11-11T17:32:17Z |
duration | int | Duration of the recording file that is transcribed in seconds Example: 25 |
summary_json_asset_id | string | 100ms assigned id to the generated summary (json) asset Example: 64899f07651605b7aadc2579 |
summary_json_path | string | Upload path of the summary (json) Example: s3://bucket/prefix/ac.mp4 |
summary_json_presigned_url | string | Pre-signed URL of summary (json) |
transcript_json_asset_id | string | 100ms assigned id to the generated transcription (json) asset Example: 64899f07651605b7aadc2578 |
transcript_json_path | string | Upload path of the transcript (json) Example: s3://bucket/prefix/ac.mp4 |
transcript_json_presigned_url | string | Pre-signed URL of transcript (json) |
transcript_srt_asset_id | string | 100ms assigned id to the generated transcription (srt) asset Example: 64899f07651605b7aadc2577 |
transcript_srt_path | string | Upload path of the transcript (srt) Example: s3://bucket/prefix/ac.mp4 |
transcript_srt_presigned_url | string | Pre-signed URL of transcript (srt) |
transcript_txt_asset_id | string | 100ms assigned id to the generated transcription (txt) asset Example: 64899f07651605b7aadc2576 |
transcript_txt_path | string | Upload path of the transcript (txt) Example: s3://bucket/prefix/ac.mp4 |
transcript_txt_presigned_url | string | Pre-signed URL of transcript (txt) |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2023-06-15T06:17:39Z", "type": "transcription.success", "data": { "account_id": "***********************", "app_id": "***********************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2023-06-15T06:17:39.986637275Z", "recording_id": "***********************", "room_id": "***********************", "room_name": "***********", "transcription_id": "***********************", "session_id": "***********************", "duration": 23, "summary_json_asset_id": "***********************", "summary_json_path": "s3://<summary-json-address>.json", "summary_json_presigned_url": "https://<file-access-url>?<signature>", "transcript_json_asset_id": "***********************", "transcript_json_path": "s3://<transcript-json-address>.json", "transcript_json_presigned_url": "https://<file-access-url>?<signature>", "transcript_srt_asset_id": "***********************", "transcript_srt_path": "s3://<transcript-srt-address>.json", "transcript_srt_presigned_url": "https://<file-access-url>?<signature>", "transcript_txt_asset_id": "***********************", "transcript_txt_path": "s3://<transcript-txt-address>.json", "transcript_txt_presigned_url": "https://<file-access-url>?<signature>" } }
transcription.failure
This event is sent when transcription fails. Some files might still be generated even in case of a failure. A transcription is considered to have failed when:
- Summary was not generated even though it was enabled.
- No or partial transcription and summary assets were generated.
Attributes
Name | Type | Description |
---|---|---|
account_id | string | Customer ID from which this event is generated Example: 5ff5881b80b66969e1fb35f4 |
app_id | string | App ID from which this event is generated Example: 5ff5881b80b66969e1fb35f6 |
recording_id | string | 100ms assigned id to the recording Example: 5ff5881b80b66969e1fb35f4 |
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
room_name | string | Room name provided when creating the room Example: Test Room |
session_id | string | 100ms assigned id to identify the session Example: 5f9edc6bd238215aec7700df |
metadata_id | string | Webhook metadata ID Example: 14f350f5-18c4-46ca-8a33-71cbcc836600 |
transcription_id | string | 100ms assigned id to identify the transcription Example: 648aabbcafd9fc711c815270 |
metadata_timestamp | timestamp (in UTC) | Webhook message creation timestamp Example: 2020-11-11T17:32:17Z |
duration | int | Duration of the recording file that is transcribed in seconds Example: 25 |
summary_json_asset_id | string | 100ms assigned id to the generated summary (json) asset Example: 64899f07651605b7aadc2579 |
summary_json_path | string | Upload path of the summary (json) Example: s3://bucket/prefix/ac.mp4 |
summary_json_presigned_url | string | Pre-signed URL of summary (json) |
transcript_json_asset_id | string | 100ms assigned id to the generated transcription (json) asset Example: 64899f07651605b7aadc2578 |
transcript_json_path | string | Upload path of the transcript (json) Example: s3://bucket/prefix/ac.mp4 |
transcript_json_presigned_url | string | Pre-signed URL of transcript (json) |
transcript_srt_asset_id | string | 100ms assigned id to the generated transcription (srt) asset Example: 64899f07651605b7aadc2577 |
transcript_srt_path | string | Upload path of the transcript (srt) Example: s3://bucket/prefix/ac.mp4 |
transcript_srt_presigned_url | string | Pre-signed URL of transcript (srt) |
transcript_txt_asset_id | string | 100ms assigned id to the generated transcription (txt) asset Example: 64899f07651605b7aadc2576 |
transcript_txt_path | string | Upload path of the transcript (txt) Example: s3://bucket/prefix/ac.mp4 |
transcript_txt_presigned_url | string | Pre-signed URL of transcript (txt) |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "************************", "app_id": "************************", "timestamp": "2023-06-15T06:17:39Z", "type": "transcription.failure", "data": { "account_id": "***********************", "app_id": "***********************", "metadata_id": "********-****-****-****-***********", "metadata_timestamp": "2023-06-15T06:17:39.986637275Z", "recording_id": "***********************", "room_id": "***********************", "room_name": "***********", "transcription_id": "***********************", "session_id": "***********************", "duration": 23, "summary_json_asset_id": "***********************", "summary_json_path": "s3://<summary-json-address>.json", "summary_json_presigned_url": "https://<file-access-url>?<signature>", "transcript_json_asset_id": "***********************", "transcript_json_path": "s3://<transcript-json-address>.json", "transcript_json_presigned_url": "https://<file-access-url>?<signature>", "transcript_srt_asset_id": "***********************", "transcript_srt_path": "s3://<transcript-srt-address>.json", "transcript_srt_presigned_url": "https://<file-access-url>?<signature>", "transcript_txt_asset_id": "***********************", "transcript_txt_path": "s3://<transcript-txt-address>.json", "transcript_txt_presigned_url": "https://<file-access-url>?<signature>" } }
RTMP Ingestion Events
ingest.start.success
This event is sent when RTMP ingestion has successfully started.
Attributes
Name | Type | Description |
---|---|---|
id | string | Id of the event Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
account_id | string | Customer ID from which this event is generated Example: 5ff5881b80b66969e1fb35f4 |
app_id | string | App ID from which this event is generated Example: 5ff5881b80b66969e1fb35f6 |
timestamp | timestamp (in UTC) | Timestamp of the event Example: 2020-11-11T16:32:17Z |
type | string | Type of the event Example: ingest.start.success |
started_at | timestamp (in UTC) | Timestamp at which ingestion started Example: 2020-11-11T17:32:18Z |
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
ingest_id | string | 100ms assigned id to identify the ingestion Example: 652d2dfb3bde33b03a9602da |
stream_id | string | 100ms assigned id to identify the stream Example: 652d2dfc037b60106eb62413 |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "***********************", "app_id": "***********************", "timestamp": "2023-10-16T12:35:08Z", "type": "ingest.start.success", "data": { "account_id": "***********************", "app_id": "***********************", "ingest_id": "***********************", "room_id": "***********************", "started_at": "2023-10-16T12:35:08Z", "stream_id": "***********************", "template_id": "***********************" } }
ingest.end.success
This event is sent when RTMP ingestion has successfully ended.
Attributes
Name | Type | Description |
---|---|---|
id | string | Id of the event Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
account_id | string | Customer ID from which this event is generated Example: 5ff5881b80b66969e1fb35f4 |
app_id | string | App ID from which this event is generated Example: 5ff5881b80b66969e1fb35f6 |
timestamp | timestamp (in UTC) | Timestamp of the event Example: 2020-11-11T16:32:17Z |
type | string | Type of the event Example: ingest.end.success |
started_at | timestamp (in UTC) | Timestamp at which ingestion started Example: 2020-11-11T17:32:18Z |
completed_at | timestamp (in UTC) | Timestamp at which ingestion ended Example: 2020-11-11T17:32:18Z |
duration | int | Duration of the stream that is ingested (in seconds) Example: 110 |
last_disconnected_at | string | Last timestamp at which 100ms ingest servers stopped receiving media Example: 2020-11-11T17:32:18Z |
reason | string | Reason for ending of ingestion. Possible reasons are : "publish error" , "reconnection window expired" , "stream closed" , "internal error" |
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
ingest_id | string | 100ms assigned id to identify the ingestion Example: 652d2dfb3bde33b03a9602da |
stream_id | string | 100ms assigned id to identify the stream Example: 652d2dfc037b60106eb62413 |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "***********************", "app_id": "***********************", "timestamp": "2023-10-16T12:36:58Z", "type": "ingest.end.success", "data": { "account_id": "***********************", "app_id": "***********************", "completed_at": "2023-10-16T12:36:58Z", "duration": 111, "ingest_id": "***********************", "last_disconnected_at": "2023-10-16T12:36:58Z", "reason": "reconnection window expired", "room_id": "***********************", "started_at": "2023-10-16T12:36:58Z", "stream_id": "***********************", "template_id": "***********************" } }
ingest.start.failure
This event is sent when RTMP ingestion has failed to start.
Attributes
Name | Type | Description |
---|---|---|
id | string | Id of the event Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
account_id | string | Customer ID from which this event is generated Example: 5ff5881b80b66969e1fb35f4 |
app_id | string | App ID from which this event is generated Example: 5ff5881b80b66969e1fb35f6 |
timestamp | timestamp (in UTC) | Timestamp of the event Example: 2020-11-11T16:32:17Z |
type | string | Type of the event Example: ingest.start.failure |
error_message | string | Error message for failure of ingestion start. Possible messages are: "stream key disabled" , "internal error" , "no hls destinations" , "remote session active" , "already connected" , "beam start error" |
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "***********************", "app_id": "***********************", "timestamp": "2023-10-16T12:36:58Z", "type": "ingest.start.failure", "data": { "account_id": "***********************", "app_id": "***********************", "error_message": "stream key disabled", "room_id": "***********************", "template_id": "***********************" } }
ingest.failure
This event is sent when RTMP ingestion is failed.
Attributes
Name | Type | Description |
---|---|---|
id | string | Id of the event Example: bd0c76fd-1ab1-4d7d-ab8d-bbfa74b620c4 |
account_id | string | Customer ID from which this event is generated Example: 5ff5881b80b66969e1fb35f4 |
app_id | string | App ID from which this event is generated Example: 5ff5881b80b66969e1fb35f6 |
timestamp | timestamp (in UTC) | Timestamp of the event Example: 2020-11-11T16:32:17Z |
type | string | Type of the event Example: ingest.failure |
error_message | string | Error message for failure of ingestion start. Possible messages are: "internal error" |
ingest_id | string | 100ms assigned id to identify the ingestion Example: 652d2dfb3bde33b03a9602da |
room_id | string | 100ms assigned room id Example: 5f9edc6ac238215aec2312df |
template_id | string | Template ID of the room Example: 66112497abcd52312556c4gg |
Sample
{ "version": "2.0", "id": "********-****-****-****-***********", "account_id": "***********************", "app_id": "***********************", "timestamp": "2023-10-16T12:36:58Z", "type": "ingest.failure", "data": { "account_id": "***********************", "app_id": "***********************", "error_message": "stream key disabled", "ingest_id": "***********************", "room_id": "***********************", "template_id": "***********************" } }