Реализация динамического запроса транспортных серверов в соответствии с поправками в g365sfu

This commit is contained in:
RoyceDa
2026-03-17 15:02:57 +02:00
parent 2c026d596d
commit 6dd348230f
2 changed files with 18 additions and 16 deletions

View File

@@ -92,12 +92,7 @@ export function CallProvider(props : CallProviderProps) {
for(let i = 0; i < iceServers.length; i++){ for(let i = 0; i < iceServers.length; i++){
let server = iceServers[i]; let server = iceServers[i];
formattedIceServers.push({ formattedIceServers.push({
urls: "turn:" + server.urls + "?transport=udp", urls: "turn:" + server.url + "?transport=" + server.transport,
username: server.username,
credential: server.credential
});
formattedIceServers.push({
urls: "turn:" + server.urls + "?transport=tcp",
username: server.username, username: server.username,
credential: server.credential credential: server.credential
}); });

View File

@@ -1,8 +1,15 @@
import Packet from "../packet"; import Packet from "../packet";
import Stream from "../stream"; import Stream from "../stream";
export interface G365IceServer {
url: string;
username: string;
credential: string;
transport: string;
}
export class PacketIceServers extends Packet { export class PacketIceServers extends Packet {
private iceServers: RTCIceServer[] = []; private iceServers: G365IceServer[] = [];
public getPacketId(): number { public getPacketId(): number {
return 28; return 28;
@@ -12,13 +19,15 @@ export class PacketIceServers extends Packet {
const serversCount = stream.readInt16(); const serversCount = stream.readInt16();
this.iceServers = []; this.iceServers = [];
for(let i = 0; i < serversCount; i++){ for(let i = 0; i < serversCount; i++){
const urls = stream.readString(); const url = stream.readString();
const username = stream.readString(); const username = stream.readString();
const credential = stream.readString(); const credential = stream.readString();
const transport = stream.readString();
this.iceServers.push({ this.iceServers.push({
urls, url,
username, username,
credential credential,
transport
}); });
} }
} }
@@ -29,21 +38,19 @@ export class PacketIceServers extends Packet {
stream.writeInt16(this.iceServers.length); stream.writeInt16(this.iceServers.length);
for(let i = 0; i < this.iceServers.length; i++){ for(let i = 0; i < this.iceServers.length; i++){
const server = this.iceServers[i]; const server = this.iceServers[i];
/** stream.writeString(server.url);
* Не поддерживает массив urls!!!
*/
stream.writeString((server.urls as string));
stream.writeString(server.username || ""); stream.writeString(server.username || "");
stream.writeString(server.credential || ""); stream.writeString(server.credential || "");
stream.writeString(server.transport || "");
} }
return stream; return stream;
} }
public getIceServers(): RTCIceServer[] { public getIceServers(): G365IceServer[] {
return this.iceServers; return this.iceServers;
} }
public setIceServers(servers: RTCIceServer[]) { public setIceServers(servers: G365IceServer[]) {
this.iceServers = servers; this.iceServers = servers;
} }