diff --git a/src/CallHandler.js b/src/CallHandler.js index 1ac93a8063..2f931d8e3f 100644 --- a/src/CallHandler.js +++ b/src/CallHandler.js @@ -264,6 +264,18 @@ function _onAction(payload) { description: "You cannot place VoIP calls in this browser." }); } + else if (MatrixClientPeg.get().isRoomEncrypted(payload.room_id)) { + // Conference calls are implemented by sending the media to central + // server which combines the audio from all the participants together + // into a single stream. This is incompatible with end-to-end encryption + // because a central server would be decrypting the audio for each + // participant. + // Therefore we disable conference calling in E2E rooms. + const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog"); + Modal.createDialog(ErrorDialog, { + description: "Conference calls are not supported in encrypted rooms", + }); + } else { var QuestionDialog = sdk.getComponent("dialogs.QuestionDialog"); Modal.createDialog(QuestionDialog, {