Don't play an engaged tone if we hang up locally.

This commit is contained in:
David Baker 2014-09-09 17:37:50 +01:00
parent a75f8686ba
commit 253c327252
3 changed files with 18 additions and 5 deletions

View File

@ -118,7 +118,7 @@ angular.module('MatrixWebClientController', ['matrixService', 'mPresence', 'even
angular.element('#ringAudio')[0].pause(); angular.element('#ringAudio')[0].pause();
angular.element('#ringbackAudio')[0].pause(); angular.element('#ringbackAudio')[0].pause();
angular.element('#callendAudio')[0].play(); angular.element('#callendAudio')[0].play();
} else if (newVal == 'ended' && oldVal == 'invite_sent') { } else if (newVal == 'ended' && oldVal == 'invite_sent' && $rootScope.currentCall.hangupParty == 'remote') {
angular.element('#ringAudio')[0].pause(); angular.element('#ringAudio')[0].pause();
angular.element('#ringbackAudio')[0].pause(); angular.element('#ringbackAudio')[0].pause();
angular.element('#busyAudio')[0].play(); angular.element('#busyAudio')[0].play();

View File

@ -58,12 +58,13 @@ angular.module('MatrixCall', [])
this.didConnect = false; this.didConnect = false;
} }
MatrixCall.prototype.placeCall = function() { MatrixCall.prototype.placeCall = function(config) {
self = this; self = this;
matrixPhoneService.callPlaced(this); matrixPhoneService.callPlaced(this);
navigator.getUserMedia({audio: true, video: false}, function(s) { self.gotUserMediaForInvite(s); }, function(e) { self.getUserMediaFailed(e); }); navigator.getUserMedia({audio: config.audio, video: config.video}, function(s) { self.gotUserMediaForInvite(s); }, function(e) { self.getUserMediaFailed(e); });
self.state = 'wait_local_media'; this.state = 'wait_local_media';
this.direction = 'outbound'; this.direction = 'outbound';
this.config = config;
}; };
MatrixCall.prototype.initWithInvite = function(msg) { MatrixCall.prototype.initWithInvite = function(msg) {
@ -105,6 +106,8 @@ angular.module('MatrixCall', [])
this.stopAllMedia(); this.stopAllMedia();
this.peerConn.close(); this.peerConn.close();
this.hangupParty = 'local';
var content = { var content = {
version: 0, version: 0,
call_id: this.call_id, call_id: this.call_id,
@ -285,6 +288,7 @@ angular.module('MatrixCall', [])
self = this; self = this;
$rootScope.$apply(function() { $rootScope.$apply(function() {
self.state = 'ended'; self.state = 'ended';
this.hangupParty = 'remote';
self.stopAllMedia(); self.stopAllMedia();
this.peerConn.close(); this.peerConn.close();
self.onHangup(); self.onHangup();
@ -300,6 +304,7 @@ angular.module('MatrixCall', [])
MatrixCall.prototype.onHangupReceived = function() { MatrixCall.prototype.onHangupReceived = function() {
this.state = 'ended'; this.state = 'ended';
this.hangupParty = 'remote';
this.stopAllMedia(); this.stopAllMedia();
this.peerConn.close(); this.peerConn.close();
this.onHangup(); this.onHangup();

View File

@ -756,7 +756,15 @@ angular.module('RoomController', ['ngSanitize', 'matrixFilter', 'mFileInput'])
var call = new MatrixCall($scope.room_id); var call = new MatrixCall($scope.room_id);
call.onError = $rootScope.onCallError; call.onError = $rootScope.onCallError;
call.onHangup = $rootScope.onCallHangup; call.onHangup = $rootScope.onCallHangup;
call.placeCall(); call.placeCall({audio: true, video: false});
$rootScope.currentCall = call;
};
$scope.startVideoCall = function() {
var call = new MatrixCall($scope.room_id);
call.onError = $rootScope.onCallError;
call.onHangup = $rootScope.onCallHangup;
call.placeCall({audio: true, video: true});
$rootScope.currentCall = call; $rootScope.currentCall = call;
}; };