Using breakout room on iOS with MeetingSDk

Description
I am trying to start a meeting with the breakout room and allow the host the separate the participants into 2-3 people.

I am not sure can do this by using the MeetingSDK, I found that there have BOmeeting in the reference. (iOS SDK API Reference: MobileRTCBOMeeting Class Reference)

I called the sartBO() function but nothing happen. Am I missing something step to do?

Which iOS Meeting SDK version?
The latest one (5.9.6)

To Reproduce(If applicable)
Steps to reproduce the behavior:

  1. Call the startBO() function

Smartphone (please complete the following information):

  • Device:iPad Air, pro
  • OS: iOS 11-15

Hi @lemon97213,

The iOS SDK can create and manage breakout rooms in a similar manner to the Zoom client. This means that it largely follows the same flow that is outlined in our documentation. It looks like you are trying to start breakout rooms without having created any. You can create rooms through the createBO method.

It is also worth noting that you need to receive a callback before you can interact with the breakout-related objects. For example, if you haven’t received the onHasCreatorRightsNotification callback, you will not be able to create breakout rooms.

Thanks!

Thank you for your reply.

If it is follow the same flow of the Zoom client, I should create the BO room, then do I need to assign host to rhe BO room or it should start the BO room first then assign the participants.

About the callback function, should I just create it in my mainviewcontroller and leave it empty?

Regard

Hi @lemon97213,

If it is follow the same flow of the Zoom client, I should create the BO room, then do I need to assign host to rhe BO room or it should start the BO room first then assign the participants.

The host can join breakout rooms, so you don’t need to assign yourself. You can assign users to breakout rooms both before and after they are started.

About the callback function, should I just create it in my mainviewcontroller and leave it empty?

How and where you implement this callback depends on your use case. You should use this callback to know when the current user has access to specific areas of breakout-related functionality. What you do from that point onward is entirely dependent on your use case.

Thanks!

Hi @jon.lieblich,

Thank you for your reply, I think I have some progress about this, after I turn on the Breakout room setting in the web protal I can create BO room now, but I cant add and start the BO meeting

  1. createBO is ok
  2. startBO still return false
  3. canStartBO return false


Hi @lemon97213,

Have you received the correct callbacks before trying to start the breakout room as previously mentioned?

Thanks!

Hi @jon.lieblich

I am not sure, I created the method in the same file of calling the startBO method.


But I didnt see the NSLog message at the console.

Thanks.

Hi @lemon97213,

If you are not seeing the log, you either do not have the privileges required or didn’t set the delegate as the delegate property.

Thanks!

@jon.lieblich
I have set the delegate including Creator, admin, datahelper and meeting service

Hi @lemon97213,

Thanks for confirming. At what point are you setting the delegate? It is also possible that it is being set after you gained those privileges, in which case you also would not be able to receive the callback.

Thanks!

@jon.lieblich

Would you mind showing me how to gain those privileges? I have been trying for a few days, but still, trapped in this problem. Thank you so much.

Regards,
Alex

Hello @lemon97213 ,

I don’t know if this will be helpful, but if you don’t assign the user to BO before calling StartBo, StartBO should fail.
Create the BO first, assign the user to the BO, then do StartBO in that order.

Happy to be of help.
Thanks.

Hi @lemon97213,

In order to manage breakout rooms, the current user must either be host or co-host of the meeting.

Thanks!

Thank you for your advices @KAZUMA87


Her is my code. I tried your way. First of all, I called isBOMeetingEnabled, and it returned “YES”.

And console showed the BO meeting room ID, I believed that the creation of BO is succeed, but the assignBOUser and ret( canStartBO) are always return “Fail”. I ignored the “Fail” form previous step call the startBO, It failed as expected.

So I guess my step should be right (1. create BO 2. assign use to BO 3. StartBO). It should have other issues on it.

@jon.lieblich
I am sure that the account using is the Host. I also tried start a BO meeting by using Zoom client, and use the to join the meeitng, then assign the host to the app user, and tried as same as I mention above. The BO meeting still cant start.

What I had been tried:

  1. Start with my app using Host user
  2. Start with Zoom Client, and assign host (Zoom client can open BO meeting).
  3. I checked the web portal, I oepn the right of start BO meeting.

I am still finding any access or privileges to open.

FYI, I am using Objective-C to build my app instead of Swift.

Thank you for your kind attention.

Hi @lemon97213,

It looks like you are immediately assigning users to breakout rooms after creating them. Since managing breakout rooms involves asynchronous operations, you will need to receive the onBOCreateSuccess callback for a given breakout room before it is available to assign users. Can you confirm whether or not you are seeing this callback before assigning users?

Thanks!

@jon.lieblich

Thank you for suggestion. My App is based on the Zoom SDK demo App. I called the startBO, createBO and other related method in the MainViewController.m


And I added the “onBOCreateSuccess” and other related callback in the same file, but it doesn’t call at all.

But I found that if I create the callback in here it will call the callback.

“…/SDKPresenters/how_to_use_inmeeting_function/meeting_callback/SDKStartJoinMeetingPresenter+CustomizedUIMeetingDelegate.m”


When I added the “MobileRTCBOCreatorDelegate” or another delegate in MainViewController.m Xcode suggested creating some related callback, but the App will call the callback function in the file I mentioned above. It is unnormal to me. I think this might be the reason why I can’t start the BO meeting.

Although the callback function was called successfully, the startBO still failed. I am working on the asynchronous operation, hope it will work.

Thanks,
Alex

Hi @lemon97213,

Are you calling startBO after receiving the onBOCreateSuccess callback? It doesn’t look like you have implemented any state management within your app, so it doesn’t seem like you have any way of guaranteeing that the order of operations will be correct.

Thanks!

@jon.lieblich

Yes, I dont have it now, I am working on it. Now I’m just called the createBo and the callback.

But First, I want to figure out why the callback method doesn’t work on the MainViewController.m, called on the file instead.

Regards,
Alex

I added “dispatch_async” trying to wait to the createBO was created successfully. But I still return the same result as above.

So I think the callback is the key of this problem.

Thanks,
Alex

Hi @lemon97213,

But First, I want to figure out why the callback method doesn’t work on the MainViewController.m, called on the file instead.

It sounds like you may be trying to set two different delegates. Since this is a property, only one delegate instance can be passed into the SDK.

I added “dispatch_async” trying to wait to the createBO was created successfully. But I still return the same result as above.

Sorry, but I am still not seeing any evidence that you are ensuring the callback was received prior to making this call. This would require a minimal amount of state management in your app.

Thanks!