Commit Graph

25 Commits

Author SHA1 Message Date
Pedro Beschorner Marin
e4a98f3680 fix(closed captions): fetch padId on dictation update
BigBlueButton v2.3 uses an instance prefix while generating padIds. Closed
captions was missing this information when updating pad's content for dictation
mode.
2021-05-16 10:45:17 -03:00
Pedro Beschorner Marin
d65c19c60b fix(closed captions): avoid meetingId from credentials
This interaction occurs between Etherpad and Meteor.
2021-05-16 10:08:24 -03:00
Joao Siebel
79c9cd33f2 Merge remote-tracking branch 'upstream/develop' into add-try-catch-on-methods 2021-05-10 12:03:58 -03:00
Joao Siebel
a42d4a9f5d Add try/catch on captions methods 2021-05-04 14:34:31 -03:00
Tainan Felipe
20d934a953 Add filter by meetingId in server queries 2021-05-03 09:49:33 -03:00
Ramon Souza
d5d1c86c70 remove unused imports 2021-04-20 09:12:22 -03:00
Anton Georgiev
ff45cccd66 Merge branch 'v2.2.x-release' of github.com:bigbluebutton/bigbluebutton into apr1-merge 2021-04-01 18:11:13 +00:00
Pedro Beschorner Marin
1aa7685dcc Refactor Etherpad API calls
Isolate most Pad related functions and secure shared notes and closed
captions creation to only when there is a reachable Etherpad server
configured.
2021-03-29 18:35:33 -03: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
Pedro Beschorner Marin
09b39a8d63 Add extra pad validation
Associate pads with meetings so session validation is restricted to the
meeting's valid session tokens.

Meteor will dispatch new redis events on shared notes and closed captions
pads creation. This event will go through apps and reach web to populate
a new meeting's pad collection that contains all valid pad id's for that
session. Nginx will use this collection to check if the user's session token
belongs to the pad's authorized users.

Besides these modifications, an extra change will be needed at notes.nginx.
Location /pad/p/ needs to change it's auth_request:

from /bigbluebutton/connection/checkAuthorization;
to /bigbluebutton/connection/validatePad;
2021-02-10 13:37:04 -03: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
Joao Siebel
77d493792f Prevent a case where voiceUser collection was being clean for entire server 2020-11-30 17:01:41 -03:00
Anton Georgiev
21644a1a43 Remove string interpolation for server debug and verbose logs 2020-11-23 14:35:59 -05:00
KDSBrowne
6915a028e3 use extractCredentials to get meeting id 2020-04-30 13:46:30 +00:00
KDSBrowne
957e5e3d30 fix captions from dictation not working 2020-04-30 13:15:21 +00:00
Anton Georgiev
a8f4827af8 utilize Meteor connection id instead of trusting client side meetingId, userId 2020-02-06 15:48:16 -05:00
Pedro Beschorner Marin
9e057b9a78 Refactoring closed captions speech recognizer 2019-06-21 17:52:54 -03:00
Pedro Beschorner Marin
a5f7579816 Encoding at URL creation 2019-06-21 14:56:12 -03:00
KDSBrowne
cd9cb596d2 add new lines to VR caption entries 2019-06-18 21:12:20 +00:00
KDSBrowne
c36f25c748 add enableDictation prop in settings.yml / bug fixes 2019-06-18 14:36:22 +00:00
KDSBrowne
127f4ac19e hook up speech recognition to Etherpad captions editor 2019-06-14 02:18:36 +00:00
Anton Georgiev
6adc608fd0 closed captions linting part3 2019-05-29 14:31:27 +00:00
Pedro Beschorner Marin
741122df96 Closed captions cleanup 2019-05-23 11:51:01 -03:00
Pedro Beschorner Marin
84b750ebb7 Adapted HTML5 captions to use the recording backend 2019-05-22 18:33:20 -03:00
Pedro Beschorner Marin
34b39a2b0a Closed captions prototype in a big commit 2019-05-22 18:33:20 -03:00