diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/ApiParams.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/ApiParams.java index 94e835588a993122cf1d6774171f9bd3e07b2010..40b81a2828f4135e4e7d2488a0253302176b1d34 100755 --- a/bbb-common-web/src/main/java/org/bigbluebutton/api/ApiParams.java +++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/ApiParams.java @@ -43,6 +43,7 @@ public class ApiParams { public static final String MODERATOR_ONLY_MESSAGE = "moderatorOnlyMessage"; public static final String MODERATOR_PW = "moderatorPW"; public static final String MUTE_ON_START = "muteOnStart"; + public static final String MEETING_KEEP_EVENTS = "meetingKeepEvents"; public static final String ALLOW_MODS_TO_UNMUTE_USERS = "allowModsToUnmuteUsers"; public static final String NAME = "name"; public static final String PARENT_MEETING_ID = "parentMeetingID"; diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/MeetingService.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/MeetingService.java index fad6f60344ca23bfedaf9f6495dab960ff98e8f5..bf495f2b8d73d04d6bd45735f47643bc5ed1536e 100755 --- a/bbb-common-web/src/main/java/org/bigbluebutton/api/MeetingService.java +++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/MeetingService.java @@ -120,7 +120,6 @@ public class MeetingService implements MessageListener { private RedisStorageService storeService; private CallbackUrlService callbackUrlService; private HTML5LoadBalancingService html5LoadBalancingService; - private boolean keepEvents; private long usersTimeout; private long enteredUsersTimeout; @@ -356,7 +355,7 @@ public class MeetingService implements MessageListener { } private boolean storeEvents(Meeting m) { - return m.isRecord() || keepEvents; + return m.isRecord() || m.getMeetingKeepEvents(); } private void handleCreateMeeting(Meeting m) { @@ -404,6 +403,8 @@ public class MeetingService implements MessageListener { logData.put("logCode", "create_meeting"); logData.put("description", "Create meeting."); + logData.put("meetingKeepEvents", m.getMeetingKeepEvents()); + Gson gson = new Gson(); String logStr = gson.toJson(logData); @@ -417,7 +418,7 @@ public class MeetingService implements MessageListener { m.getDialNumber(), m.getMaxUsers(), m.getMeetingExpireIfNoUserJoinedInMinutes(), m.getmeetingExpireWhenLastUserLeftInMinutes(), m.getUserInactivityInspectTimerInMinutes(), m.getUserInactivityThresholdInMinutes(), - m.getUserActivitySignResponseDelayInMinutes(), m.getMuteOnStart(), m.getAllowModsToUnmuteUsers(), keepEvents, + m.getUserActivitySignResponseDelayInMinutes(), m.getMuteOnStart(), m.getAllowModsToUnmuteUsers(), m.getMeetingKeepEvents(), m.breakoutRoomsParams, m.lockSettingsParams, m.getHtml5InstanceId()); } @@ -697,7 +698,7 @@ public class MeetingService implements MessageListener { if (m != null) { m.setForciblyEnded(true); processRecording(m); - if (keepEvents) { + if (m.getMeetingKeepEvents()) { // The creation of the ended tag must occur after the creation of the // recorded tag to avoid concurrency issues at the recording scripts recordingService.markAsEnded(m.getInternalId()); @@ -1233,10 +1234,6 @@ public class MeetingService implements MessageListener { stunTurnService = s; } - public void setKeepEvents(boolean value) { - keepEvents = value; - } - public void setUsersTimeout(long value) { usersTimeout = value; } diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/ParamsProcessorUtil.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/ParamsProcessorUtil.java index 172265ded7707335045c915638c3f3e847352761..741d4099e03996d96100a42558e55f066e07b15d 100755 --- a/bbb-common-web/src/main/java/org/bigbluebutton/api/ParamsProcessorUtil.java +++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/ParamsProcessorUtil.java @@ -87,6 +87,7 @@ public class ParamsProcessorUtil { private boolean webcamsOnlyForModerator; private boolean defaultMuteOnStart = false; private boolean defaultAllowModsToUnmuteUsers = false; + private boolean defaultKeepEvents = false; private boolean defaultBreakoutRoomsEnabled; private boolean defaultBreakoutRoomsRecord; @@ -544,6 +545,12 @@ public class ParamsProcessorUtil { meeting.setMuteOnStart(muteOnStart); + Boolean meetingKeepEvents = defaultKeepEvents; + if (!StringUtils.isEmpty(params.get(ApiParams.MEETING_KEEP_EVENTS))) { + meetingKeepEvents = Boolean.parseBoolean(params.get(ApiParams.MEETING_KEEP_EVENTS)); + } + meeting.setMeetingKeepEvents(meetingKeepEvents); + Boolean allowModsToUnmuteUsers = defaultAllowModsToUnmuteUsers; if (!StringUtils.isEmpty(params.get(ApiParams.ALLOW_MODS_TO_UNMUTE_USERS))) { allowModsToUnmuteUsers = Boolean.parseBoolean(params.get(ApiParams.ALLOW_MODS_TO_UNMUTE_USERS)); @@ -1026,6 +1033,10 @@ public class ParamsProcessorUtil { return defaultMuteOnStart; } + public void setDefaultKeepEvents(Boolean mke) { + defaultKeepEvents = mke; + } + public void setAllowModsToUnmuteUsers(Boolean value) { defaultAllowModsToUnmuteUsers = value; } diff --git a/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/Meeting.java b/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/Meeting.java index e2884db3445619a0dab5912b404e20d21cec0200..b17b07c7fb5ae58ebfbd5e73a1e019b5148fd25f 100755 --- a/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/Meeting.java +++ b/bbb-common-web/src/main/java/org/bigbluebutton/api/domain/Meeting.java @@ -84,6 +84,7 @@ public class Meeting { private String customCopyright = ""; private Boolean muteOnStart = false; private Boolean allowModsToUnmuteUsers = false; + private Boolean meetingKeepEvents; private Integer meetingExpireIfNoUserJoinedInMinutes = 5; private Integer meetingExpireWhenLastUserLeftInMinutes = 1; @@ -503,6 +504,14 @@ public class Meeting { return muteOnStart; } + public void setMeetingKeepEvents(Boolean mke) { + meetingKeepEvents = mke; + } + + public Boolean getMeetingKeepEvents() { + return meetingKeepEvents; + } + public void setAllowModsToUnmuteUsers(Boolean value) { allowModsToUnmuteUsers = value; } diff --git a/bigbluebutton-web/grails-app/conf/bigbluebutton.properties b/bigbluebutton-web/grails-app/conf/bigbluebutton.properties index ae9a7bc0e3ac26b7d7382c94f1bdbc13f299b5fe..c62481f1e42982bcd993095866e00daa717297ee 100755 --- a/bigbluebutton-web/grails-app/conf/bigbluebutton.properties +++ b/bigbluebutton-web/grails-app/conf/bigbluebutton.properties @@ -222,7 +222,7 @@ muteOnStart=false allowModsToUnmuteUsers=false # Saves meeting events even if the meeting is not recorded -keepEvents=true +defaultKeepEvents=false # Timeout (millis) to remove a joined user after her/his left event without a rejoin # e.g. regular user left event diff --git a/bigbluebutton-web/grails-app/conf/spring/resources.xml b/bigbluebutton-web/grails-app/conf/spring/resources.xml index a7ca3763a06ed6bb15d2b26fadf11c0c22c1704b..f9ff00ca052b14efc1909acef44b01aceef19c75 100755 --- a/bigbluebutton-web/grails-app/conf/spring/resources.xml +++ b/bigbluebutton-web/grails-app/conf/spring/resources.xml @@ -54,7 +54,6 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. <property name="enteredUserCleanupTimerTask" ref="enteredUserCleanupTimerTask"/> <property name="gw" ref="bbbWebApiGWApp"/> <property name="callbackUrlService" ref="callbackUrlService"/> - <property name="keepEvents" value="${keepEvents}"/> <property name="usersTimeout" value="${usersTimeout}"/> <property name="enteredUsersTimeout" value="${enteredUsersTimeout}"/> </bean> @@ -164,6 +163,7 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>. <property name="lockSettingsLockOnJoinConfigurable" value="${lockSettingsLockOnJoinConfigurable}"/> <property name="allowDuplicateExtUserid" value="${allowDuplicateExtUserid}"/> <property name="endWhenNoModerator" value="${endWhenNoModerator}"/> + <property name="defaultKeepEvents" value="${defaultKeepEvents}"/> </bean> <import resource="doc-conversion.xml"/>