From 8b912a812c15bd1c08eeea9d820b5ece2b64324b Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Mon, 25 Sep 2017 11:55:35 +0200 Subject: [PATCH] RELEASE 1.1.0 --- .settings/org.eclipse.wst.common.component | 2 +- pom.xml | 4 +- src/angular/frontend/package.json | 2 +- .../resources/static/inline.bundle.js.map | 2 +- src/main/resources/static/main.bundle.js | 58 +++++++++++++++++-- src/main/resources/static/main.bundle.js.map | 2 +- 6 files changed, 58 insertions(+), 12 deletions(-) diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index e2d76dc..6aefa0c 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -4,7 +4,7 @@ - + uses diff --git a/pom.xml b/pom.xml index 134496e..9c3df32 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ io.openvidu classroom-demo - 1.0.0-beta.3 + 1.1.0 war classroom-demo @@ -140,7 +140,7 @@ io.openvidu openvidu-java-client - 1.0.1-beta.3 + 1.1.0 diff --git a/src/angular/frontend/package.json b/src/angular/frontend/package.json index 1863bbd..486920c 100644 --- a/src/angular/frontend/package.json +++ b/src/angular/frontend/package.json @@ -26,7 +26,7 @@ "core-js": "^2.4.1", "hammerjs": "^2.0.8", "jquery": "^2.2.4", - "openvidu-browser": "1.0.5-beta.3", + "openvidu-browser": "1.1.0", "rxjs": "^5.1.0", "zone.js": "^0.7.6" }, diff --git a/src/main/resources/static/inline.bundle.js.map b/src/main/resources/static/inline.bundle.js.map index 7b8b670..955ae21 100644 --- a/src/main/resources/static/inline.bundle.js.map +++ b/src/main/resources/static/inline.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap 4bc04afe97d1c5ead5ce"],"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,oBAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;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\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\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\t4: 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\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn Promise.resolve();\n\n \t\t// an Promise means \"currently loading\".\n \t\tif(installedChunks[chunkId]) {\n \t\t\treturn installedChunks[chunkId][2];\n \t\t}\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".chunk.js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) chunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunks[chunkId][2] = promise;\n\n \t\thead.appendChild(script);\n \t\treturn promise;\n \t};\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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\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 4bc04afe97d1c5ead5ce"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 81573bc2798af12918ab"],"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,oBAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;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\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\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\t4: 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\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn Promise.resolve();\n\n \t\t// an Promise means \"currently loading\".\n \t\tif(installedChunks[chunkId]) {\n \t\t\treturn installedChunks[chunkId][2];\n \t\t}\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".chunk.js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) chunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunks[chunkId][2] = promise;\n\n \t\thead.appendChild(script);\n \t\treturn promise;\n \t};\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// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\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 81573bc2798af12918ab"],"sourceRoot":""} \ No newline at end of file diff --git a/src/main/resources/static/main.bundle.js b/src/main/resources/static/main.bundle.js index 4a10cae..ca53a30 100644 --- a/src/main/resources/static/main.bundle.js +++ b/src/main/resources/static/main.bundle.js @@ -2492,10 +2492,13 @@ var Stream = /** @class */ (function () { thumb: thumbnailId, video: this.video }); - if (this.local) { + if (this.local && !this.displayMyRemote()) { this.video.muted = true; this.video.onplay = function () { console.info("Local 'Stream' with id [" + _this.getId() + "] video is now playing"); + _this.ee.emitEvent('video-is-playing', [{ + element: _this.video + }]); }; } else { @@ -2784,12 +2787,18 @@ var Stream = /** @class */ (function () { var video = videoElement.video; video.srcObject = _this.wrStream; video.onplay = function () { - console.info("Remote 'Stream' with id [" + _this.getId() + "] video is now playing"); if (_this.local && _this.displayMyRemote()) { + console.info("Your own remote 'Stream' with id [" + _this.getId() + "] video is now playing"); _this.ee.emitEvent('remote-video-is-playing', [{ element: _this.video }]); } + else if (!_this.local && !_this.displayMyRemote()) { + console.info("Remote 'Stream' with id [" + _this.getId() + "] video is now playing"); + _this.ee.emitEvent('video-is-playing', [{ + element: _this.video + }]); + } //show(thumbnailId); //this.hideSpinner(this.getId()); }; @@ -4792,7 +4801,7 @@ var Publisher = /** @class */ (function () { }]); } else { - this.stream.addEventListener('video-element-created-by-stream', function (element) { + this.stream.addOnceEventListener('video-element-created-by-stream', function (element) { _this.id = element.id; _this.ee.emitEvent('videoElementCreated', [{ element: element.element @@ -4800,6 +4809,25 @@ var Publisher = /** @class */ (function () { }); } } + if (eventName == 'videoPlaying') { + var video = this.stream.getVideoElement(); + if (!this.stream.displayMyRemote() && video && + video.currentTime > 0 && + video.paused == false && + video.ended == false && + video.readyState == 4) { + this.ee.emitEvent('videoPlaying', [{ + element: this.stream.getVideoElement() + }]); + } + else { + this.stream.addOnceEventListener('video-is-playing', function (element) { + _this.ee.emitEvent('videoPlaying', [{ + element: element.element + }]); + }); + } + } if (eventName == 'remoteVideoPlaying') { var video = this.stream.getVideoElement(); if (this.stream.displayMyRemote() && video && @@ -4812,8 +4840,7 @@ var Publisher = /** @class */ (function () { }]); } else { - this.stream.addEventListener('remote-video-is-playing', function (element) { - console.warn('Publisher emitting remoteVideoPlaying'); + this.stream.addOnceEventListener('remote-video-is-playing', function (element) { _this.ee.emitEvent('remoteVideoPlaying', [{ element: element.element }]); @@ -5048,7 +5075,7 @@ var Subscriber = /** @class */ (function () { }]); } else { - this.stream.addEventListener('video-element-created-by-stream', function (element) { + this.stream.addOnceEventListener('video-element-created-by-stream', function (element) { console.warn("Subscriber emitting videoElementCreated"); _this.id = element.id; _this.ee.emitEvent('videoElementCreated', [{ @@ -5057,6 +5084,25 @@ var Subscriber = /** @class */ (function () { }); } } + if (eventName == 'videoPlaying') { + var video = this.stream.getVideoElement(); + if (!this.stream.displayMyRemote() && video && + video.currentTime > 0 && + video.paused == false && + video.ended == false && + video.readyState == 4) { + this.ee.emitEvent('videoPlaying', [{ + element: this.stream.getVideoElement() + }]); + } + else { + this.stream.addOnceEventListener('video-is-playing', function (element) { + _this.ee.emitEvent('videoPlaying', [{ + element: element.element + }]); + }); + } + } }; return Subscriber; }()); diff --git a/src/main/resources/static/main.bundle.js.map b/src/main/resources/static/main.bundle.js.map index b48b73a..79f9635 100644 --- a/src/main/resources/static/main.bundle.js.map +++ b/src/main/resources/static/main.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/Mapper.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/clients/index.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/clients/jsonrpcclient.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/clients/transports/index.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/packers/JsonRPC.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/packers/XmlRPC.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/packers/index.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-utils-js/WebRtcPeer.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-utils-js/index.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/OpenVidu.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/index.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/OpenViduInternal.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/SessionInternal.ts","webpack:///./src/app/services/lesson.service.ts","webpack:///./src/app/services/video-session.service.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/Stream.ts","webpack:///./src/app/services/authentication.service.ts","webpack:///./src/app/auth.guard.ts","webpack:///./src/app/components/dashboard/dahsboard.component.ts","webpack:///./src/app/components/dashboard/join-session-dialog.component.ts","webpack:///./src/app/components/lesson-details/lesson-details.component.ts","webpack:///./src/app/components/presentation/presentation.component.ts","webpack:///./src/app/components/profile/profile.component.ts","webpack:///./src/app/components/video-session/video-session.component.ts","webpack:///./src/app/models/lesson.ts","webpack:///./src/app/services/user.service.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/clients/transports/webSocketWithReconnection.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/index.js","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/Publisher.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/Session.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/Subscriber.ts","webpack:////home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/Connection.ts","webpack:///./src async","webpack:///./src/main.ts","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/app.routing.ts","webpack:///./src/app/components/error-message/error-message.component.ts","webpack:///./src/app/models/user.ts","webpack:///./src/environments/environment.ts","webpack:///./src/app/app.component.css","webpack:///./src/app/components/dashboard/dashboard.component.css","webpack:///./src/app/components/error-message/error-message.component.css","webpack:///./src/app/components/lesson-details/lesson-details.component.css","webpack:///./src/app/components/presentation/presentation.component.css","webpack:///./src/app/components/profile/profile.component.css","webpack:///./src/app/components/video-session/video-session.component.css","webpack:///./src/app/app.component.html","webpack:///./src/app/components/dashboard/dashboard.component.html","webpack:///./src/app/components/error-message/error-message.component.html","webpack:///./src/app/components/lesson-details/lesson-details.component.html","webpack:///./src/app/components/presentation/presentation.component.html","webpack:///./src/app/components/profile/profile.component.html","webpack:///./src/app/components/video-session/video-session.component.html"],"names":[],"mappings":"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","file":"main.bundle.js","sourcesContent":["function Mapper()\n{\n var sources = {};\n\n\n this.forEach = function(callback)\n {\n for(var key in sources)\n {\n var source = sources[key];\n\n for(var key2 in source)\n callback(source[key2]);\n };\n };\n\n this.get = function(id, source)\n {\n var ids = sources[source];\n if(ids == undefined)\n return undefined;\n\n return ids[id];\n };\n\n this.remove = function(id, source)\n {\n var ids = sources[source];\n if(ids == undefined)\n return;\n\n delete ids[id];\n\n // Check it's empty\n for(var i in ids){return false}\n\n delete sources[source];\n };\n\n this.set = function(value, id, source)\n {\n if(value == undefined)\n return this.remove(id, source);\n\n var ids = sources[source];\n if(ids == undefined)\n sources[source] = ids = {};\n\n ids[id] = value;\n };\n};\n\n\nMapper.prototype.pop = function(id, source)\n{\n var value = this.get(id, source);\n if(value == undefined)\n return undefined;\n\n this.remove(id, source);\n\n return value;\n};\n\n\nmodule.exports = Mapper;\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/Mapper.js","/*\n * (C) Copyright 2014 Kurento (http://kurento.org/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nvar JsonRpcClient = require('./jsonrpcclient');\n\n\nexports.JsonRpcClient = JsonRpcClient;\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/clients/index.js","/*\n * (C) Copyright 2014 Kurento (http://kurento.org/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nvar RpcBuilder = require('../');\nvar WebSocketWithReconnection = require('./transports/webSocketWithReconnection');\n\nDate.now = Date.now || function() {\n return +new Date;\n};\n\nvar PING_INTERVAL = 5000;\n\nvar RECONNECTING = 'RECONNECTING';\nvar CONNECTED = 'CONNECTED';\nvar DISCONNECTED = 'DISCONNECTED';\n\nvar Logger = console;\n\n/**\n *\n * heartbeat: interval in ms for each heartbeat message,\n * sendCloseMessage : true / false, before closing the connection, it sends a closeSession message\n *
\n * ws : {\n * \turi : URI to conntect to,\n *  useSockJS : true (use SockJS) / false (use WebSocket) by default,\n * \tonconnected : callback method to invoke when connection is successful,\n * \tondisconnect : callback method to invoke when the connection is lost,\n * \tonreconnecting : callback method to invoke when the client is reconnecting,\n * \tonreconnected : callback method to invoke when the client succesfully reconnects,\n * \tonerror : callback method to invoke when there is an error\n * },\n * rpc : {\n * \trequestTimeout : timeout for a request,\n * \tsessionStatusChanged: callback method for changes in session status,\n * \tmediaRenegotiation: mediaRenegotiation\n * }\n * 
\n */\nfunction JsonRpcClient(configuration) {\n\n var self = this;\n\n var wsConfig = configuration.ws;\n\n var notReconnectIfNumLessThan = -1;\n\n var pingNextNum = 0;\n var enabledPings = true;\n var pingPongStarted = false;\n var pingInterval;\n\n var status = DISCONNECTED;\n\n var onreconnecting = wsConfig.onreconnecting;\n var onreconnected = wsConfig.onreconnected;\n var onconnected = wsConfig.onconnected;\n var onerror = wsConfig.onerror;\n\n configuration.rpc.pull = function(params, request) {\n request.reply(null, \"push\");\n }\n\n wsConfig.onreconnecting = function() {\n Logger.debug(\"--------- ONRECONNECTING -----------\");\n if (status === RECONNECTING) {\n Logger.error(\"Websocket already in RECONNECTING state when receiving a new ONRECONNECTING message. Ignoring it\");\n return;\n }\n\n status = RECONNECTING;\n if (onreconnecting) {\n onreconnecting();\n }\n }\n\n wsConfig.onreconnected = function() {\n Logger.debug(\"--------- ONRECONNECTED -----------\");\n if (status === CONNECTED) {\n Logger.error(\"Websocket already in CONNECTED state when receiving a new ONRECONNECTED message. Ignoring it\");\n return;\n }\n status = CONNECTED;\n\n enabledPings = true;\n updateNotReconnectIfLessThan();\n usePing();\n\n if (onreconnected) {\n onreconnected();\n }\n }\n\n wsConfig.onconnected = function() {\n Logger.debug(\"--------- ONCONNECTED -----------\");\n if (status === CONNECTED) {\n Logger.error(\"Websocket already in CONNECTED state when receiving a new ONCONNECTED message. Ignoring it\");\n return;\n }\n status = CONNECTED;\n\n enabledPings = true;\n usePing();\n\n if (onconnected) {\n onconnected();\n }\n }\n\n wsConfig.onerror = function(error) {\n Logger.debug(\"--------- ONERROR -----------\");\n\n status = DISCONNECTED;\n\n if (onerror) {\n onerror(error);\n }\n }\n\n var ws = new WebSocketWithReconnection(wsConfig);\n\n Logger.debug('Connecting websocket to URI: ' + wsConfig.uri);\n\n var rpcBuilderOptions = {\n request_timeout: configuration.rpc.requestTimeout,\n ping_request_timeout: configuration.rpc.heartbeatRequestTimeout\n };\n\n var rpc = new RpcBuilder(RpcBuilder.packers.JsonRPC, rpcBuilderOptions, ws,\n function(request) {\n\n Logger.debug('Received request: ' + JSON.stringify(request));\n\n try {\n var func = configuration.rpc[request.method];\n\n if (func === undefined) {\n Logger.error(\"Method \" + request.method + \" not registered in client\");\n } else {\n func(request.params, request);\n }\n } catch (err) {\n Logger.error('Exception processing request: ' + JSON.stringify(request));\n Logger.error(err);\n }\n });\n\n this.send = function(method, params, callback) {\n if (method !== 'ping') {\n Logger.debug('Request: method:' + method + \" params:\" + JSON.stringify(params));\n }\n\n var requestTime = Date.now();\n\n rpc.encode(method, params, function(error, result) {\n if (error) {\n try {\n Logger.error(\"ERROR:\" + error.message + \" in Request: method:\" +\n method + \" params:\" + JSON.stringify(params) + \" request:\" +\n error.request);\n if (error.data) {\n Logger.error(\"ERROR DATA:\" + JSON.stringify(error.data));\n }\n } catch (e) {}\n error.requestTime = requestTime;\n }\n if (callback) {\n if (result != undefined && result.value !== 'pong') {\n Logger.debug('Response: ' + JSON.stringify(result));\n }\n callback(error, result);\n }\n });\n }\n\n function updateNotReconnectIfLessThan() {\n Logger.debug(\"notReconnectIfNumLessThan = \" + pingNextNum + ' (old=' +\n notReconnectIfNumLessThan + ')');\n notReconnectIfNumLessThan = pingNextNum;\n }\n\n function sendPing() {\n if (enabledPings) {\n var params = null;\n if (pingNextNum == 0 || pingNextNum == notReconnectIfNumLessThan) {\n params = {\n interval: configuration.heartbeat || PING_INTERVAL\n };\n }\n pingNextNum++;\n\n self.send('ping', params, (function(pingNum) {\n return function(error, result) {\n if (error) {\n Logger.debug(\"Error in ping request #\" + pingNum + \" (\" +\n error.message + \")\");\n if (pingNum > notReconnectIfNumLessThan) {\n enabledPings = false;\n updateNotReconnectIfLessThan();\n Logger.debug(\"Server did not respond to ping message #\" +\n pingNum + \". Reconnecting... \");\n ws.reconnectWs();\n }\n }\n }\n })(pingNextNum));\n } else {\n Logger.debug(\"Trying to send ping, but ping is not enabled\");\n }\n }\n\n /*\n * If configuration.hearbeat has any value, the ping-pong will work with the interval\n * of configuration.hearbeat\n */\n function usePing() {\n if (!pingPongStarted) {\n Logger.debug(\"Starting ping (if configured)\")\n pingPongStarted = true;\n\n if (configuration.heartbeat != undefined) {\n pingInterval = setInterval(sendPing, configuration.heartbeat);\n sendPing();\n }\n }\n }\n\n this.close = function() {\n Logger.debug(\"Closing jsonRpcClient explicitly by client\");\n\n if (pingInterval != undefined) {\n Logger.debug(\"Clearing ping interval\");\n clearInterval(pingInterval);\n }\n pingPongStarted = false;\n enabledPings = false;\n\n if (configuration.sendCloseMessage) {\n Logger.debug(\"Sending close message\")\n this.send('closeSession', null, function(error, result) {\n if (error) {\n Logger.error(\"Error sending close message: \" + JSON.stringify(error));\n }\n ws.close();\n });\n } else {\n\t\t\tws.close();\n }\n }\n\n // This method is only for testing\n this.forceClose = function(millis) {\n ws.forceClose(millis);\n }\n\n this.reconnect = function() {\n ws.reconnectWs();\n }\n}\n\n\nmodule.exports = JsonRpcClient;\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/clients/jsonrpcclient.js","/*\n * (C) Copyright 2014 Kurento (http://kurento.org/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nvar WebSocketWithReconnection = require('./webSocketWithReconnection');\n\n\nexports.WebSocketWithReconnection = WebSocketWithReconnection;\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/clients/transports/index.js","/**\n * JsonRPC 2.0 packer\n */\n\n/**\n * Pack a JsonRPC 2.0 message\n *\n * @param {Object} message - object to be packaged. It requires to have all the\n * fields needed by the JsonRPC 2.0 message that it's going to be generated\n *\n * @return {String} - the stringified JsonRPC 2.0 message\n */\nfunction pack(message, id)\n{\n var result =\n {\n jsonrpc: \"2.0\"\n };\n\n // Request\n if(message.method)\n {\n result.method = message.method;\n\n if(message.params)\n result.params = message.params;\n\n // Request is a notification\n if(id != undefined)\n result.id = id;\n }\n\n // Response\n else if(id != undefined)\n {\n if(message.error)\n {\n if(message.result !== undefined)\n throw new TypeError(\"Both result and error are defined\");\n\n result.error = message.error;\n }\n else if(message.result !== undefined)\n result.result = message.result;\n else\n throw new TypeError(\"No result or error is defined\");\n\n result.id = id;\n };\n\n return JSON.stringify(result);\n};\n\n/**\n * Unpack a JsonRPC 2.0 message\n *\n * @param {String} message - string with the content of the JsonRPC 2.0 message\n *\n * @throws {TypeError} - Invalid JsonRPC version\n *\n * @return {Object} - object filled with the JsonRPC 2.0 message content\n */\nfunction unpack(message)\n{\n var result = message;\n\n if(typeof message === 'string' || message instanceof String) {\n result = JSON.parse(message);\n }\n\n // Check if it's a valid message\n\n var version = result.jsonrpc;\n if(version !== '2.0')\n throw new TypeError(\"Invalid JsonRPC version '\" + version + \"': \" + message);\n\n // Response\n if(result.method == undefined)\n {\n if(result.id == undefined)\n throw new TypeError(\"Invalid message: \"+message);\n\n var result_defined = result.result !== undefined;\n var error_defined = result.error !== undefined;\n\n // Check only result or error is defined, not both or none\n if(result_defined && error_defined)\n throw new TypeError(\"Both result and error are defined: \"+message);\n\n if(!result_defined && !error_defined)\n throw new TypeError(\"No result or error is defined: \"+message);\n\n result.ack = result.id;\n delete result.id;\n }\n\n // Return unpacked message\n return result;\n};\n\n\nexports.pack = pack;\nexports.unpack = unpack;\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/packers/JsonRPC.js","function pack(message)\n{\n throw new TypeError(\"Not yet implemented\");\n};\n\nfunction unpack(message)\n{\n throw new TypeError(\"Not yet implemented\");\n};\n\n\nexports.pack = pack;\nexports.unpack = unpack;\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/packers/XmlRPC.js","var JsonRPC = require('./JsonRPC');\nvar XmlRPC = require('./XmlRPC');\n\n\nexports.JsonRPC = JsonRPC;\nexports.XmlRPC = XmlRPC;\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-jsonrpc/packers/index.js","/*\n * (C) Copyright 2014-2015 Kurento (http://kurento.org/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar freeice = require('freeice')\nvar inherits = require('inherits')\nvar UAParser = require('ua-parser-js')\nvar uuid = require('uuid')\nvar hark = require('hark')\n\nvar EventEmitter = require('events').EventEmitter\nvar recursive = require('merge').recursive.bind(undefined, true)\nvar sdpTranslator = require('sdp-translator')\nvar logger = window.Logger || console\n\n// var gUM = navigator.mediaDevices.getUserMedia || function (constraints) {\n// return new Promise(navigator.getUserMedia(constraints, function (stream) {\n// videoStream = stream\n// start()\n// }).eror(callback));\n// }\n\ntry {\n require('kurento-browser-extensions')\n} catch (error) {\n if (typeof getScreenConstraints === 'undefined') {\n logger.warn('screen sharing is not available')\n\n getScreenConstraints = function getScreenConstraints(sendSource, callback) {\n callback(new Error(\"This library is not enabled for screen sharing\"))\n }\n }\n}\n\nvar MEDIA_CONSTRAINTS = {\n audio: true,\n video: {\n width: 640,\n framerate: 15\n }\n}\n\n// Somehow, the UAParser constructor gets an empty window object.\n// We need to pass the user agent string in order to get information\nvar ua = (window && window.navigator) ? window.navigator.userAgent : ''\nvar parser = new UAParser(ua)\nvar browser = parser.getBrowser()\n\nvar usePlanB = false\nif (browser.name === 'Chrome' || browser.name === 'Chromium') {\n logger.debug(browser.name + \": using SDP PlanB\")\n usePlanB = true\n}\n\nfunction noop(error) {\n if (error) logger.error(error)\n}\n\nfunction trackStop(track) {\n track.stop && track.stop()\n}\n\nfunction streamStop(stream) {\n stream.getTracks().forEach(trackStop)\n}\n\n/**\n * Returns a string representation of a SessionDescription object.\n */\nvar dumpSDP = function (description) {\n if (typeof description === 'undefined' || description === null) {\n return ''\n }\n\n return 'type: ' + description.type + '\\r\\n' + description.sdp\n}\n\nfunction bufferizeCandidates(pc, onerror) {\n var candidatesQueue = []\n\n pc.addEventListener('signalingstatechange', function () {\n if (this.signalingState === 'stable') {\n while (candidatesQueue.length) {\n var entry = candidatesQueue.shift()\n\n this.addIceCandidate(entry.candidate, entry.callback, entry.callback)\n }\n }\n })\n\n return function (candidate, callback) {\n callback = callback || onerror\n\n switch (pc.signalingState) {\n case 'closed':\n callback(new Error('PeerConnection object is closed'))\n break\n case 'stable':\n if (pc.remoteDescription) {\n pc.addIceCandidate(candidate, callback, callback)\n break\n }\n default:\n candidatesQueue.push({\n candidate: candidate,\n callback: callback\n })\n }\n }\n}\n\n/* Simulcast utilities */\n\nfunction removeFIDFromOffer(sdp) {\n var n = sdp.indexOf(\"a=ssrc-group:FID\");\n\n if (n > 0) {\n return sdp.slice(0, n);\n } else {\n return sdp;\n }\n}\n\nfunction getSimulcastInfo(videoStream) {\n var videoTracks = videoStream.getVideoTracks();\n if (!videoTracks.length) {\n logger.warn('No video tracks available in the video stream')\n return ''\n }\n var lines = [\n 'a=x-google-flag:conference',\n 'a=ssrc-group:SIM 1 2 3',\n 'a=ssrc:1 cname:localVideo',\n 'a=ssrc:1 msid:' + videoStream.id + ' ' + videoTracks[0].id,\n 'a=ssrc:1 mslabel:' + videoStream.id,\n 'a=ssrc:1 label:' + videoTracks[0].id,\n 'a=ssrc:2 cname:localVideo',\n 'a=ssrc:2 msid:' + videoStream.id + ' ' + videoTracks[0].id,\n 'a=ssrc:2 mslabel:' + videoStream.id,\n 'a=ssrc:2 label:' + videoTracks[0].id,\n 'a=ssrc:3 cname:localVideo',\n 'a=ssrc:3 msid:' + videoStream.id + ' ' + videoTracks[0].id,\n 'a=ssrc:3 mslabel:' + videoStream.id,\n 'a=ssrc:3 label:' + videoTracks[0].id\n ];\n\n lines.push('');\n\n return lines.join('\\n');\n}\n\n/**\n * Wrapper object of an RTCPeerConnection. This object is aimed to simplify the\n * development of WebRTC-based applications.\n *\n * @constructor module:kurentoUtils.WebRtcPeer\n *\n * @param {String} mode Mode in which the PeerConnection will be configured.\n * Valid values are: 'recv', 'send', and 'sendRecv'\n * @param localVideo Video tag for the local stream\n * @param remoteVideo Video tag for the remote stream\n * @param {MediaStream} videoStream Stream to be used as primary source\n * (typically video and audio, or only video if combined with audioStream) for\n * localVideo and to be added as stream to the RTCPeerConnection\n * @param {MediaStream} audioStream Stream to be used as second source\n * (typically for audio) for localVideo and to be added as stream to the\n * RTCPeerConnection\n */\nfunction WebRtcPeer(mode, options, callback) {\n if (!(this instanceof WebRtcPeer)) {\n return new WebRtcPeer(mode, options, callback)\n }\n\n WebRtcPeer.super_.call(this)\n\n if (options instanceof Function) {\n callback = options\n options = undefined\n }\n\n options = options || {}\n callback = (callback || noop).bind(this)\n\n var self = this\n var localVideo = options.localVideo\n var remoteVideo = options.remoteVideo\n var videoStream = options.videoStream\n var audioStream = options.audioStream\n var mediaConstraints = options.mediaConstraints\n\n var connectionConstraints = options.connectionConstraints\n var pc = options.peerConnection\n var sendSource = options.sendSource || 'webcam'\n\n var dataChannelConfig = options.dataChannelConfig\n var useDataChannels = options.dataChannels || false\n var dataChannel\n\n var guid = uuid.v4()\n var configuration = recursive({\n iceServers: freeice()\n },\n options.configuration)\n\n var onicecandidate = options.onicecandidate\n if (onicecandidate) this.on('icecandidate', onicecandidate)\n\n var oncandidategatheringdone = options.oncandidategatheringdone\n if (oncandidategatheringdone) {\n this.on('candidategatheringdone', oncandidategatheringdone)\n }\n\n var simulcast = options.simulcast\n var multistream = options.multistream\n var interop = new sdpTranslator.Interop()\n var candidatesQueueOut = []\n var candidategatheringdone = false\n\n Object.defineProperties(this, {\n 'peerConnection': {\n get: function () {\n return pc\n }\n },\n\n 'id': {\n value: options.id || guid,\n writable: false\n },\n\n 'remoteVideo': {\n get: function () {\n return remoteVideo\n }\n },\n\n 'localVideo': {\n get: function () {\n return localVideo\n }\n },\n\n 'dataChannel': {\n get: function () {\n return dataChannel\n }\n },\n\n /**\n * @member {(external:ImageData|undefined)} currentFrame\n */\n 'currentFrame': {\n get: function () {\n // [ToDo] Find solution when we have a remote stream but we didn't set\n // a remoteVideo tag\n if (!remoteVideo) return;\n\n if (remoteVideo.readyState < remoteVideo.HAVE_CURRENT_DATA)\n throw new Error('No video stream data available')\n\n var canvas = document.createElement('canvas')\n canvas.width = remoteVideo.videoWidth\n canvas.height = remoteVideo.videoHeight\n\n canvas.getContext('2d').drawImage(remoteVideo, 0, 0)\n\n return canvas\n }\n }\n })\n\n // Init PeerConnection\n if (!pc) {\n pc = new RTCPeerConnection(configuration);\n if (useDataChannels && !dataChannel) {\n var dcId = 'WebRtcPeer-' + self.id\n var dcOptions = undefined\n if (dataChannelConfig) {\n dcId = dataChannelConfig.id || dcId\n dcOptions = dataChannelConfig.options\n }\n dataChannel = pc.createDataChannel(dcId, dcOptions);\n if (dataChannelConfig) {\n dataChannel.onopen = dataChannelConfig.onopen;\n dataChannel.onclose = dataChannelConfig.onclose;\n dataChannel.onmessage = dataChannelConfig.onmessage;\n dataChannel.onbufferedamountlow = dataChannelConfig.onbufferedamountlow;\n dataChannel.onerror = dataChannelConfig.onerror || noop;\n }\n }\n }\n\n pc.addEventListener('icecandidate', function (event) {\n var candidate = event.candidate\n\n if (EventEmitter.listenerCount(self, 'icecandidate') ||\n EventEmitter.listenerCount(\n self, 'candidategatheringdone')) {\n if (candidate) {\n var cand\n\n if (multistream && usePlanB) {\n cand = interop.candidateToUnifiedPlan(candidate)\n } else {\n cand = candidate\n }\n\n self.emit('icecandidate', cand)\n candidategatheringdone = false\n } else if (!candidategatheringdone) {\n self.emit('candidategatheringdone')\n candidategatheringdone = true\n }\n } else if (!candidategatheringdone) {\n // Not listening to 'icecandidate' or 'candidategatheringdone' events, queue\n // the candidate until one of them is listened\n candidatesQueueOut.push(candidate)\n\n if (!candidate) candidategatheringdone = true\n }\n })\n\n pc.ontrack = options.onaddstream\n pc.onnegotiationneeded = options.onnegotiationneeded\n this.on('newListener', function (event, listener) {\n if (event === 'icecandidate' || event === 'candidategatheringdone') {\n while (candidatesQueueOut.length) {\n var candidate = candidatesQueueOut.shift()\n\n if (!candidate === (event === 'candidategatheringdone')) {\n listener(candidate)\n }\n }\n }\n })\n\n var addIceCandidate = bufferizeCandidates(pc)\n\n /**\n * Callback function invoked when an ICE candidate is received. Developers are\n * expected to invoke this function in order to complete the SDP negotiation.\n *\n * @function module:kurentoUtils.WebRtcPeer.prototype.addIceCandidate\n *\n * @param iceCandidate - Literal object with the ICE candidate description\n * @param callback - Called when the ICE candidate has been added.\n */\n this.addIceCandidate = function (iceCandidate, callback) {\n var candidate\n\n if (multistream && usePlanB) {\n candidate = interop.candidateToPlanB(iceCandidate)\n } else {\n candidate = new RTCIceCandidate(iceCandidate)\n }\n\n logger.debug('Remote ICE candidate received', iceCandidate)\n callback = (callback || noop).bind(this)\n addIceCandidate(candidate, callback)\n }\n\n this.generateOffer = function (callback) {\n callback = callback.bind(this)\n\n var offerAudio = true\n var offerVideo = true\n // Constraints must have both blocks\n if (mediaConstraints) {\n offerAudio = (typeof mediaConstraints.audio === 'boolean') ?\n mediaConstraints.audio : true\n offerVideo = (typeof mediaConstraints.video === 'boolean') ?\n mediaConstraints.video : true\n }\n\n var browserDependantConstraints = {\n offerToReceiveAudio: (mode !== 'sendonly' && offerAudio),\n offerToReceiveVideo: (mode !== 'sendonly' && offerVideo)\n }\n\n //FIXME: clarify possible constraints passed to createOffer()\n /*var constraints = recursive(browserDependantConstraints,\n connectionConstraints)*/\n\n var constraints = browserDependantConstraints;\n\n logger.debug('constraints: ' + JSON.stringify(constraints))\n\n pc.createOffer(constraints).then(function (offer) {\n logger.debug('Created SDP offer')\n offer = mangleSdpToAddSimulcast(offer)\n return pc.setLocalDescription(offer)\n }).then(function () {\n var localDescription = pc.localDescription\n logger.debug('Local description set', localDescription.sdp)\n if (multistream && usePlanB) {\n localDescription = interop.toUnifiedPlan(localDescription)\n logger.debug('offer::origPlanB->UnifiedPlan', dumpSDP(\n localDescription))\n }\n callback(null, localDescription.sdp, self.processAnswer.bind(\n self))\n }).catch(callback)\n }\n\n this.getLocalSessionDescriptor = function () {\n return pc.localDescription\n }\n\n this.getRemoteSessionDescriptor = function () {\n return pc.remoteDescription\n }\n\n function setRemoteVideo() {\n if (remoteVideo) {\n var stream = pc.getRemoteStreams()[0]\n var url = stream ? URL.createObjectURL(stream) : ''\n\n remoteVideo.pause()\n remoteVideo.src = url\n remoteVideo.load()\n\n logger.debug('Remote URL:', url)\n }\n }\n\n this.showLocalVideo = function () {\n localVideo.src = URL.createObjectURL(videoStream)\n localVideo.muted = true\n }\n\n this.send = function (data) {\n if (dataChannel && dataChannel.readyState === 'open') {\n dataChannel.send(data)\n } else {\n logger.warn(\n 'Trying to send data over a non-existing or closed data channel')\n }\n }\n\n /**\n * Callback function invoked when a SDP answer is received. Developers are\n * expected to invoke this function in order to complete the SDP negotiation.\n *\n * @function module:kurentoUtils.WebRtcPeer.prototype.processAnswer\n *\n * @param sdpAnswer - Description of sdpAnswer\n * @param callback -\n * Invoked after the SDP answer is processed, or there is an error.\n */\n this.processAnswer = function (sdpAnswer, callback) {\n callback = (callback || noop).bind(this)\n\n var answer = new RTCSessionDescription({\n type: 'answer',\n sdp: sdpAnswer\n })\n\n if (multistream && usePlanB) {\n var planBAnswer = interop.toPlanB(answer)\n logger.debug('asnwer::planB', dumpSDP(planBAnswer))\n answer = planBAnswer\n }\n\n logger.debug('SDP answer received, setting remote description')\n\n if (pc.signalingState === 'closed') {\n return callback('PeerConnection is closed')\n }\n\n pc.setRemoteDescription(answer, function () {\n setRemoteVideo()\n\n callback()\n },\n callback)\n }\n\n /**\n * Callback function invoked when a SDP offer is received. Developers are\n * expected to invoke this function in order to complete the SDP negotiation.\n *\n * @function module:kurentoUtils.WebRtcPeer.prototype.processOffer\n *\n * @param sdpOffer - Description of sdpOffer\n * @param callback - Called when the remote description has been set\n * successfully.\n */\n this.processOffer = function (sdpOffer, callback) {\n callback = callback.bind(this)\n\n var offer = new RTCSessionDescription({\n type: 'offer',\n sdp: sdpOffer\n })\n\n if (multistream && usePlanB) {\n var planBOffer = interop.toPlanB(offer)\n logger.debug('offer::planB', dumpSDP(planBOffer))\n offer = planBOffer\n }\n\n logger.debug('SDP offer received, setting remote description')\n\n if (pc.signalingState === 'closed') {\n return callback('PeerConnection is closed')\n }\n\n pc.setRemoteDescription(offer).then(function () {\n return setRemoteVideo()\n }).then(function () {\n return pc.createAnswer()\n }).then(function (answer) {\n answer = mangleSdpToAddSimulcast(answer)\n logger.debug('Created SDP answer')\n return pc.setLocalDescription(answer)\n }).then(function () {\n var localDescription = pc.localDescription\n if (multistream && usePlanB) {\n localDescription = interop.toUnifiedPlan(localDescription)\n logger.debug('answer::origPlanB->UnifiedPlan', dumpSDP(\n localDescription))\n }\n logger.debug('Local description set', localDescription.sdp)\n callback(null, localDescription.sdp)\n }).catch(callback)\n }\n\n function mangleSdpToAddSimulcast(answer) {\n if (simulcast) {\n if (browser.name === 'Chrome' || browser.name === 'Chromium') {\n logger.debug('Adding multicast info')\n answer = new RTCSessionDescription({\n 'type': answer.type,\n 'sdp': removeFIDFromOffer(answer.sdp) + getSimulcastInfo(\n videoStream)\n })\n } else {\n logger.warn('Simulcast is only available in Chrome browser.')\n }\n }\n\n return answer\n }\n\n /**\n * This function creates the RTCPeerConnection object taking into account the\n * properties received in the constructor. It starts the SDP negotiation\n * process: generates the SDP offer and invokes the onsdpoffer callback. This\n * callback is expected to send the SDP offer, in order to obtain an SDP\n * answer from another peer.\n */\n function start() {\n if (pc.signalingState === 'closed') {\n callback(\n 'The peer connection object is in \"closed\" state. This is most likely due to an invocation of the dispose method before accepting in the dialogue'\n )\n }\n\n if (videoStream && localVideo) {\n self.showLocalVideo()\n }\n\n if (videoStream) {\n pc.addStream(videoStream)\n }\n\n if (audioStream) {\n pc.addStream(audioStream)\n }\n\n // [Hack] https://code.google.com/p/chromium/issues/detail?id=443558\n var browser = parser.getBrowser()\n if (mode === 'sendonly' &&\n (browser.name === 'Chrome' || browser.name === 'Chromium') &&\n browser.major === 39) {\n mode = 'sendrecv'\n }\n\n callback()\n }\n\n if (mode !== 'recvonly' && !videoStream && !audioStream) {\n function getMedia(constraints) {\n if (constraints === undefined) {\n constraints = MEDIA_CONSTRAINTS\n }\n\n navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {\n videoStream = stream\n start()\n }).catch(callback);\n }\n if (sendSource === 'webcam') {\n getMedia(mediaConstraints)\n } else {\n getScreenConstraints(sendSource, function (error, constraints_) {\n if (error)\n return callback(error)\n\n constraints = [mediaConstraints]\n constraints.unshift(constraints_)\n getMedia(recursive.apply(undefined, constraints))\n }, guid)\n }\n } else {\n setTimeout(start, 0)\n }\n\n this.on('_dispose', function () {\n if (localVideo) {\n localVideo.pause()\n localVideo.src = ''\n localVideo.load()\n //Unmute local video in case the video tag is later used for remote video\n localVideo.muted = false\n }\n if (remoteVideo) {\n remoteVideo.pause()\n remoteVideo.src = ''\n remoteVideo.load()\n }\n self.removeAllListeners()\n\n if (window.cancelChooseDesktopMedia !== undefined) {\n window.cancelChooseDesktopMedia(guid)\n }\n })\n}\ninherits(WebRtcPeer, EventEmitter)\n\nfunction createEnableDescriptor(type) {\n var method = 'get' + type + 'Tracks'\n\n return {\n enumerable: true,\n get: function () {\n // [ToDo] Should return undefined if not all tracks have the same value?\n\n if (!this.peerConnection) return\n\n var streams = this.peerConnection.getLocalStreams()\n if (!streams.length) return\n\n for (var i = 0, stream; stream = streams[i]; i++) {\n var tracks = stream[method]()\n for (var j = 0, track; track = tracks[j]; j++)\n if (!track.enabled) return false\n }\n\n return true\n },\n set: function (value) {\n function trackSetEnable(track) {\n track.enabled = value\n }\n\n this.peerConnection.getLocalStreams().forEach(function (stream) {\n stream[method]().forEach(trackSetEnable)\n })\n }\n }\n}\n\nObject.defineProperties(WebRtcPeer.prototype, {\n 'enabled': {\n enumerable: true,\n get: function () {\n return this.audioEnabled && this.videoEnabled\n },\n set: function (value) {\n this.audioEnabled = this.videoEnabled = value\n }\n },\n 'audioEnabled': createEnableDescriptor('Audio'),\n 'videoEnabled': createEnableDescriptor('Video')\n})\n\nWebRtcPeer.prototype.getLocalStream = function (index) {\n if (this.peerConnection) {\n return this.peerConnection.getLocalStreams()[index || 0]\n }\n}\n\nWebRtcPeer.prototype.getRemoteStream = function (index) {\n if (this.peerConnection) {\n return this.peerConnection.getRemoteStreams()[index || 0]\n }\n}\n\n/**\n * @description This method frees the resources used by WebRtcPeer.\n *\n * @function module:kurentoUtils.WebRtcPeer.prototype.dispose\n */\nWebRtcPeer.prototype.dispose = function () {\n logger.debug('Disposing WebRtcPeer')\n\n var pc = this.peerConnection\n var dc = this.dataChannel\n try {\n if (dc) {\n if (dc.signalingState === 'closed') return\n\n dc.close()\n }\n\n if (pc) {\n if (pc.signalingState === 'closed') return\n\n pc.getLocalStreams().forEach(streamStop)\n\n // FIXME This is not yet implemented in firefox\n // if(videoStream) pc.removeStream(videoStream);\n // if(audioStream) pc.removeStream(audioStream);\n\n pc.close()\n }\n } catch (err) {\n logger.warn('Exception disposing webrtc peer ' + err)\n }\n\n this.emit('_dispose')\n}\n\n//\n// Specialized child classes\n//\n\nfunction WebRtcPeerRecvonly(options, callback) {\n if (!(this instanceof WebRtcPeerRecvonly)) {\n return new WebRtcPeerRecvonly(options, callback)\n }\n\n WebRtcPeerRecvonly.super_.call(this, 'recvonly', options, callback)\n}\ninherits(WebRtcPeerRecvonly, WebRtcPeer)\n\nfunction WebRtcPeerSendonly(options, callback) {\n if (!(this instanceof WebRtcPeerSendonly)) {\n return new WebRtcPeerSendonly(options, callback)\n }\n\n WebRtcPeerSendonly.super_.call(this, 'sendonly', options, callback)\n}\ninherits(WebRtcPeerSendonly, WebRtcPeer)\n\nfunction WebRtcPeerSendrecv(options, callback) {\n if (!(this instanceof WebRtcPeerSendrecv)) {\n return new WebRtcPeerSendrecv(options, callback)\n }\n\n WebRtcPeerSendrecv.super_.call(this, 'sendrecv', options, callback)\n}\ninherits(WebRtcPeerSendrecv, WebRtcPeer)\n\nfunction harkUtils(stream, options) {\n return hark(stream, options);\n}\n\nexports.bufferizeCandidates = bufferizeCandidates\n\nexports.WebRtcPeerRecvonly = WebRtcPeerRecvonly\nexports.WebRtcPeerSendonly = WebRtcPeerSendonly\nexports.WebRtcPeerSendrecv = WebRtcPeerSendrecv\nexports.hark = harkUtils\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-utils-js/WebRtcPeer.js","/*\n * (C) Copyright 2014 Kurento (http://kurento.org/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\n/**\n * This module contains a set of reusable components that have been found useful\n * during the development of the WebRTC applications with Kurento.\n * \n * @module kurentoUtils\n * \n * @copyright 2014 Kurento (http://kurento.org/)\n * @license ALv2\n */\n\nvar WebRtcPeer = require('./WebRtcPeer');\n\nexports.WebRtcPeer = WebRtcPeer;\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/KurentoUtils/kurento-utils-js/index.js","/*\n * (C) Copyright 2017 OpenVidu (http://openvidu.io/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { OpenViduInternal } from '../OpenViduInternal/OpenViduInternal';\n\nimport { Session } from './Session';\nimport { Publisher } from './Publisher';\n\nimport * as adapter from 'webrtc-adapter';\n\nif (window) {\n window[\"adapter\"] = adapter;\n}\n\nexport class OpenVidu {\n\n openVidu: OpenViduInternal;\n\n constructor() {\n this.openVidu = new OpenViduInternal();\n console.info(\"'OpenVidu' initialized\");\n };\n\n initSession(apiKey: string, sessionId: string): Session;\n initSession(sessionId: string): Session;\n\n initSession(param1, param2?): any {\n if (this.checkSystemRequirements()) {\n if (typeof param2 == \"string\") {\n return new Session(this.openVidu.initSession(param2), this);\n } else {\n return new Session(this.openVidu.initSession(param1), this);\n }\n } else {\n alert(\"Browser not supported\");\n }\n }\n\n initPublisher(parentId: string): Publisher;\n initPublisher(parentId: string, cameraOptions: any): Publisher;\n initPublisher(parentId: string, cameraOptions: any, callback: any): Publisher;\n\n initPublisher(parentId: string, cameraOptions?: any, callback?: Function): any {\n if (this.checkSystemRequirements()) {\n if (cameraOptions != null) {\n let cameraOptionsAux = {\n audio: cameraOptions.audio != null ? cameraOptions.audio : true,\n video: cameraOptions.video != null ? cameraOptions.video : true,\n data: true,\n mediaConstraints: this.openVidu.generateMediaConstraints(cameraOptions.quality)\n };\n cameraOptions = cameraOptionsAux;\n } else {\n cameraOptions = {\n audio: true,\n video: true,\n data: true,\n mediaConstraints: {\n audio: true,\n video: { width: { ideal: 1280 } }\n }\n }\n }\n var publisher = new Publisher(this.openVidu.initPublisherTagged(parentId, cameraOptions, callback), parentId);\n \n console.info(\"'Publisher' initialized\");\n return publisher;\n\n } else {\n alert(\"Browser not supported\");\n }\n }\n\n checkSystemRequirements(): number {\n let browser = adapter.browserDetails.browser;\n let version = adapter.browserDetails.version;\n\n //Bug fix: 'navigator.userAgent' in Firefox for Ubuntu 14.04 does not return \"Firefox/[version]\" in the string, so version returned is null\n if ((browser == 'firefox') && (version == null)) {\n return 1;\n }\n if (((browser == 'chrome') && (version >= 28)) || ((browser == 'edge') && (version >= 12)) || ((browser == 'firefox') && (version >= 22))) {\n return 1;\n } else {\n return 0;\n }\n }\n\n getDevices(callback) {\n navigator.mediaDevices.enumerateDevices().then((deviceInfos) => {\n callback(null, deviceInfos);\n }).catch((error) => {\n console.error(\"Error getting devices\", error);\n callback(error, null);\n });\n }\n\n enableProdMode() {\n console.log = function() {};\n console.debug = function() {};\n console.info = function() {};\n console.warn = function() {};\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/OpenVidu.ts","export * from './OpenVidu';\nexport * from './Session';\nexport * from './Publisher';\nexport * from './Subscriber';\nexport * from '../OpenViduInternal/Stream';\nexport * from '../OpenViduInternal/Connection';\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenVidu/index.ts","/*\n * (C) Copyright 2017 OpenVidu (http://openvidu.io/)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\nimport { SessionInternal, SessionOptions } from './SessionInternal';\nimport { Stream } from './Stream';\nimport * as RpcBuilder from '../KurentoUtils/kurento-jsonrpc';\n\nexport type Callback = (error?: any, openVidu?: T) => void;\n\nexport class OpenViduInternal {\n\n private wsUri;\n private session: SessionInternal;\n private jsonRpcClient: any;\n private rpcParams: any;\n private callback: Callback;\n private camera: Stream;\n private remoteStreams: Stream[] = [];\n\n private secret: string;\n\n constructor() { };\n\n\n /* NEW METHODS */\n initSession(sessionId) {\n console.info(\"'Session' initialized with 'sessionId' [\" + sessionId + \"]\");\n this.session = new SessionInternal(this, sessionId);\n return this.session;\n }\n\n initPublisherTagged(parentId: string, cameraOptions: any, callback?) {\n\n this.getCamera(cameraOptions);\n\n if (callback == null) {\n this.camera.requestCameraAccess((error, camera) => {\n if (error) {\n console.error(\"Error accessing the camera\", error);\n }\n else {\n this.camera.setVideoElement(this.cameraReady(camera!, parentId));\n }\n });\n return this.camera;\n } else {\n this.camera.requestCameraAccess((error, camera) => {\n if (error) {\n callback(error);\n }\n else {\n this.camera.setVideoElement(this.cameraReady(camera!, parentId));\n callback(undefined);\n }\n });\n return this.camera;\n }\n }\n\n cameraReady(camera: Stream, parentId: string) {\n this.camera = camera;\n let videoElement = this.camera.playOnlyVideo(parentId, null);\n this.camera.emitStreamReadyEvent();\n return videoElement;\n }\n\n initPublisher(cameraOptions: any, callback) {\n this.getCamera(cameraOptions);\n this.camera.requestCameraAccess((error, camera) => {\n if (error) callback(error);\n else callback(undefined);\n });\n }\n\n getLocalStream() {\n return this.camera;\n }\n\n getRemoteStreams() {\n return this.remoteStreams;\n }\n /* NEW METHODS */\n\n getWsUri() {\n return this.wsUri;\n }\n\n setWsUri(wsUri: string) {\n this.wsUri = wsUri;\n }\n\n getSecret() {\n return this.secret;\n }\n\n setSecret(secret: string) {\n this.secret = secret;\n }\n\n getOpenViduServerURL() {\n return 'https://' + this.wsUri.split(\"wss://\")[1].split(\"/room\")[0];\n }\n\n getRoom() {\n return this.session;\n }\n\n connect(callback: Callback): void {\n\n this.callback = callback;\n\n this.initJsonRpcClient(this.wsUri);\n }\n\n private initJsonRpcClient(wsUri: string): void {\n\n let config = {\n heartbeat: 3000,\n sendCloseMessage: false,\n ws: {\n uri: wsUri,\n useSockJS: false,\n onconnected: this.connectCallback.bind(this),\n ondisconnect: this.disconnectCallback.bind(this),\n onreconnecting: this.reconnectingCallback.bind(this),\n onreconnected: this.reconnectedCallback.bind(this)\n },\n rpc: {\n requestTimeout: 15000,\n //notifications\n participantJoined: this.onParticipantJoined.bind(this),\n participantPublished: this.onParticipantPublished.bind(this),\n participantUnpublished: this.onParticipantLeft.bind(this),\n participantLeft: this.onParticipantLeft.bind(this),\n participantEvicted: this.onParticipantEvicted.bind(this),\n sendMessage: this.onNewMessage.bind(this),\n iceCandidate: this.iceCandidateEvent.bind(this),\n mediaError: this.onMediaError.bind(this),\n custonNotification: this.customNotification.bind(this)\n }\n };\n\n this.jsonRpcClient = new RpcBuilder.clients.JsonRpcClient(config);\n }\n\n\n private customNotification(params) {\n if (this.isRoomAvailable()) {\n this.session.emitEvent(\"custom-message-received\", [{ params: params }]);\n }\n }\n\n private connectCallback(error) {\n if (error) {\n this.callback(error);\n } else {\n this.callback(null);\n }\n }\n\n private isRoomAvailable() {\n if (this.session !== undefined && this.session instanceof SessionInternal) {\n return true;\n } else {\n console.warn('Room instance not found');\n return false;\n }\n }\n\n private disconnectCallback() {\n console.warn('Websocket connection lost');\n if (this.isRoomAvailable()) {\n this.session.onLostConnection();\n } else {\n alert('Connection error. Please reload page.');\n }\n }\n\n private reconnectingCallback() {\n console.warn('Websocket connection lost (reconnecting)');\n if (this.isRoomAvailable()) {\n this.session.onLostConnection();\n } else {\n alert('Connection error. Please reload page.');\n }\n }\n\n private reconnectedCallback() {\n console.warn('Websocket reconnected');\n }\n\n private onParticipantJoined(params) {\n if (this.isRoomAvailable()) {\n this.session.onParticipantJoined(params);\n }\n }\n\n private onParticipantPublished(params) {\n if (this.isRoomAvailable()) {\n this.session.onParticipantPublished(params);\n }\n }\n\n private onParticipantLeft(params) {\n if (this.isRoomAvailable()) {\n this.session.onParticipantLeft(params);\n }\n }\n\n private onParticipantEvicted(params) {\n if (this.isRoomAvailable()) {\n this.session.onParticipantEvicted(params);\n }\n }\n\n private onNewMessage(params) {\n if (this.isRoomAvailable()) {\n this.session.onNewMessage(params);\n }\n }\n\n private iceCandidateEvent(params) {\n if (this.isRoomAvailable()) {\n this.session.recvIceCandidate(params);\n }\n }\n\n private onRoomClosed(params) {\n if (this.isRoomAvailable()) {\n this.session.onRoomClosed(params);\n }\n }\n\n private onMediaError(params) {\n if (this.isRoomAvailable()) {\n this.session.onMediaError(params);\n }\n }\n\n\n setRpcParams(params: any) {\n this.rpcParams = params;\n }\n\n sendRequest(method, params, callback?) {\n\n if (params && params instanceof Function) {\n callback = params;\n params = undefined;\n }\n\n params = params || {};\n\n if (this.rpcParams && this.rpcParams !== null && this.rpcParams !== undefined) {\n for (let index in this.rpcParams) {\n if (this.rpcParams.hasOwnProperty(index)) {\n params[index] = this.rpcParams[index];\n console.debug('RPC param added to request {' + index + ': ' + this.rpcParams[index] + '}');\n }\n }\n }\n\n console.debug('Sending request: {method:\"' + method + '\", params: ' + JSON.stringify(params) + '}');\n\n this.jsonRpcClient.send(method, params, callback);\n }\n\n close(forced) {\n if (this.isRoomAvailable()) {\n this.session.leave(forced, this.jsonRpcClient);\n }\n };\n\n disconnectParticipant(stream) {\n if (this.isRoomAvailable()) {\n this.session.disconnect(stream);\n }\n }\n\n getCamera(options?) {\n\n if (this.camera) {\n return this.camera;\n }\n\n options = options || {\n audio: true,\n video: true,\n data: true,\n mediaConstraints: {\n audio: true,\n video: { width: { ideal: 1280 } }\n }\n }\n\n options.connection = this.session.getLocalParticipant();\n this.camera = new Stream(this, true, this.session, options);\n return this.camera;\n };\n\n /*joinSession(options: SessionOptions, callback: Callback) {\n \n this.session.configure(options);\n \n this.session.connect2();\n \n this.session.addEventListener('room-connected', roomEvent => callback(undefined,this.session));\n \n this.session.addEventListener('error-room', error => callback(error));\n \n return this.session;\n };*/\n\n //CHAT\n sendMessage(room, user, message) {\n this.sendRequest('sendMessage', {\n message: message,\n userMessage: user,\n roomMessage: room\n }, function (error, response) {\n if (error) {\n console.error(error);\n }\n });\n };\n\n sendCustomRequest(params, callback) {\n this.sendRequest('customRequest', params, callback);\n };\n\n\n\n\n toggleLocalVideoTrack(activate: boolean) {\n this.getCamera().getWebRtcPeer().videoEnabled = activate;\n }\n\n toggleLocalAudioTrack(activate: boolean) {\n this.getCamera().getWebRtcPeer().audioEnabled = activate;\n }\n\n publishLocalVideoAudio() {\n this.toggleLocalVideoTrack(true);\n this.toggleLocalAudioTrack(true);\n }\n\n unpublishLocalVideoAudio() {\n this.toggleLocalVideoTrack(false);\n this.toggleLocalAudioTrack(false);\n }\n\n generateMediaConstraints(quality: string) {\n let mediaConstraints = {\n audio: true,\n video: {}\n }\n let w, h;\n switch (quality) {\n case 'LOW':\n w = 320;\n h = 240;\n break;\n case 'MEDIUM':\n w = 640;\n h = 480;\n break;\n case 'HIGH':\n w = 1280;\n h = 720;\n break;\n default:\n w = 640;\n h = 480;\n }\n mediaConstraints.video['width'] = { exact: w };\n mediaConstraints.video['height'] = { exact: h };\n //mediaConstraints.video['frameRate'] = { ideal: Number((document.getElementById('frameRate')).value) };\n\n return mediaConstraints;\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/OpenViduInternal.ts","import { Stream } from './Stream';\nimport { OpenViduInternal } from './OpenViduInternal';\nimport { Connection, ConnectionOptions } from './Connection';\nimport EventEmitter = require('wolfy87-eventemitter');\n\nconst SECRET_PARAM = '?secret=';\n\nexport interface SessionOptions {\n sessionId: string;\n participantId: string;\n metadata: string;\n subscribeToStreams?: boolean;\n updateSpeakerInterval?: number;\n thresholdSpeaker?: number;\n}\n\nexport class SessionInternal {\n\n private id: string;\n private sessionId: string;\n private ee = new EventEmitter();\n private streams = {};\n private participants = {};\n private participantsSpeaking: Connection[] = [];\n private connected = false;\n public localParticipant: Connection;\n private subscribeToStreams: boolean;\n private updateSpeakerInterval: number;\n public thresholdSpeaker: number;\n private options: SessionOptions;\n\n constructor(private openVidu: OpenViduInternal, sessionId: string) {\n this.sessionId = this.getUrlWithoutSecret(sessionId);\n this.localParticipant = new Connection(this.openVidu, true, this);\n if (!this.openVidu.getWsUri()) {\n this.processOpenViduUrl(sessionId);\n }\n }\n\n private processOpenViduUrl(url: string) {\n this.openVidu.setSecret(this.getSecretFromUrl(url));\n this.openVidu.setWsUri(this.getFinalUrl(url));\n }\n\n private getSecretFromUrl(url: string): string {\n let secret = '';\n if (url.indexOf(SECRET_PARAM) !== -1) {\n secret = url.substring(url.lastIndexOf(SECRET_PARAM) + SECRET_PARAM.length, url.length);\n }\n return secret;\n }\n\n private getUrlWithoutSecret(url: string): string {\n if (url.indexOf(SECRET_PARAM) !== -1) {\n url = url.substring(0, url.lastIndexOf(SECRET_PARAM));\n }\n return url;\n }\n\n private getFinalUrl(url: string): string {\n url = this.getUrlWithoutSecret(url).substring(0, url.lastIndexOf('/')) + '/room';\n if (url.indexOf(\".ngrok.io\") !== -1) {\n // OpenVidu server URL referes to a ngrok IP: secure wss protocol and delete port of URL\n url = url.replace(\"ws://\", \"wss://\");\n let regex = /\\.ngrok\\.io:\\d+/;\n url = url.replace(regex, \".ngrok.io\");\n } else if ((url.indexOf(\"localhost\") !== -1) || (url.indexOf(\"127.0.0.1\") != -1)) {\n // OpenVidu server URL referes to localhost IP\n\n }\n return url;\n }\n\n\n\n /* NEW METHODS */\n connect(token, callback) {\n\n this.openVidu.connect((error) => {\n if (error) {\n callback('ERROR CONNECTING TO OPENVIDU');\n }\n else {\n\n if (!token) {\n token = this.randomToken();\n }\n\n let joinParams = {\n token: token,\n session: this.sessionId,\n metadata: this.options.metadata,\n secret: this.openVidu.getSecret(),\n dataChannels: false\n }\n\n if (this.localParticipant) {\n if (Object.keys(this.localParticipant.getStreams()).some(streamId =>\n this.streams[streamId].isDataChannelEnabled())) {\n joinParams.dataChannels = true;\n }\n }\n\n this.openVidu.sendRequest('joinRoom', joinParams, (error, response) => {\n\n if (error) {\n callback(error);\n } else {\n\n this.connected = true;\n\n let exParticipants = response.value;\n\n // IMPORTANT: Update connectionId with value send by server\n this.localParticipant.connectionId = response.id;\n this.participants[response.id] = this.localParticipant;\n\n let roomEvent = {\n participants: new Array(),\n streams: new Array()\n }\n\n let length = exParticipants.length;\n for (let i = 0; i < length; i++) {\n\n let connection = new Connection(this.openVidu, false, this,\n exParticipants[i]);\n connection.creationTime = new Date().getTime();\n\n this.participants[connection.connectionId] = connection;\n\n roomEvent.participants.push(connection);\n\n let streams = connection.getStreams();\n for (let key in streams) {\n roomEvent.streams.push(streams[key]);\n if (this.subscribeToStreams) {\n streams[key].subscribe();\n }\n }\n }\n\n // Update local Connection object properties with values returned by server\n this.localParticipant.data = response.metadata;\n this.localParticipant.creationTime = new Date().getTime();\n\n // Updates the value of property 'connection' in Session object\n this.ee.emitEvent('update-connection-object', [{ connection: this.localParticipant }]);\n // Own connection created event\n this.ee.emitEvent('connectionCreated', [{ connection: this.localParticipant }]);\n\n // One connection created event for each existing connection in the session\n for (let part of roomEvent.participants) {\n this.ee.emitEvent('connectionCreated', [{ connection: part }]);\n }\n\n //if (this.subscribeToStreams) {\n for (let stream of roomEvent.streams) {\n this.ee.emitEvent('streamCreated', [{ stream }]);\n\n // Adding the remote stream to the OpenVidu object\n this.openVidu.getRemoteStreams().push(stream);\n }\n //}\n\n callback(undefined);\n }\n });\n }\n });\n }\n\n publish() {\n this.openVidu.getCamera().publish();\n }\n /* NEW METHODS */\n\n\n\n\n\n configure(options: SessionOptions) {\n this.options = options;\n this.id = options.sessionId;\n this.subscribeToStreams = options.subscribeToStreams == null ? true : options.subscribeToStreams;\n this.updateSpeakerInterval = options.updateSpeakerInterval || 1500;\n this.thresholdSpeaker = options.thresholdSpeaker || -50;\n this.activateUpdateMainSpeaker();\n }\n\n getId() {\n return this.id;\n }\n\n getSessionId() {\n return this.sessionId;\n }\n\n private activateUpdateMainSpeaker() {\n\n setInterval(() => {\n if (this.participantsSpeaking.length > 0) {\n this.ee.emitEvent('update-main-speaker', [{\n participantId: this.participantsSpeaking[this.participantsSpeaking.length - 1]\n }]);\n }\n }, this.updateSpeakerInterval);\n }\n\n getLocalParticipant() {\n return this.localParticipant;\n }\n\n addEventListener(eventName, listener) {\n this.ee.on(eventName, listener);\n }\n\n addOnceEventListener(eventName, listener) {\n this.ee.once(eventName, listener);\n }\n\n removeListener(eventName, listener) {\n this.ee.off(eventName, listener);\n }\n\n removeEvent(eventName) {\n this.ee.removeEvent(eventName);\n }\n\n emitEvent(eventName, eventsArray) {\n this.ee.emitEvent(eventName, eventsArray);\n }\n\n\n subscribe(stream: Stream) {\n stream.subscribe();\n }\n\n unsuscribe(stream) {\n console.info(\"Unsubscribing from \" + stream.getId());\n this.openVidu.sendRequest('unsubscribeFromVideo', {\n sender: stream.getId()\n },\n function (error, response) {\n if (error) {\n console.error(\"Error unsubscribing from Subscriber\", error);\n } else {\n console.info(\"Unsubscribed correctly from \" + stream.getId());\n }\n });\n }\n\n onParticipantPublished(options) {\n\n options.metadata = this.participants[options.id].data;\n\n // Get the existing Connection created on 'onParticipantJoined' for\n // existing participants or create a new one for new participants\n let connection = this.participants[options.id];\n if (connection) {\n // Update existing Connection\n connection.options = options;\n connection.initStreams(options);\n } else {\n // Create new Connection\n connection = new Connection(this.openVidu, false, this, options);\n }\n\n let pid = connection.connectionId;\n if (!(pid in this.participants)) {\n console.debug(\"Remote Connection not found in connections list by its id [\" + pid + \"]\");\n } else {\n console.debug(\"Remote Connection found in connections list by its id [\" + pid + \"]\");\n }\n\n connection.creationTime = this.participants[pid].creationTime;\n this.participants[pid] = connection;\n\n this.ee.emitEvent('participant-published', [{ connection }]);\n\n let streams = connection.getStreams();\n for (let key in streams) {\n let stream = streams[key];\n\n if (this.subscribeToStreams) {\n stream.subscribe();\n }\n this.ee.emitEvent('streamCreated', [{ stream }]);\n // Adding the remote stream to the OpenVidu object\n this.openVidu.getRemoteStreams().push(stream);\n }\n }\n\n onParticipantJoined(msg) {\n\n let connection = new Connection(this.openVidu, false, this, msg);\n connection.creationTime = new Date().getTime();\n\n let pid = connection.connectionId;\n if (!(pid in this.participants)) {\n this.participants[pid] = connection;\n } else {\n //use existing so that we don't lose streams info\n console.warn(\"Connection already exists in connections list with \" +\n \"the same connectionId, old:\", this.participants[pid], \", joined now:\", connection);\n connection = this.participants[pid];\n }\n\n this.ee.emitEvent('participant-joined', [{\n connection: connection\n }]);\n\n this.ee.emitEvent('connectionCreated', [{\n connection: connection\n }]);\n\n }\n\n onParticipantLeft(msg) {\n\n let connection = this.participants[msg.name];\n\n if (connection !== undefined) {\n delete this.participants[msg.name];\n\n this.ee.emitEvent('participant-left', [{\n connection: connection\n }]);\n\n let streams = connection.getStreams();\n for (let key in streams) {\n this.ee.emitEvent('streamDestroyed', [{\n stream: streams[key],\n preventDefault: () => { this.ee.removeEvent('stream-destroyed-default'); }\n }]);\n this.ee.emitEvent('stream-destroyed-default', [{\n stream: streams[key]\n }]);\n\n // Deleting the removed stream from the OpenVidu object\n let index = this.openVidu.getRemoteStreams().indexOf(streams[key]);\n this.openVidu.getRemoteStreams().splice(index, 1);\n }\n\n connection.dispose();\n\n this.ee.emitEvent('connectionDestroyed', [{\n connection: connection\n }]);\n\n } else {\n console.warn(\"Participant \" + msg.name\n + \" unknown. Participants: \"\n + JSON.stringify(this.participants));\n }\n };\n\n onParticipantEvicted(msg) {\n this.ee.emitEvent('participant-evicted', [{\n localParticipant: this.localParticipant\n }]);\n };\n\n onNewMessage(msg) {\n\n console.info(\"New message: \" + JSON.stringify(msg));\n let room = msg.room;\n let user = msg.user;\n let message = msg.message;\n\n if (user !== undefined) {\n this.ee.emitEvent('newMessage', [{\n room: room,\n user: user,\n message: message\n }]);\n } else {\n console.warn(\"User undefined in new message:\", msg);\n }\n }\n\n recvIceCandidate(msg) {\n\n let candidate = {\n candidate: msg.candidate,\n sdpMid: msg.sdpMid,\n sdpMLineIndex: msg.sdpMLineIndex\n }\n\n let connection = this.participants[msg.endpointName];\n if (!connection) {\n console.error(\"Participant not found for endpoint \" +\n msg.endpointName + \". Ice candidate will be ignored.\",\n candidate);\n return;\n }\n\n let streams = connection.getStreams();\n for (let key in streams) {\n let stream = streams[key];\n stream.getWebRtcPeer().addIceCandidate(candidate, function (error) {\n if (error) {\n console.error(\"Error adding candidate for \" + key\n + \" stream of endpoint \" + msg.endpointName\n + \": \" + error);\n }\n });\n }\n }\n\n onRoomClosed(msg) {\n\n console.info(\"Room closed: \" + JSON.stringify(msg));\n let room = msg.room;\n if (room !== undefined) {\n this.ee.emitEvent('room-closed', [{\n room: room\n }]);\n } else {\n console.warn(\"Room undefined in on room closed\", msg);\n }\n }\n\n onLostConnection() {\n\n if (!this.connected) {\n console.warn('Not connected to room: if you are not debugging, this is probably a certificate error');\n if (window.confirm('If you are not debugging, this is probably a certificate error at \\\"' + this.openVidu.getOpenViduServerURL() + '\\\"\\n\\nClick OK to navigate and accept it')) {\n location.assign(this.openVidu.getOpenViduServerURL() + '/accept-certificate');\n };\n return;\n }\n\n console.warn('Lost connection in Session ' + this.id);\n let room = this.id;\n if (room !== undefined) {\n this.ee.emitEvent('lost-connection', [{ room }]);\n } else {\n console.warn('Room undefined when lost connection');\n }\n }\n\n onMediaError(params) {\n\n console.error(\"Media error: \" + JSON.stringify(params));\n let error = params.error;\n if (error) {\n this.ee.emitEvent('error-media', [{\n error: error\n }]);\n } else {\n console.warn(\"Received undefined media error. Params:\", params);\n }\n }\n\n /*\n * forced means the user was evicted, no need to send the 'leaveRoom' request\n */\n leave(forced, jsonRpcClient) {\n\n forced = !!forced;\n\n console.info(\"Leaving Session (forced=\" + forced + \")\");\n\n if (this.connected && !forced) {\n this.openVidu.sendRequest('leaveRoom', function (error, response) {\n if (error) {\n console.error(error);\n }\n jsonRpcClient.close();\n });\n } else {\n jsonRpcClient.close();\n }\n this.connected = false;\n if (this.participants) {\n for (let pid in this.participants) {\n this.participants[pid].dispose();\n delete this.participants[pid];\n }\n }\n }\n\n disconnect(stream: Stream) {\n\n let connection = stream.getParticipant();\n if (!connection) {\n console.error(\"Stream to disconnect has no participant\", stream);\n return;\n }\n\n delete this.participants[connection.connectionId];\n connection.dispose();\n\n if (connection === this.localParticipant) {\n\n console.info(\"Unpublishing my media (I'm \" + connection.connectionId + \")\");\n delete this.localParticipant;\n this.openVidu.sendRequest('unpublishVideo', function (error, response) {\n if (error) {\n console.error(error);\n } else {\n console.info(\"Media unpublished correctly\");\n }\n });\n\n } else {\n this.unsuscribe(stream);\n }\n }\n\n unpublish(stream: Stream) {\n\n let connection = stream.getParticipant();\n if (!connection) {\n console.error(\"Stream to disconnect has no participant\", stream);\n return;\n }\n\n if (connection === this.localParticipant) {\n\n delete this.participants[connection.connectionId];\n connection.dispose();\n\n console.info(\"Unpublishing my media (I'm \" + connection.connectionId + \")\");\n delete this.localParticipant;\n this.openVidu.sendRequest('unpublishVideo', function (error, response) {\n if (error) {\n console.error(error);\n } else {\n console.info(\"Media unpublished correctly\");\n }\n });\n }\n }\n\n getStreams() {\n return this.streams;\n }\n\n addParticipantSpeaking(participantId) {\n this.participantsSpeaking.push(participantId);\n }\n\n removeParticipantSpeaking(participantId) {\n let pos = -1;\n for (let i = 0; i < this.participantsSpeaking.length; i++) {\n if (this.participantsSpeaking[i] == participantId) {\n pos = i;\n break;\n }\n }\n if (pos != -1) {\n this.participantsSpeaking.splice(pos, 1);\n }\n }\n\n stringClientMetadata(metadata): string {\n if (!(typeof metadata === 'string')) {\n return JSON.stringify(metadata);\n } else {\n return metadata;\n }\n }\n \n private randomToken(): string {\n return Math.random().toString(36).slice(2) + Math.random().toString(36).slice(2);\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// /home/pablo/Documents/Git/openvidu/openvidu-browser/src/main/resources/ts/OpenViduInternal/SessionInternal.ts","import { Injectable } from '@angular/core';\nimport { Http, Headers, RequestOptions, Response } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\nimport { environment } from '../../environments/environment';\n\nimport { Lesson } from '../models/lesson';\nimport { User } from '../models/user';\nimport { AuthenticationService } from './authentication.service';\n\nimport 'rxjs/Rx';\n\n@Injectable()\nexport class LessonService {\n\n private url = 'api-lessons';\n\n constructor(private http: Http, private authenticationService: AuthenticationService) { }\n\n getLessons(user: User) {\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.get(this.url + '/user/' + user.id, options) // Must send userId\n .map((response: Response) => response.json() as Lesson[])\n .catch(error => this.handleError(error));\n }\n\n getLesson(lessonId: number) {\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.get(this.url + '/lesson/' + lessonId, options) // Must send userId\n .map((response: Response) => response.json() as Lesson)\n .catch(error => this.handleError(error));\n }\n\n // POST new lesson. On success returns the created lesson\n newLesson(lesson: Lesson) {\n let body = JSON.stringify(lesson);\n let headers = new Headers({\n 'Content-Type': 'application/json',\n 'X-Requested-With': 'XMLHttpRequest'\n });\n let options = new RequestOptions({ headers });\n return this.http.post(this.url + '/new', body, options)\n .map(response => response.json() as Lesson)\n .catch(error => this.handleError(error));\n }\n\n // PUT existing lesson. On success returns the updated lesson\n editLesson(lesson: Lesson) {\n let body = JSON.stringify(lesson);\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.put(this.url + '/edit', body, options)\n .map(response => response.json() as Lesson)\n .catch(error => this.handleError(error));\n }\n\n // DELETE existing lesson. On success returns the deleted lesson (simplified version)\n deleteLesson(lessonId: number) {\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.delete(this.url + '/delete/' + lessonId, options)\n .map(response => response.json() as Lesson)\n .catch(error => this.handleError(error));\n }\n\n // PUT existing lesson, modifying its attenders (adding them). On success returns the updated lesson.attenders array\n addLessonAttenders(lessonId: number, userEmails: string[]) {\n let body = JSON.stringify(userEmails);\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.put(this.url + '/edit/add-attenders/lesson/' + lessonId, body, options)\n .map(response => response.json())\n .catch(error => this.handleError(error));\n }\n\n // PUT existing lesson, modifying its attenders (deleting them). On success returns the updated lesson.attenders array\n deleteLessonAttenders(lesson: Lesson) {\n let body = JSON.stringify(lesson);\n let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authenticationService.token });\n let options = new RequestOptions({ headers });\n return this.http.put(this.url + '/edit/delete-attenders', body, options)\n .map(response => response.json() as User[])\n .catch(error => this.handleError(error));\n }\n\n obtainLocalLesson(id: number) {\n return this.authenticationService.getCurrentUser().lessons.find(lesson => lesson.id == id);\n }\n\n private handleError(error: any) {\n console.error(error);\n return Observable.throw('Server error (' + error.status + '): ' + error.text())\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/lesson.service.ts","import { Injectable } from '@angular/core';\nimport { Http, Headers, RequestOptions } from '@angular/http';\nimport { Observable } from 'rxjs/Observable';\n\nimport { Lesson } from '../models/lesson';\n\nimport { AuthenticationService } from './authentication.service';\n\n@Injectable()\nexport class VideoSessionService {\n\n lesson: Lesson;\n cameraOptions: any;\n\n private url = 'api-sessions';\n\n constructor(private http: Http, private authenticationService: AuthenticationService) { }\n\n // Returns {0: sessionId}\n createSession(lessonId: number) {\n let body = JSON.stringify(lessonId);\n return this.http.post(this.url + '/create-session', body)\n .map(response => response.json())\n .catch(error => this.handleError(error));\n }\n\n // Returns {0: sessionId, 1: token}\n generateToken(lessonId: number) {\n let body = JSON.stringify(lessonId);\n let headers = new Headers({ 'Content-Type': 'application/json' });\n let options = new RequestOptions({ headers });\n return this.http.post(this.url + '/generate-token', body, options)\n .map(response => response.json())\n .catch(error => this.handleError(error));\n }\n\n removeUser(lessonId: number) {\n let body = JSON.stringify(lessonId);\n let headers = new Headers({ 'Content-Type': 'application/json' });\n let options = new RequestOptions({ headers });\n return this.http.post(this.url + '/remove-user', body, options)\n .map(response => response)\n .catch(error => this.handleError(error));\n }\n\n private handleError(error: any) {\n console.error(error);\n return Observable.throw('Server error (' + error.status + '): ' + error.text())\n }\n\n}\n\n\n// WEBPACK FOOTER //\n// ./src/app/services/video-session.service.ts","/*\n * options: name: XXX data: true (Maybe this is based on webrtc) audio: true,\n * video: true, url: \"file:///...\" > Player screen: true > Desktop (implicit\n * video:true, audio:false) audio: true, video: true > Webcam\n *\n * stream.hasAudio(); stream.hasVideo(); stream.hasData();\n */\nimport { Connection } from './Connection';\nimport { SessionInternal } from './SessionInternal';\nimport { OpenViduInternal, Callback } from './OpenViduInternal';\nimport EventEmitter = require('wolfy87-eventemitter');\nimport * as kurentoUtils from '../KurentoUtils/kurento-utils-js';\n\nimport * as adapter from 'webrtc-adapter';\ndeclare var navigator: any;\ndeclare var RTCSessionDescription: any;\n\nif (window) {\n window[\"adapter\"] = adapter;\n}\n\nfunction jq(id: string): string {\n return id.replace(/(@|:|\\.|\\[|\\]|,)/g, \"\\\\$1\");\n}\n\nfunction show(id: string) {\n document.getElementById(jq(id))!.style.display = 'block';\n}\n\nfunction hide(id: string) {\n document.getElementById(jq(id))!.style.display = 'none';\n}\n\nexport interface StreamOptions {\n id: string;\n connection: Connection;\n recvVideo: any;\n recvAudio: any;\n video: boolean;\n audio: boolean;\n data: boolean;\n mediaConstraints: any;\n audioOnly: boolean;\n}\n\nexport interface VideoOptions {\n thumb: string;\n video: HTMLVideoElement;\n}\n\nexport class Stream {\n\n public connection: Connection;\n\n private ee = new EventEmitter();\n private wrStream: any;\n private wp: any;\n private id: string;\n private video: HTMLVideoElement;\n private videoElements: VideoOptions[] = [];\n private elements: HTMLDivElement[] = [];\n private speechEvent: any;\n private recvVideo: any;\n private recvAudio: any;\n private sendVideo: boolean;\n private sendAudio: boolean;\n private mediaConstraints: any;\n private showMyRemote = false;\n private localMirrored = false;\n private chanId = 0;\n private dataChannel: boolean;\n private dataChannelOpened = false;\n\n private audioOnly = false;\n\n private videoSrcObject: MediaStream | null;\n private parentId: string;\n public isReady: boolean = false;\n public isVideoELementCreated: boolean = false;\n public accessIsAllowed: boolean = false;\n public accessIsDenied: boolean = false;\n\n constructor(private openVidu: OpenViduInternal, private local: boolean, private room: SessionInternal, options: StreamOptions) {\n\n if (options.id) {\n this.id = options.id;\n } else {\n this.id = \"webcam\";\n }\n\n this.connection = options.connection;\n this.recvVideo = options.recvVideo;\n this.recvAudio = options.recvAudio;\n this.dataChannel = options.data || false;\n this.sendVideo = options.video;\n this.sendAudio = options.audio;\n this.mediaConstraints = options.mediaConstraints;\n this.audioOnly = options.audioOnly || false;\n\n this.addEventListener('src-added', (srcEvent) => {\n this.videoSrcObject = srcEvent.srcObject;\n if (this.video) this.video.srcObject = srcEvent.srcObject;\n console.debug(\"Video srcObject [\" + srcEvent.srcObject + \"] added to stream [\" + this.getId() + \"]\");\n });\n }\n\n emitSrcEvent(wrstream) {\n this.ee.emitEvent('src-added', [{\n srcObject: wrstream\n }]);\n }\n\n emitStreamReadyEvent() {\n this.ee.emitEvent('stream-ready'), [{}];\n }\n\n getVideoSrcObject() {\n return this.videoSrcObject;\n }\n\n removeVideo(parentElement: string);\n removeVideo(parentElement: Element);\n removeVideo();\n\n removeVideo(parentElement?) {\n if (typeof parentElement === \"string\") {\n document.getElementById(parentElement)!.removeChild(this.video);\n } else if (parentElement instanceof Element) {\n parentElement.removeChild(this.video);\n }\n else if (!parentElement) {\n if (document.getElementById(this.parentId)) {\n document.getElementById(this.parentId)!.removeChild(this.video);\n }\n }\n }\n\n getVideoElement(): HTMLVideoElement {\n return this.video;\n }\n\n setVideoElement(video: HTMLVideoElement) {\n this.video = video;\n }\n\n\n\n\n\n\n getRecvVideo() {\n return this.recvVideo;\n }\n\n getRecvAudio() {\n return this.recvAudio;\n }\n\n\n subscribeToMyRemote() {\n this.showMyRemote = true;\n }\n\n displayMyRemote() {\n return this.showMyRemote;\n }\n\n mirrorLocalStream(wr) {\n this.showMyRemote = true;\n this.localMirrored = true;\n if (wr) {\n this.wrStream = wr;\n this.emitSrcEvent(this.wrStream);\n }\n }\n\n isLocalMirrored() {\n return this.localMirrored;\n }\n\n getChannelName() {\n return this.getId() + '_' + this.chanId++;\n }\n\n\n isDataChannelEnabled() {\n return this.dataChannel;\n }\n\n\n isDataChannelOpened() {\n return this.dataChannelOpened;\n }\n\n onDataChannelOpen(event) {\n console.debug('Data channel is opened');\n this.dataChannelOpened = true;\n }\n\n onDataChannelClosed(event) {\n console.debug('Data channel is closed');\n this.dataChannelOpened = false;\n }\n\n sendData(data) {\n if (this.wp === undefined) {\n throw new Error('WebRTC peer has not been created yet');\n }\n if (!this.dataChannelOpened) {\n throw new Error('Data channel is not opened');\n }\n console.info(\"Sending through data channel: \" + data);\n this.wp.send(data);\n }\n\n getWrStream() {\n return this.wrStream;\n }\n\n getWebRtcPeer() {\n return this.wp;\n }\n\n addEventListener(eventName: string, listener: any) {\n this.ee.addListener(eventName, listener);\n }\n\n addOnceEventListener(eventName: string, listener: any) {\n this.ee.addOnceListener(eventName, listener);\n }\n\n removeListener(eventName) {\n this.ee.removeAllListeners(eventName);\n }\n\n showSpinner(spinnerParentId: string) {\n let progress = document.createElement('div');\n progress.id = 'progress-' + this.getId();\n progress.style.background = \"center transparent url('img/spinner.gif') no-repeat\";\n let spinnerParent = document.getElementById(spinnerParentId);\n if (spinnerParent) {\n spinnerParent.appendChild(progress);\n }\n }\n\n hideSpinner(spinnerId?: string) {\n spinnerId = (spinnerId === undefined) ? this.getId() : spinnerId;\n hide('progress-' + spinnerId);\n }\n\n playOnlyVideo(parentElement, thumbnailId) {\n\n // TO-DO: check somehow if the stream is audio only, so the element created is