While [[irc]] can also be used to hold a meeting or conference, it's
considered out of scope here.
[[!toc levels=3]]
<!-- template's tutorial, how-to and Reference sections to be added later -->
# Discussion
## Overview
The project here is to create some sort of interactive, real-time,
voice and ideally video conferencing platform. At the start of the
COVID-19 pandemic (or, more precisely, when isolation measures became
so severe that normal in-person meetings became impossible), Tor
started looking into
## Goals
### Must have
* video/audio communication for a group of people of approx 2-10 people
* specifically, work session for teams internal to TPI
* also, training sessions for people *outside* of TPI
* chat fallback
* have a mobile app
* allow people to call in by regular phone
* a way for one person to mute themselves
* long term maintenance costs covered
### Nice to have
* Reliable video support. Video chat is nice, but most video chat systems usually require all participants to have video off otherwise the communication is sensibly lagged.
* usable to host a Tor meeting, which means more load (because possibly > 20 people) and more tools (like slide sharing or whiteboarding)
* respecting our privacy, peer to peer encryption or at least encrypted with keys we control
* free and open source software
* tor support
### Non-goals
## Approvals required
<!-- for example, legal, "vegas", accounting, current maintainer -->
## Proposed Solution
## Cost
## Alternatives considered
## mumble
### features
* audio-only
* moderation
* multiple rooms
* native client for Linux, Windows, Mac, iOS, Android
* web interface https://github.com/Johni0702/mumble-web
* chat
* dial-in, unmaintained, might be broken: https://github.com/slomkowski/mumsi
### installation
there are two different puppet modules to setup mumble:
* https://github.com/voxpupuli/puppet-mumble
* https://0xacab.org/riseup-puppet-recipes/mumble
still need to be evaluated, but i'd be tempted to use the voxpupuli
module because they tend to be better tested and it's more recent
systemli is using this ansible role to install coturn: https://github.com/systemli/ansible-role-coturn
## BBB
### features
* audio, video conferencing support
* [accesssible](http://docs.bigbluebutton.org/support/faq.html#accessibility) with live closed captionning and support for screen readers
* whiteboarding and "slideshow" mode (to show PDF presentations)
* moderation tools
* chat box
* embedded etherpad
* dial-in support with Freeswitch
* should scale better than jitsi and NC, at least [according to their FAQ](http://docs.bigbluebutton.org/support/faq.html#how-many-simultaneous-users-can-bigbluebutton-support): "As a rule of thumb, if your BigBlueButton server meets the minimum requirements, the server should be able to support 150 simultaneous users, such as 3 simultaneous sessions of 50 users, 6 x 25, etc. We recommend no single sessions exceed one hundred (100) users."
i tested an instance setup by a fellow sysadmin and we had trouble after a while, even with two people, doing a screenshare. it's unclear what the cause of the problem was: maybe the server was overloaded. more testing required.
### installation
[based on unofficial Debian packages](https://docs.bigbluebutton.org/2.2/install.html), requires Freeswitch for
dialin, which doesn't behave well under virtualization (so would need
a bare metal server). Requires Ubuntu 16.04, [packages are closed
source](https://github.com/bigbluebutton/bigbluebutton/issues/8978) (!), [doesn't support Debian](https://github.com/bigbluebutton/bigbluebutton/issues/8861) or [other](https://github.com/bigbluebutton/bigbluebutton/issues/8876) [distros](https://github.com/bigbluebutton/bigbluebutton/issues/8956)
anadahz setup BBB using a [ansible role to install BBB](https://github.com/n0emis/ansible-role-bigbluebutton).