diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/WebRtcCallManager.as b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/WebRtcCallManager.as index 81a58b8d3cf475e5d793e85447470a00af57c918..7b6e64318c9b4bc2673ef10b6352122b584d39e1 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/WebRtcCallManager.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/managers/WebRtcCallManager.as @@ -18,6 +18,7 @@ package org.bigbluebutton.modules.phone.managers { private var browserType:String = "unknown"; private var dispatcher:Dispatcher = new Dispatcher(); + private var echoTestDone:Boolean = false; public function WebRtcCallManager() { browserType = JSAPI.getInstance().getBrowserType(); @@ -62,8 +63,8 @@ package org.bigbluebutton.modules.phone.managers public function handleWebRtcEchoTestHasAudioEvent():void { endEchoTest(); - ExternalInterface.call("joinWebRtcVoiceConference"); - dispatcher.dispatchEvent(new WebRtcAskMicPermissionToJoinConferenceEvent(browserType)); + echoTestDone = true; + joinVoiceConference(); } public function handleWebRtcConfCallStartedEvent():void { @@ -76,8 +77,17 @@ package org.bigbluebutton.modules.phone.managers dispatcher.dispatchEvent(new CallDisconnectedEvent()); } + private function joinVoiceConference():void { + ExternalInterface.call("joinWebRtcVoiceConference"); + dispatcher.dispatchEvent(new WebRtcAskMicPermissionToJoinConferenceEvent(browserType)); + } + public function handleJoinVoiceConferenceCommand():void { - startWebRtcEchoTest(); + if (echoTestDone) { + joinVoiceConference(); + } else { + startWebRtcEchoTest(); + } } public function handleLeaveVoiceConferenceCommand():void {