diff --git a/app/src/main/java/com/nextcloud/talk/controllers/CallController.java b/app/src/main/java/com/nextcloud/talk/controllers/CallController.java index d42fedbac..c32ec9220 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/CallController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/CallController.java @@ -1458,7 +1458,11 @@ public class CallController extends BaseController { } for (String sessionId : newSessions) { - alwaysGetPeerConnectionWrapperForSessionId(sessionId); + if (!hasMCU) { + alwaysGetPeerConnectionWrapperForSessionId(sessionId); + } else { + webSocketClient.requestOfferForSessionIdWithType(sessionId, "video"); + } } for (String sessionId : oldSesssions) { diff --git a/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java b/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java index f4dae4ae0..3b242cdf8 100644 --- a/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java +++ b/app/src/main/java/com/nextcloud/talk/webrtc/MagicWebSocketInstance.java @@ -224,4 +224,12 @@ public class MagicWebSocketInstance extends WebSocketListener { concurrentHashMapQueue.remove(id); return copyJob; } + + public void requestOfferForSessionIdWithType(String sessionId, String roomType) { + try { + webSocket.send(LoganSquare.serialize(webSocketConnectionHelper.getAssembledRequestOfferModel(sessionId, roomType))); + } catch (IOException e) { + Log.e(TAG, "Failed to offer request"); + } + } }