Commit Graph

301 Commits

Author SHA1 Message Date
Anton Georgiev
23ea53e452
recording: work around invalid locale in caption events (#19682)
This is a workaround for #19178 - but it does not fix the issue. The
caption recording events with invalid empty `<locale/>` are simply
dropped with a warning message, to allow the recording and any valid
caption streams present to be processed.

Co-authored-by: Calvin Walton <calvin.walton@blindsidenetworks.com>
2024-02-23 20:59:34 -05:00
Daniel Petri Rocha
6c766acc9c
Use semantic versioning
Both bbb-playback and the recording processing scripts fail if the version string is not in the format MAJOR.MINOR.PATCH (3.0.0 in this case instead of 3.0)
2023-12-14 23:10:24 +01:00
danielpetri1
84d341cb94 Bump bbb_version to 3.0 in bigbluebutton.yml 2023-12-12 19:41:09 +01:00
Gustavo Trott
9da3543bc3 Resolve conflicts 2023-09-11 11:25:56 -03:00
prlanzarin
40b642969c fix(recording): handle archive remux failures
Recording archive may fail when remuxing invalid files from KMS or the
new recorder - eg when the raw files are 0-byte sized.

This commit handles the exception raised by EDL::encode so archive keeps
going, logs the issue as a warning and archives the problematic file anyways.
EDL::encode now removes the temporary file when the ffmpeg command execution
fails - this should avoid leaving any stale files around in case of failure.

No specific check for the nature of the error is done - the idea is that
subsequent phases will discard or fix the files if necessary according
to the processing scripts' necessities, making the behavior (in this
specific scenario) similar to what it was before the archive remuxing was
introduced.
2023-09-07 11:57:55 -03:00
Gustavo Trott
201b6949a3 Resolve conflicts 2023-08-22 15:07:42 -03:00
prlanzarin
bba4658dd3 fix(recording): remux bbb-webrtc-recorder and KMS files during archive
Kurento may *rarely* generate WebM/MKV files with corrupt or absent
SeekHead sectors. bbb-webrtc-recorder also doesn't generate SeekHead or
even the Cues sectors by default.

While those are are *optional* fields by spec, files need to be seekable
for our recording processing scripts to work.

This commit adds a remuxing step for Kurento and bbb-webrtc-recorder raw
files that is executed during the archive phase. It should re-include
any of the missing fields that make files seekable and restore the Cues
sector in WebM files.
2023-08-17 12:38:52 -03:00
Gustavo Trott
51bdcededc Merge 2.7 into develop 2023-05-26 10:50:39 -03:00
Anton Georgiev
25af259d2d Merge branch 'v2.6.x-release' of github.com:bigbluebutton/bigbluebutton into merge-may-24 2023-05-24 17:23:00 -04:00
hiroshisuga
71c54860a6
Update gen_webvtt 2023-05-22 12:18:17 +09:00
hiroshisuga
2ae085c5e0
Update README 2023-05-21 21:21:38 +09:00
Anton Georgiev
0fccb78ee1 build-conf: Remove Kurento dependency; Run on Ubuntu 22.04 2023-04-25 15:08:36 -04:00
prlanzarin
538954a6ae build: add bbb-webrtc-recorder 2023-04-20 16:24:34 -03:00
Ramón Souza
3d4d623f16 update bbb version in record-and-playback 2023-03-21 15:07:10 -03:00
germanocaumo
1ae8e5c35d fix(recording): bump bbb_version to 2.6.0 in events.xml
- Update the version to 2.6.0 to ease the detection of old/new whiteboard events
- Fix recording cursor when there is no pan/zoom and annotations in tldraw
- Don't generate slides pngs for 2.6.0, they are not used anymore in playback (svgs instead).
2022-07-29 11:18:30 +00:00
Anton Georgiev
61b269eca8
Merge pull request #15171 from GuiLeme/issue-15051
refactor: Removed all traces of Red5
2022-06-29 12:09:02 -04:00
GuiLeme
ac2e68842c Merge remote-tracking branch 'upstream/v2.6.x-release' into issue-15051 2022-06-20 16:12:25 -03:00
GuiLeme
7363c36448 [issue-15160] - fixed error logs in recordings 2022-06-16 09:13:31 -03:00
GuiLeme
beb0b507e0 [issue-15051] - Refactored all traces from Red5 2022-06-13 08:19:08 -03:00
Calvin Walton
9abc934537 Fix rap-enqueue.rb to load gems with bundler
In BBB 2.5, we switched the recording system to use bundled gems
included privately in the recording package, rather than installed
system-wide. The rap-enqueue.rb script needs to be updated to load the
bundler gems.

