Ephemeral Secure Rooms using Jitsi for Virtual Office Hours

I teach a large introductory programming class at the University of Illinois. Like many other schools we’re contemplating moving instruction online until the pandemic passes.

I’m looking for a solution to help us run virtual office hours. One of the primary ways that we support students with their longer programming assignments is through in-person office hours, where we have a team of course staff circulating in a large room offering small bits of help and assistance to students. I’d like to replicate this online and am wondering if Jitsi could be part of the solution.

Here’s what we need to work with very low friction. Once a CA selects a student to help, they should be able to create a short-lived meeting that they and the student are automatically added to. The meeting can be destroyed as soon as the help session is over. Ideally only the student and course staff would be allowed to join, since we don’t want students sharing code with other students. Ideally authentication would be one by validating Google authentication tokens, since we already use Google client-side authentication to grant students access to other course resources.

Alternatively, we could create a room for a student each time they ask a question. The student could remain in this room until they no longer need help, and course staff could circulate in and out as needed. In this setup it would be important to have a way to keep continuous track of what student rooms were active (meaning a student needed help) and which had a CA in them (meaning that the student is receiving help from another course staff member).

I like to hack and have a free week coming up that I can devote to working on this. So if someone can confirm that Jitsi is a good fit for this and point me in the right direction that would be great!

Hi and welcome.
So what I see as an easy approach to this problem, is to first have a deployment at your end configured to use jwt tokens without guest access. Then create a service that will be creating your tokens for your already authenticated users. Then you can just use the iframe API to embed the video experience in your app, where you will be counting rooms, participants etc. adding your business logic on top, like inviting and seach, you can listen for participant joining leaving so you can count … The jwt token can be created to be valid for only for a particular room (student) or you can create jwt token that can access all rooms (*) for teachers …

1 Like

Thanks for the quick response! This was pretty much what I thought would work.

WRT counting rooms: is there an official endpoint for that now? I found some previous topics where it looked like people had to add an extension to get this information. But in our case that would be fairly critical since room existence indicates a waiting student and room occupancy helps us filter out which students are currently being helped.

There is a prosody module which can create an http endpoint to query for rooms/session counts, but as you will all be controlling this from your app, you can count in your app.
This is the prosody module: https://github.com/jitsi/jitsi-meet/blob/master/resources/prosody-plugins/mod_muc_size.lua

We are actually working on a platform that would work perfectly for this scenario. We have not publicly launched yet, but we are onboarding free beta users. DM if you are interested, I can demo the solution to you and we can discuss how it can be adopted to your needs. Just to be clear, it’s free beta users, so I am NOT trying to sell anything here :).

I guess I’m not sure quite what this means yet. But just to clarify further, I was thinking of creating one room for each student identified by their email address. Students would only enter and leave that one room, but staff would and could move between rooms. So even if I could count participants outside of Jitsi, we could also use the endpoint you shared to accomplish the same thing based on the room list and participant counts.