Improve MCU support

This commit is contained in:
Mario Danic 2018-11-09 23:25:50 +01:00
parent 1e055568bc
commit 29c38aa107

View File

@ -1189,8 +1189,6 @@ public class CallController extends BaseController {
}); });
} else {
alwaysGetPeerConnectionWrapperForSessionId(webSocketClient.getSessionId(), true);
} }
} }
@ -1484,8 +1482,10 @@ public class CallController extends BaseController {
} }
for (MagicPeerConnectionWrapper magicPeerConnectionWrapper : magicPeerConnectionWrapperList) { for (MagicPeerConnectionWrapper magicPeerConnectionWrapper : magicPeerConnectionWrapperList) {
if (!magicPeerConnectionWrapper.isMCUPublisher()) {
oldSesssions.add(magicPeerConnectionWrapper.getSessionId()); oldSesssions.add(magicPeerConnectionWrapper.getSessionId());
} }
}
// Calculate sessions that left the call // Calculate sessions that left the call
oldSesssions.removeAll(newSessions); oldSesssions.removeAll(newSessions);
@ -1501,15 +1501,10 @@ public class CallController extends BaseController {
getPeersForCall(); getPeersForCall();
} }
for (String sessionId : newSessions) { hasMCU = hasExternalSignalingServer && webSocketClient != null && webSocketClient.hasMCU();
if (hasExternalSignalingServer && webSocketClient.hasMCU()) {
if (!sessionId.equals(webSocketClient.getSessionId())) {
alwaysGetPeerConnectionWrapperForSessionId(sessionId, false);
} for (String sessionId : newSessions) {
} else { alwaysGetPeerConnectionWrapperForSessionId(sessionId, hasMCU && sessionId.equals(webSocketClient.getSessionId()));
alwaysGetPeerConnectionWrapperForSessionId(sessionId, false);
}
} }
for (String sessionId : oldSesssions) { for (String sessionId : oldSesssions) {
@ -1559,8 +1554,6 @@ public class CallController extends BaseController {
if ((magicPeerConnectionWrapper = getPeerConnectionWrapperForSessionId(sessionId)) != null) { if ((magicPeerConnectionWrapper = getPeerConnectionWrapperForSessionId(sessionId)) != null) {
return magicPeerConnectionWrapper; return magicPeerConnectionWrapper;
} else { } else {
hasMCU = externalSignalingServer != null && webSocketClient != null && webSocketClient.hasMCU();
if (hasMCU && publisher) { if (hasMCU && publisher) {
magicPeerConnectionWrapper = new MagicPeerConnectionWrapper(peerConnectionFactory, magicPeerConnectionWrapper = new MagicPeerConnectionWrapper(peerConnectionFactory,
iceServers, sdpConstraintsForMCU, sessionId, callSession, localMediaStream, true, true); iceServers, sdpConstraintsForMCU, sessionId, callSession, localMediaStream, true, true);