# Session events Session events apply to Meetings, Webinars, and Video SDK implementations. They provide real-time notifications about session activity, participants, media state changes, and in-meeting interactions. > To use session events, you must first establish connections using [Universal events](/docs/rtms/event-reference/universal-events/). Subscribe to specific session events using the `EVENT_SUBSCRIPTION` message documented in the universal events reference. ## First timestamp from the signaling connection Sent from the signaling connection After the signaling connection connects, it sends a message to the app with the first timestamp. Use this timestamp as the start of the session. This message does not require a response from the app. ```json { "msg_type": 6, "event": { "event_type": 1, "timestamp": 1727384349123 } } ``` | Field | Type | Description | | ------------ | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `msg_type` | int | The signaling connection sends this message to the app to provide the first timestamp for the connection. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). | | `event_type` | int | The first timestamp event. For more information, see [RTMS_EVENT_TYPE](/docs/rtms/data-types/#rtms_event_type). | | `timestamp` | unsigned long | The Unix timestamp sent by the signaling connection. | ## Active speaker change Sent from the signaling connection The signaling connection sends active speaker change events that provide timestamps for when a user is the primary participant speaking (green box around their tile in the session). This message does not require a response from the app. ```json { "msg_type": 6, "event": { "event_type": 2, "timestamp": 1727384349123, "user_id": 22334455, "user_name": "John Smith" } } ``` | Field | Type | Description | | ------------ | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `msg_type` | int | The signaling connection sends this message to the app when the active speaker changes. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). | | `event_type` | int | The active speaker changed event. For more information, see [RTMS_EVENT_TYPE](/docs/rtms/data-types/#rtms_event_type). | | `timestamp` | unsigned long | The Unix timestamp of the event. | | `user_id` | unsigned int32 | The current active speaker's unique identifier. | | `user_name` | string | The current active speaker's username. | ## Participant joined Sent from the signaling connection The signaling connection sends participant join events when someone joins the session. This message does not require a response from the app. ```json { "msg_type": 6, "event": { "event_type": 3, "timestamp": 1727384349123, "participants": [ { "user_id": xxxxxxxxxx, "user_name": "John Smith" }, { "user_id": xxxxxxxxxx, "user_name": "Alice" } ] } } ``` | Field | Type | Description | | -------------- | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `msg_type` | int | The signaling connection sends this message to the app when a participant joins a session. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). | | `event_type` | int | A participant has joined the session event. For more information, see [RTMS_EVENT_TYPE](/docs/rtms/data-types/#rtms_event_type). | | `timestamp` | unsigned long | The Unix timestamp of when a participant joined. | | `participants` | array | The participants in the session. | | `user_id` | unsigned long | The unique identifier of the participant that joined. | | `user_name` | string | The username of the participant that joined. | ## Participant leave Sent from the signaling connection The signaling connection sends participant leave events when a user leaves a session, including when it ends. This message does not require a response from the app. ```json { "msg_type": 6, "event": { "event_type": 4, "timestamp": 1727384349123, "participants": [ { "user_id": xxxxxxxxxx }, { "user_id": xxxxxxxxxx } ] } } ``` | Field | Type | Description | | -------------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `msg_type` | int | The signaling connection sends this message to the app when the participant leaves a session. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). | | `event_type` | int | The participant has left the session event. For more information, see [RTMS_EVENT_TYPE](/docs/rtms/data-types/#rtms_event_type). | | `timestamp` | unsigned long | The Unix timestamp of when the participant left. | | `participants` | array | The participants that left the session. | | `user_id` | unsigned int32 | The unique identifier of the participants who have left the session. | ## Sharing started Sent from the signaling connection The signaling connection sends sharing started events when a user starts sharing their screen if the app has the `DESKSHARE` scope. This message does not require a response from the app. ```json { "msg_type": 6, "event": { "event_type": 5, "timestamp": 1727384349123, "user_id": 1234234567890, "user_name": "John Smith" } } ``` | Field | Type | Description | | ------------ | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `msg_type` | int | The signaling connection sends this message when a participant starts sharing their screen. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). | | `event_type` | int | A participant starts sharing their screen. For more information, see [RTMS_EVENT_TYPE](/docs/rtms/data-types/#rtms_event_type). | | `timestamp` | unsigned long | The Unix timestamp when screen sharing started. | | `user_id` | unsigned int32 | The unique identifier of the participant that started sharing. | | `user_name` | string | The username of the participant that started screen sharing. | ## Sharing stopped Sent from the signaling connection The signaling connection sends sharing stopped events when a user stops sharing their screen if the app has the `DESKSHARE` scope. This message does not require a response from the app. ```json { "msg_type": 6, "event": { "event_type": 6, "timestamp": 1727384349123 } } ``` | Field | Type | Description | | ------------ | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `msg_type` | int | The signaling connection sends this message when a participant stops sharing their screen. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). | | `event_type` | int | The signaling connection sends this message when screen sharing stops. For more information, see [RTMS_EVENT_TYPE](/docs/rtms/data-types/#rtms_event_type). | | `timestamp` | unsigned long | The Unix timestamp when screen sharing stopped. | ## Participant video on Sent from the signaling connection The signaling connection sends a participant video on event when a participant enables their camera and is actively streaming video. Use the `user_id` in this event to send a [video subscription request](#video-subscription-request). This message does not require a response from the app. ```json { "msg_type": 6, "event": { "event_type": 8, "timestamp": 1727384349123, "participants": [ { "user_id": 16778240 }, { "user_id": 33556610 } ] } } ``` | Field | Type | Description | | -------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `msg_type` | int | The signaling connection sends this message when a participant turns their camera on. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). | | `event_type` | int | A participant's camera is turned on. For more information, see [RTMS_EVENT_TYPE](/docs/rtms/data-types/#rtms_event_type). | | `timestamp` | unsigned long | The Unix timestamp of the event. | | `participants` | array | List of participants who turned their camera on. | | `user_id` | unsigned int32 | The unique identifier of the participant in the session. | ## Participant video off Sent from the signaling connection The signaling connection sends a participant video off event when a participant turns off their camera. No video stream is being sent from that participant. This message does not require a response from the app. ```json { "msg_type": 6, "event": { "event_type": 9, "timestamp": 1727384349123, "participants": [ { "user_id": 16778240 } ] } } ``` | Field | Type | Description | | -------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `msg_type` | int | The signaling connection sends this message when a participant turns their camera off. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). | | `event_type` | int | A participant's camera is turned off. For more information, see [RTMS_EVENT_TYPE](/docs/rtms/data-types/#rtms_event_type). | | `timestamp` | unsigned long | The Unix timestamp of the event. | | `participants` | array | List of participants who turned their camera off. | | `user_id` | unsigned int32 | The unique identifier of the participant in the session. | ## Chat group created Sent from the signaling connection The signaling connection sends a chat group created event when a new private chat group is created in the session. Subscribe to this event with `event_type: 10`. This message does not require a response from the app. ```json { "msg_type": 6, "event": { "event_type": 10, "timestamp": 1727384349123, "chat_groups": [ { "chat_group_id": "4105C0A2-76F0-8515-22AC-FD585C25AB82", "chat_group_name": "Chat Group", "chat_group_type": 0, "creator_user_id": 16778240, "members": [ { "user_id": 16778240, "user_name": "John Smith" } ] } ] } } ``` | Field | Type | Description | | --------------------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `msg_type` | int | The signaling connection sends this message when a private chat group is created. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). | | `event_type` | int | A new private chat group was created. For more information, see [RTMS_EVENT_TYPE](/docs/rtms/data-types/#rtms_event_type). | | `timestamp` | unsigned long | The Unix timestamp of the event. | | `chat_groups` | array | The private chat groups that were created. | | `chat_group_id` | string | The unique identifier of the private chat group. | | `chat_group_name` | string | The name of the private chat group. | | `chat_group_type` | int | The type of private chat group. For more information, see [RTMS_CHAT_GROUP_TYPE](/docs/rtms/data-types/#rtms_chat_group_type). | | `creator_user_id` | unsigned int32 | The unique identifier of the participant who created the chat group. | | `members` | array | The members of the chat group. | | `members[].user_id` | unsigned int32 | The unique identifier of a chat group member. | | `members[].user_name` | string | The username of a chat group member. | ## Chat group deleted Sent from the signaling connection The signaling connection sends a chat group deleted event when one or more private chat groups are deleted from the session. Subscribe to this event with `event_type: 11`. This message does not require a response from the app. ```json { "msg_type": 6, "event": { "event_type": 11, "timestamp": 1727384349123, "chat_groups": [ { "chat_group_id": "4105C0A2-76F0-8515-22AC-FD585C25AB82", "chat_group_name": "Chat Group", "chat_group_type": 0, "creator_user_id": 16778240, "members": [ { "user_id": 16778240, "user_name": "John Smith" } ] } ] } } ``` | Field | Type | Description | | --------------------- | ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `msg_type` | int | The signaling connection sends this message when one or more private chat groups are deleted. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). | | `event_type` | int | One or more private chat groups were deleted. For more information, see [RTMS_EVENT_TYPE](/docs/rtms/data-types/#rtms_event_type). | | `timestamp` | unsigned long | The Unix timestamp of the event. | | `chat_groups` | array | The private chat groups that were deleted. | | `chat_group_id` | string | The unique identifier of the private chat group. | | `chat_group_name` | string | The name of the private chat group. | | `chat_group_type` | int | The type of private chat group. For more information, see [RTMS_CHAT_GROUP_TYPE](/docs/rtms/data-types/#rtms_chat_group_type). | | `creator_user_id` | unsigned int32 | The unique identifier of the participant who created the chat group. | | `members` | array | The members of the chat group. | | `members[].user_id` | unsigned int32 | The unique identifier of a chat group member. | | `members[].user_name` | string | The username of a chat group member. | ## Chat group members added Sent from the signaling connection The signaling connection sends a chat group members added event when one or more members are added to a private chat group. Subscribe to this event with `event_type: 12`. This message does not require a response from the app. ```json { "msg_type": 6, "event": { "event_type": 12, "timestamp": 1727384349123, "members_update_list": [ { "chat_group_id": "4FAFFE72-FF2E-4E07-3773-248326841CBE", "members": [ { "user_id": 16778240, "user_name": "John Smith" } ] } ] } } ``` | Field | Type | Description | | --------------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `msg_type` | int | The signaling connection sends this message when members are added to a private chat group. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). | | `event_type` | int | One or more members were added to a private chat group. For more information, see [RTMS_EVENT_TYPE](/docs/rtms/data-types/#rtms_event_type). | | `timestamp` | unsigned long | The Unix timestamp of the event. | | `members_update_list` | array | The chat groups and the members added to them. | | `chat_group_id` | string | The unique identifier of the private chat group. | | `members` | array | The members added to the chat group. | | `members[].user_id` | unsigned int32 | The unique identifier of an added member. | | `members[].user_name` | string | The username of an added member. | ## Chat group members removed Sent from the signaling connection The signaling connection sends a chat group members removed event when one or more members are removed from a private chat group. Subscribe to this event with `event_type: 13`. This message does not require a response from the app. ```json { "msg_type": 6, "event": { "event_type": 13, "timestamp": 1727384349123, "members_update_list": [ { "chat_group_id": "4FAFFE72-FF2E-4E07-3773-248326841CBE", "members": [ { "user_id": 16778240, "user_name": "John Smith" } ] } ] } } ``` | Field | Type | Description | | --------------------- | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `msg_type` | int | The signaling connection sends this message when members are removed from a private chat group. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). | | `event_type` | int | One or more members were removed from a private chat group. For more information, see [RTMS_EVENT_TYPE](/docs/rtms/data-types/#rtms_event_type). | | `timestamp` | unsigned long | The Unix timestamp of the event. | | `members_update_list` | array | The chat groups and the members removed from them. | | `chat_group_id` | string | The unique identifier of the private chat group. | | `members` | array | The members removed from the chat group. | | `members[].user_id` | unsigned int32 | The unique identifier of a removed member. | | `members[].user_name` | string | The username of a removed member. | ## Chat group member status updated Sent from the signaling connection The signaling connection sends a chat group member status updated event when the in-meeting status of a private chat group member changes. Subscribe to this event with `event_type: 14`. This message does not require a response from the app. ```json { "msg_type": 6, "event": { "event_type": 14, "timestamp": 1727384349123, "member_status_update_list": [ { "chat_group_id": "4FAFFE72-FF2E-4E07-3773-248326841CBE", "user_id": 16778240, "user_name": "John Smith", "member_status": 1 } ] } } ``` | Field | Type | Description | | --------------------------- | ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `msg_type` | int | The signaling connection sends this message when a private chat group member's status changes. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). | | `event_type` | int | The in-meeting status of a private chat group member changed. For more information, see [RTMS_EVENT_TYPE](/docs/rtms/data-types/#rtms_event_type). | | `timestamp` | unsigned long | The Unix timestamp of the event. | | `member_status_update_list` | array | The chat group members whose status changed. | | `chat_group_id` | string | The unique identifier of the private chat group. | | `user_id` | unsigned int32 | The unique identifier of the member whose status changed. | | `user_name` | string | The username of the member whose status changed. | | `member_status` | int | The updated in-meeting status of the member. For more information, see [RTMS_CHAT_GROUP_MEMBER_STATUS](/docs/rtms/data-types/#rtms_chat_group_member_status). |