From 74693999b7e1e956256f624cffa1c12f89f46e15 Mon Sep 17 00:00:00 2001 From: Fred Dixon Date: Thu, 14 Jul 2011 10:10:44 -0700 Subject: [PATCH 1/5] Changed links on index.html to point to /demo/demo1.jsp instead of /bigbluebutton/demo/demo1.jsp --- bigbluebutton-config/bin/bbb-conf | 11 ++++++++++- bigbluebutton-config/web/index.html | 4 ++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/bigbluebutton-config/bin/bbb-conf b/bigbluebutton-config/bin/bbb-conf index 449bbd0eab..64416fde23 100755 --- a/bigbluebutton-config/bin/bbb-conf +++ b/bigbluebutton-config/bin/bbb-conf @@ -1244,6 +1244,15 @@ check_state() { fi fi + PLAYBACK_IP=$(cat /usr/local/bigbluebutton/core/scripts/simple.yml | sed -n '/playback_host/{s/.*:[ ]*//;s/;//;p}') + if [ $PLAYBACK_IP != $IP ]; then + echo + echo "# The IP address ($PLAYBACK_IP) set for playback_host in" + echo "# /usr/local/bigbluebutton/core/scripts/simple.yml" + echo "# does not match the local IP address ($IP)." + echo + fi + exit 0 } @@ -1320,7 +1329,7 @@ if [ $CHECK ]; then PLAYBACK_IP=$(cat /usr/local/bigbluebutton/core/scripts/simple.yml | sed -n '/playback_host/{s/.*:[ ]*//;s/;//;p}') echo echo "/usr/local/bigbluebutton/core/scripts/simple.yml (record and playback)" - echo " playback host: $NGINX_IP" + echo " playback host: $PLAYBACK_IP" fi diff --git a/bigbluebutton-config/web/index.html b/bigbluebutton-config/web/index.html index de23f25028..94db8b5a1f 100755 --- a/bigbluebutton-config/web/index.html +++ b/bigbluebutton-config/web/index.html @@ -59,7 +59,7 @@

Join a Demo Meeting

 

-

+

Enter your name:


@@ -79,7 +79,7 @@

API Examples

See examples of how you can integrate BigBlueButton into your applications.

