Newer
Older
percord / util / src / schemas / voice.ts
@Madeline Madeline on 16 Sep 2022 1 KB Probably broken merge from webrtc
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
}