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 Rooms

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

Meeting URL

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

ElementDescriptionType
nameName of the meeting room.String
owner_refReference of the owner.String
settingsSettings adjusted for the newly created meeting room.JSON Object
descriptionDescription for the newly created meeting room.String
modeMode of the newly created meeting room.String
scheduledSpecifies whether the meeting has been scheduled.Boolean
adhocSpecifies whether the newly created meeting room is adhoc or permanent.Boolean
durationDuration of the scheduled meeting.number
moderatorsNumber of moderators in the meeting room.String
participantsNumber of participants other than the moderators in the meeting room.String
qualityStreaming quality of the meeting.String
canvasSpecifies whether canvas streaming is enabled.Boolean
screen_shareSpecifies whether screen sharing is enabled.Boolean
abwdAutomatic bandwidth detection.Boolean
max_active_talkersThe maximum number of active talkers in the meeting room.Number

Sample Request

POST https://api.enablex.io/video/v1/rooms
Content-Type: application/json
Authorization: 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.

ElementDescriptionType
resultSuccess or failure result of room creation.Boolean
roomInformation about the newly created room.JSON Object
nameName of the newly created room.String
owner_refReference of the owner.String
settingsSettings of the newly created room.JSON Object
scheduledSpecifies whether the meeting has been scheduled.Boolean, the default value is false.
adhocSpecifies whether the newly created meeting room is adhoc or permanent.Boolean, the default value is false.
createdStatus of the created meeting room.String
room-idID 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

ElementDescriptionType
nameName of the meeting room.String
owner_refReference of the owner.String
settingsSettings adjusted for the newly created meeting room.JSON Object
descriptionDescription of the newly created meeting room.String
modeMode of the newly created meeting room.String
scheduledSpecifies whether the meeting has been scheduled.Boolean
adhocSpecifies whether the newly created meeting room is adhoc or permanent.Boolean
durationDuration of the scheduled meeting.number
moderatorsNumber of moderators in the meeting room.String
participantsNumber of participants other than the moderators in the meeting room.String
qualityStreaming quality of the meeting.String
abwdAutomatic bandwidth detection.Boolean

Sample Request

POST https://api.enablex.io/video/v1/rooms
Content-Type: application/json
Authorization: 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.

ElementDescriptionType
resultSuccess or failure result of room creation.Boolean
roomInformation about the newly created room.JSON Object
nameName of the newly created room.String
owner_refReference of the owner.String
settingsSettings of the newly created room.JSON Object
scheduledSpecifies whether the meeting has been scheduled.Boolean, the default value is false.
cheduled_timeThe scheduled time of the meeting in GMT.String
adhocSpecifies whether the meeting room is adhoc or permanent.Boolean, the default value is false.
createdStatus of the newly created meeting room.String
room-idID 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

ElementDescriptionType
nameName of the meeting room.String
owner_refReference of the owner.String
settingsSettings adjusted for the newly created meeting room.JSON Object
descriptionDescription of the newly created meeting room.String
modeMode of the newly meeting room.String
scheduledSpecfies whether the meeting has been scheduled.Boolean
adhocSpecfies whether the meeting room is adhoc or permanent.Boolean
durationDuration of the scheduled meeting.number
moderatorsNumber of moderators in the meeting room.String
participantsNumber of participants other than the moderators in the meeting room.String
qualityStreaming quality of the meeting.String
canvasSpecfies whether canvas streaming enabled.Boolean
screen_shareSpecfies whether screen sharing is enabled.Boolean
abwdAutomatic bandwidth detection.Boolean
max_active_talkersThe maximum number of active talkers in the meeting room.Number

Sample Request

POST https://api.enablex.io/video/v1/rooms
Content-Type: application/json
Authorization: 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.

ElementDescriptionType
resultSuccess or failure result of room creation.Boolean
roomInformation about the newly created roomJSON Object
nameName of the newly created room.String
owner_refReference of the owner.String
settingsSettings of the newly created room.JSON Object
scheduledSpecifies whether the meeting has been scheduled.Boolean, the default value is false.
adhocSpecifies whether the meeting room is adhoc or permanent.Boolean, the default value is false.
createdStatus of the newly created meeting room.String
room-idID 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