Skip to content

Commit

Permalink
Merge remote-tracking branch 'bbb/v2.7.x-release' into HEAD
Browse files Browse the repository at this point in the history
  • Loading branch information
antobinary committed Oct 20, 2023
2 parents 3f2a57f + 545712d commit 04c3628
Show file tree
Hide file tree
Showing 688 changed files with 18,086 additions and 5,957 deletions.
20 changes: 20 additions & 0 deletions .github/actions/merge-branches/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Merge branches
on:
workflow_call:

runs:
using: "composite"
steps:
- name: Checkout ${{ github.event.pull_request.base.ref || 'master' }}
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.base.ref || '' }}
fetch-depth: 0 # Fetch all history
- name: Merge pr-${{ github.event.number }} into ${{ github.event.pull_request.base.ref }}
if: github.event_name == 'pull_request'
shell: bash
run: |
git config user.name "BBB Automated Tests"
git config user.email "[email protected]"
git config pull.rebase false
git pull origin pull/${{ github.event.number }}/head:${{ github.head_ref }}
337 changes: 252 additions & 85 deletions .github/workflows/automated-tests.yml

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
- 'develop'
paths:
- 'docs/**'
- '.github/**'

# Do not build the docs concurrently
concurrency:
Expand Down
26 changes: 19 additions & 7 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ stages:

# define which docker image to use for builds
default:
image: bigbluebutton/bbb-build:v2.6.x-release--2023-08-30-211201
image: bigbluebutton/bbb-build:bbb27-2023-06-13-java17

# This stage uses git to find out since when each package has been unmodified.
# it then checks an API endpoint on the package server to find out for which of
Expand Down Expand Up @@ -47,11 +47,13 @@ get_external_dependencies:
- bbb-etherpad
- bbb-webhooks
- bbb-webrtc-sfu
- bbb-webrtc-recorder
- freeswitch
- bbb-pads
- bbb-playback
- bbb-transcription-controller
expire_in: 1h 30min

# template job for build step
.build_job:
stage: build
Expand Down Expand Up @@ -170,6 +172,16 @@ bbb-webrtc-sfu-build:
script:
- build/setup-inside-docker.sh bbb-webrtc-sfu

bbb-webrtc-recorder-build:
extends: .build_job
script:
- build/setup-inside-docker.sh bbb-webrtc-recorder

bbb-transcription-controller-build:
extends: .build_job
script:
- build/setup-inside-docker.sh bbb-transcription-controller

bigbluebutton-build:
extends: .build_job
script:
Expand All @@ -180,12 +192,12 @@ push_packages:
stage: push packages
script: build/push_packages.sh
resource_group: push_packages
# uncomment the lines below if you want one final
# "artifacts" dir with all packages (increases runtime, fills up space on gitlab server)

# uncomment the lines below if you want one final
# "artifacts" dir with all packages (increases runtime, fills up space on gitlab server)
#artifacts:
# paths:
# - artifacts/*
# expire_in: 2 days


10 changes: 5 additions & 5 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ We actively support BigBlueButton through the community forums and through secur

| Version | Supported |
| ------- | ------------------ |
| 2.4.x (or earlier) | :x: |
| 2.5.x   | :white_check_mark: |
| 2.5.x (or earlier) | :x: |
| 2.6.x   | :white_check_mark: |
| 2.7.x   | :x: |
| 2.7.x   | :white_check_mark: |
| 2.8.x   | :x: |