According to bundler devs, setting the BUNDLE_GEMFILE environement
variable is the supported way to tell bundler where to find it
(otherwise bundler will search starting at the current working directory
- which in the case of rap-enqueue.rb is probably nowhere near the
Gemfile).

Use a relative path from the directory where the script is located so it
can be run both when installed and from a development environment.

Switch the script interpreter to use /usr/bin/env to load ruby from the
path. Doesn't make a difference in the installed package, but it makes
testing on development systems with multiple ruby environments easier.

Fixes #15085
2022-05-31 18:13:33 -04:00
Gustavo Trott
14815184e6
Merge pull request #14911 from GuiLeme/issue-9789 2022-05-10 13:24:11 -03:00
Guilherme Pereira Leme
be6184c9e9
Changes in review
Co-authored-by: Gustavo Trott <gustavo@trott.com.br>
2022-05-05 09:53:38 -03:00
Guilherme Leme
d438367e36 [issue-14819] - Changes in review 2022-05-02 16:41:02 -03:00
Guilherme Leme
ab9d4fa9d4 [issue-14819] - implemented features. 2022-05-02 16:04:37 -03:00
Guilherme Leme
5763595d66 [issue-9789] - Changes in review. 2022-05-02 09:42:00 -03:00
Guilherme Leme
2c3c10115e [issue-9789] - change property showModeratorViewpoint's file 2022-04-29 16:43:24 -03:00
Calvin Walton
db2d8efa0d bbb-record-core: Update systemd units to use bundler
Several scripts internally run bundler setup, so no explicit bundler
command is needed. For the others, start up using /usr/bin/bundle
(installed by ruby-bundler) to load the environment.
2022-03-29 12:41:27 -04:00
Daniel Petri Rocha
8a8a03fab5 Resolve merge conflict; update README 2022-03-22 16:11:44 +01:00
Daniel Petri Rocha
61bc318211
Merge branch 'bigbluebutton:develop' into faster-publish 2022-01-31 16:23:00 +01:00
Pedro Beschorner Marin
810deb907b refactor(etherpad): access control et al.
Move all Etherpad's access control from Meteor to a separated [Node application](https://github.com/bigbluebutton/bbb-pads).
This new app uses [Etherpad's API](https://etherpad.org/doc/v1.8.4/#index_overview)
to create groups and manage session tokens for users to access them. Each group
represents one distinct pad at the html5 client.

- Removed locked users' access to pads: replaced readOnly pad's access with a new pad's content sharing routine
- Pad's access is now controlled by [Etherpad's API](https://etherpad.org/doc/v1.8.4/#index_overview)
- Closed captions edited content now reflects at it's live feedback
- Improved closed caption's dictation mode live feedback
- Moved all Etherpad's API control from Meteor to a separated [app](https://github.com/bigbluebutton/bbb-pads)
- Included access control both in akka-apps and bbb-pads
2022-01-21 16:56:01 -03:00
Fred Dixon
5743b29eba
Merge pull request #11805 from sebastianberm/patch-2
Updated usage section of analytics script to match actual syntax
2022-01-03 16:38:19 -04:00
Daniel Petri Rocha
4328222c82 Merge with fill shape fix 2021-12-16 13:01:26 +01:00
Daniel Petri Rocha
869f289290 Update README instructions to setup a recording development environment 2021-12-05 15:37:47 +01:00
Felipe Cecagno
b313c7deeb refactor(record-and-playback): replace trollop by optimist 2021-11-23 23:59:59 -03:00
prlanzarin
fbe1610e1c chore(recording): track mediasoup raw media files locations
I was going to resort to some trickery to make mediasoup raw files end up in the
same directory as KMS to reduce changes, but it ended up being too dirty.
I am adding a third directory (/var/mediasoup) to be tracked by the rap scripts
which is where the new raw files end up in.
2021-10-04 17:33:18 +00:00
Calvin Walton
1654f26084 recording: Anonymize names in chat
Move the handling of chat events into the shared library so it can be
used by multiple recording formats.

The anonymization of names is based on the external user id, if
available, so users have a consistent name through the meeting. Note
that no effort is made to edit chat messages - if someone is mentioned
by name in a chat message, that will still be visible.

Default settings for anonymization can be controlled in
bigbluebutton.yml, and per-meeting overrides can be done using meta
parameters on the create call.
2021-09-02 15:02:27 -04:00
Pedro Beschorner Marin
41daeca1a2 refactor(recording): callback url getter 2021-05-29 16:52:07 -03:00
Pedro Beschorner Marin
63dca7506e fix(recording): recording ready callback
Fetch for server's security salt at etc's bbb-web properties file.
2021-05-29 16:51:56 -03:00
Pedro Beschorner Marin
83b48d5ee8 fix(events): keep events using resque workflow 2021-05-04 13:01:32 -03:00
Calvin Walton
9f5832a5d3 Recording: bbb-record --rebuild restarts processing at the sanity step
Previously, bbb-record --rebuild was restarting recording processing
from scratch by creating the .../recording/<meeting_id>.done file. This
causes the recording to be reprocessed starting at the archive step.
However, re-running the archive step for an existing meeting is not
really supported! Ever since the segmented recording code was added, it
shouldn't /corrupt/ the recording files, but it's still not good.

And as a side-effect, re-running the archive step will re-create the
.norecord file for meetings without recording marks, meaning that you
cannot use bbb-record --rebuild to force a recording without marks to be
processed.

Switch bbb-record to restart recording processing at the sanity stage to
match the BBB 2.2 behaviour. Rather than have it insert tasks directly
into resque via redis-cli, it goes through a ruby wrapper that performs
input validation and uses the resque apis.
2021-04-29 11:10:32 -04:00
Sebastian Berm
90f65edef1
Updated usage
Updated usage as this was still copypasted from the other file (post_events.rb), while this is technically not correct.
2021-03-30 14:15:56 +02:00
Richard Alam
77b105aea2 Track recording process status
- store recording process status into a redis list. This option
   needs to be enabled in bigbluebutton.yml
2021-03-25 12:25:30 -07:00
Pedro Beschorner Marin
0c4cf0135d Handle pad's events and Meteor's instances
Since Meteor was split in multiple process and events started to be
filtered by instances, all Etherpad's Redis events were being discarded.

Etherpad has a Redis' publisher plugin that is unaware of BigBlueButton's
existence. All the communication between them is kept simple with minimal
of internal data exchange. The concept of distincts subscribers at Meteor's
side broke part of this simplicity and, now, Etherpad has to know which
instance must receive it's messages. To provide such information I decided
to include Meteor's instance as part of the pad's id. Should look like:

 - [instanceId]padId for the shared notes
 - [instanceId]padId_cc_(locale) for the closed captions

With those changes the pad id generation made at the recording scripts had to
be re-done because there is no instance id available. Pad id is now recorded at
akka-apps and queried while archiving the shared notes.
2021-03-23 18:03:50 -03:00
Mario Jr
af4f9dbf26 Merge branch 'v2.2.x-release' into merge-2.2-develop 2021-03-23 17:10:28 -03:00
Pedro Beschorner Marin
e48f64b843 Avoid localhost at notes endpoint
Use 127.0.0.1 instead of localhost since Etherpad only listens for ipv4.
2021-03-22 16:41:26 -03:00
Anton Georgiev
228bad03d5 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into march4-merge 2021-03-04 21:25:47 +00:00
Calvin Walton
48956ce63f Add some extra docs/setup instructions to the analytics callback script 2021-03-02 16:19:26 -05:00
Pedro Beschorner Marin
c0a7f9cd92 Replace FNV32a pad's id generator with salted SHA1
When managing Etherpad's pads, Meteor makes API calls to initiate the closed captions
and shared notes modules. The pad id was being mapped to a shorter id than the meeting
id because of a Etherpad lenght limitation.

Changed to something less guessable.
2021-02-09 12:59:59 -03:00
Jesus Federico
163d40652a
Update post_events_analytics_callback.rb 2020-12-10 17:23:01 -05:00
Anton Georgiev
0c7ead1916 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into oct16-merge 2020-10-21 14:48:02 +00:00