Native Breakout Controller & Swift UI Communication

Hi all,

I’m running into an issue I’m hoping someone has perhaps experienced in the past…

So here’s the details of what we’re attempting to do… in short, I’m trying to create a macOS zoom client using the SDK that will control breakout rooms.

I’ve gotten a good bit of the way there. What I have so far:

An application that when launched, verifies the app’s JWT token (not hard coded), and then presents a login to our web platform, Obvio. The user uses their Obvio login to authenticate, and are then presented with a list of organizations they own or belong to. Once they select the org, they’re presented with a list of events within that org. Once they select the event, they’re presented with a list of areas (groupings of zoom meetings). They are then presented with a list of Rooms (zoom meetings).

They select the meeting, and have the option to start the meeting. This pulls the meetings Zak token using our API connected to zoom’s API, and then launches the meeting using the ZAK token and the default UI of the Zoom SDK.

I also have wired up some basic control of the SDK, mostly host tools that we generally modify on every event load.

The main purpose of this app is then to control breakout rooms…

  • Create Rooms
  • Assign Participants
  • Open Rooms
  • Move Participants
  • Close Rooms

I can get the swift UI to add zoom rooms, remove zoom rooms, and rename breakouts. I’m also able to get it to open and close breakouts. So really close.

Where I’m getting stuck:

  • Despite the web setting being turned on, I can’t seem to get the swift UI to create, rename, or delete breakouts AFTER they’ve been opened. This seems to have been enabled back in version 5.9 (approx going from memory) of the SDK, and we’re on the latest version (which I think is 6.7.2). But regardless of what I try, I can’t seem to get the SDK to modify breakout rooms after they’re open.

  • If we make any changes in zoom’s native breakout controller in the (default UI via the SDK embedded app), we can’t seem to get that to update the swift UI except on open/close of breakout rooms. So you either have to make changes to breakouts in the native controller or in our swift controller, but the two don’t speak to each other consistently.

I’m clearly missing something, as I feel as though from what I’ve read, this should be doable, but I just can’t seem to get past this… so hoping I can get an answer on first off if it’s doable, and second, what direction I should be attempting in order to get consistent communication between the swift UI and the native app so the two appear to have the same info with regards to breakout rooms (created, renamed, assigned, etc etc).

Thanks in advance for your help!

Blue

Hi @Obvio_Online apologies for the abrupt ending to our meeting yesterday. I just wanted to let you know I am looking into this issue with my team. I’ll link the engineering ticket here once it has been submitted.d

Here is the ticket reference: ZSEE-194616

Could you also record another instance of you replicating this issue for our engineering team to get a visual? @Obvio_Online

@ticorrian.heard Hey there,

I’m sorry I didn’t get a chance to get you a visual on this… I have another issue I’m running into that is essentially connected….

In addition to not being able to Add, Edit, or Delete breakout rooms once they breakout rooms have launched, I’ve found another missing feature from a parity perspective… there doesn’t seem to be a way via the provided SDK tools to monitor participant audio/video status once they are in breakouts.

The native application (including the embedded zoom app via the SDK) does have the ability to see when participants have their microphone muted/unmuted, audio activity, and video on/off status… Again, I feel like I must be missing something, but I can’t find it anywhere via the documentation.

While your engineers are looking at the add/remove/rename issue, can we get an answer on this as well?

BTW: I’ve updated the app to the latest, just released version of the SDK, and this is still the case.

Thanks!
Blue

Hi again @ticorrian.heard !

I spent some time this morning documenting the specific inconsistencies we’re seeing with the SDK vs. the native application to try and make it easier for the engineering team to either solve, or point us in the right direction (in case its there and we’re just missing it)….

I submitted all three to the feature request Topic with the tag SDK attached.

Issue 1 - SDK not making mic/video status available from breakout participants to the SDK
https://devforum.zoom.us/t/feature-request-participant-a-v-status-in-breakout-rooms-meeting-sdk-for-macos/142674

Issue 2 - SDK Preventing Add/Remove/Rename of Breakout Rooms Once Breakouts Launched
https://devforum.zoom.us/t/feature-request-allow-breakout-room-create-rename-delete-while-rooms-are-open-meeting-sdk-for-macos/142678

Issue 3 - Several Host Tool Inconsistencies Between Native App and SDK
https://devforum.zoom.us/t/host-tools-missing-sdk-controls-and-callbacks/142679

I’m hoping we’re just looking in the wrong place, or some of these items are in place, just not documented… but so far, no luck.

Let me know best next steps.

Thanks!
Blue

@ticorrian.heard hey there… any update here?

Thanks

Hi @Obvio_Online, sorry for the wait here. I can submit engineering tickets for these feature requests. However, I do not have ETA or timeline for these requests as we have to manage our resources for higher priority features.

For the breakout room issue, here is engineerings reply:

Regarding the old Breakout Room (BO) meeting, updating breakout rooms after the breakout session has started is not supported. This is by design.

In addition, changes made directly in the Zoom client GUI (such as renaming rooms, adding rooms, or deleting rooms) will not be synchronized with the breakout room list retrieved through the SDK APIs. This is because the SDK breakout room data model and the Zoom client UI data model are not the same system, and the SDK interfaces are not designed to be interoperable with or reflect changes made in the Zoom client UI. This behavior is also by design.

Hey there @ticorrian.heard.

I can’t be alone in thinking that the response from engineering that these things are by design is an odd response right?

I mean, there is a system in the SDK to retrieve a list of breakout rooms, but by design it is intended to be inaccurate and not reflect what’s actually happening with the breakout list? What am I missing? Why even have the ability to retrieve a list of bo rooms if is “by design” not intended to show an accurate list??

What am I missing here?

Blue

Hi Blue, totally understand your side. I think the logic here is distinction between two things: 1) the synchronization of UI data and server data and 2) real-time and near real-time updates of that data and the expectation of getting the latest updated value of that data from the server. If I can recall, adding, deleting, and renaming rooms does not directly communicate to the server that the room actually exists until the “open all rooms” button is clicked which sends the signal to the server to create the rooms as described in the frontend UI. I think thats what they mean since the server would not have the breakout room data to respond with in the case of using SDK methods to retrieve the breakout room data.

I can get some clarity on this behavior from engineering to confirm though.