- У меня успешно работает докер с KMS + OV сервером.
Также у меня есть успех с примером записи node.js.
Когда я пытаюсь использовать небезопасные примеры(REST API) я исправил создание сеансов соединения токена, но только 'https://MY_DOMAIN:4443/api/recording/start 403' я получил ошибку 403.
Доступ к выборке в 'https://MY_DOMAIN:4443/api/recording/start' from origin 'https://MY_DOMAIN' заблокирован политикой CORS: Ответ на предполётный запрос не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Если непрозрачный ответ удовлетворяет ваши потребности, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS.
Мой запрос:
fetch(this.ovServerUrl + '/api/recording/start', {
method: 'POST',
// mode: 'no-cors', // no-cors, *cors, same-origin
// cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
// credentials: 'same-origin', // include, *same-origin, omit
body: JSON.stringify({
session: root.session.sessionId,
outputMode: 'INDIVIDUAL'
// hasAudio: hasAudio,
// hasVideo: hasVideo
}),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Basic ' + btoa('OPENVIDUAPP:' + this.ovSecret)
}
}).then(res => {
console.log('TEST REC', res)
// ori
// document.getElementById('forceRecordingId').value = res.id
root.checkBtnsRecordings()
// this.getElement('textarea-http').innerHTML = (JSON.stringify(res, null, '\t'))
console.log('>>>rec response>>>' + JSON.stringify(res, null, '\t'))
res.json().then(r => {
console.log('GOOOOD', r)
}).catch(err => {
console.log(' 1) Start recording WRONG error is ', err)
})
}).catch(error => {
console.log(' 2) ... Start recording WRONG err :', error)
})
}
Этоаналогичен другим запросам, но все еще не работает.
Это моя командная строка для запуска:
docker run -d --net="host"
-e openvidu.secret=YOUR_SECRET
-e openvidu.publicurl=https://MY_DOMAIN:4443
-e openvidu.cdr=true -e server.port=4443
-e KMS_STUN_IP=MY_SERVER_IP
-e KMS_STUN_PORT=19302
-e KMS_TURN_URL=myuser:mypass@MY_DOMAIN:3478
--rm -v /var/run/docker.sock:/var/run/docker.sock
-v /var/kurento/rec:/var/kurento/rec
-e openvidu.recording=true
-e MY_UID=$(id -u $USER)
-e openvidu.recording.path=/var/kurento/rec
-e openvidu.recording.public-access=true
-e server.ssl.key-store=/var/kurento/YOUR_KEYSTORE_NAME.jks
-e server.ssl.key-store-password=PASS2
-e server.ssl.key-alias=YOUR_KEYSTORE_ALIAS_PASS2 openvidu/openvidu-server-kms:cert-2019
Я уже установил разрешение для папки /rec
...
Даже если я включаю режим записи ВСЕГДА, появляется сообщение об ошибке.
В документе я нашел:
Если истинный путь https://OPENVIDU_IP:[server.port]/[openvidu.recording.path] будет общедоступным через https://OPENVIDU_IP:[server.port]/recordings
Но я получаю это:
Whitelabel Error Page
Это приложение не имеет явного сопоставления для / error, поэтому вы видите это как запасной вариант.
пт 08 нояб. 12:56:31 UTC 2019 Произошла непредвиденная ошибка (тип = Не найдено, статус = 404). Нет доступных сообщений
Я проверил TURN / webSock config intro docker VM, там все нормально.
Поскольку мой пример работы с node.js должен быть чем-то вроде apache (я несмотрите какие-нибудь логи на докер KMS на момент вызова REST)?!? ,Начальная процедура сеанса я начинаю с arg, как сервер узла делает с:
new OpenVidu(sName , secret)
, но все равно ничего.
Я нашел это из журналов wss:
Sending request: {method:"joinRoom", params: {"token":"wss://MY_DOMAIN:4443?sessionId=123&token=8p9iidmfcn8lguia&role=PUBLISHER&version=2.10.0","session":"123","platform":"Safari 12.1.2 on OS X 10.12.6","metadata":"{\"clientData\":\"NIJKOLA\"}","secret":"","recorder":false}}
Может быть, этоэто проблема: "secret":"","recorder":false
Я не уверен, правильно ли это жестко кодировать это в клиенте, как token = token + ....
Я реализую конфигурацию GET:
maxRecvBandwidth: 1000
maxSendBandwidth: 1000
minRecvBandwidth: 300
minSendBandwidth: 300
openviduCdr: true
openviduPublicurl: "https://MY_DOMAIN:4443"
openviduRecording: true
openviduRecordingAutostopTimeout: 120
openviduRecordingCustomLayout: "/opt/openvidu/custom-layout/"
openviduRecordingNotification: "publisher_moderator"
openviduRecordingPath: "/var/kurento/rec/"
openviduRecordingPublicAccess: true
openviduRecordingVersion: "2.9.0"
version: "2.10.0"
**
ОБНОВЛЕНИЕ:
**
После жесткого кода:
token = token + "recorder=true;secret=mysecret";
И
recordingMode: 'ALWAYS',
Я наконец-то добился успеха.
Но у меня все еще есть ошибка с INDIVIDUAL + REST API '/ api / recording / start' ....