|
@@ -929,7 +929,6 @@ public class CallController extends BaseController {
|
|
externalSignalingServer = new ExternalSignalingServer();
|
|
externalSignalingServer = new ExternalSignalingServer();
|
|
externalSignalingServer.setExternalSignalingServer(signalingSettingsOverall.getOcs().getSettings().getExternalSignalingServer());
|
|
externalSignalingServer.setExternalSignalingServer(signalingSettingsOverall.getOcs().getSettings().getExternalSignalingServer());
|
|
externalSignalingServer.setExternalSignalingTicket(signalingSettingsOverall.getOcs().getSettings().getExternalSignalingTicket());
|
|
externalSignalingServer.setExternalSignalingTicket(signalingSettingsOverall.getOcs().getSettings().getExternalSignalingTicket());
|
|
- setupAndInitiateWebSocketsConnection();
|
|
|
|
}
|
|
}
|
|
|
|
|
|
if (signalingSettingsOverall.getOcs().getSettings().getStunServers() != null) {
|
|
if (signalingSettingsOverall.getOcs().getSettings().getStunServers() != null) {
|
|
@@ -1008,7 +1007,11 @@ public class CallController extends BaseController {
|
|
.getCapabilities().getSpreedCapability()
|
|
.getCapabilities().getSpreedCapability()
|
|
.getFeatures().contains("no-ping"));
|
|
.getFeatures().contains("no-ping"));
|
|
|
|
|
|
- joinRoomAndCall();
|
|
|
|
|
|
+ if (externalSignalingServer == null) {
|
|
|
|
+ joinRoomAndCall();
|
|
|
|
+ } else {
|
|
|
|
+ setupAndInitiateWebSocketsConnection();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -1216,6 +1219,9 @@ public class CallController extends BaseController {
|
|
case "signalingMessage":
|
|
case "signalingMessage":
|
|
processMessage((NCSignalingMessage) webSocketClient.getJobWithId(Integer.valueOf(webSocketCommunicationEvent.getHashMap().get("jobId"))));
|
|
processMessage((NCSignalingMessage) webSocketClient.getJobWithId(Integer.valueOf(webSocketCommunicationEvent.getHashMap().get("jobId"))));
|
|
break;
|
|
break;
|
|
|
|
+ case "peerConnectionReady":
|
|
|
|
+ webSocketClient.requestOfferForSessionIdWithType(webSocketCommunicationEvent.getHashMap().get("sessionId"), "video");
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1277,13 +1283,21 @@ public class CallController extends BaseController {
|
|
case "offer":
|
|
case "offer":
|
|
case "answer":
|
|
case "answer":
|
|
magicPeerConnectionWrapper.setNick(ncSignalingMessage.getPayload().getNick());
|
|
magicPeerConnectionWrapper.setNick(ncSignalingMessage.getPayload().getNick());
|
|
- String sessionDescriptionStringWithPreferredCodec = MagicWebRTCUtils.preferCodec
|
|
|
|
- (ncSignalingMessage.getPayload().getSdp(),
|
|
|
|
- "VP8", false);
|
|
|
|
|
|
+ SessionDescription sessionDescriptionWithPreferredCodec;
|
|
|
|
+
|
|
|
|
+ if (magicPeerConnectionWrapper.hasMediaStream() ) {
|
|
|
|
+ String sessionDescriptionStringWithPreferredCodec = MagicWebRTCUtils.preferCodec
|
|
|
|
+ (ncSignalingMessage.getPayload().getSdp(),
|
|
|
|
+ "VP8", false);
|
|
|
|
|
|
- SessionDescription sessionDescriptionWithPreferredCodec = new SessionDescription(
|
|
|
|
- SessionDescription.Type.fromCanonicalForm(type),
|
|
|
|
- sessionDescriptionStringWithPreferredCodec);
|
|
|
|
|
|
+ sessionDescriptionWithPreferredCodec = new SessionDescription(
|
|
|
|
+ SessionDescription.Type.fromCanonicalForm(type),
|
|
|
|
+ sessionDescriptionStringWithPreferredCodec);
|
|
|
|
+ } else {
|
|
|
|
+ sessionDescriptionWithPreferredCodec = new SessionDescription(
|
|
|
|
+ SessionDescription.Type.fromCanonicalForm(type),
|
|
|
|
+ ncSignalingMessage.getPayload().getSdp());
|
|
|
|
+ }
|
|
|
|
|
|
if (magicPeerConnectionWrapper.getPeerConnection() != null) {
|
|
if (magicPeerConnectionWrapper.getPeerConnection() != null) {
|
|
magicPeerConnectionWrapper.getPeerConnection().setRemoteDescription(magicPeerConnectionWrapper
|
|
magicPeerConnectionWrapper.getPeerConnection().setRemoteDescription(magicPeerConnectionWrapper
|
|
@@ -1476,11 +1490,7 @@ public class CallController extends BaseController {
|
|
}
|
|
}
|
|
|
|
|
|
for (String sessionId : newSessions) {
|
|
for (String sessionId : newSessions) {
|
|
- if (!hasMCU) {
|
|
|
|
- alwaysGetPeerConnectionWrapperForSessionId(sessionId, false);
|
|
|
|
- } else {
|
|
|
|
- webSocketClient.requestOfferForSessionIdWithType(sessionId, "video");
|
|
|
|
- }
|
|
|
|
|
|
+ alwaysGetPeerConnectionWrapperForSessionId(sessionId, false);
|
|
}
|
|
}
|
|
|
|
|
|
for (String sessionId : oldSesssions) {
|
|
for (String sessionId : oldSesssions) {
|
|
@@ -1532,15 +1542,19 @@ public class CallController extends BaseController {
|
|
} else {
|
|
} else {
|
|
hasMCU = webSocketClient != null && webSocketClient.hasMCU();
|
|
hasMCU = webSocketClient != null && webSocketClient.hasMCU();
|
|
|
|
|
|
|
|
+ if (sessionId == null) {
|
|
|
|
+ Log.d("MARIO", "ISNULL");
|
|
|
|
+ }
|
|
|
|
+
|
|
if (hasMCU && publisher) {
|
|
if (hasMCU && publisher) {
|
|
magicPeerConnectionWrapper = new MagicPeerConnectionWrapper(peerConnectionFactory,
|
|
magicPeerConnectionWrapper = new MagicPeerConnectionWrapper(peerConnectionFactory,
|
|
- iceServers, sdpConstraintsForMCU, sessionId, callSession, localMediaStream, true);
|
|
|
|
|
|
+ iceServers, sdpConstraintsForMCU, sessionId, callSession, localMediaStream, true, true);
|
|
} else if (hasMCU) {
|
|
} else if (hasMCU) {
|
|
magicPeerConnectionWrapper = new MagicPeerConnectionWrapper(peerConnectionFactory,
|
|
magicPeerConnectionWrapper = new MagicPeerConnectionWrapper(peerConnectionFactory,
|
|
- iceServers, sdpConstraints, sessionId, callSession, null, false);
|
|
|
|
|
|
+ iceServers, sdpConstraints, sessionId, callSession, null, false, true);
|
|
} else {
|
|
} else {
|
|
magicPeerConnectionWrapper = new MagicPeerConnectionWrapper(peerConnectionFactory,
|
|
magicPeerConnectionWrapper = new MagicPeerConnectionWrapper(peerConnectionFactory,
|
|
- iceServers, sdpConstraints, sessionId, callSession, localMediaStream, false);
|
|
|
|
|
|
+ iceServers, sdpConstraints, sessionId, callSession, localMediaStream, false, false);
|
|
}
|
|
}
|
|
|
|
|
|
magicPeerConnectionWrapperList.add(magicPeerConnectionWrapper);
|
|
magicPeerConnectionWrapperList.add(magicPeerConnectionWrapper);
|