1

I want to check how many active meetings there are on the BBB server at any one time from the command line. I have tried

$ bbb-conf --network

but not getting anywhere. I have also checked the number of active connections to port 80 and 443

$ netstat -anp | grep :443 | grep ESTABLISHED | wc -l

but I'm not sure if I can trust that figure.

I know I can use the isMeetingRunning call from the API but I'm just looking for command line.

Any ideas would be appreciated

Mark Kenny
  • 1,598
  • 2
  • 17
  • 30

1 Answers1

6

The following bash script, which can be run from command line on the same machine as the BigBlueButton server, will process the response to the BBB API getMeetings call.

#!/bin/bash

APICallName="getMeetings"
APIQueryString=""

X=$( bbb-conf --secret | fgrep URL: )
APIEndPoint=${X##* }
Y=$( bbb-conf --secret | fgrep Secret: )
Secret=${Y##* }
S=$APICallName$APIQueryString$Secret
Checksum=$( echo -n $S | sha1sum | cut -f 1 -d ' ' )
if [[ "$APIQueryString" == "" ]]
then
        URL="${APIEndPoint}api/$APICallName?checksum=$Checksum"
else
        URL="${APIEndPoint}api/$APICallName?$APIQueryString&checksum=$Checksum"
fi
wget -q -O - "$URL" | grep -o '<meetingID>' | wc -w

Tested on a live BBB machine.

Note:

  • The APICallName and APIQueryString can be modified to provide interface to other BBB API calls. See https://docs.bigbluebutton.org/dev/api.html

  • The command-line sha1sum will output a different result if a newline is appended to its input. This is the reason echo -n is used instead of echo.

  • In the last line, the script processes the XML output from the API call in a very naïve way, simply counting the number of occurences of the <meetingID> tag. More elaborate processing would probably require parsing the XML.

ybazlov
  • 76
  • 2