mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2025-06-28 20:29:53 +00:00
webrtc: updated credentials (#4011)
* webrtc: updated credentials * no udp * change * stuns * added stun back --------- Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
This commit is contained in:
parent
f606e5742c
commit
24e3806b25
6 changed files with 20 additions and 15 deletions
|
@ -431,17 +431,18 @@ struct RTCIceServer: Codable, Equatable {
|
||||||
}
|
}
|
||||||
|
|
||||||
// the servers are expected in this format:
|
// the servers are expected in this format:
|
||||||
// stun:stun.simplex.im:443?transport=tcp
|
// stuns:stun.simplex.im:443?transport=tcp
|
||||||
// turn:private:yleob6AVkiNI87hpR94Z@turn.simplex.im:443?transport=tcp
|
// turns:private2:Hxuq2QxUjnhj96Zq2r4HjqHRj@turn.simplex.im:443?transport=tcp
|
||||||
func parseRTCIceServer(_ str: String) -> RTCIceServer? {
|
func parseRTCIceServer(_ str: String) -> RTCIceServer? {
|
||||||
var s = replaceScheme(str, "stun:")
|
var s = replaceScheme(str, "stun:")
|
||||||
|
s = replaceScheme(s, "stuns:")
|
||||||
s = replaceScheme(s, "turn:")
|
s = replaceScheme(s, "turn:")
|
||||||
s = replaceScheme(s, "turns:")
|
s = replaceScheme(s, "turns:")
|
||||||
if let u: URL = URL(string: s),
|
if let u: URL = URL(string: s),
|
||||||
let scheme = u.scheme,
|
let scheme = u.scheme,
|
||||||
let host = u.host,
|
let host = u.host,
|
||||||
let port = u.port,
|
let port = u.port,
|
||||||
u.path == "" && (scheme == "stun" || scheme == "turn" || scheme == "turns") {
|
u.path == "" && (scheme == "stun" || scheme == "stuns" || scheme == "turn" || scheme == "turns") {
|
||||||
let query = u.query == nil || u.query == "" ? "" : "?" + (u.query ?? "")
|
let query = u.query == nil || u.query == "" ? "" : "?" + (u.query ?? "")
|
||||||
return RTCIceServer(
|
return RTCIceServer(
|
||||||
urls: ["\(scheme):\(host):\(port)\(query)"],
|
urls: ["\(scheme):\(host):\(port)\(query)"],
|
||||||
|
|
|
@ -65,14 +65,14 @@ final class WebRTCClient: NSObject, RTCVideoViewDelegate, RTCFrameEncryptorDeleg
|
||||||
self.localRendererAspectRatio = localRendererAspectRatio
|
self.localRendererAspectRatio = localRendererAspectRatio
|
||||||
rtcAudioSession.useManualAudio = CallController.useCallKit()
|
rtcAudioSession.useManualAudio = CallController.useCallKit()
|
||||||
rtcAudioSession.isAudioEnabled = !CallController.useCallKit()
|
rtcAudioSession.isAudioEnabled = !CallController.useCallKit()
|
||||||
logger.debug("WebRTCClient: rtcAudioSession has manual audio \(self.rtcAudioSession.useManualAudio) and audio enabled \(self.rtcAudioSession.isAudioEnabled)}")
|
logger.debug("WebRTCClient: rtcAudioSession has manual audio \(self.rtcAudioSession.useManualAudio) and audio enabled \(self.rtcAudioSession.isAudioEnabled)")
|
||||||
super.init()
|
super.init()
|
||||||
}
|
}
|
||||||
|
|
||||||
let defaultIceServers: [WebRTC.RTCIceServer] = [
|
let defaultIceServers: [WebRTC.RTCIceServer] = [
|
||||||
WebRTC.RTCIceServer(urlStrings: ["stun:stun.simplex.im:443"]),
|
WebRTC.RTCIceServer(urlStrings: ["stuns:stun.simplex.im:443"]),
|
||||||
WebRTC.RTCIceServer(urlStrings: ["turn:turn.simplex.im:443?transport=udp"], username: "private", credential: "yleob6AVkiNI87hpR94Z"),
|
//WebRTC.RTCIceServer(urlStrings: ["turns:turn.simplex.im:443?transport=udp"], username: "private2", credential: "Hxuq2QxUjnhj96Zq2r4HjqHRj"),
|
||||||
WebRTC.RTCIceServer(urlStrings: ["turn:turn.simplex.im:443?transport=tcp"], username: "private", credential: "yleob6AVkiNI87hpR94Z"),
|
WebRTC.RTCIceServer(urlStrings: ["turns:turn.simplex.im:443?transport=tcp"], username: "private2", credential: "Hxuq2QxUjnhj96Zq2r4HjqHRj"),
|
||||||
]
|
]
|
||||||
|
|
||||||
func initializeCall(_ iceServers: [WebRTC.RTCIceServer]?, _ mediaType: CallMediaType, _ aesKey: String?, _ relay: Bool?) -> Call {
|
func initializeCall(_ iceServers: [WebRTC.RTCIceServer]?, _ mediaType: CallMediaType, _ aesKey: String?, _ relay: Bool?) -> Call {
|
||||||
|
|
|
@ -187,10 +187,11 @@ data class ConnectionState(
|
||||||
)
|
)
|
||||||
|
|
||||||
// the servers are expected in this format:
|
// the servers are expected in this format:
|
||||||
// stun:stun.simplex.im:443?transport=tcp
|
// stuns:stun.simplex.im:443?transport=tcp
|
||||||
// turn:private:yleob6AVkiNI87hpR94Z@turn.simplex.im:443?transport=tcp
|
// turns:private2:Hxuq2QxUjnhj96Zq2r4HjqHRj@turn.simplex.im:443?transport=tcp
|
||||||
fun parseRTCIceServer(str: String): RTCIceServer? {
|
fun parseRTCIceServer(str: String): RTCIceServer? {
|
||||||
var s = replaceScheme(str, "stun:")
|
var s = replaceScheme(str, "stun:")
|
||||||
|
s = replaceScheme(s, "stuns:")
|
||||||
s = replaceScheme(s, "turn:")
|
s = replaceScheme(s, "turn:")
|
||||||
s = replaceScheme(s, "turns:")
|
s = replaceScheme(s, "turns:")
|
||||||
val u = runCatching { URI(s) }.getOrNull()
|
val u = runCatching { URI(s) }.getOrNull()
|
||||||
|
@ -198,7 +199,7 @@ fun parseRTCIceServer(str: String): RTCIceServer? {
|
||||||
val scheme = u.scheme
|
val scheme = u.scheme
|
||||||
val host = u.host
|
val host = u.host
|
||||||
val port = u.port
|
val port = u.port
|
||||||
if (u.path == "" && (scheme == "stun" || scheme == "turn" || scheme == "turns")) {
|
if (u.path == "" && (scheme == "stun" || scheme == "stuns" || scheme == "turn" || scheme == "turns")) {
|
||||||
val userInfo = u.userInfo?.split(":")
|
val userInfo = u.userInfo?.split(":")
|
||||||
val query = if (u.query == null || u.query == "") "" else "?${u.query}"
|
val query = if (u.query == null || u.query == "") "" else "?${u.query}"
|
||||||
return RTCIceServer(
|
return RTCIceServer(
|
||||||
|
|
|
@ -36,9 +36,10 @@ var localizedState = "";
|
||||||
var localizedDescription = "";
|
var localizedDescription = "";
|
||||||
const processCommand = (function () {
|
const processCommand = (function () {
|
||||||
const defaultIceServers = [
|
const defaultIceServers = [
|
||||||
|
{ urls: ["stuns:stun.simplex.im:443"] },
|
||||||
{ urls: ["stun:stun.simplex.im:443"] },
|
{ urls: ["stun:stun.simplex.im:443"] },
|
||||||
{ urls: ["turn:turn.simplex.im:443?transport=udp"], username: "private", credential: "yleob6AVkiNI87hpR94Z" },
|
//{ urls: ["turns:turn.simplex.im:443?transport=udp"], username: "private2", credential: "Hxuq2QxUjnhj96Zq2r4HjqHRj" },
|
||||||
{ urls: ["turn:turn.simplex.im:443?transport=tcp"], username: "private", credential: "yleob6AVkiNI87hpR94Z" },
|
{ urls: ["turns:turn.simplex.im:443?transport=tcp"], username: "private2", credential: "Hxuq2QxUjnhj96Zq2r4HjqHRj" },
|
||||||
];
|
];
|
||||||
function getCallConfig(encodedInsertableStreams, iceServers, relay) {
|
function getCallConfig(encodedInsertableStreams, iceServers, relay) {
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -245,9 +245,10 @@ const processCommand = (function () {
|
||||||
}
|
}
|
||||||
|
|
||||||
const defaultIceServers: RTCIceServer[] = [
|
const defaultIceServers: RTCIceServer[] = [
|
||||||
|
{urls: ["stuns:stun.simplex.im:443"]},
|
||||||
{urls: ["stun:stun.simplex.im:443"]},
|
{urls: ["stun:stun.simplex.im:443"]},
|
||||||
{urls: ["turn:turn.simplex.im:443?transport=udp"], username: "private", credential: "yleob6AVkiNI87hpR94Z"},
|
//{urls: ["turns:turn.simplex.im:443?transport=udp"], username: "private2", credential: "Hxuq2QxUjnhj96Zq2r4HjqHRj"},
|
||||||
{urls: ["turn:turn.simplex.im:443?transport=tcp"], username: "private", credential: "yleob6AVkiNI87hpR94Z"},
|
{urls: ["turns:turn.simplex.im:443?transport=tcp"], username: "private2", credential: "Hxuq2QxUjnhj96Zq2r4HjqHRj"},
|
||||||
]
|
]
|
||||||
|
|
||||||
function getCallConfig(encodedInsertableStreams: boolean, iceServers?: RTCIceServer[], relay?: boolean): CallConfig {
|
function getCallConfig(encodedInsertableStreams: boolean, iceServers?: RTCIceServer[], relay?: boolean): CallConfig {
|
||||||
|
|
|
@ -24,8 +24,9 @@ var TransformOperation;
|
||||||
let activeCall;
|
let activeCall;
|
||||||
const processCommand = (function () {
|
const processCommand = (function () {
|
||||||
const defaultIceServers = [
|
const defaultIceServers = [
|
||||||
|
{ urls: ["stuns:stun.simplex.im:443"] },
|
||||||
{ urls: ["stun:stun.simplex.im:443"] },
|
{ urls: ["stun:stun.simplex.im:443"] },
|
||||||
{ urls: ["turn:turn.simplex.im:443"], username: "private", credential: "yleob6AVkiNI87hpR94Z" },
|
{ urls: ["turns:turn.simplex.im:443"], username: "private2", credential: "Hxuq2QxUjnhj96Zq2r4HjqHRj" },
|
||||||
];
|
];
|
||||||
function getCallConfig(encodedInsertableStreams, iceServers, relay) {
|
function getCallConfig(encodedInsertableStreams, iceServers, relay) {
|
||||||
return {
|
return {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue