-
Notifications
You must be signed in to change notification settings - Fork 6.7k
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
Better moderation capabilities in locked down rooms: challenge/response in lobby #9714
Comments
This sounds like an interesting feature and I see its challenge is the UI part. That part we may need to discuss with our UI designer ... if you have ideas on that part or mockups share them here ... so we can start that conversation |
Hi @damencho we will be developing discussed challenge/response feature for The Document Foundation, and later planning to open a PR to contribute to jitsi-meet with this nice and handy feature. @ilmari-lauhakangas is from the Document Foundation. Me and some other devs will show up here soon are from Doganbros After some discussion with The Document Foundation and kicking off this comparatively small project, as doganbros we have been working on debugging and analyzing the current lobby feature on Jitsi to propose a solution for challenge/response feature. Finally, i want to share with you our solution proposal for challenge/response feature: We did quite some research and debugging existing lobby features. Finally we concluded that it seems possible to set up a kind of chat between the knocking person in the lobby and the moderator. If the knocking feature (lobbing) is enabled and when a room is created, Jitsi also creates another room behind the scenes which is called 'lobby room'. When someone else enters the meeting initially, this person is also added to the lobby room and he is immediately removed from the lobby room when he is accepted or rejected. So only the moderator and the other pending possible attendees remain in the lobby room. Jitsi communicates the possible attendees waiting in the lobby and the moderator in a "knock then accept/deny" messaging mechanism through the lobby room already. This functionality seems to be extended to set up chat communication between persons in the lobby and the moderator. Within this chat communication, the moderator can challenge the knocking person with a question and the knocking person can give a response accordingly then the moderator may accept or deny the joining request. Since we are planning this feature to be part of Jitsi project, we will be trying to get your confirmation and validate our work before actually doing it. So we need your comments and suggestions on our solution proposal before going into UI Mockup. After finalizing UI mockup then we will share with you and try to get a confirmation for the actual implementation plan. And so on... |
Just one thing, I noticed in your description you are talking about a single moderator, mind that everyone in the meeting can be moderator, consider having multiple moderators. |
Yes you are right. Give me some time to extend the proposal for multiple moderators scenario. |
Here is the updated solution proposal summary (updated part is bold): We did quite some research and debugging existing lobby features. Finally we concluded that it seems possible to set up a kind of chat between the knocking person in the lobby and the moderator. If the knocking feature (lobbing) is enabled and when a room is created, Jitsi also creates another room behind the scenes which is called 'lobby room'. When someone else enters the meeting initially, this person is also added to the lobby room and he is immediately removed from the lobby room when he is accepted or rejected. So only the moderators and the other pending possible attendees remain in the lobby room. |
@damencho any comments? |
I need to talk with Product team about it, about the direction, or any other concerns... If you don't hear from me till next Monday, you can join the community call and present it there (I hope Emil will be there so you can discuss it). |
Here is the scenario: |
I talked with Emil and he gave a green light. For the UI part we may contact design and ask for a proposal ... |
Yes you are right, chat icon will be much more better. Ok will be waiting for your updates. |
What updates do you mean? |
I thought you will be contacting with your design team to ask for a proposal and let us know. Am i right? |
Ok, I will talk with them. |
@damencho any update? |
Hey there, love this :-) I'd say you are welcome to start the implementation without the UI parts / with some crude UI while we get a design, WDYT? Looks to me like the UI will not be the biggest part of the task... Also note this feature would need to also be implemented on mobile. |
Hi! Happy to hear that. Before starting the implementation let me share with you the implementation plan i.e. how will we do it. And yes mobile is also in the scoop, just after the web. |
Sounds good! |
FYI. We are still working on the implementation plan, some debugging, mockup implementation and testing. Will share here soon. |
Thanks for the update! |
The main and lobby rooms are created from the same ChatRoom class by Jitsi. We are trying to use the sendMessage and sendPrivateMessage api of the lobby room instance to send messages to participants in the lobby room but the messages don't get broadcasted to their end when we listen with the xmpp.message_received event. We checked the debug logs of Prosody and realized that the fire event is been triggered as well. Is there any reason why we can't receive message in the lobbyRoom when we use this api? Listening for messages
Sending message
Debug logs from Prosody
We used a similar approach on the main room and everything worked correctly. We also didn't spot any difference between the debug logs of the lobby room messages and the main room messages. Is there any difference between how the backend handles messages for the lobby room and the main room? |
Put a break point here and see where is dropped https://github.com/jitsi/lib-jitsi-meet/blob/c24130622ef3cf24078b0e5244a09e1d9c37dfd7/modules/xmpp/strophe.emuc.js#L161 |
Hi @damencho Screen.Recording.2021-11-16.at.6.32.36.PM.mov |
You can do the same, but also opening the Network tab and check whether the message is sent and whether it is received over the network. |
I just did some simple tests by using the network tab now. The message is sent but it is not received by anyone over the network This is the post request it made while sending the request. I also got 200 ok response
But it was not broadcasted to anyone including the current user |
hummm then it is filtered in prosody ... do you see something about this message when in debug mode? |
As we stated above we actually see an event fired when we view the debug logs at the backend. But we don't really know why we can't receive the messages from the front end
|
Hum ... something is dropping you should see message received delivered You can try and see when you do same with main room what are the debug logs that you miss when you do with lobby ... |
Hi @damencho we realized that the messages were filtered out by the |
Here is a video rec. by @mkhstar showing POC workout |
We have started the implementation and planning to create a PR for challenge-response feature next week. |
Looks like a solid plan, thanks for putting the document together! |
@umitdogan1 Thanks! We are preparing a new release so it may take us a bit of time to get to it, but we will. |
@saghul any update? Or any estimation about the date for review or merge? |
I'm off until the new year so no updates on my side. Not sure how busy damencho is but last I checked he was pretty busy. |
Looks like a really useful feature to have, Please let us inform when this feature comes live :) |
We were planing to create PR today but faced with new conflicts. Working on it. Stay tuned :) |
We had a pull on 19 Jan. from this commit b80531c We have been resolving conflicts and ready for PR today. But, realized that there are lots of new commits related to lobby room and knocking participants feature which are causing new conflicts. Also, it seems lobby room and knocking participant UI has changed to a great extent since our last pull. Today we will try to fix all issues and adapt UI of the lobby room chat (challenge/response) feature according to the latest update. Probably create a PR tomorrow. We have a question probably to @saghul here, will there be constant changes in lobby room in the following days? Is it highly possible for us to face with new conflicts? |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
PR landed, closing. |
The Document Foundation is interested in getting this feature implemented, if and only if it is accepted into upstream Jitsi. We will proceed with contracting, if this gets the green light from core devs. Implementation details could then be discussed in this issue. Ping @saghul @damencho
Scenario
During LibreOffice conference 2020 we had uninvited people over, so we had to lock the room (since we want to keep access as easy as possible we did not want to use passwords to lock the room, also we don’t know who will join beforehand, so distributing said password is not feasible). The problem with that is that while people can request access, there is no way to communicate before, and as people can freely choose a nick, they might be unsuspicious-looking but actually be the same person that was kicked earlier.
Proposal
Be able to initiate a chat with the person knocking, to give a simple challenge/response before granting access.
The text was updated successfully, but these errors were encountered: