# Общее описание
Данная инструкция описывает работу с API обоих продуктов: TrueConf VideoSDK и TrueConf Room.
# Сравнение продуктов
Ниже представлена таблица с перечислением функционала каждого решения:
Функционал | TrueConf Room | TrueConf VideoSDK | ||
---|---|---|---|---|
Free | PRO | Free | PRO | |
Веб-интерфейс управления настройками приложения | V | V | V | V |
Полнофункциональный веб-интерфейс управления видеоконференцсвязью | V | V | ||
Разграничение прав доступа для администраторов и пользователей | V | V | ||
Выбор элементов интерфейса для отображения на главном экране | V | V | ||
Изменение фона главного окна приложения | V | V | ||
Брендирование: изменение логотипа на главном экране | V | V | ||
Отсутствие надписи “Free” поверх видео с камеры и в конференциях | V | V | ||
Наличие API | V | V | V | V |
Протокол NDI: отправка видео по протоколу NDI | V | V | ||
Протокол NDI: получение видео по протоколу NDI | V | V | ||
TrueConf Room Service | V | V | ||
Поддерживаемые ОС |
Microsoft Windows 7 SP1 и выше Debian 10 / 11 Ubuntu 20.04 / 21.10 Astra Linux CE 2.12 Astra Linux SE 1.6 / 1.7 Raspberry Pi OS |
# Введение
Интерфейс управления представляет из себя один вебсокет (WebSocket), по которому осуществляется обмен сообщениями в формате JSON
# Пример
Ниже приведен пример html-страницы, где при нажатие на кн. "Call" будет произведен вызов абонента по его TrueConf ID, который указан в текстовом поле.
Важно. Перед открытием страницы в браузере убедитесь в следующем:
VideoSDK/Room уже запущен локально.
Для управления VideoSDK/Room используется Незащищенный вход.
<html lang="en">
<script>
let ws;
let inputPeerId;
let submitButton;
let resultH4;
window.addEventListener('load', () => {
inputPeerId = window.document.getElementById('peerIdInput');
submitButton = window.document.getElementById('submitButton');
resultH4 = window.document.getElementById('resultH4');
submitButton.addEventListener('click', ()=> {
const peerId = inputPeerId.value;
sendMsg({ method : "call", peerId });
});
init();
})
function init(){
ws = new WebSocket("ws://localhost:8765/");
ws.addEventListener('message', onMsg);
ws.addEventListener('error', onError);
ws.addEventListener('open', onOpen);
}
function sendMsg(msg) {
ws.send(JSON.stringify(msg));
}
function onMsg(e) {
const data = JSON.parse(e.data);
// Processing: Commands responses
switch (data.method) {
case "auth": {
data.result ? console.log('authorization done') : console.error('authorization error', data.error);
sendMsg({
method: 'login',
login: "1@someserver.name",
password: "123"
});
}
break;
}
// Processing: Events
switch (data.event) {
case "conferenceCreated": {
resultH4.innerHTML = "confID: " + data.confId;
}
break;
}
}
function onError(e) {
console.error(e);
}
function onOpen(e) {
sendMsg({
method: 'setUsedApiVersion',
requestId: "",
version: "1"
});
sendMsg({
method: 'auth',
type : "unsecured"
});
}
</script>
<body>
<h3>Calling from TrueConf Room to any user by ID</h3>
<input id="peerIdInput" type="text" name="peerId" />
<input id="submitButton" type="submit" value="call" />
<h4 id="resultH4"></h4>
</body>
</html>