export interface VoiceVideoSchema {
audio_ssrc: number;
video_ssrc: number;
rtx_ssrc?: number;
user_id?: string;
streams?: {
type: "video" | "audio";
rid: string;
ssrc: number;
active: boolean;
quality: number;
rtx_ssrc: number;
max_bitrate: number;
max_framerate: number;
max_resolution: { type: string; width: number; height: number; };
}[];
}
export const VoiceStateUpdateSchema = {
$guild_id: String,
$channel_id: String,
self_mute: Boolean,
self_deaf: Boolean,
self_video: Boolean
};
//TODO need more testing when community guild and voice stage channel are working
export interface VoiceStateUpdateSchema {
channel_id: string;
guild_id?: string;
suppress?: boolean;
request_to_speak_timestamp?: Date;
self_mute?: boolean;
self_deaf?: boolean;
self_video?: boolean;
}
export interface VoiceIdentifySchema {
server_id: string;
user_id: string;
session_id: string;
token: string;
video?: boolean;
streams?: {
type: string;
rid: string;
quality: number;
}[];
}
export interface SelectProtocolSchema {
protocol: "webrtc" | "udp";
data:
| string
| {
address: string;
port: number;
mode: string;
};
sdp?: string;
codecs?: {
name: "opus" | "VP8" | "VP9" | "H264";
type: "audio" | "video";
priority: number;
payload_type: number;
rtx_payload_type?: number | null;
}[];
rtc_connection_id?: string; // uuid
}