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.
Modified the previous implementation of the whiteboard individual access to remove
multiple Collections dependency on this feature. Multi-user whiteboard is now an
array instead of a boolean value and most of the access control can be synchronized
and handled by akka-apps.
Moderators are able to send a message to the meeting's guest lobby. This new
event reaches bbb-web and is sent to the guest user with her/his status response
while polling. All guest users that are waiting for acceptance will be able to
read this message.
enableGuestLobbyMessage is disabled by default.
This change introduces a config file
`/etc/bigbluebutton/bbb-apps-akka.conf` which reads the default config
from packages and allows operators to keep their own config file changes
across package upgrades. This removes the workaround of copying the
config file to /tmp in preinst and then extracvting API URI and secret
and then in postinst inject it back to the config file in /usr/share
If the config file in /usr does not have the "changeme" secret, then API
URI and secret are extracted and injected to the generated file /etc, so
packages would upgrade in a clean way.
The postrm script removes the config file in /etc if the package is
purged but not if it is just uninstalled.
bbb-install and bbb-conf must reflect this change and replace the API
secret and URL in /etc, not /usr/share
Reconnects may introduce ghost voice users in a meeting when the client fails to
rejoin but the audio connection remains active.
While fetching for the voice conference user's status, apps can now check if a
voice user has a matching user record. If it doesn't, eject the voice user.