“When a moderator clicks on ‘Mute All’ in Jitsi, a dialog box opens. I would like to understand the flow of events from the frontend to the backend regarding toggling the option for attendees to unmute themselves. Could the Jitsi community provide insights into how this functionality is implemented and how the frontend and backend components interact in this process?”
All interactions are xmpp stanzas sending to the server. You can open the developer console before loading the page and look at the network communication bosh requests or websockets messages.
Or you can do
APP.conference.saveLogs() in the console while in the conference and you will get all the xmpp messages exchanged between the client and the prosody server.
From my finding In Jitsi Meet, the communication flow from the frontend code to the backend components involves multiple steps for muteall functioallity. is it right flow ?:
Frontend Code: The frontend code captures user actions, such as participant can’t mute themselves.
Communication with Jicofo: To interact with the backend, the frontend code utilizes lib-jitsi-meet. It sends XMPP stanzas containing jid and mediatype to Jicofo, the signaling component.
Processing by Jicofo: Jicofo receives the XMPP stanzas from lib-jitsi-meet and processes them based on the msg then it blaclist the jid .
Instruction to JVB: Jicofo communicates with the JVB instances, responsible for media routing and conferencing capabilities. It instructs the JVB to perform operations such as forwarding or blocking media streams for specific participants. For example, when a participant’s audio is reject for unmuting, Jicofo sends an instruction to the JVB to block the audio stream to other participants.
Media Routing: The JVB acts as a bridge component, handling media routing between conference participants. It receives instructions from Jicofo regarding media blocking. Based on these instructions, the JVB adjusts its media routing logic to block the media streams to participants .
Feedback to Jicofo: Once the JVB performs the necessary operations, it provides feedback or updates to Jicofo. This feedback includes information about successfully applied changes, encountered errors, or other relevant details related to media routing.
Feedback to Frontend: Jicofo, upon receiving feedback from the JVB, sends XMPP stanzas or other messages to the frontend code through lib-jitsi-meet. This feedback informs the frontend code about the outcome of the user actions and provides updates to the user interface or conference state as required.
-----please correct me if i am wrong
I don’t agree with this one, the rest seems fine.
Local muting does not involve jicofo. Participants when mute locally are sending silence which is filtered automatically by jvb.
Remote muting though, when a moderator is muting someone goes through jicofo as described. To prevent the remote muted part of unmuting and continue sending, even if that happens jvb will not route that media to the rest of the participants.
Thank you sir for correcting me.In the React frontend codebase . I’m trying to identify the file responsible for handling the communication with lib-jitsi-meet when a moderator clicks on the ‘mute all’ functionality and toggling to participant cant unmute themselves. Could you please point me to the specific file or component where this communication takes place? I’m interested in understanding the flow of data and actions between the React frontend and the lib-jitsi-meet library during the ‘mute all’ toggling operation. The codebase is extensive, and despite my efforts, I haven’t been able to pinpoint the specific file or component. Could u please provide guidance or insights on where I should look in order to comprehend the code flow from react frontend code base to libjitsi meet during the ‘mute all’ toggling operation? Your assistance would be greatly appreciated. Thank you Sir!"
hii sir,Could you please help me understand how the “Mute All” functionality is implemented in Jitsi? I’ve been trying to figure out how the frontend (React codebase) communicates with the backend services (lib-jitsi-meet, jicofo, jvb) and how backedn service communicate with eachother. Specifically, I’m looking for information on which frontend react code base component are involved in communicating with lib-jitsi-meet for “mute all” and which components or modules in lib-jitsi-meet are involved in the communication with jicofo and which component are involved in jicofo to communicate with jvb . please Help me I would greatly appreciate any guidance or explanations you can provide. Thank you!
Here is your flow from UI to the xmpp IQ that is sent to the backend.
thank you so much sir