Proceed with a stun server fallback

This commit is contained in:
Iñaqui
2023-04-17 15:28:49 -05:00
committed by Cody Henthorne
parent 240f27fbad
commit d628921e48

View File

@@ -857,11 +857,12 @@ private void processStateless(@NonNull Function1<WebRtcEphemeralState, WebRtcEph
}
public void retrieveTurnServers(@NonNull RemotePeer remotePeer) {
List<PeerConnection.IceServer> iceServers = new LinkedList<>();
networkExecutor.execute(() -> {
try {
TurnServerInfo turnServerInfo = ApplicationDependencies.getSignalServiceAccountManager().getTurnServerInfo();
List<PeerConnection.IceServer> iceServers = new LinkedList<>();
for (String url : turnServerInfo.getUrls()) {
if (url.startsWith("turn")) {
iceServers.add(PeerConnection.IceServer.builder(url)
@@ -872,6 +873,10 @@ private void processStateless(@NonNull Function1<WebRtcEphemeralState, WebRtcEph
iceServers.add(PeerConnection.IceServer.builder(url).createIceServer());
}
}
} catch (IOException e) {
Log.w(TAG, "Using fallback. Unable to retrieve turn servers: " + e);
} finally {
// Append fallback stun server
iceServers.add(PeerConnection.IceServer.builder("stun:stun1.l.google.com:19302").createIceServer());
process((s, p) -> {
@@ -883,9 +888,6 @@ private void processStateless(@NonNull Function1<WebRtcEphemeralState, WebRtcEph
Log.w(TAG, "Ignoring received turn servers for incorrect call id. requesting_call_id: " + remotePeer.getCallId() + " current_call_id: " + (activePeer != null ? activePeer.getCallId() : "null"));
return s;
});
} catch (IOException e) {
Log.w(TAG, "Unable to retrieve turn servers: ", e);
process((s, p) -> p.handleSetupFailure(s, remotePeer.getCallId()));
}
});
}