Skip to content

Commit 5cc3c00

Browse files
authored
Enabled TCP candidates to improve connectivity (#132)
1 parent 88a4510 commit 5cc3c00

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

Sources/LiveKit/Core/Engine.swift

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -671,7 +671,14 @@ extension Engine: TransportDelegate {
671671
self.log("subscriberPrimary: \(joinResponse.subscriberPrimary)")
672672

673673
// update iceServers from joinResponse
674-
self._state.mutate { $0.connectOptions.rtcConfiguration.set(iceServers: joinResponse.iceServers) }
674+
self._state.mutate {
675+
$0.connectOptions.rtcConfiguration.set(iceServers: joinResponse.iceServers)
676+
if joinResponse.clientConfiguration.forceRelay == .enabled {
677+
$0.connectOptions.rtcConfiguration.iceTransportPolicy = .relay
678+
} else {
679+
$0.connectOptions.rtcConfiguration.iceTransportPolicy = .all
680+
}
681+
}
675682

676683
self.subscriber = try Transport(config: self._state.connectOptions.rtcConfiguration,
677684
target: .subscriber,

Sources/LiveKit/Extensions/RTCConfiguration.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@ extension RTCConfiguration {
2727
result.sdpSemantics = .unifiedPlan
2828
result.continualGatheringPolicy = .gatherContinually
2929
result.candidateNetworkPolicy = .all
30-
// don't send TCP candidates, they are passive and only server should be sending
31-
result.tcpCandidatePolicy = .disabled
30+
result.tcpCandidatePolicy = .enabled
3231
result.iceTransportPolicy = .all
3332

3433
result.iceServers = [ DispatchQueue.webRTC.sync { RTCIceServer(urlStrings: defaultIceServers) } ]

0 commit comments

Comments
 (0)