Merge branch 'v2.0.x-release' of github.com:bigbluebutton/bigbluebutton into synch-with-v2.0
This commit is contained in:
commit
7637cedd4b
@ -60,4 +60,5 @@ trait UserJoinedVoiceConfEvtMsgHdlr extends BreakoutHdlrHelpers with SystemConfi
|
|||||||
outGW.send(event)
|
outGW.send(event)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -154,6 +154,13 @@ class MeetingActor(
|
|||||||
state = PresentationPodsApp.createDefaultPresentationPod(state)
|
state = PresentationPodsApp.createDefaultPresentationPod(state)
|
||||||
log.debug("NUM Presentation Pods = " + state.presentationPodManager.getNumberOfPods())
|
log.debug("NUM Presentation Pods = " + state.presentationPodManager.getNumberOfPods())
|
||||||
|
|
||||||
|
// Initialize if the meeting is muted on start
|
||||||
|
if (props.voiceProp.muteOnStart) {
|
||||||
|
MeetingStatus2x.muteMeeting(liveMeeting.status)
|
||||||
|
} else {
|
||||||
|
MeetingStatus2x.unmuteMeeting(liveMeeting.status)
|
||||||
|
}
|
||||||
|
|
||||||
/*******************************************************************/
|
/*******************************************************************/
|
||||||
//object FakeTestData extends FakeTestData
|
//object FakeTestData extends FakeTestData
|
||||||
//FakeTestData.createFakeUsers(liveMeeting)
|
//FakeTestData.createFakeUsers(liveMeeting)
|
||||||
@ -411,9 +418,7 @@ class MeetingActor(
|
|||||||
val meetingId = liveMeeting.props.meetingProp.intId
|
val meetingId = liveMeeting.props.meetingProp.intId
|
||||||
val recordFile = VoiceApp.genRecordPath(voiceConfRecordPath, meetingId, now)
|
val recordFile = VoiceApp.genRecordPath(voiceConfRecordPath, meetingId, now)
|
||||||
VoiceApp.startRecordingVoiceConference(liveMeeting, outGW, recordFile)
|
VoiceApp.startRecordingVoiceConference(liveMeeting, outGW, recordFile)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
def sendRttTraceTest(): Unit = {
|
def sendRttTraceTest(): Unit = {
|
||||||
|
@ -16,7 +16,7 @@ case class RecordProp(record: Boolean, autoStartRecording: Boolean, allowStartSt
|
|||||||
|
|
||||||
case class WelcomeProp(welcomeMsgTemplate: String, welcomeMsg: String, modOnlyMessage: String)
|
case class WelcomeProp(welcomeMsgTemplate: String, welcomeMsg: String, modOnlyMessage: String)
|
||||||
|
|
||||||
case class VoiceProp(telVoice: String, voiceConf: String, dialNumber: String)
|
case class VoiceProp(telVoice: String, voiceConf: String, dialNumber: String, muteOnStart: Boolean)
|
||||||
|
|
||||||
case class UsersProp(maxUsers: Int, webcamsOnlyForModerator: Boolean, guestPolicy: String)
|
case class UsersProp(maxUsers: Int, webcamsOnlyForModerator: Boolean, guestPolicy: String)
|
||||||
|
|
||||||
|
@ -275,7 +275,8 @@ public class MeetingService implements MessageListener {
|
|||||||
m.isBreakout(), m.getSequence(), m.getMetadata(), m.getGuestPolicy(), m.getWelcomeMessageTemplate(),
|
m.isBreakout(), m.getSequence(), m.getMetadata(), m.getGuestPolicy(), m.getWelcomeMessageTemplate(),
|
||||||
m.getWelcomeMessage(), m.getModeratorOnlyMessage(), m.getDialNumber(), m.getMaxUsers(),
|
m.getWelcomeMessage(), m.getModeratorOnlyMessage(), m.getDialNumber(), m.getMaxUsers(),
|
||||||
m.getMaxInactivityTimeoutMinutes(), m.getWarnMinutesBeforeMax(),
|
m.getMaxInactivityTimeoutMinutes(), m.getWarnMinutesBeforeMax(),
|
||||||
m.getMeetingExpireIfNoUserJoinedInMinutes(), m.getmeetingExpireWhenLastUserLeftInMinutes());
|
m.getMeetingExpireIfNoUserJoinedInMinutes(), m.getmeetingExpireWhenLastUserLeftInMinutes(),
|
||||||
|
m.getMuteOnStart());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,6 +82,7 @@ public class ParamsProcessorUtil {
|
|||||||
private boolean autoStartRecording;
|
private boolean autoStartRecording;
|
||||||
private boolean allowStartStopRecording;
|
private boolean allowStartStopRecording;
|
||||||
private boolean webcamsOnlyForModerator;
|
private boolean webcamsOnlyForModerator;
|
||||||
|
private boolean defaultMuteOnStart = false;
|
||||||
|
|
||||||
private String defaultConfigXML = null;
|
private String defaultConfigXML = null;
|
||||||
|
|
||||||
@ -472,7 +473,9 @@ public class ParamsProcessorUtil {
|
|||||||
meeting.storeConfig(true, configXML);
|
meeting.storeConfig(true, configXML);
|
||||||
|
|
||||||
if (!StringUtils.isEmpty(params.get("moderatorOnlyMessage"))) {
|
if (!StringUtils.isEmpty(params.get("moderatorOnlyMessage"))) {
|
||||||
String moderatorOnlyMessage = params.get("moderatorOnlyMessage");
|
String moderatorOnlyMessageTemplate = params.get("moderatorOnlyMessage");
|
||||||
|
String moderatorOnlyMessage = substituteKeywords(moderatorOnlyMessageTemplate,
|
||||||
|
dialNumber, telVoice, meetingName);
|
||||||
meeting.setModeratorOnlyMessage(moderatorOnlyMessage);
|
meeting.setModeratorOnlyMessage(moderatorOnlyMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -487,6 +490,19 @@ public class ParamsProcessorUtil {
|
|||||||
meeting.setParentMeetingId(parentMeetingId);
|
meeting.setParentMeetingId(parentMeetingId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!StringUtils.isEmpty(params.get("logo"))) {
|
||||||
|
meeting.setCustomLogoURL(params.get("logo"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!StringUtils.isEmpty(params.get("copyright"))) {
|
||||||
|
meeting.setCustomCopyright(params.get("copyright"));
|
||||||
|
}
|
||||||
|
Boolean muteOnStart = defaultMuteOnStart;
|
||||||
|
if (!StringUtils.isEmpty(params.get("muteOnStart"))) {
|
||||||
|
muteOnStart = Boolean.parseBoolean(params.get("muteOnStart"));
|
||||||
|
meeting.setMuteOnStart(muteOnStart);
|
||||||
|
}
|
||||||
|
|
||||||
return meeting;
|
return meeting;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -946,6 +962,15 @@ public class ParamsProcessorUtil {
|
|||||||
return maxPresentationFileUpload;
|
return maxPresentationFileUpload;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setMuteOnStart(Boolean mute) {
|
||||||
|
defaultMuteOnStart = mute;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getMuteOnStart() {
|
||||||
|
return defaultMuteOnStart;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public ArrayList<String> decodeIds(String encodeid) {
|
public ArrayList<String> decodeIds(String encodeid) {
|
||||||
ArrayList<String> ids=new ArrayList<String>();
|
ArrayList<String> ids=new ArrayList<String>();
|
||||||
try {
|
try {
|
||||||
|
@ -68,6 +68,9 @@ public class Meeting {
|
|||||||
private final ConcurrentMap<String, Config> configs;
|
private final ConcurrentMap<String, Config> configs;
|
||||||
private final Boolean isBreakout;
|
private final Boolean isBreakout;
|
||||||
private final List<String> breakoutRooms = new ArrayList<String>();
|
private final List<String> breakoutRooms = new ArrayList<String>();
|
||||||
|
private String customLogoURL = "";
|
||||||
|
private String customCopyright = "";
|
||||||
|
private Boolean muteOnStart = false;
|
||||||
|
|
||||||
private Integer maxInactivityTimeoutMinutes = 120;
|
private Integer maxInactivityTimeoutMinutes = 120;
|
||||||
private Integer warnMinutesBeforeMax = 5;
|
private Integer warnMinutesBeforeMax = 5;
|
||||||
@ -365,7 +368,31 @@ public class Meeting {
|
|||||||
public boolean hasUserJoined() {
|
public boolean hasUserJoined() {
|
||||||
return userHasJoined;
|
return userHasJoined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCustomLogoURL() {
|
||||||
|
return customLogoURL;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCustomLogoURL(String url) {
|
||||||
|
customLogoURL = url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCustomCopyright(String copyright) {
|
||||||
|
customCopyright = copyright;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCustomCopyright() {
|
||||||
|
return customCopyright;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMuteOnStart(Boolean mute) {
|
||||||
|
muteOnStart = mute;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getMuteOnStart() {
|
||||||
|
return muteOnStart;
|
||||||
|
}
|
||||||
|
|
||||||
public void userJoined(User user) {
|
public void userJoined(User user) {
|
||||||
userHasJoined = true;
|
userHasJoined = true;
|
||||||
this.users.put(user.getInternalUserId(), user);
|
this.users.put(user.getInternalUserId(), user);
|
||||||
|
@ -18,7 +18,8 @@ public interface IBbbWebApiGWApp {
|
|||||||
String dialNumber, Integer maxUsers,
|
String dialNumber, Integer maxUsers,
|
||||||
Integer maxInactivityTimeoutMinutes, Integer warnMinutesBeforeMax,
|
Integer maxInactivityTimeoutMinutes, Integer warnMinutesBeforeMax,
|
||||||
Integer meetingExpireIfNoUserJoinedInMinutes,
|
Integer meetingExpireIfNoUserJoinedInMinutes,
|
||||||
Integer meetingExpireWhenLastUserLeftInMinutes);
|
Integer meetingExpireWhenLastUserLeftInMinutes,
|
||||||
|
Boolean muteOnStart);
|
||||||
|
|
||||||
void registerUser(String meetingID, String internalUserId, String fullname, String role,
|
void registerUser(String meetingID, String internalUserId, String fullname, String role,
|
||||||
String externUserID, String authToken, String avatarURL,
|
String externUserID, String authToken, String avatarURL,
|
||||||
|
@ -86,7 +86,8 @@ class BbbWebApiGWApp(val oldMessageReceivedGW: OldMessageReceivedGW,
|
|||||||
dialNumber: String, maxUsers: java.lang.Integer, maxInactivityTimeoutMinutes: java.lang.Integer,
|
dialNumber: String, maxUsers: java.lang.Integer, maxInactivityTimeoutMinutes: java.lang.Integer,
|
||||||
warnMinutesBeforeMax: java.lang.Integer,
|
warnMinutesBeforeMax: java.lang.Integer,
|
||||||
meetingExpireIfNoUserJoinedInMinutes: java.lang.Integer,
|
meetingExpireIfNoUserJoinedInMinutes: java.lang.Integer,
|
||||||
meetingExpireWhenLastUserLeftInMinutes: java.lang.Integer): Unit = {
|
meetingExpireWhenLastUserLeftInMinutes: java.lang.Integer,
|
||||||
|
muteOnStart: java.lang.Boolean): Unit = {
|
||||||
|
|
||||||
val meetingProp = MeetingProp(name = meetingName, extId = extMeetingId, intId = meetingId,
|
val meetingProp = MeetingProp(name = meetingName, extId = extMeetingId, intId = meetingId,
|
||||||
isBreakout = isBreakout.booleanValue())
|
isBreakout = isBreakout.booleanValue())
|
||||||
@ -103,7 +104,7 @@ class BbbWebApiGWApp(val oldMessageReceivedGW: OldMessageReceivedGW,
|
|||||||
val breakoutProps = BreakoutProps(parentId = parentMeetingId, sequence = sequence.intValue(), breakoutRooms = Vector())
|
val breakoutProps = BreakoutProps(parentId = parentMeetingId, sequence = sequence.intValue(), breakoutRooms = Vector())
|
||||||
val welcomeProp = WelcomeProp(welcomeMsgTemplate = welcomeMsgTemplate, welcomeMsg = welcomeMsg,
|
val welcomeProp = WelcomeProp(welcomeMsgTemplate = welcomeMsgTemplate, welcomeMsg = welcomeMsg,
|
||||||
modOnlyMessage = modOnlyMessage)
|
modOnlyMessage = modOnlyMessage)
|
||||||
val voiceProp = VoiceProp(telVoice = voiceBridge, voiceConf = voiceBridge, dialNumber = dialNumber)
|
val voiceProp = VoiceProp(telVoice = voiceBridge, voiceConf = voiceBridge, dialNumber = dialNumber, muteOnStart = muteOnStart.booleanValue())
|
||||||
val usersProp = UsersProp(maxUsers = maxUsers.intValue(), webcamsOnlyForModerator = webcamsOnlyForModerator.booleanValue(),
|
val usersProp = UsersProp(maxUsers = maxUsers.intValue(), webcamsOnlyForModerator = webcamsOnlyForModerator.booleanValue(),
|
||||||
guestPolicy = guestPolicy)
|
guestPolicy = guestPolicy)
|
||||||
val metadataProp = MetadataProp(mapAsScalaMap(metadata).toMap)
|
val metadataProp = MetadataProp(mapAsScalaMap(metadata).toMap)
|
||||||
|
@ -222,9 +222,9 @@ bbb.users.usersGrid.mediaItemRenderer.pushToTalk = Unmute {0}
|
|||||||
bbb.users.usersGrid.mediaItemRenderer.pushToMute = Mute {0}
|
bbb.users.usersGrid.mediaItemRenderer.pushToMute = Mute {0}
|
||||||
bbb.users.usersGrid.mediaItemRenderer.pushToLock = Lock {0}
|
bbb.users.usersGrid.mediaItemRenderer.pushToLock = Lock {0}
|
||||||
bbb.users.usersGrid.mediaItemRenderer.pushToUnlock = Unlock {0}
|
bbb.users.usersGrid.mediaItemRenderer.pushToUnlock = Unlock {0}
|
||||||
bbb.users.usersGrid.mediaItemRenderer.kickUser = Kick {0}
|
|
||||||
bbb.users.usersGrid.mediaItemRenderer.addUserToPresenterGroup = Add {0} to presenter group
|
bbb.users.usersGrid.mediaItemRenderer.addUserToPresenterGroup = Add {0} to presenter group
|
||||||
bbb.users.usersGrid.mediaItemRenderer.removeUserFromPresenterGroup = Remove {0} from presenter group
|
bbb.users.usersGrid.mediaItemRenderer.removeUserFromPresenterGroup = Remove {0} from presenter group
|
||||||
|
bbb.users.usersGrid.mediaItemRenderer.kickUser = Remove {0}
|
||||||
bbb.users.usersGrid.mediaItemRenderer.webcam = Webcam shared
|
bbb.users.usersGrid.mediaItemRenderer.webcam = Webcam shared
|
||||||
bbb.users.usersGrid.mediaItemRenderer.micOff = Microphone off
|
bbb.users.usersGrid.mediaItemRenderer.micOff = Microphone off
|
||||||
bbb.users.usersGrid.mediaItemRenderer.micOn = Microphone on
|
bbb.users.usersGrid.mediaItemRenderer.micOn = Microphone on
|
||||||
@ -549,10 +549,10 @@ bbb.logout.unknown = Your client has lost connection with the server
|
|||||||
bbb.logout.guestkickedout = The moderator didn't allow you to join this meeting
|
bbb.logout.guestkickedout = The moderator didn't allow you to join this meeting
|
||||||
bbb.logout.usercommand = You have logged out of the conference
|
bbb.logout.usercommand = You have logged out of the conference
|
||||||
bbb.logout.breakoutRoomClose = Your browser window will be closed
|
bbb.logout.breakoutRoomClose = Your browser window will be closed
|
||||||
bbb.logout.ejectedFromMeeting = A moderator has kicked you out of the meeting.
|
|
||||||
bbb.logout.duplicateUserEjectReason = Duplicate user trying to join meeting.
|
bbb.logout.duplicateUserEjectReason = Duplicate user trying to join meeting.
|
||||||
bbb.logout.permissionEjectReason = Ejected due to permission violation.
|
bbb.logout.permissionEjectReason = Ejected due to permission violation.
|
||||||
bbb.logout.validateTokenFailedEjectReason = Failed to validate authorization token.
|
bbb.logout.validateTokenFailedEjectReason = Failed to validate authorization token.
|
||||||
|
bbb.logout.ejectedFromMeeting = You have been removed from the meeting.
|
||||||
bbb.logout.refresh.message = If this logout was unexpected click the button below to reconnect.
|
bbb.logout.refresh.message = If this logout was unexpected click the button below to reconnect.
|
||||||
bbb.logout.refresh.label = Reconnect
|
bbb.logout.refresh.label = Reconnect
|
||||||
bbb.guest.settings.ok = OK
|
bbb.guest.settings.ok = OK
|
||||||
@ -748,7 +748,7 @@ bbb.shortcutkey.present.fitPage.function = Fit slides to page
|
|||||||
bbb.shortcutkey.users.makePresenter = 89
|
bbb.shortcutkey.users.makePresenter = 89
|
||||||
bbb.shortcutkey.users.makePresenter.function = Make selected person presenter
|
bbb.shortcutkey.users.makePresenter.function = Make selected person presenter
|
||||||
bbb.shortcutkey.users.kick = 69
|
bbb.shortcutkey.users.kick = 69
|
||||||
bbb.shortcutkey.users.kick.function = Kick selected person from the meeting
|
bbb.shortcutkey.users.kick.function = Remove selected person from the meeting
|
||||||
bbb.shortcutkey.users.mute = 83
|
bbb.shortcutkey.users.mute = 83
|
||||||
bbb.shortcutkey.users.mute.function = Mute or unmute selected person
|
bbb.shortcutkey.users.mute.function = Mute or unmute selected person
|
||||||
bbb.shortcutkey.users.muteall = 65
|
bbb.shortcutkey.users.muteall = 65
|
||||||
|
@ -18,7 +18,6 @@
|
|||||||
showToolbar="true" showFooter="true" showMeetingName="true" showHelpButton="true"
|
showToolbar="true" showFooter="true" showMeetingName="true" showHelpButton="true"
|
||||||
showLogoutWindow="true" showLayoutTools="true" confirmLogout="true" showNetworkMonitor="false"
|
showLogoutWindow="true" showLayoutTools="true" confirmLogout="true" showNetworkMonitor="false"
|
||||||
showRecordingNotification="true" logoutOnStopRecording="false"/>
|
showRecordingNotification="true" logoutOnStopRecording="false"/>
|
||||||
<meeting muteOnStart="false" />
|
|
||||||
<breakoutRooms enabled="true" record="false" />
|
<breakoutRooms enabled="true" record="false" />
|
||||||
<logging enabled="true" logTarget="trace" level="info" format="{dateUTC} {time} :: {name} :: [{logLevel}] {message}" uri="http://HOST/log" logPattern=".*"/>
|
<logging enabled="true" logTarget="trace" level="info" format="{dateUTC} {time} :: {name} :: [{logLevel}] {message}" uri="http://HOST/log" logPattern=".*"/>
|
||||||
<lock disableCam="false" disableMic="false" disablePrivateChat="false"
|
<lock disableCam="false" disableMic="false" disablePrivateChat="false"
|
||||||
|
@ -20,5 +20,7 @@ package org.bigbluebutton.core.model
|
|||||||
public var logoutTimer:int=0;
|
public var logoutTimer:int=0;
|
||||||
public var bannerColor:String = "";
|
public var bannerColor:String = "";
|
||||||
public var bannerText:String = "";
|
public var bannerText:String = "";
|
||||||
|
public var customLogo:String = "";
|
||||||
|
public var customCopyright:String = "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
/**
|
|
||||||
* BigBlueButton open source conferencing system - http://www.bigbluebutton.org/
|
|
||||||
*
|
|
||||||
* Copyright (c) 2015 BigBlueButton Inc. and by respective authors (see below).
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify it under the
|
|
||||||
* terms of the GNU Lesser General Public License as published by the Free Software
|
|
||||||
* Foundation; either version 3.0 of the License, or (at your option) any later
|
|
||||||
* version.
|
|
||||||
*
|
|
||||||
* BigBlueButton is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
||||||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
||||||
* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public License along
|
|
||||||
* with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
package org.bigbluebutton.main.model.options {
|
|
||||||
import org.bigbluebutton.core.Options;
|
|
||||||
|
|
||||||
public class MeetingOptions extends Options {
|
|
||||||
|
|
||||||
[Bindable]
|
|
||||||
public var muteOnStart:Boolean = false;
|
|
||||||
|
|
||||||
public function MeetingOptions() {
|
|
||||||
name = "meeting";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -11,7 +11,7 @@ package org.bigbluebutton.main.model.users
|
|||||||
public var authToken: String;
|
public var authToken: String;
|
||||||
public var customdata:Object = new Object();
|
public var customdata:Object = new Object();
|
||||||
public var logoutUrl: String;
|
public var logoutUrl: String;
|
||||||
public var logoutTimer : int;
|
public var logoutTimer : int;
|
||||||
public var defaultLayout: String;
|
public var defaultLayout: String;
|
||||||
public var avatarURL: String;
|
public var avatarURL: String;
|
||||||
public var bannerText: String;
|
public var bannerText: String;
|
||||||
@ -19,7 +19,8 @@ package org.bigbluebutton.main.model.users
|
|||||||
public var dialnumber: String;
|
public var dialnumber: String;
|
||||||
public var voiceConf: String;
|
public var voiceConf: String;
|
||||||
public var welcome: String;
|
public var welcome: String;
|
||||||
|
public var customLogo:String;
|
||||||
|
public var customCopyright:String;
|
||||||
public var meetingName: String;
|
public var meetingName: String;
|
||||||
public var extMeetingId: String;
|
public var extMeetingId: String;
|
||||||
public var intMeetingId: String;
|
public var intMeetingId: String;
|
||||||
@ -30,5 +31,6 @@ package org.bigbluebutton.main.model.users
|
|||||||
public var webcamsOnlyForModerator: Boolean;
|
public var webcamsOnlyForModerator: Boolean;
|
||||||
public var metadata: Object = new Object();
|
public var metadata: Object = new Object();
|
||||||
public var modOnlyMessage: String;
|
public var modOnlyMessage: String;
|
||||||
|
public var muteOnStart:Boolean = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -118,7 +118,7 @@ package org.bigbluebutton.main.model.users
|
|||||||
|
|
||||||
private function handleComplete(e:Event):void {
|
private function handleComplete(e:Event):void {
|
||||||
var result:Object = JSON.parse(e.target.data);
|
var result:Object = JSON.parse(e.target.data);
|
||||||
|
|
||||||
var logData:Object = UsersUtil.initLogData();
|
var logData:Object = UsersUtil.initLogData();
|
||||||
logData.tags = ["initialization"];
|
logData.tags = ["initialization"];
|
||||||
|
|
||||||
@ -160,9 +160,10 @@ package org.bigbluebutton.main.model.users
|
|||||||
|
|
||||||
apiResponse.welcome = result.response.welcome;
|
apiResponse.welcome = result.response.welcome;
|
||||||
apiResponse.logoutUrl = processLogoutUrl(result.response);
|
apiResponse.logoutUrl = processLogoutUrl(result.response);
|
||||||
apiResponse.logoutTimer = result.response.logoutTimer;
|
apiResponse.logoutTimer = result.response.logoutTimer;
|
||||||
apiResponse.defaultLayout = result.response.defaultLayout;
|
apiResponse.defaultLayout = result.response.defaultLayout;
|
||||||
apiResponse.avatarURL = result.response.avatarURL
|
apiResponse.avatarURL = result.response.avatarURL;
|
||||||
|
|
||||||
apiResponse.customdata = new Object();
|
apiResponse.customdata = new Object();
|
||||||
|
|
||||||
if (result.response.customdata) {
|
if (result.response.customdata) {
|
||||||
@ -180,7 +181,11 @@ package org.bigbluebutton.main.model.users
|
|||||||
if (result.response.hasOwnProperty("modOnlyMessage")) {
|
if (result.response.hasOwnProperty("modOnlyMessage")) {
|
||||||
apiResponse.modOnlyMessage = result.response.modOnlyMessage;
|
apiResponse.modOnlyMessage = result.response.modOnlyMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
apiResponse.customLogo = result.response.customLogoURL;
|
||||||
|
apiResponse.customCopyright = result.response.customCopyright;
|
||||||
|
apiResponse.muteOnStart = result.response.muteOnStart as Boolean;
|
||||||
|
|
||||||
if (_resultListener != null) _resultListener(true, apiResponse);
|
if (_resultListener != null) _resultListener(true, apiResponse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ package org.bigbluebutton.main.model.users
|
|||||||
|
|
||||||
import flash.external.ExternalInterface;
|
import flash.external.ExternalInterface;
|
||||||
import flash.net.NetConnection;
|
import flash.net.NetConnection;
|
||||||
|
|
||||||
import org.as3commons.logging.api.ILogger;
|
import org.as3commons.logging.api.ILogger;
|
||||||
import org.as3commons.logging.api.getClassLogger;
|
import org.as3commons.logging.api.getClassLogger;
|
||||||
import org.bigbluebutton.core.BBB;
|
import org.bigbluebutton.core.BBB;
|
||||||
@ -40,7 +41,6 @@ package org.bigbluebutton.main.model.users
|
|||||||
import org.bigbluebutton.main.events.SuccessfulLoginEvent;
|
import org.bigbluebutton.main.events.SuccessfulLoginEvent;
|
||||||
import org.bigbluebutton.main.events.UserServicesEvent;
|
import org.bigbluebutton.main.events.UserServicesEvent;
|
||||||
import org.bigbluebutton.main.model.options.ApplicationOptions;
|
import org.bigbluebutton.main.model.options.ApplicationOptions;
|
||||||
import org.bigbluebutton.main.model.options.MeetingOptions;
|
|
||||||
import org.bigbluebutton.main.model.users.events.BroadcastStartedEvent;
|
import org.bigbluebutton.main.model.users.events.BroadcastStartedEvent;
|
||||||
import org.bigbluebutton.main.model.users.events.BroadcastStoppedEvent;
|
import org.bigbluebutton.main.model.users.events.BroadcastStoppedEvent;
|
||||||
import org.bigbluebutton.main.model.users.events.ChangeRoleEvent;
|
import org.bigbluebutton.main.model.users.events.ChangeRoleEvent;
|
||||||
@ -52,9 +52,9 @@ package org.bigbluebutton.main.model.users
|
|||||||
import org.bigbluebutton.main.model.users.events.AddUserToPresenterGroupEvent;
|
import org.bigbluebutton.main.model.users.events.AddUserToPresenterGroupEvent;
|
||||||
import org.bigbluebutton.main.model.users.events.RemoveUserFromPresenterGroupEvent;
|
import org.bigbluebutton.main.model.users.events.RemoveUserFromPresenterGroupEvent;
|
||||||
import org.bigbluebutton.main.model.users.events.RequestPresenterGroupEvent;
|
import org.bigbluebutton.main.model.users.events.RequestPresenterGroupEvent;
|
||||||
|
import org.bigbluebutton.modules.users.events.MeetingMutedEvent;
|
||||||
import org.bigbluebutton.modules.users.services.MessageReceiver;
|
import org.bigbluebutton.modules.users.services.MessageReceiver;
|
||||||
import org.bigbluebutton.modules.users.services.MessageSender;
|
import org.bigbluebutton.modules.users.services.MessageSender;
|
||||||
|
|
||||||
public class UserService {
|
public class UserService {
|
||||||
private static const LOGGER:ILogger = getClassLogger(UserService);
|
private static const LOGGER:ILogger = getClassLogger(UserService);
|
||||||
@ -102,8 +102,7 @@ package org.bigbluebutton.main.model.users
|
|||||||
|
|
||||||
private function joinListener(success:Boolean, result: EnterApiResponse):void {
|
private function joinListener(success:Boolean, result: EnterApiResponse):void {
|
||||||
if (success) {
|
if (success) {
|
||||||
var meetingOptions : MeetingOptions = Options.getOptions(MeetingOptions) as MeetingOptions;
|
|
||||||
|
|
||||||
LiveMeeting.inst().me.id = result.intUserId
|
LiveMeeting.inst().me.id = result.intUserId
|
||||||
LiveMeeting.inst().me.name = result.username;
|
LiveMeeting.inst().me.name = result.username;
|
||||||
LiveMeeting.inst().me.externalId = result.extUserId;
|
LiveMeeting.inst().me.externalId = result.extUserId;
|
||||||
@ -133,19 +132,25 @@ package org.bigbluebutton.main.model.users
|
|||||||
LiveMeeting.inst().meeting.allowStartStopRecording = result.allowStartStopRecording;
|
LiveMeeting.inst().meeting.allowStartStopRecording = result.allowStartStopRecording;
|
||||||
LiveMeeting.inst().meeting.webcamsOnlyForModerator = result.webcamsOnlyForModerator;
|
LiveMeeting.inst().meeting.webcamsOnlyForModerator = result.webcamsOnlyForModerator;
|
||||||
LiveMeeting.inst().meeting.metadata = result.metadata;
|
LiveMeeting.inst().meeting.metadata = result.metadata;
|
||||||
LiveMeeting.inst().meeting.muteOnStart = meetingOptions.muteOnStart;
|
|
||||||
|
|
||||||
LiveMeeting.inst().meeting.logoutTimer = result.logoutTimer;
|
LiveMeeting.inst().meeting.logoutTimer = result.logoutTimer;
|
||||||
|
|
||||||
LiveMeeting.inst().meeting.bannerColor = result.bannerColor;
|
LiveMeeting.inst().meeting.bannerColor = result.bannerColor;
|
||||||
LiveMeeting.inst().meeting.bannerText = result.bannerText;
|
LiveMeeting.inst().meeting.bannerText = result.bannerText;
|
||||||
|
|
||||||
|
LiveMeeting.inst().meeting.muteOnStart = result.muteOnStart;
|
||||||
|
LiveMeeting.inst().meetingStatus.isMeetingMuted = result.muteOnStart;
|
||||||
|
LiveMeeting.inst().meeting.customLogo = result.customLogo;
|
||||||
|
LiveMeeting.inst().meeting.customCopyright = result.customCopyright;
|
||||||
|
|
||||||
// assign the meeting name to the document title
|
// assign the meeting name to the document title
|
||||||
ExternalInterface.call("setTitle", result.meetingName);
|
ExternalInterface.call("setTitle", result.meetingName);
|
||||||
|
|
||||||
var e:ConferenceCreatedEvent = new ConferenceCreatedEvent(ConferenceCreatedEvent.CONFERENCE_CREATED_EVENT);
|
var e:ConferenceCreatedEvent = new ConferenceCreatedEvent(ConferenceCreatedEvent.CONFERENCE_CREATED_EVENT);
|
||||||
dispatcher.dispatchEvent(e);
|
dispatcher.dispatchEvent(e);
|
||||||
|
|
||||||
|
// Send event to trigger meeting muted initialization of meeting (ralam dec 21, 2017)
|
||||||
|
dispatcher.dispatchEvent(new MeetingMutedEvent());
|
||||||
connect();
|
connect();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -74,6 +74,8 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
<mate:Listener type="{BBBEvent.RECONNECT_DISCONNECTED_EVENT}" method="closeWaitWindow"/>
|
<mate:Listener type="{BBBEvent.RECONNECT_DISCONNECTED_EVENT}" method="closeWaitWindow"/>
|
||||||
<mate:Listener type="{RoundTripLatencyReceivedEvent.ROUND_TRIP_LATENCY_RECEIVED}" method="handleRoundTripLatencyReceivedEvent"/>
|
<mate:Listener type="{RoundTripLatencyReceivedEvent.ROUND_TRIP_LATENCY_RECEIVED}" method="handleRoundTripLatencyReceivedEvent"/>
|
||||||
<mate:Listener type="{ClosePendingGuestWindow.CLOSE_PENDING_GUEST_WINDOW}" method="handleClosePendingGuestWindow" />
|
<mate:Listener type="{ClosePendingGuestWindow.CLOSE_PENDING_GUEST_WINDOW}" method="handleClosePendingGuestWindow" />
|
||||||
|
<mate:Listener type="{ConferenceCreatedEvent.CONFERENCE_CREATED_EVENT}" method="handleConferenceCreatedEvent" />
|
||||||
|
|
||||||
</fx:Declarations>
|
</fx:Declarations>
|
||||||
<fx:Script>
|
<fx:Script>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
@ -111,6 +113,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
import org.bigbluebutton.core.events.NewGuestWaitingEvent;
|
import org.bigbluebutton.core.events.NewGuestWaitingEvent;
|
||||||
import org.bigbluebutton.core.events.RoundTripLatencyReceivedEvent;
|
import org.bigbluebutton.core.events.RoundTripLatencyReceivedEvent;
|
||||||
import org.bigbluebutton.core.events.SwitchedLayoutEvent;
|
import org.bigbluebutton.core.events.SwitchedLayoutEvent;
|
||||||
|
import org.bigbluebutton.core.model.LiveMeeting;
|
||||||
import org.bigbluebutton.core.vo.LockSettingsVO;
|
import org.bigbluebutton.core.vo.LockSettingsVO;
|
||||||
import org.bigbluebutton.main.events.AppVersionEvent;
|
import org.bigbluebutton.main.events.AppVersionEvent;
|
||||||
import org.bigbluebutton.main.events.BBBEvent;
|
import org.bigbluebutton.main.events.BBBEvent;
|
||||||
@ -127,6 +130,8 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
import org.bigbluebutton.main.model.options.BrowserVersionsOptions;
|
import org.bigbluebutton.main.model.options.BrowserVersionsOptions;
|
||||||
import org.bigbluebutton.main.model.options.LanguageOptions;
|
import org.bigbluebutton.main.model.options.LanguageOptions;
|
||||||
import org.bigbluebutton.main.model.options.LayoutOptions;
|
import org.bigbluebutton.main.model.options.LayoutOptions;
|
||||||
|
import org.bigbluebutton.main.model.users.events.ConferenceCreatedEvent;
|
||||||
|
import org.bigbluebutton.main.model.users.events.ConnectionFailedEvent;
|
||||||
import org.bigbluebutton.modules.phone.events.AudioSelectionWindowEvent;
|
import org.bigbluebutton.modules.phone.events.AudioSelectionWindowEvent;
|
||||||
import org.bigbluebutton.modules.phone.events.FlashMicSettingsEvent;
|
import org.bigbluebutton.modules.phone.events.FlashMicSettingsEvent;
|
||||||
import org.bigbluebutton.modules.phone.events.WebRTCCallEvent;
|
import org.bigbluebutton.modules.phone.events.WebRTCCallEvent;
|
||||||
@ -222,6 +227,10 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
_respTimer.start();
|
_respTimer.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function handleConferenceCreatedEvent(event:ConferenceCreatedEvent):void {
|
||||||
|
updateCopyrightText();
|
||||||
|
}
|
||||||
|
|
||||||
private function updateCopyrightText():void {
|
private function updateCopyrightText():void {
|
||||||
brandingOptions = Options.getOptions(BrandingOptions) as BrandingOptions;
|
brandingOptions = Options.getOptions(BrandingOptions) as BrandingOptions;
|
||||||
|
|
||||||
@ -230,6 +239,10 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
} else {
|
} else {
|
||||||
copyrightText = String(brandingOptions.copyright).replace("{0}", appVersion);
|
copyrightText = String(brandingOptions.copyright).replace("{0}", appVersion);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!StringUtils.isEmpty(LiveMeeting.inst().meeting.customCopyright)) {
|
||||||
|
copyrightText = LiveMeeting.inst().meeting.customCopyright;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function initQuote() : void {
|
private function initQuote() : void {
|
||||||
@ -570,7 +583,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
this.removeChild(toolbar);
|
this.removeChild(toolbar);
|
||||||
this.removeChild(controlBar);
|
this.removeChild(controlBar);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function handleAddToolbarComponent(event:ToolbarButtonEvent):void {
|
private function handleAddToolbarComponent(event:ToolbarButtonEvent):void {
|
||||||
if (event.location == ToolbarButtonEvent.BOTTOM_TOOLBAR) {
|
if (event.location == ToolbarButtonEvent.BOTTOM_TOOLBAR) {
|
||||||
var newComponentTabIndex:int = tabIndexer.startIndex + addedBtns.numChildren + 10;
|
var newComponentTabIndex:int = tabIndexer.startIndex + addedBtns.numChildren + 10;
|
||||||
|
@ -206,6 +206,12 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var customLogo: String = LiveMeeting.inst().meeting.customLogo;
|
||||||
|
|
||||||
|
if (customLogo != "") {
|
||||||
|
logo.source = LiveMeeting.inst().meeting.customLogo;
|
||||||
|
}
|
||||||
|
|
||||||
if (UsersUtil.isBreakout()) {
|
if (UsersUtil.isBreakout()) {
|
||||||
breakoutRibbon.visible = breakoutRibbon.includeInLayout = true;
|
breakoutRibbon.visible = breakoutRibbon.includeInLayout = true;
|
||||||
var sequence:String = StringUtils.substringAfterLast(UsersUtil.getMeetingName(), " ");
|
var sequence:String = StringUtils.substringAfterLast(UsersUtil.getMeetingName(), " ");
|
||||||
|
@ -161,6 +161,9 @@ allowStartStopRecording=true
|
|||||||
# Allow webcams streaming reception only to and from moderators
|
# Allow webcams streaming reception only to and from moderators
|
||||||
webcamsOnlyForModerator=false
|
webcamsOnlyForModerator=false
|
||||||
|
|
||||||
|
# Mute the meeting on start
|
||||||
|
muteOnStart=false
|
||||||
|
|
||||||
#----------------------------------------------------
|
#----------------------------------------------------
|
||||||
# This URL is where the BBB client is accessible. When a user sucessfully
|
# This URL is where the BBB client is accessible. When a user sucessfully
|
||||||
# enters a name and password, she is redirected here to load the client.
|
# enters a name and password, she is redirected here to load the client.
|
||||||
|
@ -140,6 +140,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
<property name="meetingExpireWhenLastUserLeftInMinutes" value="${meetingExpireWhenLastUserLeftInMinutes}"/>
|
<property name="meetingExpireWhenLastUserLeftInMinutes" value="${meetingExpireWhenLastUserLeftInMinutes}"/>
|
||||||
<property name="maxPresentationFileUpload" value="${maxFileSizeUpload}"/>
|
<property name="maxPresentationFileUpload" value="${maxFileSizeUpload}"/>
|
||||||
<property name="clientLogoutTimerInMinutes" value="${clientLogoutTimerInMinutes}"/>
|
<property name="clientLogoutTimerInMinutes" value="${clientLogoutTimerInMinutes}"/>
|
||||||
|
<property name="muteOnStart" value="${muteOnStart}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<import resource="doc-conversion.xml"/>
|
<import resource="doc-conversion.xml"/>
|
||||||
|
@ -161,10 +161,6 @@ class ApiController {
|
|||||||
|
|
||||||
Meeting newMeeting = paramsProcessorUtil.processCreateParams(params);
|
Meeting newMeeting = paramsProcessorUtil.processCreateParams(params);
|
||||||
|
|
||||||
if (! StringUtils.isEmpty(params.moderatorOnlyMessage)) {
|
|
||||||
newMeeting.setModeratorOnlyMessage(params.moderatorOnlyMessage);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (meetingService.createMeeting(newMeeting)) {
|
if (meetingService.createMeeting(newMeeting)) {
|
||||||
// See if the request came with pre-uploading of presentation.
|
// See if the request came with pre-uploading of presentation.
|
||||||
uploadDocuments(newMeeting); //
|
uploadDocuments(newMeeting); //
|
||||||
@ -1541,6 +1537,9 @@ class ApiController {
|
|||||||
bannerText = meeting.getBannerText()
|
bannerText = meeting.getBannerText()
|
||||||
bannerColor = meeting.getBannerColor()
|
bannerColor = meeting.getBannerColor()
|
||||||
}
|
}
|
||||||
|
customLogoURL = meeting.getCustomLogoURL()
|
||||||
|
customCopyright = meeting.getCustomCopyright()
|
||||||
|
muteOnStart = meeting.getMuteOnStart()
|
||||||
logoutUrl = us.logoutUrl
|
logoutUrl = us.logoutUrl
|
||||||
defaultLayout = us.defaultLayout
|
defaultLayout = us.defaultLayout
|
||||||
avatarURL = us.avatarURL
|
avatarURL = us.avatarURL
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
<attendees>
|
<attendees>
|
||||||
<#list meeting.getUsers() as att>
|
<#list meeting.getUsers() as att>
|
||||||
<attendee>
|
<attendee>
|
||||||
<userID>${att.getInternalUserId()}</userID>
|
<userID>${att.getExternalUserId()}</userID>
|
||||||
<fullName>${att.getFullname()?html}</fullName>
|
<fullName>${att.getFullname()?html}</fullName>
|
||||||
<role>${att.getRole()}</role>
|
<role>${att.getRole()}</role>
|
||||||
<isPresenter>${att.isPresenter()?c}</isPresenter>
|
<isPresenter>${att.isPresenter()?c}</isPresenter>
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
<attendees>
|
<attendees>
|
||||||
<#list meetingDetail.meeting.getUsers() as att>
|
<#list meetingDetail.meeting.getUsers() as att>
|
||||||
<attendee>
|
<attendee>
|
||||||
<userID>${att.getInternalUserId()}</userID>
|
<userID>${att.getExternalUserId()}</userID>
|
||||||
<fullName>${att.getFullname()?html}</fullName>
|
<fullName>${att.getFullname()?html}</fullName>
|
||||||
<role>${att.getRole()}</role>
|
<role>${att.getRole()}</role>
|
||||||
<isPresenter>${att.isPresenter()?c}</isPresenter>
|
<isPresenter>${att.isPresenter()?c}</isPresenter>
|
||||||
|
Loading…
Reference in New Issue
Block a user