diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/BigBlueButtonActor.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/BigBlueButtonActor.scala index 44ecc08fdce31b2d8a4b169758d94327c833d63e..9ee83dfc08914b29b50f006028ac9e988e7bbb37 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/BigBlueButtonActor.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/BigBlueButtonActor.scala @@ -74,6 +74,7 @@ class BigBlueButtonActor( case m: RegisterUserReqMsg => handleRegisterUserReqMsg(m) case m: EjectDuplicateUserReqMsg => handleEjectDuplicateUserReqMsg(m) case m: GetAllMeetingsReqMsg => handleGetAllMeetingsReqMsg(m) + case m: GetRunningMeetingsReqMsg => handleGetRunningMeetingsReqMsg(m) case m: CheckAlivePingSysMsg => handleCheckAlivePingSysMsg(m) case m: ValidateConnAuthTokenSysMsg => handleValidateConnAuthTokenSysMsg(m) case _ => log.warning("Cannot handle " + msg.envelope.name) @@ -141,7 +142,20 @@ class BigBlueButtonActor( // do nothing } + } + + private def handleGetRunningMeetingsReqMsg(msg: GetRunningMeetingsReqMsg): Unit = { + val liveMeetings = RunningMeetings.meetings(meetings) + val meetingIds = liveMeetings.map(m => m.props.meetingProp.intId) + + val routing = collection.immutable.HashMap("sender" -> "bbb-apps-akka") + val envelope = BbbCoreEnvelope(GetRunningMeetingsRespMsg.NAME, routing) + val header = BbbCoreBaseHeader(GetRunningMeetingsRespMsg.NAME) + val body = GetRunningMeetingsRespMsgBody(meetingIds) + val event = GetRunningMeetingsRespMsg(header, body) + val msgEvent = BbbCommonEnvCoreMsg(envelope, event) + outGW.send(msgEvent) } private def handleGetAllMeetingsReqMsg(msg: GetAllMeetingsReqMsg): Unit = { diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala index b6e32aab55b961116fe513bdb0aad2fd5b7d68c3..95afd7b51f299ecab5164b6c2b164a2043b72cc6 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala @@ -221,6 +221,7 @@ class MeetingActor( case m: EjectDuplicateUserReqMsg => usersApp.handleEjectDuplicateUserReqMsg(m) case m: GetAllMeetingsReqMsg => handleGetAllMeetingsReqMsg(m) + case m: GetRunningMeetingStateReqMsg => handleGetRunningMeetingStateReqMsg(m) case m: ValidateConnAuthTokenSysMsg => handleValidateConnAuthTokenSysMsg(m) // Meeting @@ -493,7 +494,11 @@ class MeetingActor( } } - def handleGetAllMeetingsReqMsg(msg: GetAllMeetingsReqMsg): Unit = { + def handleGetRunningMeetingStateReqMsg(msg: GetRunningMeetingStateReqMsg): Unit = { + processGetRunningMeetingStateReqMsg() + } + + def processGetRunningMeetingStateReqMsg(): Unit = { // sync all meetings handleSyncGetMeetingInfoRespMsg(liveMeeting.props) @@ -513,7 +518,10 @@ class MeetingActor( handleSyncGetLockSettingsMsg(state, liveMeeting, msgBus) // TODO send all screen sharing info + } + def handleGetAllMeetingsReqMsg(msg: GetAllMeetingsReqMsg): Unit = { + processGetRunningMeetingStateReqMsg() } def handlePresenterChange(msg: AssignPresenterReqMsg, state: MeetingState2x): MeetingState2x = { diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/AnalyticsActor.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/AnalyticsActor.scala index c7b4b094865e1b0edd11770f392ee1f58556d7ce..1db1c5ddb839c1d105326aa2dcd4fab6b0bdfe1c 100755 --- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/AnalyticsActor.scala +++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/core2/AnalyticsActor.scala @@ -31,6 +31,8 @@ class AnalyticsActor extends Actor with ActorLogging { msg.core match { case m: GetAllMeetingsReqMsg => logMessage(msg) + case m: GetRunningMeetingsRespMsg => logMessage(msg) + case m: GetRunningMeetingsReqMsg => logMessage(msg) case m: RegisterUserReqMsg => logMessage(msg) case m: RegisteredUserJoinTimeoutMsg => logMessage(msg) diff --git a/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/SystemMsgs.scala b/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/SystemMsgs.scala index 677c475b91c530bb8d157c38c31a38017be28070..0337441ffd7fb3a8c4087e58d2fa2a32af061837 100755 --- a/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/SystemMsgs.scala +++ b/bbb-common-message/src/main/scala/org/bigbluebutton/common2/msgs/SystemMsgs.scala @@ -37,6 +37,27 @@ case class GetAllMeetingsReqMsg( ) extends BbbCoreMsg case class GetAllMeetingsReqMsgBody(requesterId: String) +object GetRunningMeetingsReqMsg { val NAME = "GetRunningMeetingsReqMsg" } +case class GetRunningMeetingsReqMsg( + header: BbbCoreBaseHeader, + body: GetRunningMeetingsReqMsgBody +) extends BbbCoreMsg +case class GetRunningMeetingsReqMsgBody(requesterId: String) + +object GetRunningMeetingsRespMsg { val NAME = "GetRunningMeetingsRespMsg" } +case class GetRunningMeetingsRespMsg( + header: BbbCoreBaseHeader, + body: GetRunningMeetingsRespMsgBody +) extends BbbCoreMsg +case class GetRunningMeetingsRespMsgBody(meetings: Vector[String]) + +object GetRunningMeetingStateReqMsg { val NAME = "GetRunningMeetingStateReqMsg" } +case class GetRunningMeetingStateReqMsg( + header: BbbCoreBaseHeader, + body: GetRunningMeetingStateReqMsgBody +) extends BbbCoreMsg +case class GetRunningMeetingStateReqMsgBody(meetingId: String) + object PubSubPingSysReqMsg { val NAME = "PubSubPingSysReqMsg" } case class PubSubPingSysReqMsg( header: BbbCoreBaseHeader,