We have released 2.6 to the community and are going to support both 2.5 and 2.6 together for the coming months (while we're actively developing the next release). Also, BigBlueButton 2.4 is now end of life.
We have released 2.7 to the community and are going to support both 2.6 and 2.7 together for the coming months (while we're actively developing the next release). Also, BigBlueButton 2.5 is now end of life.

As such, we recommend that all administrators deploy 2.6 going forward. You'll find [many improvements](https://docs.bigbluebutton.org/2.6/new.html) in this newer version.
As such, we recommend that all administrators deploy 2.7 going forward. You'll find [many improvements](https://docs.bigbluebutton.org/2.7/new-features) in this newer version.

## Reporting a Vulnerability

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ trait SystemConfiguration {
lazy val syncVoiceUsersStatusInterval = Try(config.getInt("voiceConf.syncUserStatusInterval")).getOrElse(43)
lazy val ejectRogueVoiceUsers = Try(config.getBoolean("voiceConf.ejectRogueVoiceUsers")).getOrElse(true)
lazy val dialInApprovalAudioPath = Try(config.getString("voiceConf.dialInApprovalAudioPath")).getOrElse("ivr/ivr-please_hold_while_party_contacted.wav")
lazy val toggleListenOnlyAfterMuteTimer = Try(config.getInt("voiceConf.toggleListenOnlyAfterMuteTimer")).getOrElse(4)

lazy val recordingChapterBreakLengthInMinutes = Try(config.getInt("recording.chapterBreakLengthInMinutes")).getOrElse(0)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ object BreakoutModel {
case class BreakoutModel(
startedOn: Option[Long],
durationInSeconds: Int,
rooms: Map[String, BreakoutRoom2x]
rooms: Map[String, BreakoutRoom2x],
sendInviteToModerators: Boolean,
) {

def find(id: String): Option[BreakoutRoom2x] = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,14 @@ object ScreenshareModel {
def getHasAudio(status: ScreenshareModel): Boolean = {
status.hasAudio
}

def setContentType(status: ScreenshareModel, contentType: String): Unit = {
status.contentType = contentType
}

def getContentType(status: ScreenshareModel): String = {
status.contentType
}
}

class ScreenshareModel {
Expand All @@ -103,4 +111,5 @@ class ScreenshareModel {
private var screenshareConf: String = ""
private var timestamp: String = ""
private var hasAudio = false
private var contentType = "camera"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
package org.bigbluebutton.core.apps

object TimerModel {
def createTimer(
model: TimerModel,
stopwatch: Boolean = true,
time: Int = 0,
accumulated: Int = 0,
track: String = "",
): Unit = {
model.stopwatch = stopwatch
model.time = time
model.accumulated = accumulated
model.track = track
}

def reset(model: TimerModel, stopwatch: Boolean, time: Int, accumulated: Int, startedAt: Long, track: String) : Unit = {
model.stopwatch = stopwatch
model.time = time
model.accumulated = accumulated
model.startedAt = startedAt
model.track = track
model.endedAt = 0
}

def setIsActive(model: TimerModel, active: Boolean): Unit = {
model.isActive = active
}

def getIsACtive(model: TimerModel): Boolean = {
model.isActive
}

def setStartedAt(model: TimerModel, timestamp: Long): Unit = {
model.startedAt = timestamp
}

def getStartedAt(model: TimerModel): Long = {
model.startedAt
}

def setAccumulated(model: TimerModel, accumulated: Int): Unit = {
model.accumulated = accumulated
}

def getAccumulated(model: TimerModel): Int = {
model.accumulated
}

def setRunning(model: TimerModel, running: Boolean): Unit = {
model.running = running
}

def getRunning(model: TimerModel): Boolean = {
model.running
}

def setStopwatch(model: TimerModel, stopwatch: Boolean): Unit = {
model.stopwatch = stopwatch
}

def getStopwatch(model: TimerModel): Boolean = {
model.stopwatch
}

def setTrack(model: TimerModel, track: String): Unit = {
model.track = track
}

def getTrack(model: TimerModel): String = {
model.track
}

def setTime(model: TimerModel, time: Int): Unit = {
model.time = time
}

def getTime(model: TimerModel): Int = {
model.time
}

def setEndedAt(model: TimerModel, timestamp: Long): Unit = {
model.endedAt = timestamp
}

def getEndedAt(model: TimerModel): Long = {
model.endedAt
}
}

class TimerModel {
private var startedAt: Long = 0
private var endedAt: Long = 0
private var accumulated: Int = 0
private var running: Boolean = false
private var time: Int = 0
private var stopwatch: Boolean = true
private var track: String = ""
private var isActive: Boolean = false
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ trait UpdateTranscriptPubMsgHdlr {
def handle(msg: UpdateTranscriptPubMsg, liveMeeting: LiveMeeting, bus: MessageBus): Unit = {
val meetingId = liveMeeting.props.meetingProp.intId

def broadcastEvent(userId: String, transcriptId: String, transcript: String, locale: String): Unit = {
def broadcastEvent(userId: String, transcriptId: String, transcript: String, locale: String, result: Boolean): Unit = {
val routing = Routing.addMsgToClientRouting(MessageTypes.DIRECT, meetingId, "nodeJSapp")
val envelope = BbbCoreEnvelope(TranscriptUpdatedEvtMsg.NAME, routing)
val header = BbbClientMsgHeader(TranscriptUpdatedEvtMsg.NAME, meetingId, userId)
val body = TranscriptUpdatedEvtMsgBody(transcriptId, transcript, locale)
val body = TranscriptUpdatedEvtMsgBody(transcriptId, transcript, locale, result)
val event = TranscriptUpdatedEvtMsg(header, body)
val msgEvent = BbbCommonEnvCoreMsg(envelope, event)

Expand Down Expand Up @@ -67,7 +67,8 @@ trait UpdateTranscriptPubMsgHdlr {
msg.header.userId,
msg.body.transcriptId,
transcript,
msg.body.locale
msg.body.locale,
msg.body.result,
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@ trait BreakoutRoomCreatedMsgHdlr {
}
}

def buildBreakoutRoomsListEvtMsg(meetingId: String, rooms: Vector[BreakoutRoomInfo], roomsReady: Boolean): BbbCommonEnvCoreMsg = {
def buildBreakoutRoomsListEvtMsg(meetingId: String, rooms: Vector[BreakoutRoomInfo], roomsReady: Boolean, sendInviteToModerators: Boolean): BbbCommonEnvCoreMsg = {
val routing = Routing.addMsgToClientRouting(MessageTypes.BROADCAST_TO_MEETING, meetingId, "not-used")
val envelope = BbbCoreEnvelope(BreakoutRoomsListEvtMsg.NAME, routing)
val header = BbbClientMsgHeader(BreakoutRoomsListEvtMsg.NAME, meetingId, "not-used")

val body = BreakoutRoomsListEvtMsgBody(meetingId, rooms, roomsReady)
val body = BreakoutRoomsListEvtMsgBody(meetingId, rooms, roomsReady, sendInviteToModerators)
val event = BreakoutRoomsListEvtMsg(header, body)
BbbCommonEnvCoreMsg(envelope, event)
}
Expand All @@ -57,7 +57,7 @@ trait BreakoutRoomCreatedMsgHdlr {

log.info("Sending breakout rooms list to {} with containing {} room(s)", liveMeeting.props.meetingProp.intId, breakoutRooms.length)

val msgEvent = buildBreakoutRoomsListEvtMsg(liveMeeting.props.meetingProp.intId, breakoutRooms, true)
val msgEvent = buildBreakoutRoomsListEvtMsg(liveMeeting.props.meetingProp.intId, breakoutRooms, true, breakoutModel.sendInviteToModerators)
outGW.send(msgEvent)

breakoutModel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@ trait BreakoutRoomsListMsgHdlr {

def handleBreakoutRoomsListMsg(msg: BreakoutRoomsListMsg, state: MeetingState2x): MeetingState2x = {

def broadcastEvent(rooms: Vector[BreakoutRoomInfo], roomsReady: Boolean): Unit = {
def broadcastEvent(rooms: Vector[BreakoutRoomInfo], roomsReady: Boolean, sendInviteToModerators: Boolean): Unit = {
log.info("Sending breakout rooms list to {} with containing {} room(s)", props.meetingProp.intId, rooms.length)

val routing = Routing.addMsgToClientRouting(MessageTypes.BROADCAST_TO_MEETING, props.meetingProp.intId, msg.header.userId)
val envelope = BbbCoreEnvelope(BreakoutRoomsListEvtMsg.NAME, routing)
val header = BbbClientMsgHeader(BreakoutRoomsListEvtMsg.NAME, props.meetingProp.intId, msg.header.userId)

val body = BreakoutRoomsListEvtMsgBody(msg.body.meetingId, rooms, roomsReady)
val body = BreakoutRoomsListEvtMsgBody(msg.body.meetingId, rooms, roomsReady, sendInviteToModerators)
val event = BreakoutRoomsListEvtMsg(header, body)
val msgEvent = BbbCommonEnvCoreMsg(envelope, event)
outGW.send(msgEvent)
Expand All @@ -31,7 +31,7 @@ trait BreakoutRoomsListMsgHdlr {
new BreakoutRoomInfo(r.name, r.externalId, r.id, r.sequence, r.shortName, r.isDefaultName, r.freeJoin, Map(), r.captureNotes, r.captureSlides)
}
val ready = breakoutModel.hasAllStarted()
broadcastEvent(rooms, ready)
broadcastEvent(rooms, ready, breakoutModel.sendInviteToModerators)
}

state
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ trait CreateBreakoutRoomsCmdMsgHdlr extends RightsManagementTrait {
outGW.send(event)
}

val breakoutModel = new BreakoutModel(None, msg.body.durationInMinutes * 60, rooms)
val breakoutModel = new BreakoutModel(None, msg.body.durationInMinutes * 60, rooms, msg.body.sendInviteToModerators)
state.update(Some(breakoutModel))
}

Expand Down
Loading

0 comments on commit 04c3628

Please sign in to comment.