Random webrtc crap

This commit is contained in:
Madeline 2022-09-21 14:29:18 +10:00
parent 8bfdc58277
commit ebbb2653ee
2 changed files with 13 additions and 13 deletions

View File

@ -1,6 +1,6 @@
import { CLOSECODES, Payload, Send, WebSocket } from "@fosscord/gateway"; import { CLOSECODES, Payload, Send, WebSocket } from "@fosscord/gateway";
import { validateSchema, VoiceIdentifySchema, VoiceState } from "@fosscord/util"; import { validateSchema, VoiceIdentifySchema, VoiceState } from "@fosscord/util";
import { endpoint, getClients, VoiceOPCodes } from "@fosscord/webrtc"; import { endpoint, getClients, VoiceOPCodes, PublicIP } from "@fosscord/webrtc";
import SemanticSDP from "semantic-sdp"; import SemanticSDP from "semantic-sdp";
const defaultSDP = require("./sdp.json"); const defaultSDP = require("./sdp.json");
@ -8,7 +8,7 @@ export async function onIdentify(this: WebSocket, data: Payload) {
clearTimeout(this.readyTimeout); clearTimeout(this.readyTimeout);
const { server_id, user_id, session_id, token, streams, video } = validateSchema("VoiceIdentifySchema", data.d) as VoiceIdentifySchema; const { server_id, user_id, session_id, token, streams, video } = validateSchema("VoiceIdentifySchema", data.d) as VoiceIdentifySchema;
const voiceState = await VoiceState.findOne({ guild_id: server_id, user_id, token, session_id }); const voiceState = await VoiceState.findOne({ where: { guild_id: server_id, user_id, token, session_id } });
if (!voiceState) return this.close(CLOSECODES.Authentication_failed); if (!voiceState) return this.close(CLOSECODES.Authentication_failed);
this.user_id = user_id; this.user_id = user_id;
@ -53,7 +53,7 @@ export async function onIdentify(this: WebSocket, data: Payload) {
"xsalsa20_poly1305_suffix", "xsalsa20_poly1305_suffix",
"xsalsa20_poly1305" "xsalsa20_poly1305"
], ],
ip: "127.0.0.1", ip: PublicIP,
experiments: [] experiments: []
} }
}); });

View File

@ -1,7 +1,7 @@
import { Payload, Send, WebSocket } from "@fosscord/gateway"; import { Payload, Send, WebSocket } from "@fosscord/gateway";
import { SelectProtocolSchema, validateSchema } from "@fosscord/util"; import { SelectProtocolSchema, validateSchema } from "@fosscord/util";
import { endpoint, PublicIP, VoiceOPCodes } from "@fosscord/webrtc"; import { endpoint, PublicIP, VoiceOPCodes } from "@fosscord/webrtc";
import SemanticSDP from "semantic-sdp"; import SemanticSDP, { MediaInfo, SDPInfo } from "semantic-sdp";
export async function onSelectProtocol(this: WebSocket, payload: Payload) { export async function onSelectProtocol(this: WebSocket, payload: Payload) {
if (!this.client) return; if (!this.client) return;
@ -24,15 +24,15 @@ export async function onSelectProtocol(this: WebSocket, payload: Payload) {
const candidates = transport.getLocalCandidates(); const candidates = transport.getLocalCandidates();
const candidate = candidates[0]; const candidate = candidates[0];
const answer = `m=audio ${port} ICE/SDP const answer =
a=fingerprint:${fingerprint} `m=audio ${port} ICE/SDP`
c=IN IP4 ${PublicIP} + `a=fingerprint:${fingerprint}`
a=rtcp:${port} + `c=IN IP4 ${PublicIP}`
a=ice-ufrag:${ice.getUfrag()} + `a=rtcp:${port}`
a=ice-pwd:${ice.getPwd()} + `a=ice-ufrag:${ice.getUfrag()}`
a=fingerprint:${fingerprint} + `a=ice-pwd:${ice.getPwd()}`
a=candidate:1 1 ${candidate.getTransport()} ${candidate.getFoundation()} ${candidate.getAddress()} ${candidate.getPort()} typ host + `a=fingerprint:${fingerprint}`
`; + `a=candidate:1 1 ${candidate.getTransport()} ${candidate.getFoundation()} ${candidate.getAddress()} ${candidate.getPort()} typ host`;
await Send(this, { await Send(this, {
op: VoiceOPCodes.SELECT_PROTOCOL_ACK, op: VoiceOPCodes.SELECT_PROTOCOL_ACK,