Commit Graph

33 Commits

Author SHA1 Message Date
Paulo Lanzarin
9ef74eeb53
fix(bbb-webrtc-sfu): add ALLOW_CONFIG_MUTATIONS to service
After node-config was bumped to 3.3.9 (from 3.3.6), it started throwing errors if
configurations are mutated without the ALLOW_CONFIG_MUTATIONS env var set.
We mutate some configs directly, but I every time I added one of those I made sure that
they are always deep cloned.

However, we hit an issue with kurento-client mutating a config input, which is an indirect mutation.
So, to prevent further surprises I'm allowing mutations on production while prohibiting them in dev
envs until I'm 100% sure nothing, direct on indirect, improperly mutates configuration values.
2023-03-13 12:20:00 -03:00
prlanzarin
ef7b1fb3e5 build: use FIFO scheduler in bbb-webrtc-sfu
bbb-webrtc-sfu (and mediasoup) are running in the CFS scheduler which
means it has to compete with (much) lower priority tasks like
presentation conversion, recording processing, [...]
Since it encompasses an RTC application which also handles audio, it
should be _at least_ on the same scheduling policy as FS/bbb-html5 - and
that should be safer now  with mediasoup which has a lower footprint
(and generates lower CPU noise overall).

This commit puts bbb-webrtc-sfu in the FIFO scheduling policy (same as
bbb-html5). Also bumps bbb-html5 nice level up to 18 and sets SFU to
nice 19 (so bbb-html5 has some advantage when push comes to shove).

This can be improved further by using per-process priorities in SFU.
Ideally we'd want mediasoup audio workers and mcs-core to be the same
priority as FS (so higher than bbb-html5), but the rest of them
(video/screen workers) to be the same or lower than bbb-html5. For
future reference:
  - https://github.com/bigbluebutton/bbb-webrtc-sfu/commit/3e245122dfa155ecb77b536eeadac1e4607cee
  - 66d443d204
2022-08-26 14:08:24 +00:00
Ramon Souza
db5ac1428a Merge tag 'v2.5.3' into merge25-26-jul14 2022-07-15 11:08:02 -03:00
Anton Georgiev
55dbc34984
Merge pull request #14616 from danimo/bbb-target
build: Introduce bigluebutton.target
2022-07-06 14:42:09 -04:00
prlanzarin
6225042148 feat: add user name to checkAuthorization response
Audio's callerId depends on the user name and there isn't
an "on-demand" way of fetching that field internally, making callerId
assembly with trusted attributes (server-side generated) impossible in
bbb-webrtc-sfu.

The new extra header (User-Name, mapped to user_name in the proxied
connection) allows fetching the user name field in a cheap way and
consequently provides a cheap+safe way of assembling the callerId.

Alternatives I've considered but discarded:
  - a new akka-apps req-resp pair for fetching the user name (+overhead)
  - a new akka-apps req-resp pair for generating the callerId (+overhead)
  - piggybacking on GetMicrophonePermissionReq/Resp to generate the
    callerId (same overhead, but mixing responsabilities)
2022-06-28 20:33:36 +00:00
Daniel Molkentin
a7f43ba2b8 Merge remote-tracking branch 'origin/v2.6.x-release' into bbb-target 2022-06-27 17:03:01 +02:00
Daniel Schreiber
1a12514b61 Fix(build): add service dependency to redis for several services
* fix unit name: the unit name on Ubuntu is `redis-server.service`
* services which need a working redis require both After= and Wants=

See the description in the `systemd.unit` man page.
2022-05-29 22:31:03 +02:00
Calvin Walton
09124ab06c packaging: Add dependencies on yq 3
yq package is now provided in the BigBlueButton support PPA for BBB 2.5,
so we can depend on the package now. Ensure the dependency is specific
to avoid an incompatible yq version 4 from being installed.
2022-04-25 15:04:38 -04:00
Anton Georgiev
97dbc1aeb6
Merge branch 'v2.5.x-release' into bbb-target 2022-04-01 14:21:15 -04:00
Anton Georgiev
33a2dd566c build: do not delete .nginx file, it is removed on upgrade too 2022-03-18 19:02:46 +00:00
Daniel Molkentin
9f833a4760 Introduce bigbluebutton.target 2022-03-17 11:35:42 +01:00
Anton Georgiev
4e6b0a608e refactor: store nginx files in /usr/share/bigbluebutton/nignx not /etc/bigbluebutton/nginx 2022-03-15 01:42:28 +00:00
Anton Georgiev
20bff96cbf must revert! build: temp drop yq as a dependency 2022-03-14 19:39:11 +00:00
Anton Georgiev
3de540f0ab build: swap bionic with focal 2022-03-14 19:04:23 +00:00
Anton Georgiev
7147045a82 build: renamed opts-bionic to -focal 2022-03-14 18:53:35 +00:00
Anton Georgiev
57776054b7
Merge pull request #14512 from prlanzarin/u25-nest-5900pn
refactor: reduce timeout intervals for webrtc-sfu and FS WebSocket proxies
2022-03-03 15:27:37 -05:00
prlanzarin
22d347f899 refactor: reduce timeout intervals for webrtc-sfu and FS WebSocket proxies
The old 6h values seem far too large and I cant recall nor find any good
justification for them to be that way

