mirror of https://github.com/OpenVidu/openvidu.git
commit
ebd899eefa
|
@ -8,7 +8,7 @@
|
|||
"sdp-translator": "0.1.24",
|
||||
"ua-parser-js": "0.7.17",
|
||||
"uuid": "3.1.0",
|
||||
"webrtc-adapter": "6.1.1",
|
||||
"webrtc-adapter": "6.1.4",
|
||||
"wolfy87-eventemitter": "5.2.4"
|
||||
},
|
||||
"description": "OpenVidu Browser",
|
||||
|
@ -32,5 +32,5 @@
|
|||
"updatetsc": "cd ts/OpenViduInternal && tsc && cd ../OpenVidu && tsc && cd ../.. && tsc --declaration ts/OpenVidu/index.ts --outDir lib --sourceMap --lib dom,es5,es2015.promise,scripthost && tsc --declaration ts/OpenVidu/Main.ts --outDir lib --sourceMap --lib dom,es5,es2015.promise,scripthost"
|
||||
},
|
||||
"types": "lib/OpenVidu/index.d.ts",
|
||||
"version": "1.8.0"
|
||||
"version": "1.9.0-beta-1"
|
||||
}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -94,8 +94,7 @@ function bufferizeCandidates(pc, onerror) {
|
|||
if (this.signalingState === 'stable') {
|
||||
while (candidatesQueue.length) {
|
||||
var entry = candidatesQueue.shift()
|
||||
|
||||
this.addIceCandidate(entry.candidate, entry.callback, entry.callback)
|
||||
pc.addIceCandidate(entry.candidate, entry.callback, entry.callback)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
@ -332,7 +331,7 @@ function WebRtcPeer(mode, options, callback) {
|
|||
}
|
||||
})
|
||||
|
||||
pc.ontrack = options.onaddstream
|
||||
pc.onaddstream = options.onaddstream
|
||||
pc.onnegotiationneeded = options.onnegotiationneeded
|
||||
this.on('newListener', function (event, listener) {
|
||||
if (event === 'icecandidate' || event === 'candidategatheringdone') {
|
||||
|
@ -424,19 +423,18 @@ function WebRtcPeer(mode, options, callback) {
|
|||
|
||||
function setRemoteVideo() {
|
||||
if (remoteVideo) {
|
||||
var stream = pc.getRemoteStreams()[0]
|
||||
var url = stream ? URL.createObjectURL(stream) : ''
|
||||
|
||||
remoteVideo.pause()
|
||||
remoteVideo.src = url
|
||||
remoteVideo.load()
|
||||
|
||||
logger.debug('Remote URL:', url)
|
||||
var stream = pc.getRemoteStreams()[0]
|
||||
remoteVideo.srcObject = stream
|
||||
logger.debug('Remote stream:', stream)
|
||||
|
||||
remoteVideo.load()
|
||||
}
|
||||
}
|
||||
|
||||
this.showLocalVideo = function () {
|
||||
localVideo.src = URL.createObjectURL(videoStream)
|
||||
localVideo.srcObject = videoStream
|
||||
localVideo.muted = true
|
||||
}
|
||||
|
||||
|
@ -621,14 +619,14 @@ function WebRtcPeer(mode, options, callback) {
|
|||
this.on('_dispose', function () {
|
||||
if (localVideo) {
|
||||
localVideo.pause()
|
||||
localVideo.src = ''
|
||||
localVideo.srcObject = null
|
||||
localVideo.load()
|
||||
//Unmute local video in case the video tag is later used for remote video
|
||||
localVideo.muted = false
|
||||
}
|
||||
if (remoteVideo) {
|
||||
remoteVideo.pause()
|
||||
remoteVideo.src = ''
|
||||
remoteVideo.srcObject = null
|
||||
remoteVideo.load()
|
||||
}
|
||||
self.removeAllListeners()
|
||||
|
|
|
@ -242,7 +242,7 @@ export class OpenVidu {
|
|||
let browser = DetectRTC.browser.name;
|
||||
let version = DetectRTC.browser.version;
|
||||
|
||||
if ((browser !== 'Chrome') && (browser !== 'Firefox') && (browser !== 'Opera')) {
|
||||
if ((browser !== 'Chrome') && (browser !== 'Firefox') && (browser !== 'Opera') && (browser !== 'Safari')) {
|
||||
return 0;
|
||||
} else {
|
||||
return defaultWebRTCSupport ? 1 : 0;
|
||||
|
|
|
@ -308,7 +308,8 @@ export class Stream {
|
|||
|
||||
return this.video;
|
||||
}
|
||||
|
||||
|
||||
this.isReadyToPublish = true;
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>io.openvidu</groupId>
|
||||
<artifactId>openvidu-parent</artifactId>
|
||||
<version>1.1.0</version>
|
||||
<version>1.9.0-beta-1</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>openvidu-client</artifactId>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>io.openvidu</groupId>
|
||||
<artifactId>openvidu-parent</artifactId>
|
||||
<version>1.1.0</version>
|
||||
<version>1.9.0-beta-1</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>openvidu-java-client</artifactId>
|
||||
|
|
|
@ -2,20 +2,20 @@ FROM ubuntu:16.04
|
|||
MAINTAINER miguel.rodriguez@cocodin.com
|
||||
|
||||
# Install Kurento Media Server (KMS)
|
||||
RUN echo "deb http://ubuntu.kurento.org xenial kms6" | tee /etc/apt/sources.list.d/kurento.list \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv 2F819BC0 \
|
||||
RUN echo "deb http://ubuntu.openvidu.io/6.7.0 xenial kms6" | tee /etc/apt/sources.list.d/kurento.list \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83 \
|
||||
&& apt-get update \
|
||||
&& apt-get -y dist-upgrade \
|
||||
&& apt-get -y install kurento-media-server-6.0 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
&& apt-get -y install kurento-media-server \
|
||||
&& apt-get -y install openh264-gst-plugins-bad-1.5
|
||||
|
||||
COPY kms.sh /kms.sh
|
||||
|
||||
# Install Java
|
||||
RUN apt-get update && apt-get install -y openjdk-8-jdk && rm -rf /var/lib/apt/lists/*
|
||||
RUN apt-get install -y openjdk-8-jdk
|
||||
|
||||
# Install supervisor
|
||||
RUN apt-get update && apt-get install -y supervisor && rm -rf /var/lib/apt/lists/*
|
||||
RUN apt-get install -y supervisor && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Configure supervisor
|
||||
RUN mkdir -p /var/log/supervisor
|
||||
|
|
|
@ -5,14 +5,14 @@
|
|||
<parent>
|
||||
<groupId>io.openvidu</groupId>
|
||||
<artifactId>openvidu-parent</artifactId>
|
||||
<version>1.1.0</version>
|
||||
<version>1.9.0-beta-1</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>openvidu-server</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>OpenVidu Server</name>
|
||||
<version>1.8.0</version>
|
||||
<version>1.9.0-beta-1</version>
|
||||
<description>OpenVidu Server</description>
|
||||
<url>https://github.com/OpenVidu/openvidu</url>
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
"@angular/router": "5.0.5",
|
||||
"core-js": "2.5.1",
|
||||
"hammerjs": "2.0.8",
|
||||
"openvidu-browser": "1.8.0",
|
||||
"openvidu-browser": "1.9.0-beta-1",
|
||||
"rxjs": "5.5.3",
|
||||
"zone.js": "0.8.18"
|
||||
},
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"version":3,"sources":["webpack/bootstrap a86aab8ac212e4073a88"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA,kDAA0C,oBAAoB,WAAW","file":"inline.bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t\"inline\": 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap a86aab8ac212e4073a88"],"sourceRoot":"webpack:///"}
|
||||
{"version":3,"sources":["webpack/bootstrap 1569d3edbc6f13a7612a"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA,kDAA0C,oBAAoB,WAAW","file":"inline.bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t\"inline\": 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1569d3edbc6f13a7612a"],"sourceRoot":"webpack:///"}
|
|
@ -2322,7 +2322,7 @@ function bufferizeCandidates(pc, onerror) {
|
|||
if (this.signalingState === 'stable') {
|
||||
while (candidatesQueue.length) {
|
||||
var entry = candidatesQueue.shift();
|
||||
this.addIceCandidate(entry.candidate, entry.callback, entry.callback);
|
||||
pc.addIceCandidate(entry.candidate, entry.callback, entry.callback);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -2528,7 +2528,7 @@ function WebRtcPeer(mode, options, callback) {
|
|||
candidategatheringdone = true;
|
||||
}
|
||||
});
|
||||
pc.ontrack = options.onaddstream;
|
||||
pc.onaddstream = options.onaddstream;
|
||||
pc.onnegotiationneeded = options.onnegotiationneeded;
|
||||
this.on('newListener', function (event, listener) {
|
||||
if (event === 'icecandidate' || event === 'candidategatheringdone') {
|
||||
|
@ -2604,16 +2604,15 @@ function WebRtcPeer(mode, options, callback) {
|
|||
};
|
||||
function setRemoteVideo() {
|
||||
if (remoteVideo) {
|
||||
var stream = pc.getRemoteStreams()[0];
|
||||
var url = stream ? URL.createObjectURL(stream) : '';
|
||||
remoteVideo.pause();
|
||||
remoteVideo.src = url;
|
||||
var stream = pc.getRemoteStreams()[0];
|
||||
remoteVideo.srcObject = stream;
|
||||
logger.debug('Remote stream:', stream);
|
||||
remoteVideo.load();
|
||||
logger.debug('Remote URL:', url);
|
||||
}
|
||||
}
|
||||
this.showLocalVideo = function () {
|
||||
localVideo.src = URL.createObjectURL(videoStream);
|
||||
localVideo.srcObject = videoStream;
|
||||
localVideo.muted = true;
|
||||
};
|
||||
this.send = function (data) {
|
||||
|
@ -2770,14 +2769,14 @@ function WebRtcPeer(mode, options, callback) {
|
|||
this.on('_dispose', function () {
|
||||
if (localVideo) {
|
||||
localVideo.pause();
|
||||
localVideo.src = '';
|
||||
localVideo.srcObject = null;
|
||||
localVideo.load();
|
||||
//Unmute local video in case the video tag is later used for remote video
|
||||
localVideo.muted = false;
|
||||
}
|
||||
if (remoteVideo) {
|
||||
remoteVideo.pause();
|
||||
remoteVideo.src = '';
|
||||
remoteVideo.srcObject = null;
|
||||
remoteVideo.load();
|
||||
}
|
||||
self.removeAllListeners();
|
||||
|
@ -3160,7 +3159,7 @@ var OpenVidu = /** @class */ (function () {
|
|||
var defaultWebRTCSupport = DetectRTC.isWebRTCSupported;
|
||||
var browser = DetectRTC.browser.name;
|
||||
var version = DetectRTC.browser.version;
|
||||
if ((browser !== 'Chrome') && (browser !== 'Firefox') && (browser !== 'Opera')) {
|
||||
if ((browser !== 'Chrome') && (browser !== 'Firefox') && (browser !== 'Opera') && (browser !== 'Safari')) {
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
|
@ -5071,6 +5070,7 @@ var Stream = /** @class */ (function () {
|
|||
this.isReadyToPublish = true;
|
||||
return this.video;
|
||||
}
|
||||
this.isReadyToPublish = true;
|
||||
return null;
|
||||
};
|
||||
Stream.prototype.playThumbnail = function (thumbnailId) {
|
||||
|
@ -12832,12 +12832,16 @@ module.exports = function(window) {
|
|||
return {
|
||||
name: {
|
||||
PermissionDeniedError: 'NotAllowedError',
|
||||
InvalidStateError: 'NotReadableError',
|
||||
PermissionDismissedError: 'NotAllowedError',
|
||||
InvalidStateError: 'NotAllowedError',
|
||||
DevicesNotFoundError: 'NotFoundError',
|
||||
ConstraintNotSatisfiedError: 'OverconstrainedError',
|
||||
TrackStartError: 'NotReadableError',
|
||||
MediaDeviceFailedDueToShutdown: 'NotReadableError',
|
||||
MediaDeviceKillSwitchOn: 'NotReadableError'
|
||||
MediaDeviceFailedDueToShutdown: 'NotAllowedError',
|
||||
MediaDeviceKillSwitchOn: 'NotAllowedError',
|
||||
TabCaptureError: 'AbortError',
|
||||
ScreenCaptureError: 'AbortError',
|
||||
DeviceCaptureError: 'AbortError'
|
||||
}[e.name] || e.name,
|
||||
message: e.message,
|
||||
constraint: e.constraintName,
|
||||
|
@ -12959,8 +12963,8 @@ module.exports = {
|
|||
shimRTCIceCandidate: function(window) {
|
||||
// foundation is arbitrarily chosen as an indicator for full support for
|
||||
// https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface
|
||||
if (window.RTCIceCandidate && 'foundation' in
|
||||
window.RTCIceCandidate.prototype) {
|
||||
if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'foundation' in
|
||||
window.RTCIceCandidate.prototype)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -12973,23 +12977,27 @@ module.exports = {
|
|||
args.candidate = args.candidate.substr(2);
|
||||
}
|
||||
|
||||
// Augment the native candidate with the parsed fields.
|
||||
var nativeCandidate = new NativeRTCIceCandidate(args);
|
||||
var parsedCandidate = SDPUtils.parseCandidate(args.candidate);
|
||||
var augmentedCandidate = Object.assign(nativeCandidate,
|
||||
parsedCandidate);
|
||||
if (args.candidate && args.candidate.length) {
|
||||
// Augment the native candidate with the parsed fields.
|
||||
var nativeCandidate = new NativeRTCIceCandidate(args);
|
||||
var parsedCandidate = SDPUtils.parseCandidate(args.candidate);
|
||||
var augmentedCandidate = Object.assign(nativeCandidate,
|
||||
parsedCandidate);
|
||||
|
||||
// Add a serializer that does not serialize the extra attributes.
|
||||
augmentedCandidate.toJSON = function() {
|
||||
return {
|
||||
candidate: augmentedCandidate.candidate,
|
||||
sdpMid: augmentedCandidate.sdpMid,
|
||||
sdpMLineIndex: augmentedCandidate.sdpMLineIndex,
|
||||
usernameFragment: augmentedCandidate.usernameFragment,
|
||||
// Add a serializer that does not serialize the extra attributes.
|
||||
augmentedCandidate.toJSON = function() {
|
||||
return {
|
||||
candidate: augmentedCandidate.candidate,
|
||||
sdpMid: augmentedCandidate.sdpMid,
|
||||
sdpMLineIndex: augmentedCandidate.sdpMLineIndex,
|
||||
usernameFragment: augmentedCandidate.usernameFragment,
|
||||
};
|
||||
};
|
||||
};
|
||||
return augmentedCandidate;
|
||||
return augmentedCandidate;
|
||||
}
|
||||
return new NativeRTCIceCandidate(args);
|
||||
};
|
||||
window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;
|
||||
|
||||
// Hook up the augmented candidate in onicecandidate and
|
||||
// addEventListener('icecandidate', ...)
|
||||
|
@ -13189,6 +13197,10 @@ module.exports = {
|
|||
},
|
||||
|
||||
shimSendThrowTypeError: function(window) {
|
||||
if (!window.RTCPeerConnection) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Note: Although Firefox >= 57 has a native implementation, the maximum
|
||||
// message size can be reset for all data channels at a later stage.
|
||||
// See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831
|
||||
|
@ -13243,16 +13255,11 @@ module.exports = {
|
|||
var browserDetails = utils.detectBrowser(window);
|
||||
|
||||
if (window.RTCIceGatherer) {
|
||||
// ORTC defines an RTCIceCandidate object but no constructor.
|
||||
// Not implemented in Edge.
|
||||
if (!window.RTCIceCandidate) {
|
||||
window.RTCIceCandidate = function(args) {
|
||||
return args;
|
||||
};
|
||||
}
|
||||
// ORTC does not have a session description object but
|
||||
// other browsers (i.e. Chrome) that will support both PC and ORTC
|
||||
// in the future might have this defined already.
|
||||
if (!window.RTCSessionDescription) {
|
||||
window.RTCSessionDescription = function(args) {
|
||||
return args;
|
||||
|
@ -13291,6 +13298,11 @@ module.exports = {
|
|||
}
|
||||
});
|
||||
}
|
||||
// Edge currently only implements the RTCDtmfSender, not the
|
||||
// RTCDTMFSender alias. See http://draft.ortc.org/#rtcdtmfsender2*
|
||||
if (window.RTCDtmfSender && !window.RTCDTMFSender) {
|
||||
window.RTCDTMFSender = window.RTCDtmfSender;
|
||||
}
|
||||
|
||||
window.RTCPeerConnection =
|
||||
shimRTCPeerConnection(window, browserDetails.version);
|
||||
|
@ -14264,7 +14276,7 @@ module.exports = {
|
|||
result.browser = 'edge';
|
||||
result.version = extractVersion(navigator.userAgent,
|
||||
/Edge\/(\d+).(\d+)$/, 2);
|
||||
} else if (navigator.mediaDevices &&
|
||||
} else if (window.RTCPeerConnection &&
|
||||
navigator.userAgent.match(/AppleWebKit\/(\d+)\./)) { // Safari.
|
||||
result.browser = 'safari';
|
||||
result.version = extractVersion(navigator.userAgent,
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -9,11 +9,12 @@ RUN apt-get update && apt-get -y upgrade
|
|||
RUN apt-get install -y software-properties-common && apt-get install -y --no-install-recommends apt-utils
|
||||
|
||||
# Install Kurento Media Server (KMS)
|
||||
RUN echo "deb http://ubuntu.kurento.org xenial kms6" | tee /etc/apt/sources.list.d/kurento.list \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv 2F819BC0 \
|
||||
RUN echo "deb http://ubuntu.openvidu.io/6.7.0 xenial kms6" | tee /etc/apt/sources.list.d/kurento.list \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83 \
|
||||
&& apt-get update \
|
||||
&& apt-get -y dist-upgrade \
|
||||
&& apt-get -y install kurento-media-server-6.0
|
||||
&& apt-get -y install kurento-media-server \
|
||||
&& apt-get -y install openh264-gst-plugins-bad-1.5
|
||||
|
||||
# Install Node
|
||||
RUN apt-get update && apt-get install -y curl
|
||||
|
|
|
@ -23,7 +23,7 @@ node('container') {
|
|||
stage ('Environment Launch') {
|
||||
sh 'openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/CN=www.mydom.com/O=My Company LTD./C=US" -keyout openvidu/openvidu-testapp/dist/key.pem -out openvidu/openvidu-testapp/dist/cert.pem'
|
||||
sh 'cd openvidu/openvidu-testapp/dist && http-server -S -p 4200 &> ../testapp.log &'
|
||||
sh 'service kurento-media-server-6.0 start'
|
||||
sh 'service kurento-media-server start'
|
||||
sh 'cd openvidu/openvidu-server && mvn -DskipTests=true clean -DskipTests=true compile -DskipTests=true package -DskipTests=true -Dopenvidu.publicurl=https://172.17.0.1:8443/ exec:java &> openvidu-server.log &'
|
||||
sh 'until $(curl --insecure --output /dev/null --silent --head --fail https://OPENVIDUAPP:MY_SECRET@localhost:8443/); do echo "Waiting for openvidu-server..."; sleep 5; done'
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<parent>
|
||||
<groupId>io.openvidu</groupId>
|
||||
<artifactId>openvidu-parent</artifactId>
|
||||
<version>1.1.0</version>
|
||||
<version>1.9.0-beta-1</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>openvidu-test-e2e</artifactId>
|
||||
|
|
|
@ -5,13 +5,14 @@
|
|||
<parent>
|
||||
<groupId>io.openvidu</groupId>
|
||||
<artifactId>openvidu-parent</artifactId>
|
||||
<version>1.1.0</version>
|
||||
<version>1.9.0-beta-1</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>openvidu-test</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>OpenVidu Test</name>
|
||||
<version>1.1.0</version>
|
||||
<description>
|
||||
OpenVidu Tests Framework
|
||||
|
||||
|
|
|
@ -2,19 +2,19 @@ FROM ubuntu:16.04
|
|||
MAINTAINER openvidu@gmail.com
|
||||
|
||||
# Install Kurento Media Server (KMS)
|
||||
RUN echo "deb http://ubuntu.kurento.org xenial kms6" | tee /etc/apt/sources.list.d/kurento.list \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv 2F819BC0 \
|
||||
&& apt-get update \
|
||||
&& apt-get -y dist-upgrade \
|
||||
&& apt-get -y install kurento-media-server-6.0 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
RUN echo "deb http://ubuntu.openvidu.io/6.7.0 xenial kms6" | tee /etc/apt/sources.list.d/kurento.list \
|
||||
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83 \
|
||||
&& apt-get update \
|
||||
&& apt-get -y dist-upgrade \
|
||||
&& apt-get -y install kurento-media-server \
|
||||
&& apt-get -y install openh264-gst-plugins-bad-1.5
|
||||
|
||||
# Install Java
|
||||
RUN apt-get update && apt-get install -y openjdk-8-jdk && rm -rf /var/lib/apt/lists/*
|
||||
RUN apt-get install -y openjdk-8-jdk
|
||||
|
||||
# Configure Supervisor
|
||||
RUN mkdir -p /var/log/supervisor
|
||||
RUN apt-get update && apt-get install -y supervisor && rm -rf /var/lib/apt/lists/*
|
||||
RUN apt-get install -y supervisor && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Copy all files
|
||||
COPY kms.sh /kms.sh
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
"colormap": "^2.2.0",
|
||||
"core-js": "^2.4.1",
|
||||
"hammerjs": "^2.0.8",
|
||||
"openvidu-browser": "1.8.0",
|
||||
"openvidu-browser": "1.9.0-beta-1",
|
||||
"openvidu-node-client": "1.7.0",
|
||||
"rxjs": "^5.4.2",
|
||||
"zone.js": "^0.8.14"
|
||||
|
@ -52,5 +52,5 @@
|
|||
"start": "ng serve",
|
||||
"test": "ng test"
|
||||
},
|
||||
"version": "1.8.0"
|
||||
"version": "1.9.0-beta-1"
|
||||
}
|
4
pom.xml
4
pom.xml
|
@ -4,7 +4,7 @@
|
|||
|
||||
<groupId>io.openvidu</groupId>
|
||||
<artifactId>openvidu-parent</artifactId>
|
||||
<version>1.1.0</version>
|
||||
<version>1.9.0-beta-1</version>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<name>OpenVidu</name>
|
||||
|
@ -41,7 +41,7 @@
|
|||
</developers>
|
||||
|
||||
<properties>
|
||||
<version.kurento>6.6.2</version.kurento>
|
||||
<version.kurento>6.7.0</version.kurento>
|
||||
<version.spring-boot>1.4.2.RELEASE</version.spring-boot>
|
||||
<version.junit>4.12</version.junit>
|
||||
<version.slf4j>1.7.13</version.slf4j>
|
||||
|
|
Loading…
Reference in New Issue