diff --git a/api/assets/schemas.json b/api/assets/schemas.json
index b17f90bc..b5dbda31 100644
--- a/api/assets/schemas.json
+++ b/api/assets/schemas.json
@@ -198,10 +198,7 @@
"type": "integer"
},
"video_quality_mode": {
- "type": [
- "null",
- "integer"
- ]
+ "type": "integer"
}
},
"additionalProperties": false,
@@ -716,10 +713,7 @@
"type": "integer"
},
"video_quality_mode": {
- "type": [
- "null",
- "integer"
- ]
+ "type": "integer"
}
},
"additionalProperties": false
@@ -1285,5 +1279,241 @@
"type": "object",
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
+ },
+ "VoiceVideoSchema": {
+ "type": "object",
+ "properties": {
+ "audio_ssrc": {
+ "type": "integer"
+ },
+ "video_ssrc": {
+ "type": "integer"
+ },
+ "rtx_ssrc": {
+ "type": "integer"
+ },
+ "user_id": {
+ "type": "string"
+ },
+ "streams": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "enum": [
+ "audio",
+ "video"
+ ],
+ "type": "string"
+ },
+ "rid": {
+ "type": "string"
+ },
+ "ssrc": {
+ "type": "integer"
+ },
+ "active": {
+ "type": "boolean"
+ },
+ "quality": {
+ "type": "integer"
+ },
+ "rtx_ssrc": {
+ "type": "integer"
+ },
+ "max_bitrate": {
+ "type": "integer"
+ },
+ "max_framerate": {
+ "type": "integer"
+ },
+ "max_resolution": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "width": {
+ "type": "integer"
+ },
+ "height": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "height",
+ "type",
+ "width"
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "active",
+ "max_bitrate",
+ "max_framerate",
+ "max_resolution",
+ "quality",
+ "rid",
+ "rtx_ssrc",
+ "ssrc",
+ "type"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "audio_ssrc",
+ "video_ssrc"
+ ],
+ "$schema": "http://json-schema.org/draft-07/schema#"
+ },
+ "VoiceIdentifySchema": {
+ "type": "object",
+ "properties": {
+ "server_id": {
+ "type": "string"
+ },
+ "user_id": {
+ "type": "string"
+ },
+ "session_id": {
+ "type": "string"
+ },
+ "token": {
+ "type": "string"
+ },
+ "video": {
+ "type": "boolean"
+ },
+ "streams": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "rid": {
+ "type": "string"
+ },
+ "quality": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "quality",
+ "rid",
+ "type"
+ ]
+ }
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "server_id",
+ "session_id",
+ "token",
+ "user_id"
+ ],
+ "$schema": "http://json-schema.org/draft-07/schema#"
+ },
+ "SelectProtocolSchema": {
+ "type": "object",
+ "properties": {
+ "protocol": {
+ "enum": [
+ "udp",
+ "webrtc"
+ ],
+ "type": "string"
+ },
+ "data": {
+ "anyOf": [
+ {
+ "type": "object",
+ "properties": {
+ "address": {
+ "type": "string"
+ },
+ "port": {
+ "type": "integer"
+ },
+ "mode": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "address",
+ "mode",
+ "port"
+ ]
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "sdp": {
+ "type": "string"
+ },
+ "codecs": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "enum": [
+ "H264",
+ "VP8",
+ "VP9",
+ "opus"
+ ],
+ "type": "string"
+ },
+ "type": {
+ "enum": [
+ "audio",
+ "video"
+ ],
+ "type": "string"
+ },
+ "priority": {
+ "type": "integer"
+ },
+ "payload_type": {
+ "type": "integer"
+ },
+ "rtx_payload_type": {
+ "type": [
+ "null",
+ "integer"
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "name",
+ "payload_type",
+ "priority",
+ "type"
+ ]
+ }
+ },
+ "rtc_connection_id": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "data",
+ "protocol"
+ ],
+ "$schema": "http://json-schema.org/draft-07/schema#"
}
}
\ No newline at end of file
diff --git a/api/src/index.ts b/api/src/index.ts
index adc7649c..a731d326 100644
--- a/api/src/index.ts
+++ b/api/src/index.ts
@@ -1,3 +1,4 @@
export * from "./Server";
export * from "./middlewares/";
export * from "./util/";
+export * from "./voice_schema_hack";
\ No newline at end of file
diff --git a/api/tsconfig.json b/api/tsconfig.json
index 80d7251f..b558a0dd 100644
--- a/api/tsconfig.json
+++ b/api/tsconfig.json
@@ -68,6 +68,7 @@
"baseUrl": ".",
"paths": {
"@fosscord/api": ["src/index"]
+ "@fosscord/util": ["../util/src/index"]
},
"plugins": [{ "transform": "@zerollup/ts-transform-paths" }],
"experimentalDecorators": true
|