-
View API Examples
+
View API Examples
From cb2e89a1279b253ace9abd5c16822c2a4403c13a Mon Sep 17 00:00:00 2001 From: Richard Alam Date: Thu, 14 Jul 2011 13:59:51 -0400 Subject: [PATCH 2/5] - make modules/ui more configurable...however, need to do more work to make it more flexible. --- bigbluebutton-client/src/VideoconfModule.mxml | 6 ++++ .../org/bigbluebutton/core/model/Config.as | 8 +++-- .../bigbluebutton/main/model/LayoutOptions.as | 19 ++++++++++++ .../main/views/MainApplicationShell.mxml | 29 ++++++++++++------- .../listeners/managers/ListenersManager.as | 2 +- .../listeners/model/ListenerOptions.as | 4 +-- .../listeners/views/ListenersWindow.mxml | 2 +- .../modules/phone/PhoneOptions.as | 13 +++++++++ .../phone/maps/PhoneEventMapDelegate.as | 28 +++++++++++------- .../modules/videoconf/business/VideoProxy.as | 15 ++++++++-- .../modules/videoconf/maps/VideoEventMap.mxml | 13 +++++---- .../videoconf/model/VideoConfOptions.as | 19 ++++++++++++ .../videoconf/views/PublishWindow.mxml | 29 ++++++++++++++++++- .../viewers/managers/ViewersManager.as | 2 +- .../modules/viewers/model/ViewerOptions.as | 2 +- .../modules/viewers/views/ViewersWindow.mxml | 2 +- 16 files changed, 154 insertions(+), 39 deletions(-) create mode 100755 bigbluebutton-client/src/org/bigbluebutton/main/model/LayoutOptions.as create mode 100755 bigbluebutton-client/src/org/bigbluebutton/modules/phone/PhoneOptions.as create mode 100755 bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/model/VideoConfOptions.as diff --git a/bigbluebutton-client/src/VideoconfModule.mxml b/bigbluebutton-client/src/VideoconfModule.mxml index 9a6a3c3329..f2a98a5931 100755 --- a/bigbluebutton-client/src/VideoconfModule.mxml +++ b/bigbluebutton-client/src/VideoconfModule.mxml @@ -3,6 +3,7 @@ xmlns:maps="org.bigbluebutton.modules.videoconf.maps.*" implements="org.bigbluebutton.common.IBigBlueButtonModule"> @@ -43,6 +43,8 @@ - + Small videos - - - + + diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/managers/ListenersManager.as b/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/managers/ListenersManager.as index 1f9f97cc37..e53cdbda71 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/managers/ListenersManager.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/managers/ListenersManager.as @@ -42,7 +42,7 @@ package org.bigbluebutton.modules.listeners.managers var vxml:XML = BBB.initConfigManager().config.getModuleConfig("ListenersModule"); if (vxml != null) { - listenerOptions.visible = (vxml.@visible.toUpperCase() == "TRUE") ? true : false; + listenerOptions.windowVisible = (vxml.@windowVisible.toUpperCase() == "TRUE") ? true : false; } } diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/model/ListenerOptions.as b/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/model/ListenerOptions.as index 02a43488be..73e4ecb1e9 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/model/ListenerOptions.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/model/ListenerOptions.as @@ -3,8 +3,8 @@ package org.bigbluebutton.modules.listeners.model public class ListenerOptions { [Bindable] - public var visible:Boolean = true; - + public var windowVisible:Boolean = true; + public function ListenerOptions() { } diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/views/ListenersWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/views/ListenersWindow.mxml index 39c572b182..418a86e887 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/views/ListenersWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/listeners/views/ListenersWindow.mxml @@ -67,7 +67,7 @@ private function onCreationComplete():void { BindingUtils.bindSetter(updateNumberOfListeners, listeners, "length"); - this.visible = listenerOptions.visible; + this.visible = listenerOptions.windowVisible; } private function updateNumberOfListeners(numListeners:int):void { diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/PhoneOptions.as b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/PhoneOptions.as new file mode 100755 index 0000000000..1536dea979 --- /dev/null +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/PhoneOptions.as @@ -0,0 +1,13 @@ +package org.bigbluebutton.modules.phone +{ + public class PhoneOptions + { + [Bindable] + public var showButton:Boolean = true; + + public function PhoneOptions() + { + } + + } +} \ No newline at end of file diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/maps/PhoneEventMapDelegate.as b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/maps/PhoneEventMapDelegate.as index 10db9dd384..8e7dbd11de 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/phone/maps/PhoneEventMapDelegate.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/phone/maps/PhoneEventMapDelegate.as @@ -22,13 +22,14 @@ package org.bigbluebutton.modules.phone.maps { import com.asfusion.mate.events.Dispatcher; - import flash.events.IEventDispatcher; - import org.bigbluebutton.common.events.ToolbarButtonEvent; + import org.bigbluebutton.core.BBB; + import org.bigbluebutton.modules.phone.PhoneOptions; import org.bigbluebutton.modules.phone.views.components.ToolbarButton; public class PhoneEventMapDelegate { + private var phoneOptions:PhoneOptions; private var phoneButton:ToolbarButton; private var buttonOpen:Boolean = false; private var globalDispatcher:Dispatcher; @@ -37,20 +38,25 @@ package org.bigbluebutton.modules.phone.maps { phoneButton = new ToolbarButton(); globalDispatcher = new Dispatcher(); + phoneOptions = new PhoneOptions(); + var vxml:XML = BBB.initConfigManager().config.getModuleConfig("PhoneModule"); + if (vxml != null) { + phoneOptions.showButton = (vxml.@showButton.toUpperCase() == "TRUE") ? true : false; + } } public function addToolbarButton():void { phoneButton.toggle = true; - // Use the GLobal Dispatcher so that this message will be heard by the - // main application. - var event:ToolbarButtonEvent = new ToolbarButtonEvent(ToolbarButtonEvent.ADD); - event.button = phoneButton; - trace("Dispatching ADD TOOLBAR BUTTON EVENT"); - globalDispatcher.dispatchEvent(event); - - buttonOpen = true; - + if (phoneOptions.showButton) { + // Use the GLobal Dispatcher so that this message will be heard by the + // main application. + var event:ToolbarButtonEvent = new ToolbarButtonEvent(ToolbarButtonEvent.ADD); + event.button = phoneButton; + trace("Dispatching ADD TOOLBAR BUTTON EVENT"); + globalDispatcher.dispatchEvent(event); + buttonOpen = true; + } } public function removeToolbarButton():void { diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/business/VideoProxy.as b/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/business/VideoProxy.as index 00ffef5af5..73a577f045 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/business/VideoProxy.as +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/business/VideoProxy.as @@ -31,18 +31,29 @@ package org.bigbluebutton.modules.videoconf.business import org.bigbluebutton.common.LogUtil; import org.bigbluebutton.common.UserManager; + import org.bigbluebutton.core.BBB; import org.bigbluebutton.main.model.users.BBBUser; import org.bigbluebutton.main.model.users.events.StreamStartedEvent; import org.bigbluebutton.modules.videoconf.events.StartBroadcastEvent; - import org.bigbluebutton.modules.videoconf.events.StopBroadcastEvent; + import org.bigbluebutton.modules.videoconf.model.VideoConfOptions; public class VideoProxy - { + { + public var videoOptions:VideoConfOptions; + private var nc:NetConnection; private var ns:NetStream; public function VideoProxy(url:String) { + videoOptions = new VideoConfOptions(); + var vxml:XML = BBB.initConfigManager().config.getModuleConfig("VideoconfModule"); + if (vxml != null) { + videoOptions.showButton = (vxml.@showButton.toUpperCase() == "TRUE") ? true : false; + videoOptions.autoStart = (vxml.@autoStart.toUpperCase() == "TRUE") ? true : false; + videoOptions.publishWindowVisible = (vxml.@publishWindowVisible.toUpperCase() == "TRUE") ? true : false; + } + nc = new NetConnection(); nc.client = this; nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onAsyncError); diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/maps/VideoEventMap.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/maps/VideoEventMap.mxml index a08546fe50..96a3f9b394 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/maps/VideoEventMap.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/maps/VideoEventMap.mxml @@ -79,15 +79,18 @@ } public function addToolbarButton():void{ - button = new ToolbarButton(); - button.isPresenter = !module.presenterShareOnly; - var event:ToolbarButtonEvent = new ToolbarButtonEvent(ToolbarButtonEvent.ADD); - event.button = button; - globalDispatcher.dispatchEvent(event); + if (proxy.videoOptions.showButton) { + button = new ToolbarButton(); + button.isPresenter = !module.presenterShareOnly; + var event:ToolbarButtonEvent = new ToolbarButtonEvent(ToolbarButtonEvent.ADD); + event.button = button; + globalDispatcher.dispatchEvent(event); + } } private function openPublishWindow():void{ publishWindow = new PublishWindow(); + publishWindow.videoOptions = proxy.videoOptions; publishWindow.streamName = "-" + module.userid.toString(); publishWindow.userrole = module.role; publishWindow.quality = module.quality; diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/model/VideoConfOptions.as b/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/model/VideoConfOptions.as new file mode 100755 index 0000000000..41133e53f1 --- /dev/null +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/model/VideoConfOptions.as @@ -0,0 +1,19 @@ +package org.bigbluebutton.modules.videoconf.model +{ + public class VideoConfOptions + { + [Bindable] + public var autoStart:Boolean = false; + + [Bindable] + public var showButton:Boolean = true; + + [Bindable] + public var publishWindowVisible:Boolean = true; + + public function VideoConfOptions() + { + } + + } +} \ No newline at end of file diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/PublishWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/PublishWindow.mxml index 0d328d6c70..115644e585 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/PublishWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/PublishWindow.mxml @@ -33,6 +33,7 @@ Date: Thu, 14 Jul 2011 14:07:22 -0400 Subject: [PATCH 3/5] - rename vars --- .../videoconf/views/PublishWindow.mxml | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/PublishWindow.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/PublishWindow.mxml index 115644e585..f8db9e040d 100755 --- a/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/PublishWindow.mxml +++ b/bigbluebutton-client/src/org/bigbluebutton/modules/videoconf/views/PublishWindow.mxml @@ -71,8 +71,11 @@ private var _nOldWindowWidth:Number = 0; private var _nOldWindowHeight:Number = 0; - // Timer to make sure the video fits to window whenever the window is resized. - private var fitToWindowTimer:Timer; + // Timer to auto-publish webcam. We need this timer to delay + // the auto-publishing until after the Viewers's window has loaded + // to receive the publishing events. Otherwise, the user joining next + // won't be able to view the webcam. + private var autoPublishTimer:Timer; [Bindable] public var videoOptions:VideoConfOptions; @@ -99,21 +102,17 @@ if (videoOptions.autoStart) { /* - * Need to have a timer to trigger resizing video to window after the - * window has been maximized/restored. The MAXIMIZE/RESTORE events are - * generated when the button is clicked so the width and height are not - * the ones we want. + * Need to have a timer to trigger auto-publishing of webcam. */ - fitToWindowTimer = new Timer(3000); - fitToWindowTimer.addEventListener(TimerEvent.TIMER, maximizeTimerHandler); - fitToWindowTimer.start(); - } - + autoPublishTimer = new Timer(3000); + autoPublishTimer.addEventListener(TimerEvent.TIMER, autopublishTimerHandler); + autoPublishTimer.start(); + } } - private function maximizeTimerHandler(event:TimerEvent):void { + private function autopublishTimerHandler(event:TimerEvent):void { startPublishing(); - fitToWindowTimer.stop(); + autoPublishTimer.stop(); } private function loadPrefs():void{ From 6ec4c04ce7e5e8b3568ab0a74f9a11b3012f671f Mon Sep 17 00:00:00 2001 From: Richard Alam Date: Thu, 14 Jul 2011 14:07:38 -0400 Subject: [PATCH 4/5] - change config.xml template to have the new options --- bigbluebutton-client/resources/config.xml.template | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bigbluebutton-client/resources/config.xml.template b/bigbluebutton-client/resources/config.xml.template index 7ac8de617a..6444e19a28 100755 --- a/bigbluebutton-client/resources/config.xml.template +++ b/bigbluebutton-client/resources/config.xml.template @@ -7,7 +7,7 @@ - + @@ -49,6 +49,7 @@ @@ -69,6 +70,9 @@ videoQuality="70" presenterShareOnly="false" resolutions="160x120,320x240,640x480,1280x720" + autoStart="false" + showButton="true" + publishWindowVisible="true" /> Date: Thu, 14 Jul 2011 14:56:09 -0400 Subject: [PATCH 5/5] - fix wrong attributes in config.xml tempalte --- bigbluebutton-client/resources/config.xml.template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bigbluebutton-client/resources/config.xml.template b/bigbluebutton-client/resources/config.xml.template index 6444e19a28..dff8575725 100755 --- a/bigbluebutton-client/resources/config.xml.template +++ b/bigbluebutton-client/resources/config.xml.template @@ -32,13 +32,13 @@ uri="rtmp://HOST/bigbluebutton" host="http://HOST/bigbluebutton/api/enter" allowKickUser="false" - visible="true" + windowVisible="true" />