From ebf883d0878e5e4c2792a5db5b261bbc1c6fcffa Mon Sep 17 00:00:00 2001
From: Richard Alam <ritzalam@gmail.com>
Date: Sat, 24 Apr 2021 02:23:17 +0000
Subject: [PATCH]  - add flag to not log the chat messages

---
 .../main/scala/org/bigbluebutton/Boot.scala   |  2 +-
 .../bigbluebutton/SystemConfiguration.scala   |  2 ++
 .../bigbluebutton/core2/AnalyticsActor.scala  | 26 ++++++++++++-------
 .../src/universal/conf/application.conf       |  4 +++
 4 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/Boot.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/Boot.scala
index 47310b3e2a..f4935d813f 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/Boot.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/Boot.scala
@@ -57,7 +57,7 @@ object Boot extends App with SystemConfiguration {
 
   val fromAkkaAppsMsgSenderActorRef = system.actorOf(FromAkkaAppsMsgSenderActor.props(msgSender))
 
-  val analyticsActorRef = system.actorOf(AnalyticsActor.props())
+  val analyticsActorRef = system.actorOf(AnalyticsActor.props(analyticsIncludeChat))
   outBus2.subscribe(fromAkkaAppsMsgSenderActorRef, outBbbMsgMsgChannel)
   outBus2.subscribe(redisRecorderActor, recordServiceMessageChannel)
 
diff --git a/akka-bbb-apps/src/main/scala/org/bigbluebutton/SystemConfiguration.scala b/akka-bbb-apps/src/main/scala/org/bigbluebutton/SystemConfiguration.scala
index 78efc0bf0a..8b4e62a0b3 100755
--- a/akka-bbb-apps/src/main/scala/org/bigbluebutton/SystemConfiguration.scala
+++ b/akka-bbb-apps/src/main/scala/org/bigbluebutton/SystemConfiguration.scala
@@ -74,6 +74,8 @@ trait SystemConfiguration {
   lazy val toAkkaTranscodeJsonChannel = Try(config.getString("eventBus.toAkkaTranscodeJsonChannel")).getOrElse("to-akka-transcode-json-channel")
   lazy val fromAkkaTranscodeJsonChannel = Try(config.getString("eventBus.fromAkkaTranscodeJsonChannel")).getOrElse("from-akka-transcode-json-channel")
 
+  lazy val analyticsIncludeChat = Try(config.getBoolean("analytics.includeChat")).getOrElse(true)
+
   // Grab the "interface" parameter from the http config
   val httpHost = config.getString("http.interface")
   // Grab the "port" parameter from the http config
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 7b7c1e4d81..8f2b951e5e 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
@@ -5,10 +5,10 @@ import org.bigbluebutton.common2.msgs._
 import org.bigbluebutton.common2.util.JsonUtil
 
 object AnalyticsActor {
-  def props(): Props = Props(classOf[AnalyticsActor])
+  def props(includeChat: Boolean): Props = Props(classOf[AnalyticsActor], includeChat)
 }
 
-class AnalyticsActor extends Actor with ActorLogging {
+class AnalyticsActor(val includeChat: Boolean) extends Actor with ActorLogging {
 
   val TAG = "-- analytics -- "
 
@@ -22,6 +22,12 @@ class AnalyticsActor extends Actor with ActorLogging {
     log.info(TAG + json)
   }
 
+  def logChatMessage(msg: BbbCommonEnvCoreMsg): Unit = {
+    if (includeChat) {
+      logMessage(msg)
+    }
+  }
+
   def traceMessage(msg: BbbCommonEnvCoreMsg): Unit = {
     val json = JsonUtil.toJson(msg)
     log.info(" -- trace -- " + json)
@@ -124,14 +130,14 @@ class AnalyticsActor extends Actor with ActorLogging {
       case m: PresentationUploadedFileTooLargeErrorEvtMsg => logMessage(msg)
 
       // Group Chats
-      case m: SendGroupChatMessageMsg => logMessage(msg)
-      case m: GroupChatMessageBroadcastEvtMsg => logMessage(msg)
-      case m: GetGroupChatMsgsReqMsg => logMessage(msg)
-      case m: GetGroupChatMsgsRespMsg => logMessage(msg)
-      case m: CreateGroupChatReqMsg => logMessage(msg)
-      case m: GroupChatCreatedEvtMsg => logMessage(msg)
-      case m: GetGroupChatsReqMsg => logMessage(msg)
-      case m: GetGroupChatsRespMsg => logMessage(msg)
+      case m: SendGroupChatMessageMsg => logChatMessage(msg)
+      case m: GroupChatMessageBroadcastEvtMsg => logChatMessage(msg)
+      case m: GetGroupChatMsgsReqMsg => logChatMessage(msg)
+      case m: GetGroupChatMsgsRespMsg => logChatMessage(msg)
+      case m: CreateGroupChatReqMsg => logChatMessage(msg)
+      case m: GroupChatCreatedEvtMsg => logChatMessage(msg)
+      case m: GetGroupChatsReqMsg => logChatMessage(msg)
+      case m: GetGroupChatsRespMsg => logChatMessage(msg)
 
       // Guest Management
       case m: GuestsWaitingApprovedMsg => logMessage(msg)
diff --git a/akka-bbb-apps/src/universal/conf/application.conf b/akka-bbb-apps/src/universal/conf/application.conf
index 03186f423b..2a0562926f 100755
--- a/akka-bbb-apps/src/universal/conf/application.conf
+++ b/akka-bbb-apps/src/universal/conf/application.conf
@@ -78,6 +78,10 @@ apps {
   endMeetingWhenNoMoreAuthedUsersAfterMinutes = 2
 }
 
+analytics {
+  includeChat = true
+}
+
 voiceConf {
   recordPath = "/var/freeswitch/meetings"
   # Use ogg instead of wav to get smaller audio files.
-- 
GitLab