Skip to content

Latest commit

 

History

History
990 lines (750 loc) · 19.8 KB

File metadata and controls

990 lines (750 loc) · 19.8 KB
title language_tabs language_clients toc_footers includes search highlight_theme headingLevel
Video Conferencing Service v1.0.0
javascript
JavaScript
javascript--nodejs
Node.JS
javascript
request
javascript--nodejs
false
darkula
2

Video Conferencing Service v1.0.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Microservice providing Video-Conferencing service

Base URLs:

Authentication

  • HTTP Authentication, scheme: bearer

VideoChatArchiveController

VideoChatArchiveController.setUploadTarget

Code samples

const inputBody = '{}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives/storage-target',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');
const inputBody = {};
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives/storage-target',
{
  method: 'PUT',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PUT /archives/storage-target

Configures custom storage target to a custom Amazon s3 bucket or Microsoft Azure Storage.

Permissions
SetMeetingUploadTarget

Body parameter

{}

Parameters

Name In Type Required Description
body body object false none

Example responses

200 Response

null

Responses

Status Meaning Description Schema
200 OK none text
To perform this operation, you must be authenticated by means of one of the following methods: HTTPBearer

VideoChatArchiveController.getArchive

Code samples

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives/{archiveId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives/{archiveId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /archives/{archiveId}

Used to fetch a specific archive w.r.t archiveId. If archive is not present, it will throw HTTP Not Found Error.

Permissions
GetMeetingArchives

Parameters

Name In Type Required Description
archiveId path string true none

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

To perform this operation, you must be authenticated by means of one of the following methods: HTTPBearer

VideoChatArchiveController.deleteArchive

Code samples

const headers = {
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives/{archiveId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');

const headers = {
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives/{archiveId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

DELETE /archives/{archiveId}

Used to delete a specific archive w.r.t archiveId. If archive is not present, it will throw HTTP Not Found Error.

Permissions
DeleteMeetingArchive

Parameters

Name In Type Required Description
archiveId path string true none

Example responses

200 Response

null

Responses

Status Meaning Description Schema
200 OK none text
To perform this operation, you must be authenticated by means of one of the following methods: HTTPBearer

VideoChatArchiveController.getArchives

Code samples

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/archives',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /archives

Used to fetch a list of archives (meetings that were recorded).

Permissions
GetMeetingArchives

Example responses

200 Response

{}

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

To perform this operation, you must be authenticated by means of one of the following methods: HTTPBearer

VideoChatSessionController

VideoChatSessionController.getAttendeesList

Code samples

const headers = {
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}/attendees',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');

const headers = {
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}/attendees',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

GET /session/{meetingLinkId}/attendees

Permissions
GetMeetingAttendees

Parameters

Name In Type Required Description
meetingLinkId path string true none
active query string false none

Example responses

200 Response

[]

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

To perform this operation, you must be authenticated by means of one of the following methods: HTTPBearer

VideoChatSessionController.endSession

Code samples

const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}/end',
{
  method: 'PATCH',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');

const headers = {
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}/end',
{
  method: 'PATCH',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /session/{meetingLinkId}/end

Used to stop the current active meeting. Meeting cannot be stopped again if it is already stopped. Successful execution will add the endTime attribute to a recently ending session.

Permissions
StopMeeting

Parameters

Name In Type Required Description
meetingLinkId path string true none

Responses

Status Meaning Description Schema
204 No Content MessageRecipient PATCH success None
To perform this operation, you must be authenticated by means of one of the following methods: HTTPBearer

VideoChatSessionController.getMeetingToken

Code samples

const inputBody = '{}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}/token',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');
const inputBody = {};
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}/token',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /session/{meetingLinkId}/token

Used for Generating token, which is used for connecting to a room/session on a client side. In vonage, there are three different roles (Moderator, Subscriber, Publisher). We can use expire time for limited validity of a token. Successful execution will send a token.

Permissions
GenerateMeetingToken

Body parameter

{}

Parameters

Name In Type Required Description
meetingLinkId path string true none
body body object false none

Example responses

200 Response

null

Responses

Status Meaning Description Schema
200 OK none Inline

Response Schema

To perform this operation, you must be authenticated by means of one of the following methods: HTTPBearer

VideoChatSessionController.editMeeting

Code samples

const inputBody = '{
  "deleted": true,
  "deletedOn": "2019-08-24T14:15:22Z",
  "deletedBy": "string",
  "createdOn": "2019-08-24T14:15:22Z",
  "modifiedOn": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "modifiedBy": "string",
  "id": 0,
  "sessionId": "string",
  "meetingLink": "string",
  "isScheduled": true,
  "scheduleTime": "2019-08-24T14:15:22Z",
  "isArchived": true,
  "archiveId": "string",
  "uploadTarget": "string",
  "startTime": "2019-08-24T14:15:22Z",
  "endTime": "2019-08-24T14:15:22Z",
  "extId": "string",
  "extMetadata": {}
}';
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');
const inputBody = {
  "deleted": true,
  "deletedOn": "2019-08-24T14:15:22Z",
  "deletedBy": "string",
  "createdOn": "2019-08-24T14:15:22Z",
  "modifiedOn": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "modifiedBy": "string",
  "id": 0,
  "sessionId": "string",
  "meetingLink": "string",
  "isScheduled": true,
  "scheduleTime": "2019-08-24T14:15:22Z",
  "isArchived": true,
  "archiveId": "string",
  "uploadTarget": "string",
  "startTime": "2019-08-24T14:15:22Z",
  "endTime": "2019-08-24T14:15:22Z",
  "extId": "string",
  "extMetadata": {}
};
const headers = {
  'Content-Type':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('/session/{meetingLinkId}',
{
  method: 'PATCH',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

PATCH /session/{meetingLinkId}

Used for editing the meeting

Permissions
EditMeeting

Body parameter

{
  "deleted": true,
  "deletedOn": "2019-08-24T14:15:22Z",
  "deletedBy": "string",
  "createdOn": "2019-08-24T14:15:22Z",
  "modifiedOn": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "modifiedBy": "string",
  "id": 0,
  "sessionId": "string",
  "meetingLink": "string",
  "isScheduled": true,
  "scheduleTime": "2019-08-24T14:15:22Z",
  "isArchived": true,
  "archiveId": "string",
  "uploadTarget": "string",
  "startTime": "2019-08-24T14:15:22Z",
  "endTime": "2019-08-24T14:15:22Z",
  "extId": "string",
  "extMetadata": {}
}

Parameters

Name In Type Required Description
meetingLinkId path string true none
body body VideoChatSessionPartial false none

Responses

Status Meaning Description Schema
204 No Content Session details PATCH success None
To perform this operation, you must be authenticated by means of one of the following methods: HTTPBearer

VideoChatSessionController.getMeetingLink

Code samples

const inputBody = '{}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/session',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');
const inputBody = {};
const headers = {
  'Content-Type':'application/json',
  'Accept':'text/plain',
  'Authorization':'Bearer {access-token}'
};

fetch('/session',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /session

Used for Creating a session with options such as end to end encryption, archive mode. Note: Archiving Option cannot be enabled while using end to end encryption, otherwise an Error will be thrown. Successful execution will send a meeting link id which can be used to amend in client url.

Permissions
CreateMeetingSession

Body parameter

{}
Name In Type Required Description
body body object false none

Example responses

200 Response

"string"
Status Meaning Description Schema
200 OK none string
To perform this operation, you must be authenticated by means of one of the following methods: HTTPBearer

VideoChatSessionController.checkWebhookPayload

Code samples

const inputBody = '{}';
const headers = {
  'Content-Type':'application/json'
};

fetch('/webhooks/session',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
const fetch = require('node-fetch');
const inputBody = {};
const headers = {
  'Content-Type':'application/json'
};

fetch('/webhooks/session',
{
  method: 'POST',
  body: JSON.stringify(inputBody),
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

POST /webhooks/session

Webhook API hit from a third party to add/update session attendees in a meeting.

Body parameter

{}

Parameters

Name In Type Required Description
body body object false none

Responses

Status Meaning Description Schema
204 No Content POST /webhooks/session Success None
This operation does not require authentication

Schemas

VideoChatSessionPartial

{
  "deleted": true,
  "deletedOn": "2019-08-24T14:15:22Z",
  "deletedBy": "string",
  "createdOn": "2019-08-24T14:15:22Z",
  "modifiedOn": "2019-08-24T14:15:22Z",
  "createdBy": "string",
  "modifiedBy": "string",
  "id": 0,
  "sessionId": "string",
  "meetingLink": "string",
  "isScheduled": true,
  "scheduleTime": "2019-08-24T14:15:22Z",
  "isArchived": true,
  "archiveId": "string",
  "uploadTarget": "string",
  "startTime": "2019-08-24T14:15:22Z",
  "endTime": "2019-08-24T14:15:22Z",
  "extId": "string",
  "extMetadata": {}
}

VideoChatSessionPartial

Properties

Name Type Required Restrictions Description
deleted boolean false none none
deletedOn string(date-time)¦null false none none
deletedBy string¦null false none none
createdOn string(date-time) false none none
modifiedOn string(date-time) false none none
createdBy string false none none
modifiedBy string false none none
id number false none none
sessionId string false none none
meetingLink string false none none
isScheduled boolean false none none
scheduleTime string(date-time) false none none
isArchived boolean false none none
archiveId string false none none
uploadTarget string false none none
startTime string(date-time) false none none
endTime string(date-time) false none none
extId string false none none
extMetadata object false none none