Mesibo Video Conferencing - Create a Conference RoomEstimated reading time: 9 minutes
In this section, we will start by exploring the various conferencing operations, permissions, and settings available for a conference room. Then, we will explain how to create a conference room and add participants, first using the console, and then using Backend REST APIs.
Before you continue, ensure that you have gone through the following and you are quite familiar with mesibo APIs.
- Get Started With Conferencing APIs.
- Familiar with Group Management and Group Messaging APIs.
- Tutorial on Writing your First mesibo Enabled Application to learn about creating a mesibo application and adding users.
Conference Room Permissions
As we discussed in the previous section, a conference room is a mesibo group. The participants are members of a group. To create a conference room, the host essentially needs to create a mesibo group and add participants to it.
You can set various permissions at the group and the participant level, for example, who can publish, who can view, who can message, etc. This allows you to create any type of conference room just by setting the right permissions, for example, a meeting room or a classroom.
For any conference room, you can set the following permissions:
- Who can publish: If only selected members can publish streams or anyone in the group can publish
- Who can view: If only selected members can view streams or anyone in the group can view
- Who can list: If only selected members can get the list of participants or anyone in the group can get
- Who can send messages: If only selected members can send messages to the group or anyone in the group can message
- Who can receive messages: If only selected members can receive messages to the group or anyone in the group can receive
You can further refine permissions by setting them for individual participants which override the group level permissions. For example, say a few key members can publish in full-HD and rest in normal resolution, or to restrict a particular participant from sending messages, etc.
- can Send: If the member can send messages to the group
- can Receive: If the member can receive messages from the group
- can Publish: If the member can make (publish) group voice or video calls
- can Subscribe: If the member can subscribe to group voice or video calls
- can List: If the member can get a list of active callers in the group
Example Conference Room Settings
Here are some examples of different types of conference room settings in different scenarios.
Conference / Group Calling
In a conference/group calling app, you require that all the members of the group publish their stream and subscribe to other streams. Also, all the members should be able to get a list of participants who are publishing their streams so that they can subscribe to them. Hence the suggested group setting is as shown below. We have selected the
Members only option for who can publish streams, who can view streams, who can view the list of participants.
Open Webinar / Panel discussion
In an open webinar or panel discussion app, you generally require that only one or selected participants are publishing and the rest are subscribers only. Other members will not be allowed to publish their streams. This can be achieved with the following group permissions
In the case of a members-only webinar, you can simply change the permission as follows
- Who can view live streams: Members
- Who can view stream list: Members
You can also dynamically enable audio or video. For example, in the case of a webinar-discussion, someone can ‘raise hand’ to ask a question and you can automatically enable voice for that participant.
In a classroom app, the teacher has the controls to change the permissions for the students. At the group level, you can set that only selected members can publish - usually the teachers.
The students by default do not have permission to publish. By default, you can mute all the students. The teacher can dynamically set the talking permission for a student when any clarification is needed. You can have this dynamic control, by individual member level permissions.
You can create any kind of scenario just by setting the right permissions.
Creating a Conference Room
First, we will explain, how you can create a conference in the console, configure the required settings, and add members. Later, we will explain how to use RESTful Backend APIs for the same.
Using the console
Go to mesibo dashboard and choose an application. Click on the
Settings icon. Now click on
To create a new group, click on the
+ NEW GROUP button. Give a group name - example
ConferenceGroup and click on
Create. Your group with the name
ConferenceGroup should now be created and be displayed in the table. Click on the edit icon, under actions. This will open the Group Settings page where you can configure group-level permissions for who can publish and view streams.
Using Backend APIs
Create a group by invoking groupadd. To set group level permissions, for who can publish and view streams set the group flags(can be a logical OR combination of one or more flags) as follows:
- 0x100, Selected can publish
- 0x200, Anyone can publish
- 0x1000, Selected can subscribe
- 0x2000, Anyone can subscribe
- 0x10000, Selected can get list of participants
- 0x20000, Anyone can get list of participants
- 0x00, Default
This will return the group ID in a JSON response. Make note of this group id. We will use this later to add members to the group
Now, let us add participants as members to the group
Using the Console
Click on the
+ NEW MEMBER button and enter the user address whom you wish to add. Click on
Add. The Members table will now display the member you just added. Similarly, add more users.
Add the users created earlier as members of the group in the console.
If you want to provide participant level permissions in the console, set the group level permissions to Selected. For example, for Who can publish live streams, select the option Selected.
Then, you will be able to check or uncheck the checkbox for Can Publish. Similarly, you can set other participant-level permissions.
Using Backend APIs
Invoke groupeditmembers by passing the GID or group-ID of the group you created in the previous step and a comma-separated list of user addresses.
For each user, set the permissions using the following parameters:
- cansend = [group messaging] 1 if members being added can send messages, 0 for not
- canrecv = [group messaging] 1 if members being added can receive messages, 0 for not
- canpub = [group calling] 1 if members being added can make (publish) group voice or video calls, 0 for not
- cansub = [group calling] 1 if members being added can subscribe to group voice or video calls, 0 for not
- canlist = [group calling] 1 if members being added can get a list of active callers in the group, 0 for not
- delete = 0 to add members, 1 to remove members
In the case of a conference, members can send and receive videos. So we invoke the API as follows.
Let’s say you have users with addresses
user4 that need to be members of the conference, let all members have permission to publish, subscribe, and list. Invoke the API as follows
If you want to deny certain permission to the user, set the permission to
0. For example, if you do not want a certain participant to publish, set
In addition to permissions, you can set various properties like resolution, media, bitrate control, etc. for each group.
You can decide the default resolution for the conference room. mesibo supports different conference room resolutions, from normal to 4K. Mesibo has an adaptive algorithm to change the bitrate and resolution depending on the network condition, which is ON by default. However, you can disable it if you like. Note that although you can select the resolution in the console, your camera/device must support that resolution. It is recommended that you enable the resolution that best meets your bandwidth and device capacity.
You can enable default media types (voice or video or both) allowed in your conference room. For example, a normal conference room will have both voice and video. However, you can also create a voice-only room by disabling video. Alternatively, you can only allow subscribers to access video and voice but only allow asking questions using voice.
Similarly, you can enable screen-sharing for participants to share one or more screens during the conference.
Mesibo also allows you to enable simulcast in which each publisher can publish the same stream in different resolutions to cater to subscribers having different bandwidth and devices. Note that enabling simulcast increases CPU and bandwidth usage significantly.
You can override these settings per participant. For example, in your conference, you can make a setting such that only selected members (key speakers) can publish in HD resolution and others in low resolution, and so on.
Quick Start with Conferencing APIs
Now that you are familiar with creating a room using Group Management APIs, we will explore user-facing Conferencing APIs and operations in detail in the upcoming sections. You can choose a platform that you wish and quickly start building!conferencing, group calling, live streaming, facebook live, youtube live, screen sharing