Create a Meeting Room with Video API
The virtual session URLs contain embedded Room IDs. Depending on your application's business logic and workflow, you may require several rooms. To access various virtual rooms, create additional rooms and embed them into your Video Embed URL.
The room is created on the EnableX server, and a unique URL is generated for the participants to join the room. Participants can join the room using this URL from any device, such as a personal computer, laptop, mobile device, or a tablet. Once the participants are in the room, they can communicate with each other using audio, video, and chat.
The EnableX server and you applicate server communicate through the REST API, also known as the Server API. You must pass the access credentials, APP_ID and APP_KEY, which you obtain when creating a project on the EnableX portal, in Authorization Header for accessing the Server API.
Create Meeting URL
You can create a meeting room request by calling the Server API through the Meeting Room URL. The connection between the URL and the IFRAME Embed URL is authenticated using Meeting Room ID. Once authenticated, the IFRAME Embed URL fetches video streams of participants directly from the Meeting Room URL and displays them in an embedded window on your platform.
Example: Meeting URL Explanation
Create a Room to Obtain the Room ID
To create a Meeting Room URL, you need to create a room and fetch the Room ID. You can Create a Room using the Server API and the EnableX server responds with the JSON payload containing the unique Room ID. Three types of meeting rooms can be created: Permanent, Scheduled, and Adhoc.
Permanent Room
Once created, a permanent meeting room is always available for use. You can start it any time and schedule it for subsequent use. To create a permanent room, use the following setting in the JSON payload of the API call:
{ "settings": {"scheduled": false,"adhoc": false}}
Example: API Call to Create a Permanent Room
Use this API call to create a permanent room that can be used for communication and collaboration purposes. The room is permanently stored in the database and is accessible for use by other users.
- Method: POST
- Authorization: Basic XXXXXXXX
- URL:
https://api.enablex.io/video/v1/rooms
- Headers:
Content-Type: application/json
POST Body
Element | Description | Type |
---|---|---|
name | Name of the meeting room. | String |
owner_ref | Reference of the owner. | String |
settings | Settings adjusted for the newly created meeting room. | JSON Object |
description | Description for the newly created meeting room. | String |
mode | Mode of the newly created meeting room. | String |
scheduled | Specifies whether the meeting has been scheduled. | Boolean |
adhoc | Specifies whether the newly created meeting room is adhoc or permanent. | Boolean |
duration | Duration of the scheduled meeting. | number |
moderators | Number of moderators in the meeting room. | String |
participants | Number of participants other than the moderators in the meeting room. | String |
quality | Streaming quality of the meeting. | String |
canvas | Specifies whether canvas streaming is enabled. | Boolean |
screen_share | Specifies whether screen sharing is enabled. | Boolean |
abwd | Automatic bandwidth detection. | Boolean |
max_active_talkers | The maximum number of active talkers in the meeting room. | Number |
Sample Request
POST https://api.enablex.io/video/v1/roomsContent-Type: application/jsonAuthorization: Basic XXXXXXXX{"name": "My Permanent Room","owner_ref": "XOXO","settings": {"description": "My Permanent Room","mode": "group","scheduled": false,"adhoc": false,"duration": 30,"moderators": "1","participants": "3","quality": "SD","canvas": false,"screen_share": false,"abwd": true,"max_active_talkers": 4}}
Sample Response
{"result": 0,"room": {"name": "My Permanent Room","owner_ref": "XOXO","settings": {"scheduled": false,"adhoc": false},"created": "2021-05-25T00:20:30.851Z","room_id": "xxxxxxxxxxxxxx"}}
Explaination of Response
The EnableX server responds with a JSON object containing a unique room-id
.
Element | Description | Type |
---|---|---|
result | Success or failure result of room creation. | Boolean |
room | Information about the newly created room. | JSON Object |
name | Name of the newly created room. | String |
owner_ref | Reference of the owner. | String |
settings | Settings of the newly created room. | JSON Object |
scheduled | Specifies whether the meeting has been scheduled. | Boolean, the default value is false. |
adhoc | Specifies whether the newly created meeting room is adhoc or permanent. | Boolean, the default value is false. |
created | Status of the created meeting room. | String |
room-id | ID of the newly created meeting room. | String |
Scheduled Room
A scheduled room is only available for a particular duration. To create a scheduled room, specify the following settings in the JSON payload of the API call:
{ "settings": {"scheduled": true,"scheduled time": "YYYY-MM-DD HH:II:SS","duration": 30}}
The scheduled time is in GMT.
Example 3: API Call to Create a Scheduled Room
- Method: POST
- Authorization: Basic XXXXXXXX
- URL:
https://api.enablex.io/video/v1/rooms
- Headers:
Content-Type: application/json
POST Body
Element | Description | Type |
---|---|---|
name | Name of the meeting room. | String |
owner_ref | Reference of the owner. | String |
settings | Settings adjusted for the newly created meeting room. | JSON Object |
description | Description of the newly created meeting room. | String |
mode | Mode of the newly created meeting room. | String |
scheduled | Specifies whether the meeting has been scheduled. | Boolean |
adhoc | Specifies whether the newly created meeting room is adhoc or permanent. | Boolean |
duration | Duration of the scheduled meeting. | number |
moderators | Number of moderators in the meeting room. | String |
participants | Number of participants other than the moderators in the meeting room. | String |
quality | Streaming quality of the meeting. | String |
abwd | Automatic bandwidth detection. | Boolean |
Sample Request
POST https://api.enablex.io/video/v1/roomsContent-Type: application/jsonAuthorization: Basic XXXXXXXX{"name": "My Scheduled Room","owner_ref": "XOXO","settings": {"description": "My Scheduled Room","mode": "group","scheduled": true,"adhoc": false,"scheduled_time": "2021-05-31 05:30:00","duration": 30,"moderators": "1","participants": "3","quality": "SD","abwd": true}}
Sample Response
{"result": 0,"room": {"name": "My Scheduled Room","owner_ref": "XOXO","settings": {"scheduled": true,"scheduled_time": "2021-05-31 05:30:00","duration": 30,"adhoc": false},"created": "2021-05-25T00:20:30.851Z","room_id": "xxxxxxxxxxxxxx"}}
Explaination of Response
EnableX server responds with a JSON object containing a unique room-id
.
Element | Description | Type |
---|---|---|
result | Success or failure result of room creation. | Boolean |
room | Information about the newly created room. | JSON Object |
name | Name of the newly created room. | String |
owner_ref | Reference of the owner. | String |
settings | Settings of the newly created room. | JSON Object |
scheduled | Specifies whether the meeting has been scheduled. | Boolean, the default value is false. |
cheduled_time | The scheduled time of the meeting in GMT. | String |
adhoc | Specifies whether the meeting room is adhoc or permanent. | Boolean, the default value is false. |
created | Status of the newly created meeting room. | String |
room-id | ID of the newly created meeting room. | String |
Adhoc Room
An adhoc room can be instantly created and is only available for a single call. Adhoc rooms are useful for applications that need to quickly create a scheduled room. These rooms eliminate the need to set up a room in advance, and the room exists only for the duration of the call. To create an adhoc room, specify the following settings in the JSON payload of the API call:
{ "settings": {"scheduled": false,"adhoc": true}}
Example 4: API Call to Create an Adhoc Room
- Method: POST
- Authorization: Basic XXXXXXXX
- URL:
https://api.enablex.io/video/v1/rooms
- Headers:
Content-Type: application/json
POST Body
Element | Description | Type |
---|---|---|
name | Name of the meeting room. | String |
owner_ref | Reference of the owner. | String |
settings | Settings adjusted for the newly created meeting room. | JSON Object |
description | Description of the newly created meeting room. | String |
mode | Mode of the newly meeting room. | String |
scheduled | Specfies whether the meeting has been scheduled. | Boolean |
adhoc | Specfies whether the meeting room is adhoc or permanent. | Boolean |
duration | Duration of the scheduled meeting. | number |
moderators | Number of moderators in the meeting room. | String |
participants | Number of participants other than the moderators in the meeting room. | String |
quality | Streaming quality of the meeting. | String |
canvas | Specfies whether canvas streaming enabled. | Boolean |
screen_share | Specfies whether screen sharing is enabled. | Boolean |
abwd | Automatic bandwidth detection. | Boolean |
max_active_talkers | The maximum number of active talkers in the meeting room. | Number |
Sample Request
POST https://api.enablex.io/video/v1/roomsContent-Type: application/jsonAuthorization: Basic XXXXXXXX{"name": "My Adhoc Room","owner_ref": "XOXO","settings": {"description": "My Adhoc Room","mode": "group","scheduled": false,"adhoc": true,"duration": 30,"moderators": "1","participants": "3","quality": "SD","canvas": false,"screen_share": false,"abwd": true,"max_active_talkers": 4}}
Sample Response
{"result": 0,"room": {"name": "My Adhoc Room","owner_ref": "XOXO","settings": {"scheduled": false,"adhoc": true},"created": "2021-05-25T00:20:30.851Z","room_id": "xxxxxxxxxxxxxx"}}
Explaination of Response
The EnableX server responds with a JSON object containing a unique room-id
.
Element | Description | Type |
---|---|---|
result | Success or failure result of room creation. | Boolean |
room | Information about the newly created room | JSON Object |
name | Name of the newly created room. | String |
owner_ref | Reference of the owner. | String |
settings | Settings of the newly created room. | JSON Object |
scheduled | Specifies whether the meeting has been scheduled. | Boolean, the default value is false. |
adhoc | Specifies whether the meeting room is adhoc or permanent. | Boolean, the default value is false. |
created | Status of the newly created meeting room. | String |
room-id | ID of the newly created meeting room. | String |
To learn more about Video API, refer to the following sources:
Format of Meeting URL
The video meeting taking place in a meeting room that can be easily accessed through the Meeting URL. This Meeting URL is used as a source URL in the IFRAME Embed Code.
The Meeting URL (see Example 5) comprises of two key components: Room ID and Domain.
Example 5: Meeting URLs
URL: https://your-subdomain.host-domain/#ROOM_ID#
EnableX requires unique Room IDs for both participants and moderators. They can join a video meeting with their unique Meeting URLs.
-
Participant Meeting URL
-
For Embed Lite – 4 Participant UI Layout
https//your-subdomain.yourvideo.app/#ROOM_ID#
-
For Embed Premium – 12 Participant UI Layout
https//your-subdomain.yourvideo.live/#ROOM_ID#
-
-
Moderator Meeting URL
-
For Embed Lite – 4 Participant UI Layout
https//your-subdomain.yourvideo.app/host/#HASH*#
-
For Embed Premium – 12 Participant UI Layout
https//your-subdomain.yourvideo.live/host/#HASH*#
-
Here #HASH#* is a base64 encoded string with ROOM ID and APP ID APP ID is generated when you create a project. Use "-" (Dash) as a separator. For example, base64 encode ("ROOM_ID"-"APP_ID").
A moderator has the following special privileges in a video room:
- Lock Room
- Record
- Live Streaming
- Mute Room
- Hard Mute Participants
- Disconnect Participant
- Control Participants Entry
- Close Conference