package im.rosetta.packet; import java.util.ArrayList; import java.util.List; import io.g365sfu.webrtc.RTCIceServer; import io.orprotocol.Stream; import io.orprotocol.packet.Packet; public class Packet28IceServers extends Packet { private List iceServers; @Override public void read(Stream stream) { int count = stream.readInt16(); this.iceServers = new ArrayList<>(); for (int i = 0; i < count; i++) { String url = stream.readString(); String username = stream.readString(); String credential = stream.readString(); String transport = stream.readString(); RTCIceServer iceServer = new RTCIceServer(url, username, credential, transport); iceServers.add(iceServer); } } @Override public Stream write() { Stream stream = new Stream(); stream.writeInt16(this.packetId); stream.writeInt16(iceServers.size()); for (RTCIceServer iceServer : iceServers) { stream.writeString(iceServer.getUrl()); stream.writeString(iceServer.getUsername()); stream.writeString(iceServer.getCredential()); stream.writeString(iceServer.getTransport()); } return stream; } /** * Получить список серверов ICE, которые могут быть использованы для обмена кандидатами между участниками звонка через сервер SFU. * @return список серверов ICE, которые могут быть использованы для обмена кандидатами между участниками звонка через сервер SFU. */ public List getIceServers() { return iceServers; } /** * Установить список серверов ICE, которые могут быть использованы для обмена кандидатами между участниками звонка через сервер SFU. * @param iceServers список серверов ICE, которые могут быть использованы для обмена кандидатами между участниками звонка через сервер SFU. */ public void setIceServers(List iceServers) { this.iceServers = iceServers; } }