From 3b838bacebc26e067736cab1ae7add4f26b6c2c6 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Fri, 22 Jun 2018 15:17:55 +0200 Subject: [PATCH] openvidu-server flush Redis DB on launch. openviud-browser tcp ICEServer --- openvidu-browser/src/OpenVidu/Session.ts | 9 ++-- .../WebRtcStats/WebRtcStats.ts | 42 ++++++++++++------- .../coturn/BashCoturnCredentialsService.java | 10 +++++ 3 files changed, 42 insertions(+), 19 deletions(-) diff --git a/openvidu-browser/src/OpenVidu/Session.ts b/openvidu-browser/src/OpenVidu/Session.ts index 04891b8f..d24f2eaf 100644 --- a/openvidu-browser/src/OpenVidu/Session.ts +++ b/openvidu-browser/src/OpenVidu/Session.ts @@ -945,11 +945,10 @@ export class Session implements EventDispatcher { this.openvidu.recorder = true; } if (!!turnUsername && !!turnCredential) { - const turnUrl = 'turn:' + url.hostname + ':3478'; - this.openvidu.turnCredentials = { urls: [turnUrl], username: turnUsername, credential: turnCredential }; - console.warn(turnUrl); - console.warn(turnUsername); - console.warn(turnCredential); + const turnUrl1 = 'turn:' + url.hostname + ':3478'; + const turnUrl2 = turnUrl1 + '?transport=tcp'; + this.openvidu.turnCredentials = { urls: [turnUrl1, turnUrl2], username: turnUsername, credential: turnCredential }; + console.log('TURN temp credentials [' + turnUsername + ':' + turnCredential + ']') } if (!!role) { this.openvidu.role = role; diff --git a/openvidu-browser/src/OpenViduInternal/WebRtcStats/WebRtcStats.ts b/openvidu-browser/src/OpenViduInternal/WebRtcStats/WebRtcStats.ts index 49288b4d..322c08e0 100644 --- a/openvidu-browser/src/OpenViduInternal/WebRtcStats/WebRtcStats.ts +++ b/openvidu-browser/src/OpenViduInternal/WebRtcStats/WebRtcStats.ts @@ -113,20 +113,34 @@ export class WebRtcStats { remoteCandidateId = stat.remoteCandidateId; } } - const finalLocalCandidate = localCandidates[localCandidateId]; - finalLocalCandidate.raw = this.stream.getLocalIceCandidateList().filter((c: RTCIceCandidate) => { - return (!!c.candidate && - c.candidate.indexOf(finalLocalCandidate.ipAddress) > 0 && - c.candidate.indexOf(finalLocalCandidate.portNumber) > 0) && - c.candidate.indexOf(finalLocalCandidate.priority) > 0; - })[0].candidate; - const finalRemoteCandidate = remoteCandidates[remoteCandidateId]; - finalRemoteCandidate.raw = this.stream.getRemoteIceCandidateList().filter((c: RTCIceCandidate) => { - return (!!c.candidate && - c.candidate.indexOf(finalRemoteCandidate.ipAddress) > 0 && - c.candidate.indexOf(finalRemoteCandidate.portNumber) > 0) && - c.candidate.indexOf(finalRemoteCandidate.priority) > 0; - })[0].candidate; + let finalLocalCandidate = localCandidates[localCandidateId]; + if (!!finalLocalCandidate) { + const candList = this.stream.getLocalIceCandidateList(); + const cand = candList.filter((c: RTCIceCandidate) => { + return (!!c.candidate && + c.candidate.indexOf(finalLocalCandidate.ipAddress) >= 0 && + c.candidate.indexOf(finalLocalCandidate.portNumber) >= 0 && + c.candidate.indexOf(finalLocalCandidate.priority) >= 0); + }); + finalLocalCandidate.raw = !!cand[0] ? cand[0].candidate : 'ERROR: Cannot find local candidate in list of sent ICE candidates'; + } else { + finalLocalCandidate = 'ERROR: No active local ICE candidate. Probably ICE-TCP is being used' + } + + let finalRemoteCandidate = remoteCandidates[remoteCandidateId]; + if (!!finalRemoteCandidate) { + const candList = this.stream.getRemoteIceCandidateList(); + const cand = candList.filter((c: RTCIceCandidate) => { + return (!!c.candidate && + c.candidate.indexOf(finalRemoteCandidate.ipAddress) >= 0 && + c.candidate.indexOf(finalRemoteCandidate.portNumber) >= 0 && + c.candidate.indexOf(finalRemoteCandidate.priority) >= 0); + }); + finalRemoteCandidate.raw = !!cand[0] ? cand[0].candidate : 'ERROR: Cannot find remote candidate in list of received ICE candidates'; + } else { + finalRemoteCandidate = 'ERROR: No active remote ICE candidate. Probably ICE-TCP is being used' + } + resolve({ googCandidatePair, localCandidate: finalLocalCandidate, diff --git a/openvidu-server/src/main/java/io/openvidu/server/coturn/BashCoturnCredentialsService.java b/openvidu-server/src/main/java/io/openvidu/server/coturn/BashCoturnCredentialsService.java index e9f8ddc0..49e7b10e 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/coturn/BashCoturnCredentialsService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/coturn/BashCoturnCredentialsService.java @@ -25,6 +25,16 @@ public class BashCoturnCredentialsService extends CoturnCredentialsService { this.coturnAvailable = false; } else { log.info("COTURN Redis DB accessible with string " + this.coturnDatabaseString); + log.info("Cleaning COTURN DB..."); + response = CommandExecutor.execCommand("/bin/sh", "-c", + "redis-cli -n " + this.openviduConfig.getCoturnDatabaseDbname() + " flushdb"); + String response2 = CommandExecutor.execCommand("/bin/sh", "-c", + "redis-cli -n " + this.openviduConfig.getCoturnDatabaseDbname() + " --scan --pattern '*'"); + if ("OK".equals(response) && response2.isEmpty()) { + log.info("COTURN DB is now empty"); + } else { + log.error("COTURN DB is not empty"); + } } } catch (IOException | InterruptedException e) { e.printStackTrace();