Reducing the timeouts to more sane values allow resources (WebSockets) to be
cleaned up faster

The heartbeat routine in bbb-webrtc-sfu runs every 20s. The heartbeat
routine in SIP.js/FS runs every 30(+10)s. The new timeouts are those values
multiplied by 3.
2022-03-02 19:07:29 -03:00
Anton Georgiev
8674cf7615 !build: remove config storing to /tmp when upgrading a package
Remaining, to be handles separately:
bbb-html5 before-remove and after-install -- sip.nginx needs to be
handled in bbb-conf
bbb-freeswitch-core -- /tmp/vars xml, etc. -- not sure how to handle
2022-02-27 19:08:25 +00:00
Anton Georgiev
0c9de5746f build: drop xenial related files 2022-01-27 19:42:07 +00:00
prlanzarin
896f629a94 chore: pipe user info from bbb-web checkAuth to webrtc-sfu 2021-12-03 19:49:27 +00:00
Daniel Schreiber
b30b3accf3 build: fix bbb-webrtc-sfu cronjob
the cronjob queries the number of users. The query was still from BBB 2.2
and returned always 0. Now we take every user into account.
2021-11-10 22:22:10 +01:00
Paulo Lanzarin
245311947d
Update build/packages-template/bbb-webrtc-sfu/build.sh
Co-authored-by: schrd <schrd@users.noreply.github.com>
2021-10-25 14:00:24 -03:00
prlanzarin
56888e999e refactor(build): bump SFU to 2.6.0-beta.7, remove mediasoup cleanup code
beta.6 updates mediasoup 3.9.0 which has a new Meson build system

That new build system does a pretty good job cleaning compiler leftovers on its
own, so theoretically our cleanup code isn't needed anymore.

Amend history:
  build/packages-template/bbb-webrtc-sfu/build.sh -> v2.6.0-beta.6 to beta.7
2021-10-24 22:58:32 +00:00
Anton Georgiev
9c2f85ceea
Merge pull request #13479 from prlanzarin/u24-ferrofluid
build: set mediasoup IPs in webrtc-sfu post install
2021-10-14 09:28:02 -04:00
Anton Georgiev
164258274b
Merge pull request #13451 from schrd/bbb-webrtc-package-size
Update bbb-webrtc-sfu packaging to include mediasoup
2021-10-14 09:24:21 -04:00
Anton Georgiev
ca054d356f
Update build/packages-template/bbb-webrtc-sfu/build.sh 2021-10-14 09:24:12 -04:00
schrd
4bc55226b1
Update build/packages-template/bbb-webrtc-sfu/build.sh
Co-authored-by: Paulo Lanzarin <4529051+prlanzarin@users.noreply.github.com>
2021-10-14 15:18:50 +02:00
Anton Georgiev
906b4253de
Merge pull request #13403 from prlanzarin/u24-parasole
chore(build): bbb-conf and build script changes to handle /var/mediasoup
2021-10-14 09:11:14 -04:00
prlanzarin
1a439a371c chore(build): make sure /var/mediasoup is created (webrtc-sfu) 2021-10-13 14:37:21 +00:00
prlanzarin
7e49069add build: set mediasoup IPs in webrtc-sfu post install 2021-10-13 13:39:14 +00:00
Daniel Schreiber
c5f351d238 Update bbb-webrtc-sfu packaging to include mediasoup and ...
... drop build artifacts from compiling mediasoup. This reduces package
size from ~ 54 MB to ~ 12 MB.

Additionally this drops the `npm rebuild` command from the after-install
script. It should not be necessary to recompile stuff during
installation. To ensure a clean `node_modules` directory, it will be
cleaned in the before-install script.
2021-10-08 22:54:57 +02:00
prlanzarin
ca8df23002 refactor(build): webrtc-sfu`s localIpAddress is defunct 2021-10-06 22:53:04 +00:00
Johannes Barthel
6c8525ef54 initial public version 2021-08-13 12:53:18 +02:00