This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 5b9d87b  [OPENMEETINGS-2239] sip room count works better
5b9d87b is described below

commit 5b9d87b2ddd38477478a55eff7d7c89e8c7d0693
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Thu Dec 17 22:32:53 2020 +0700

    [OPENMEETINGS-2239] sip room count works better
---
 .../main/java/org/apache/openmeetings/core/remote/KRoom.java |  6 +++---
 .../java/org/apache/openmeetings/core/remote/KStream.java    |  2 +-
 .../org/apache/openmeetings/core/remote/KurentoHandler.java  |  2 +-
 .../java/org/apache/openmeetings/core/sip/SipManager.java    | 12 ++++++++----
 .../java/org/apache/openmeetings/web/app/TimerService.java   |  2 +-
 .../main/java/org/apache/openmeetings/web/room/raw-room.js   |  2 +-
 6 files changed, 15 insertions(+), 11 deletions(-)

diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
index 8caaaae..2062c5b 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
@@ -67,7 +67,7 @@ public class KRoom {
        private final AtomicBoolean recordingStarted = new AtomicBoolean(false);
        private final AtomicBoolean sharingStarted = new AtomicBoolean(false);
        private Long recordingId = null;
-       private int sipCount = 0;
+       private long sipCount = 0;
        private JSONObject recordingUser = new JSONObject();
        private JSONObject sharingUser = new JSONObject();
 
@@ -249,14 +249,14 @@ public class KRoom {
                log.debug("Room {} closed", room.getId());
        }
 
-       public void updateSipCount(final int count) {
+       public void updateSipCount(final long count) {
                if (count != sipCount) {
                        sipCount = count;
                        processor.getByRoom(room.getId()).forEach(stream -> 
stream.addSipProcessor(count));
                }
        }
 
-       public int getSipCount() {
+       public long getSipCount() {
                return sipCount;
        }
 }
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
index 20b2bb5..c7fb37a 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
@@ -488,7 +488,7 @@ public class KStream extends AbstractStream implements 
ISipCallbacks {
                }
        }
 
-       void addSipProcessor(int count) {
+       void addSipProcessor(long count) {
                if (count > 0) {
                        if (sipProcessor.isEmpty()) {
                                try {
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
index 4dc8a07..1e8ebb4 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
@@ -317,7 +317,7 @@ public class KurentoHandler {
                return rooms.values();
        }
 
-       public void updateSipCount(Room r, int count) {
+       public void updateSipCount(Room r, long count) {
                getRoom(r.getId()).updateSipCount(count);
        }
 
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipManager.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipManager.java
index 391f551..ac8fc06 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipManager.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipManager.java
@@ -44,6 +44,7 @@ import org.asteriskjava.manager.action.DbPutAction;
 import org.asteriskjava.manager.action.EventGeneratingAction;
 import org.asteriskjava.manager.action.ManagerAction;
 import org.asteriskjava.manager.action.OriginateAction;
+import org.asteriskjava.manager.event.ConfbridgeListEvent;
 import org.asteriskjava.manager.response.ManagerError;
 import org.asteriskjava.manager.response.ManagerResponse;
 import org.slf4j.Logger;
@@ -194,14 +195,17 @@ public class SipManager implements ISipManager {
                exec(da);
        }
 
-       public int countUsers(String confno) {
+       public long countUsers(String confno) {
                if (confno != null) {
                        ConfbridgeListAction da = new 
ConfbridgeListAction(confno);
                        ResponseEvents r = execEvent(da);
                        if (r != null) {
-                               log.trace("SipManager::countUsers size == {}", 
r.getEvents().size());
-                               // "- 1" here means: ListComplete event
-                               return r.getEvents().size() - 1;
+                               long count = r.getEvents().stream()
+                                               .filter(evt -> evt instanceof 
ConfbridgeListEvent)
+                                               .filter(evt -> 
!omSipUser.equals(evt.getCallerIdName()))
+                                               .count();
+                               log.trace("SipManager::countUsers == {}", 
count);
+                               return count;
                        }
                }
                return 0;
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
index bf9ca35..422755a 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
@@ -100,7 +100,7 @@ public class TimerService {
        }
 
        private void updateSipLastName(Optional<Client> sipClient, Room r) {
-               int count = sipManager.countUsers(r.getConfno());
+               long count = sipManager.countUsers(r.getConfno());
                final String newLastName = "(" + count + ")";
                kHandler.updateSipCount(r, count);
                sipClient.ifPresentOrElse(c -> {
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-room.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-room.js
index a54e350..b54fbf6 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-room.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-room.js
@@ -121,7 +121,7 @@ var Room = (function() {
                const sbW = _sbWidth()
                        , holder = $('.room-block');
                ($('.main.room')[0]).style.setProperty('--sidebar-width', sbW + 
'px');
-               if (sbW > 285) {
+               if (sbW > 236) {
                        holder.addClass('big').removeClass('narrow');
                } else {
                        holder.removeClass('big').addClass('narrow');

Reply via email to