Skip to main content
Complete reference for all voice-related Protocol Buffer messages.

RequestRoom

Request to join a voice room. Request: voice.RequestRoomResponse: voice.RoomInfo
chat_ref
refs.ChatRef
required
Reference to the chat/channel

RoomInfo

Information about a voice room.
room_id
fixed64
Snowflake ID of the room
chat_ref
refs.ChatRef
Reference to the chat/channel
endpoint
string
WebRTC endpoint URL for the room

RoomParticipant

Information about a participant in a voice room.
room_id
fixed64
Snowflake ID of the room
connection_id
fixed64
Connection identifier
user_id
fixed64
Snowflake ID of the user
muted
bool
Whether the participant is muted
deafened
bool
Whether the participant is deafened

UpdateRoomState

Update sent when room state changes.
chat_ref
refs.ChatRef
Reference to the chat/channel
state
RoomState
The room state

RoomState

room_id
fixed64
Snowflake ID of the room
participants
RoomParticipant[]
Array of participants in the room

UpdateRoomParticipant

Update sent when a participant changes state.
connection_id
fixed64
Connection identifier
chat_ref
refs.ChatRef
Reference to the chat/channel
user_id
fixed64
Snowflake ID of the participant
muted
bool
Whether the participant is muted
deafened
bool
Whether the participant is deafened

Protocol Definition

syntax = "proto3";

import "refs.proto";

package tangle.client.voice;

message RoomInfo {
  // @snowflake
  fixed64 room_id = 1;
  refs.ChatRef chat_ref = 2;
  string endpoint = 3;
}

message RoomParticipant {
  // @snowflake
  fixed64 room_id = 1;
  fixed64 connection_id = 2;
  // @snowflake<User>
  fixed64 user_id = 3;
  bool muted = 4;
  bool deafened = 5;
}

// voice.requestRoom -> RoomInfo
message RequestRoom {
  refs.ChatRef chat_ref = 1;
}

// Updates
message UpdateRoomState {
  refs.ChatRef chat_ref = 1;
  RoomState state = 2;
}

message RoomState {
  // @snowflake
  fixed64 room_id = 2;
  repeated RoomParticipant participants = 3;
}

message UpdateRoomParticipant {
  fixed64 connection_id = 1;
  refs.ChatRef chat_ref = 2;
  // @snowflake<User>
  fixed64 user_id = 3;
  bool muted = 4;
  bool deafened = 5;
}

Build docs developers (and LLMs) love