A feature I need for my app is to display the list of all participants in the meeting - both in the main session and in the breakout rooms - with an indication of where they currently are (e.g. “in Room 3”).
I’ve (partially) got this to work by listening to onParticipantChange
and onMeetingConfigChanged
; then collecting the participants and their rooms from the getBreakoutRoomList
and those in the main session with getMeetingParticipants
.
The reason for taking this 2-legged approach, rather than just reading the .unassigned
property from the BreakoutRoomsResponse
, is that participants, who are assigned to a room, but then returned to the main session, still appear in the BreakoutRoomsResponse
(and in Zoom’s participant list) under the BOR they were in.
This stops working once the user joins a breakout room, because getMeetingParticipants
there returns only those participants who are in the same BOR.
The only solution I could think of so far is the /metrics/meetings/{meetingId}/participants
API call, which requires Business plan and is not what this app is intended for.
Is there a way to achieve this with Zoom SDK that I’ve overlooked, or should I make a feature request and hope for the best? )
Zoom Apps Configuration
React, Node.js
1 Like
@biinster Would you be comfortable to share some more details about the app or use case? It will help us understand event/API requirements better to design a solution.
I don’t have a ready solution for you, but we took this in as feature request. I will follow up once we have any news.
1 Like
Hi Evgeny and thanks for getting back to me!
This is for a classroom management app, where the teacher is expected to utilise breakout rooms a lot and needs to have as much of a panorama of the class as possible.
I’d say at a glance there are 2 ways to go about this:
- Add a flag to the
BreakOutRoomParticipantWithStatus
telling if the participant is actually in the breakout room or is just assigned to it but is actually hanging around in the main session.
OR
- “Globalise” the participant migration events and the
getMeetingParticipants
call:
- Make
onParticipantChange
, instead of firing when a participant leaves or enters the current meeting or current BOR, get triggered on a participant entering or leaving any room, including the main session, or alternatively bind onBreakoutRoomChange
to all participants, and not just to self.
- Have
getMeetingParticipants
return all participants and not just those in the current UUID (be it the main session or a breakout room).
- Add a property (e.g.
room
) to the Participant
type describing where the participant really is.
Either would be much appreciated!
Thanks again
Hi @biinster please, check the updated documentation:
BreakOutRoomParticipantWithStatus has the flag participantStatus that has two values: “assigned” or “joined”.
Does it solve the problem? If not, can you please elaborate, what are the edge cases when it doesn’t help?