diff --git a/bigbluebutton-client/branding/default/style/css/BBBDefault.css b/bigbluebutton-client/branding/default/style/css/BBBDefault.css index 2b9bc55fd5..1f08c11c1c 100755 --- a/bigbluebutton-client/branding/default/style/css/BBBDefault.css +++ b/bigbluebutton-client/branding/default/style/css/BBBDefault.css @@ -529,7 +529,7 @@ TitleWindow { .micSettingsWindowHearFromHeadsetLabelStyle, .micSettingsWindowSpeakIntoMicLabelStyle, .micSettingsWindowMicNameLabelStyle, .webcamPermissionSettingsTextStyle { fontFamily: Arial; - fontSize: 12; + fontSize: 14; } .micSettingsWindowPlaySoundButtonStyle, .micSettingsWindowChangeMicButtonStyle { @@ -883,4 +883,12 @@ PollChoicesModal { fontSize: 14; paddingLeft: 16; paddingRight: 16; +} + +.chatOptionsLabel { + fontSize: 12; + color: #000000; + textRollOverColor: #000000; + textSelectedColor: #000000; + fontFamily: Arial; } diff --git a/bigbluebutton-client/locale/en_US/bbbResources.properties b/bigbluebutton-client/locale/en_US/bbbResources.properties index f0592da75c..bc98fe2771 100755 --- a/bigbluebutton-client/locale/en_US/bbbResources.properties +++ b/bigbluebutton-client/locale/en_US/bbbResources.properties @@ -75,6 +75,7 @@ bbb.webrtcWarning.failedError.1006 = Error 1006: Call timed out bbb.webrtcWarning.failedError.1007 = Error 1007: ICE negotiation failed bbb.webrtcWarning.failedError.1008 = Error 1008: Transfer failed bbb.webrtcWarning.failedError.1009 = Error 1009: Could not fetch STUN/TURN server information +bbb.webrtcWarning.failedError.1010 = Error 1010: ICE negotiation timeout bbb.webrtcWarning.failedError.unknown = Error {0}: Unknown error code bbb.webrtcWarning.failedError.mediamissing = Could not get your microphone for a WebRTC call bbb.webrtcWarning.failedError.endedunexpectedly = The WebRTC echo test ended unexpectedly diff --git a/bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js b/bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js index 782e3c5f9f..884026f2e4 100755 --- a/bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js +++ b/bigbluebutton-client/resources/prod/lib/bbb_webrtc_bridge_sip.js @@ -1,5 +1,5 @@ -var userID, callerIdName, conferenceVoiceBridge, userAgent=null, userMicMedia, userWebcamMedia, currentSession=null, callTimeout, callActive, callICEConnected, callFailCounter, callPurposefullyEnded, uaConnected, transferTimeout; +var userID, callerIdName, conferenceVoiceBridge, userAgent=null, userMicMedia, userWebcamMedia, currentSession=null, callTimeout, callActive, callICEConnected, iceConnectedTimeout, callFailCounter, callPurposefullyEnded, uaConnected, transferTimeout; var inEchoTest = true; function webRTCCallback(message) { @@ -419,6 +419,17 @@ function make_call(username, voiceBridge, server, callback, recall, isListenOnly callback({'status':'started'}); } else { callback({'status':'waitingforice'}); + console.log('Waiting for ICE negotiation'); + iceConnectedTimeout = setTimeout(function() { + console.log('60 seconds without ICE finishing'); + callback({'status':'failed', 'errorcode': 1010}); // Failure on call + currentSession = null; + if (userAgent != null) { + var userAgentTemp = userAgent; + userAgent = null; + userAgentTemp.stop(); + } + }, 60000); } clearTimeout(callTimeout); }); @@ -426,6 +437,7 @@ function make_call(username, voiceBridge, server, callback, recall, isListenOnly console.log('received ice negotiation failed'); callback({'status':'failed', 'errorcode': 1007}); // Failure on call currentSession = null; + clearTimeout(iceConnectedTimeout); if (userAgent != null) { var userAgentTemp = userAgent; userAgent = null; @@ -441,6 +453,7 @@ function make_call(username, voiceBridge, server, callback, recall, isListenOnly console.log('Received ICE status changed to connected'); if (callICEConnected === false) { callICEConnected = true; + clearTimeout(iceConnectedTimeout); if (callActive === true) { callback({'status':'started'}); } @@ -452,6 +465,7 @@ function make_call(username, voiceBridge, server, callback, recall, isListenOnly console.log('Received ICE status changed to completed'); if (callICEConnected === false) { callICEConnected = true; + clearTimeout(iceConnectedTimeout); if (callActive === true) { callback({'status':'started'}); } diff --git a/bigbluebutton-client/src/org/bigbluebutton/main/views/FlashMicSettings.mxml b/bigbluebutton-client/src/org/bigbluebutton/main/views/FlashMicSettings.mxml old mode 100644 new mode 100755 index a37d6d7e1f..9038640c4b --- a/bigbluebutton-client/src/org/bigbluebutton/main/views/FlashMicSettings.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/main/views/FlashMicSettings.mxml @@ -21,7 +21,7 @@ with BigBlueButton; if not, see . . var chromeBrowser:ChromeMicPermissionImage = PopUpManager.createPopUp(mdiCanvas, ChromeMicPermissionImage, true) as ChromeMicPermissionImage; chromeBrowser.addEventListener(FlexEvent.CREATION_COMPLETE, function(e:Event):void { chromeBrowser.x = 20; - chromeBrowser.y = 80; + chromeBrowser.y = 130; }); } } diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/events/ChatNoiseEnabledEvent.as b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/events/ChatNoiseEnabledEvent.as new file mode 100755 index 0000000000..43da5e5b10 --- /dev/null +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/events/ChatNoiseEnabledEvent.as @@ -0,0 +1,15 @@ +package org.bigbluebutton.modules.chat.events { + import flash.events.Event; + + public class ChatNoiseEnabledEvent extends Event { + public static const CHAT_NOISE_CHANGE_EVENT:String = "chat noise change event"; + + public var enabled:Boolean = false; + + public function ChatNoiseEnabledEvent(enabled:Boolean) { + super(CHAT_NOISE_CHANGE_EVENT, true); + + this.enabled = enabled; + } + } +} \ No newline at end of file diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml old mode 100644 new mode 100755 index 9576101898..13268d5e16 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/AddChatTabBox.mxml @@ -43,6 +43,7 @@ with BigBlueButton; if not, see . import org.bigbluebutton.core.managers.UserManager; import org.bigbluebutton.main.model.users.BBBUser; import org.bigbluebutton.main.model.users.Conference; + import org.bigbluebutton.modules.chat.events.ChatNoiseEnabledEvent; import org.bigbluebutton.modules.chat.events.ChatOptionsEvent; import org.bigbluebutton.modules.chat.model.ChatOptions; import org.bigbluebutton.util.i18n.ResourceUtil; @@ -63,6 +64,7 @@ with BigBlueButton; if not, see . } else { LOGGER.debug("fontSize in config.xml not found: {0}", [chatOptions.fontSize]); } + chatNoiseCheckBox.visible = Accessibility.active; } public function accessibleClick(event:KeyboardEvent):void{ @@ -78,6 +80,11 @@ with BigBlueButton; if not, see . dispatchEvent(e); } + private function changeChatNoise():void { + LOGGER.debug("changing chat noise, active=" + chatNoiseCheckBox.selected); + dispatchEvent(new ChatNoiseEnabledEvent(chatNoiseCheckBox.selected)); + } + protected function openPrivateChat(event:Event):void{ if (usersList.selectedIndex == -1) return; @@ -117,23 +124,21 @@ with BigBlueButton; if not, see . ]]> - - - - - - - - - - - - - - - + + + + + + + + + + diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatView.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatView.mxml old mode 100644 new mode 100755 index 72d40ede1d..75f86197d6 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatView.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/chat/views/ChatView.mxml @@ -35,26 +35,27 @@ with BigBlueButton; if not, see . . private static const PUBLIC_TAB_NEW:String = ResourceUtil.getInstance().getString("bbb.accessibility.chat.chatView.publicTabNew"); private var publicWaiting:Boolean = false; private var publicFocus:Boolean = false; - private var noticeLabel:String; + private var noticeLabel:String; + private var chatNoiseEnabled:Boolean = true; [Embed(source="../sounds/notice.mp3")] private var noticeSoundClass:Class; @@ -85,19 +87,20 @@ with BigBlueButton; if not, see . } - private function onCreationComplete():void{ + private function onCreationComplete():void{ openChatBoxFor(PUBLIC_CHAT_USERID, true); - makePublicChatUncloseable(); - - if (chatOptions.privateEnabled) { - createAddTabBox(); - makeAddPrivateChatUncloseable(); - } + makePublicChatUncloseable(); + + if (chatOptions.privateEnabled) { + createAddTabBox(); + makeAddPrivateChatUncloseable(); + } ResourceUtil.getInstance().addEventListener(Event.CHANGE, localeChanged); // Listen for locale changing addEventListener(SuperTabEvent.TAB_CLOSE, onUserClosedTab); - + addEventListener(ChatNoiseEnabledEvent.CHAT_NOISE_CHANGE_EVENT, onChatNoiseChangeEvent); + systemManager.stage.addEventListener(Event.MOUSE_LEAVE, mouseLeave); systemManager.stage.addEventListener(Event.ACTIVATE, activate); systemManager.stage.addEventListener(Event.DEACTIVATE, deactivate); @@ -293,9 +296,7 @@ with BigBlueButton; if not, see . // Activates an audio alert for screen-reader users on public message reception private function publicNotification():void { publicWaiting = true; - if (Accessibility.active){ - noticeSound.play(); - } + playSound(); chatTabs.getChildByName(PUBLIC_CHAT_USERID).addEventListener(FocusEvent.FOCUS_IN, publicChatFocus); chatTabs.getChildByName(PUBLIC_CHAT_USERID).addEventListener(FocusEvent.FOCUS_OUT, publicChatUnfocus); } @@ -303,12 +304,20 @@ with BigBlueButton; if not, see . // Activates an audio alert for screen-reader users on private message reception private function privateNotification(event:PrivateChatMessageEvent):void{ if (! UsersUtil.isMe(event.message.fromUserID)) { - if (Accessibility.active){ - noticeSound.play(); - } + playSound(); } } + private function playSound():void { + if (Accessibility.active && chatNoiseEnabled){ + noticeSound.play(); + } + } + + private function onChatNoiseChangeEvent(e:ChatNoiseEnabledEvent):void { + chatNoiseEnabled = e.enabled; + } + public function publicChatFocus(event:FocusEvent):void{ publicFocus = true; publicWaiting = false; diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml index 7d6d523661..47640819d5 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/PresentationWindow.mxml @@ -798,7 +798,7 @@ with BigBlueButton; if not, see . mouseUp="mouseDown = false" verticalScrollPolicy="off" horizontalScrollPolicy="off"/> - + @@ -829,6 +829,6 @@ with BigBlueButton; if not, see . - +