From f6258221c1e8143f566f59a7d9983ccacf51a2af Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 19 Sep 2014 17:21:17 +0100 Subject: [PATCH] Join rooms if we're not already in them when accepting a call coming from that room. SYWEB-55 #resolve --- webclient/components/matrix/matrix-call.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/webclient/components/matrix/matrix-call.js b/webclient/components/matrix/matrix-call.js index fc02e1f62f..494a37f340 100644 --- a/webclient/components/matrix/matrix-call.js +++ b/webclient/components/matrix/matrix-call.js @@ -156,7 +156,22 @@ angular.module('MatrixCall', []) MatrixCall.prototype.answer = function() { console.log("Answering call "+this.call_id); + var self = this; + + var roomMembers = $rootScope.events.rooms[this.room_id].members; + if (roomMembers[matrixService.config().user_id].membership != 'join') { + console.log("We need to join the room before we can accept this call"); + matrixService.join(this.room_id).then(function() { + self.answer(); + }, function() { + console.log("Failed to join room: can't answer call!"); + self.onError("Unable to join room to answer call!"); + self.hangup(); + }); + return; + } + if (!this.localAVStream && !this.waitForLocalAVStream) { navigator.getUserMedia(this.getUserMediaVideoContraints(this.type), function(s) { self.gotUserMediaForAnswer(s); }, function(e) { self.getUserMediaFailed(e); }); this.state = 'wait_local_media';