-
Notifications
You must be signed in to change notification settings - Fork 5.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upcoming plug-in system and fairkom's translation feature #20016
Comments
Hello guys, thanks for proposing this plugin! As spoken earlier this week, here are some details for the development:
That's for changing the UI. I also think you will make good use of the Just for the recors, all links here are in the SDK repository, and of course, refer to the main readme for more info. If you guys have any doubts, please ping me and we can figure it out together! Thanks again! |
Hello, guys, there have been some time since the last comment about this thread, so I will update you with some things we've been doing in this direction: there are some PRs open, this one right here: #20272 which lays the ground for the following two, that are:
These last 2 PRs, among other things, build the sidekick panel that will be necessary for this feature. Note: they are already in the way for being reviewed and merged. Sorry for the late response, and if anything comes up, I will let you know through this channel! Ping me, if any doubts. |
Hello, guys, thanks for being patient. This is the PR in which the sidekick panel entered for the SDK: bigbluebutton/bigbluebutton-html-plugin-sdk#88. Now with that I think this issue can be done normally, so if you need any help from me or bump into some unexpected problem, please let me know. |
@mklampfer please confirm we can close this issue. |
In our meeting with @ffdixon, @antobinary and @GuiLeme on March the 26th, we discussed the integration of fairkom's translation feature fairblue using the upcoming plug-in system.
It was suggested that we create an issue on github, outlining where fairblue uses and extends the BBB code. This would help determining how the plug-in system can be used to move fairblue out of BBB's core and maintain it as a separate plug-in.
This document provides a rough overview of fairblue and explains which code parts were added or changed.
Fairblue can be roughly divided into two parts:
One part deals with all the UI related stuff that provides interpreters the means for creating translation channels,
and lets listeners choose which channel they want to listen to.
The other part provides the underlying logic for these UI elements and also is responsible for maintaining the
additional freeswitch connections that are created on top of the regular ones.
1. UI elements
Fairblue's interface consists of
The translation section in the sidebar is meant for moderators/interpreters to create/delete translation channels before
the translation is started. The buttons in the actions bar allow to quickly change channels.
We have adapted the following BBB components to include our stuff:
We have also created some new components. You can see them at the detailed table at the end of this document.
2. Business logic and connection handling
HTML audio elements
Fairblue adds two html audio elements to main.html:
One is used for translators the other one for listeners.
TranslationManager
In the earlier versions of fairblue we had just added our code to BBB's AudioManager, but later decided to create a
separate file, TranslationManger. It deals with all translation-related logic and handles freeswitch connections.
Just like AudioManager, is uses create a new SIPBridge ('/imports/api/audio/client/bridge/sip') for each translation
channel. Multiple channels are kept open in the background, and whenever a speaker/listener chooses a certain channel,
it is hooked up to the corresponding html audio element that was created before (see above).
All changes, compared to vanilla BBB
We have made a few tables that show which parts of BBB were changed, where we included extra code and which parts of BBB
we import.
A quick explanation of the columns:
Components
modified
Button (/imports/ui/components/common/button/component)
* layoutSelect, layoutSelectInput, layoutDispatch (/imports/ui/components/layout/context)
* withShortcutHelper (/imports/ui/components/shortcut-help/service
* BBBMenu (/imports/ui/components/common/menu/component
* Fab (@material-ui/core
* Meeting (/imports/ui/services/meeting
* Icon (/imports/ui/components/common/icon/component
*BreakoutsHistory (/imports/api/breakouts-history)
*isPollingEnabled (/imports/ui/services/features)
* Storage (/imports/ui/services/storage/session)
* setUserSelectedMicrophone, setUserSelectedListenOnly (/imports/ui/components/audio/audio-modal/service)
* getFromUserSettings (/imports/ui/services/users-settings)
* layoutSelect (/imports/ui/components/layout/context)
* AppService (/imports/ui/components/app/service)
* withModalMounter (/imports/ui/components/common/modal/service)
Methods
modified
Services
modified
*SIPBridge(/imports/api/audio/client/bridge/sip)
*Service (/imports/ui/components/actions-bar/service)
*AudioManager (/imports/ui/services/audio-manager)
*Auth (/imports/ui/services/auth)
*Auth (/imports/ui/services/auth)
*makeCall (/imports/ui/services/api)
*Meetings (/imports/api/meetings/)
*Auth (/imports/ui/services/auth)
*makeCall (/imports/ui/services/api)
*Meetings (/imports/api/meetings/)
Assets
modified
3rd party libs
modified
Config
modified
Other
modified
The text was updated successfully, but these errors were encountered: