Commit Graph

1240 Commits

Author SHA1 Message Date
Leonardo Crauss Daronco
5bc3062d58 Fix the paths to the ruby scripts on the rap workers
Was pointing to the wrong directory when loading the ruby scripts. Also
made the directory easier to configure, it's all in a single place now.
2020-02-06 10:43:32 -03:00
Calvin Walton
9f9e2a0c47 rap: Fix require paths in Rakefile
I moved the location of the worker classes around, but forgot to update
the Rakefile to include them from the new location.
2020-01-28 12:43:28 -05:00
Calvin Walton
1a88830a27 RaP: Fix done filenames for segmented recordings
The done filenames all have to contain the break_timestamp to identify
the segment
2020-01-21 17:21:50 -05:00
Calvin Walton
c52a67186e RaP: Clean up resque worker code, add worker for keep_events feature
I've moved the workers code into the `lib` subdirectory with other library-ish
code; this puts it into the ruby load path used by most scripts so referencing
files is easier.

I've applied various style cleanups based on the rubocop config present.

The `events` processing step has been integrated as a new worker `EventsWorker`,
there is no longer a separate `events/events.rb` script. I've reworked the
`rap-starter.rb` script to check for the done files in both the events and
recorded status directories.
2020-01-21 17:14:39 -05:00
Calvin Walton
bc1b53f037 Update gems for record-and-playback 2020-01-21 17:13:16 -05:00
Calvin Walton
6e7f133f1f rap: add missing install sections to systemd service files 2020-01-21 12:23:47 -05:00
Fred Dixon
aa1eb7b258 Bump version of Rack 2020-01-19 08:20:23 -06:00
Calvin Walton
aee7baa76b Merge branch 'v2.0-rap-on-resque' of github.com:daronco/bigbluebutton 2020-01-17 17:40:08 -05:00
Calvin Walton
c211bd4dc5 recording presentation format: round poll sizes to integers
If the poll size happened to be not an integer, the poll generation would fail.
Round it to an integer for the generation tool.
2020-01-14 16:19:32 -05:00
Calvin Walton
9907588b5e presentation recording: generate poll svg images without gnuplot
Write a tool that generates the poll svg images directly from the
BBB poll description. This avoids the issues with special characters
in the gnuplot labels, and gives us a lot more flexibility in how
the polls are formatted and styled.
2020-01-13 14:34:30 -05:00
Calvin Walton
aa26c1d512 Remove special characters from the gnuplot labels 2019-12-19 10:14:20 -05:00
Leonardo Crauss Daronco
95573b2467 Improve the yml for rec steps and run captions always before process 2019-12-10 16:28:13 -03:00
Leonardo Crauss Daronco
ac801cfce7 Use journald as the default logger for rap and rap services
Changed only in the main class so journald is the default and in the
scripts related to the processes in resque. Internal scripts might still
be logging to files.
2019-12-06 17:06:32 -03:00
Leonardo Crauss Daronco
f1d37e8a08 Gracefully stop bbb-rap-starter when the service is stopped 2019-12-06 16:36:25 -03:00
Leonardo Crauss Daronco
835449551d Raise an exception if a rap step fails so resque will list it
Resque captures the exceptions and marks the jobs as failed.
2019-12-06 15:51:47 -03:00
Leonardo Crauss Daronco
29cae33636 Add the format parameter to the examples of post scripts
They are optional but it's better to have them than not. If they are passed
and the script doesn't expect it they break.
2019-12-06 15:23:19 -03:00
Leonardo Crauss Daronco
5e05b7a8e8 Fixes for the rap scripts after processing a real recording 2019-12-06 12:26:24 -03:00
Leonardo Crauss Daronco
d74be7962a Process all .done files when bbb-rap-starter is started
Instead of just running when a .done file is added, it now also goes
through the files already there when the process starts.
2019-12-06 11:50:08 -03:00
Leonardo Crauss Daronco
53c3ed0d7d Change rap-starter to run persistently and watch for file changes
Instead of being executed every 30s by systemd, it's now a service that's
running all the time and will wait for .done files to start the processing
of recordings.
2019-12-05 11:41:13 -03:00
Leonardo Crauss Daronco
d769849ad6 Add resque worker to process the captions of a recording
Moved the code that was after the sanity step to its own worker.
2019-12-04 18:32:14 -03:00
Leonardo Crauss Daronco
62d62a2a1e Merge remote-tracking branch 'upstream/master' into v2.0-rap-on-resque
# Conflicts:
#	bigbluebutton-config/bin/bbb-conf
#	record-and-playback/core/Gemfile.lock
#	record-and-playback/core/lib/recordandplayback/events_archiver.rb
#	record-and-playback/core/scripts/archive/archive.rb
#	record-and-playback/core/scripts/bigbluebutton.yml
#	record-and-playback/core/scripts/rap-process-worker.rb
#	record-and-playback/core/scripts/rap-publish-worker.rb
#	record-and-playback/core/scripts/rap-sanity-worker.rb
#	record-and-playback/core/scripts/rap-starter.rb
#	record-and-playback/core/scripts/sanity/sanity.rb
#	record-and-playback/core/systemd/bbb-rap-archive-worker.service
#	record-and-playback/core/systemd/bbb-rap-process-worker.service
#	record-and-playback/core/systemd/bbb-rap-publish-worker.service
#	record-and-playback/core/systemd/bbb-rap-sanity-worker.service
#	record-and-playback/core/systemd/bbb-record-core.target
2019-12-04 17:33:44 -03:00
Leonardo Crauss Daronco
9e5c386e6f Add option to rap-process-worker to accept a filtering pattern
It will only process recordings which ID matches the pattern. By default
the pattern is nil and it will process all recordings.
2019-12-04 12:05:18 -03:00
Fred Dixon
dd2ae19ca0
Merge pull request #8277 from SilentFlameCR/master
edited rap-caption-inbox.rb to get appropriate files in presentation
2019-11-22 23:11:18 +01:00
Fred Dixon
bb76dc9be9
Merge pull request #8349 from kepstin/screenshare-breakout
screenshare recording format: add breakout room info to metadata.xml
2019-11-22 23:04:46 +01:00
Fred Dixon
a65df842ae
Merge pull request #7057 from kepstin/rec-vp9
Recording: Switch from vp8 to vp9, use better x264 options
2019-11-21 04:43:22 +01:00
Calvin Walton
ccf5f57602 screenshare recording format: add breakout room info to metadata.xml
Fixes #8252
2019-11-20 13:59:48 -05:00
dependabot[bot]
f823b03978
Bump loofah from 2.2.3 to 2.3.1 in /record-and-playback/core
Bumps [loofah](https://github.com/flavorjones/loofah) from 2.2.3 to 2.3.1.
- [Release notes](https://github.com/flavorjones/loofah/releases)
- [Changelog](https://github.com/flavorjones/loofah/blob/master/CHANGELOG.md)
- [Commits](https://github.com/flavorjones/loofah/compare/v2.2.3...v2.3.1)

Signed-off-by: dependabot[bot] <support@github.com>
2019-11-08 02:22:17 +00:00
Richard Alam
1f2448c1ea
Merge pull request #8256 from ritzalam/change-audio-recording-codec
Change audio recording codec
2019-11-05 16:18:55 -05:00
SilentFlameCR
b88b70d945 edited rap-caption-inbox.rb to get appropriate files in presentation 2019-10-30 13:10:24 -04:00
Calvin Walton
0aa018109c
Merge branch 'master' into rec-vp9 2019-10-29 10:52:30 -04:00
Calvin Walton
83ba78683b Update the configuration examples for screenshare recording processing
Add an example to enable generating an mp4 file (Apple device compatibility)
Switch the webm generation to use the faster single-pass encode by default,
since 2-pass is much slower and more cpu intensive.
2019-10-28 14:46:10 -04:00
Calvin Walton
8283bc16f0 recording archive: Archive freeswitch audio in formats other than wav 2019-10-28 13:47:33 -04:00
Calvin Walton
8bdcea424d Fix typos in archive script 2019-10-23 10:16:29 -04:00
Calvin Walton
cad8995858 recording archive: Compress audio files
The wav files from the freeswitch recordings are huge, uncompressed.
There's no reason to keep them as wav, we can compress them in the
archive step.
2019-10-22 17:27:23 -04:00
Pedro Beschorner Marin
4bc6fae649 Patching playback updates for iOS (#8195) 2019-10-21 16:05:59 -04:00
Calvin Walton
69aa493d90 Make presentation playback continue if deskshare.xml was not found
Someone on the mailing list had some recordings which were using the 2.0
playback, but were missing the deskshare.xml file (which should always
be present for 2.0… strange). It's safe to continue loading the recording
playback if the deskshare.xml file is not found, the recording will just act
as if there were no deskshare start/stop events.
2019-10-18 12:42:29 -04:00
Calvin Walton
726406f0f5 presentation playback: Make setMediaSync a no-op if there's no deskshare
Previously the setMediaSync function was only called after the deskshare
loaded, but by moving it to run after all media loaded, it now runs even
on recordings that didn't have deskshare. Make it do nothing (return early)
in that case.
2019-10-09 12:32:57 -04:00
Calvin Walton
d5097fa43e Fix deskshare media sync when deskshare loads before webcam/audio
If the secondary media loaded before the main media, it would run the
"setMediaSync" function before the main media player was setup. As a
side-effect of setting up the main media player, all of the event handlers
added by the setMediaSync function are detached, and so the secondary
media never starts playing.

Move the call to setMediaSync to after the media-ready events for all
media have fired, so that it can reliably attach the event handlers.
2019-10-07 15:21:40 -04:00
dependabot[bot]
f9ac1dd48b
Bump rubyzip from 1.2.3 to 1.3.0 in /record-and-playback/core
Bumps [rubyzip](https://github.com/rubyzip/rubyzip) from 1.2.3 to 1.3.0.
- [Release notes](https://github.com/rubyzip/rubyzip/releases)
- [Changelog](https://github.com/rubyzip/rubyzip/blob/master/Changelog.md)
- [Commits](https://github.com/rubyzip/rubyzip/compare/v1.2.3...v1.3.0)

Signed-off-by: dependabot[bot] <support@github.com>
2019-10-04 10:39:10 +00:00
Ghazi Triki
b4c5d2cc6e Fix screeshare rap (#7939)
Adapt the screenshare processing script to changes to the api for events handling in
the recording-and-playback core libs.
2019-09-23 17:08:14 -04:00
Calvin Walton
11fac78a46 Fix autoplay of deskshare video in presentation playback format
This reverts a bbb-specific customization made in the jquery.acornmediaplayer.js
file: it's restored to what the upstream player did. I can't find any explanation
for why this change was made in the first place? Reverting it doesn't seem to
cause any playback issues (Popcorn still works, in particular).
2019-09-23 15:37:52 -04:00
dependabot[bot]
415a25f9a0
Bump nokogiri from 1.10.3 to 1.10.4 in /record-and-playback/core
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.10.3 to 1.10.4.
- [Release notes](https://github.com/sparklemotion/nokogiri/releases)
- [Changelog](https://github.com/sparklemotion/nokogiri/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.10.3...v1.10.4)

Signed-off-by: dependabot[bot] <support@github.com>
2019-08-20 17:17:39 +00:00
Fred Dixon
eacb8f9f65
Merge pull request #7723 from kepstin/rec-events-cleanup-more
Delete control characters from all recording event properties
2019-08-09 23:10:24 -04:00
Richard Alam
99b04c27b3 Add missing param when calling create_webcam_edl 2019-07-31 13:39:56 -07:00
Richard Alam
e409190114 - convert tabs to spaces 2019-07-10 13:09:38 -07:00
Richard Alam
ec1343931c - add comments to explain how rap-archive-worker and rap-events-worker work together 2019-07-05 08:57:51 -07:00
Richard Alam
40c6dd8827 - run post events scripts 2019-07-05 08:57:22 -07:00
Richard Alam
61d9223a70 - format spaces to tabs 2019-07-04 11:07:57 -07:00
Richard Alam
82bd5e4a6f - run keep-events worker separate from archive-worker 2019-07-04 11:00:59 -07:00
Calvin Walton
f2f9989c70 Delete control characters from all recording event properties
Found another case where the html5 client was passing through control
characters, in the original presentation name field.

Rather than play whack-a-mole with different fields which may eventually
get poorly sanitized user data, apply the control character filtering
to all properties.

Adjust the character range to do the following:
* Allow horizontal tab (0x09), it's not problematic.
* Disallow control characters in the range 0x1A-0x1F. Probably missed by accident.
2019-07-04 10:46:46 -04:00