diff --git a/html5/verto/verto_communicator/src/vertoControllers/controllers/ChatController.js b/html5/verto/verto_communicator/src/vertoControllers/controllers/ChatController.js index 0bb3f6f6a0..2985ff4946 100644 --- a/html5/verto/verto_communicator/src/vertoControllers/controllers/ChatController.js +++ b/html5/verto/verto_communicator/src/vertoControllers/controllers/ChatController.js @@ -122,7 +122,7 @@ }); $rootScope.$on('members.clear', function(event) { - $scope.$apply(function() { + $scope.$applyAsync(function() { clearConferenceChat(); $scope.closeChat(); }); diff --git a/html5/verto/verto_communicator/src/vertoControllers/controllers/MainController.js b/html5/verto/verto_communicator/src/vertoControllers/controllers/MainController.js index 61f56954e4..ded1689e24 100644 --- a/html5/verto/verto_communicator/src/vertoControllers/controllers/MainController.js +++ b/html5/verto/verto_communicator/src/vertoControllers/controllers/MainController.js @@ -302,7 +302,7 @@ console.log('Google+ Login Failure'); }); - $rootScope.callActive = function(data) { + $rootScope.callActive = function(data, params) { verto.data.mutedMic = storage.data.mutedMic; verto.data.mutedVideo = storage.data.mutedVideo; @@ -320,10 +320,16 @@ storage.data.calling = false; storage.data.cur_call = 1; + + $location.path('/incall'); + + if(params.useVideo) { + $rootScope.$emit('call.video', 'video'); + } }; - $rootScope.$on('call.active', function(event, data) { - $rootScope.callActive(data); + $rootScope.$on('call.active', function(event, data, params) { + $rootScope.callActive(data, params); }); $rootScope.$on('call.calling', function(event, data) { @@ -369,6 +375,7 @@ if (!verto.data.call) { toastr.warning('There is no call to hangup.'); $location.path('/dialpad'); + return; } //var hangupCallback = function(v, hangup) { @@ -383,7 +390,10 @@ if (verto.data.shareCall) { verto.screenshareHangup(); } + verto.hangup(); + + $location.path('/dialpad'); }; $scope.answerCall = function() { @@ -392,6 +402,7 @@ verto.data.call.answer({ useStereo: storage.data.useStereo, useCamera: storage.data.selectedVideo, + useVideo: storage.data.useVideo, useMic: storage.data.useMic, callee_id_name: verto.data.name, callee_id_number: verto.data.login diff --git a/html5/verto/verto_communicator/src/vertoDirectives/directives/videoTag.js b/html5/verto/verto_communicator/src/vertoDirectives/directives/videoTag.js index 2e85168569..38b50552f7 100644 --- a/html5/verto/verto_communicator/src/vertoDirectives/directives/videoTag.js +++ b/html5/verto/verto_communicator/src/vertoDirectives/directives/videoTag.js @@ -18,7 +18,7 @@ console.log('Moving the video to element.'); jQuery('video').removeClass('hide').appendTo(element); jQuery('video').css('display', 'block'); - scope.callActive(); + scope.callActive("", {useVideo: true}); element.on('$destroy', function() { // Move the video back to the body. diff --git a/html5/verto/verto_communicator/src/vertoService/services/vertoService.js b/html5/verto/verto_communicator/src/vertoService/services/vertoService.js index 899fb10f97..74e0bf9887 100644 --- a/html5/verto/verto_communicator/src/vertoService/services/vertoService.js +++ b/html5/verto/verto_communicator/src/vertoService/services/vertoService.js @@ -143,8 +143,8 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora $rootScope.$emit('page.incall', 'call'); } - function callActive(last_state) { - $rootScope.$emit('call.active', last_state); + function callActive(last_state, params) { + $rootScope.$emit('call.active', last_state, params); } function calling() { @@ -488,6 +488,7 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora }); break; default: + console.warn('Got a not implemented message:', msg, dialog, params); break; } }, @@ -495,9 +496,7 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora onDialogState: function(d) { if (!data.call) { data.call = d; - if (d.state.name !== 'ringing') { - inCall(); - } + } console.debug('onDialogState:', d); @@ -517,7 +516,7 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora case "active": console.debug('Talking to:', d.cidString()); data.callState = 'active'; - callActive(d.lastState.name); + callActive(d.lastState.name, d.params); break; case "hangup": console.debug('Call ended with cause: ' + d.cause); @@ -532,6 +531,9 @@ vertoService.service('verto', ['$rootScope', '$cookieStore', '$location', 'stora cleanCall(); } break; + default: + console.warn('Got a not implemented state:', d); + break; } },