@flashphoner/websdk 2.0.205 → 2.0.209

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/flashphoner.js CHANGED
@@ -371,7 +371,7 @@ process.umask = function () {
371
371
 
372
372
  },{}],4:[function(require,module,exports){
373
373
  (function (setImmediate){(function (){
374
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
374
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
375
375
 
376
376
  (function (root) {
377
377
  // Store setTimeout reference so promise-polyfill will be unaffected by
@@ -2434,7 +2434,7 @@ module.exports = function (window, edgeVersion) {
2434
2434
  /* eslint-env node */
2435
2435
  'use strict'; // SDP helpers.
2436
2436
 
2437
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2437
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2438
2438
 
2439
2439
  var SDPUtils = {}; // Generate an alphanumeric identifier for cname or mids.
2440
2440
  // TODO: use UUIDs instead? https://gist.github.com/jed/982883
@@ -3267,7 +3267,7 @@ if ((typeof module === "undefined" ? "undefined" : _typeof(module)) === 'object'
3267
3267
  }
3268
3268
 
3269
3269
  },{}],7:[function(require,module,exports){
3270
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
3270
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3271
3271
 
3272
3272
  /* SWFObject v2.2 <http://code.google.com/p/swfobject/>
3273
3273
  is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
@@ -5318,7 +5318,7 @@ function adapterFactory() {
5318
5318
  /* eslint-env node */
5319
5319
  'use strict';
5320
5320
 
5321
- function _typeof2(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
5321
+ function _typeof2(obj) { "@babel/helpers - typeof"; return _typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof2(obj); }
5322
5322
 
5323
5323
  Object.defineProperty(exports, "__esModule", {
5324
5324
  value: true
@@ -6243,7 +6243,7 @@ function shimGetDisplayMedia(window, getSourceId) {
6243
6243
  /* eslint-env node */
6244
6244
  'use strict';
6245
6245
 
6246
- function _typeof2(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
6246
+ function _typeof2(obj) { "@babel/helpers - typeof"; return _typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof2(obj); }
6247
6247
 
6248
6248
  Object.defineProperty(exports, "__esModule", {
6249
6249
  value: true
@@ -6502,7 +6502,7 @@ function shimGetUserMedia(window, browserDetails) {
6502
6502
  /* eslint-env node */
6503
6503
  'use strict';
6504
6504
 
6505
- function _typeof2(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
6505
+ function _typeof2(obj) { "@babel/helpers - typeof"; return _typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof2(obj); }
6506
6506
 
6507
6507
  Object.defineProperty(exports, "__esModule", {
6508
6508
  value: true
@@ -7251,7 +7251,7 @@ function shimGetUserMedia(window) {
7251
7251
  /* eslint-env node */
7252
7252
  'use strict';
7253
7253
 
7254
- function _typeof2(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
7254
+ function _typeof2(obj) { "@babel/helpers - typeof"; return _typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof2(obj); }
7255
7255
 
7256
7256
  Object.defineProperty(exports, "__esModule", {
7257
7257
  value: true
@@ -7704,7 +7704,7 @@ function shimGetDisplayMedia(window, preferredMediaSource) {
7704
7704
  /* eslint-env node */
7705
7705
  'use strict';
7706
7706
 
7707
- function _typeof2(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
7707
+ function _typeof2(obj) { "@babel/helpers - typeof"; return _typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof2(obj); }
7708
7708
 
7709
7709
  Object.defineProperty(exports, "__esModule", {
7710
7710
  value: true
@@ -7806,7 +7806,7 @@ function shimGetUserMedia(window, browserDetails) {
7806
7806
  */
7807
7807
  'use strict';
7808
7808
 
7809
- function _typeof2(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
7809
+ function _typeof2(obj) { "@babel/helpers - typeof"; return _typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof2(obj); }
7810
7810
 
7811
7811
  Object.defineProperty(exports, "__esModule", {
7812
7812
  value: true
@@ -8257,7 +8257,7 @@ function shimAudioContext(window) {
8257
8257
  /* eslint-env node */
8258
8258
  'use strict';
8259
8259
 
8260
- function _typeof2(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
8260
+ function _typeof2(obj) { "@babel/helpers - typeof"; return _typeof2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof2(obj); }
8261
8261
 
8262
8262
  Object.defineProperty(exports, "__esModule", {
8263
8263
  value: true
@@ -8573,7 +8573,7 @@ function filterStats(result, track, outbound) {
8573
8573
  }
8574
8574
 
8575
8575
  },{}],39:[function(require,module,exports){
8576
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
8576
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
8577
8577
 
8578
8578
  var _0x8674 = ['feedDecoder', 'postMessage', 'now', 'getBufferTimeLength', 'Unknown\x20request', 'bind', 'audioChunkLength', 'context', 'sampleRate', 'videoWidth', 'videoHeight', 'token', 'dropDelayMultiplier', 'Failed\x20to\x20init\x20stream\x20receiver\x20', 'videoDecoder', 'decoderPath', 'onmessage', 'No\x20timestamp\x20available\x20for\x20decoded\x20picture,\x20discarding', 'shift', 'STOPPED', 'audioBuffer', 'sync', 'start', 'setVolume', 'requestVideoFrameCallback', 'Failed\x20to\x20init\x20video\x20decoder\x20', 'fps', 'framesRendered', 'noDataSince', 'prototype', 'receivedIframe', 'lastPlayedVideoTime', 'kframe', 'decode', 'payload', 'play', 'stream', 'STARTUP', 'playFirstSound', 'createBuffer', 'getChannelData', 'random', 'createBufferSource', 'buffer', 'connect', 'destination', 'mute', 'PAUSED', 'unmute', 'resume', 'getVolume', 'lastFpsTime', 'lastPlayedVideoTimestamp', 'log', 'trace', 'requestVideoFrameCallback,\x20audio\x20player\x20time\x20', '\x20callback\x20timestamp\x20', 'render', 'playing', 'dispatchEvent', 'riseApiEvent', 'lastEventRised', 'PLAYBACK_PROBLEM', 'logToCanvas', 'ctx2D', 'height', 'fillStyle', 'black', 'font', 'textAlign', 'center', 'width', '40pt', 'fillText', 'initLogger', 'verbosity', 'console', 'apply', 'warn', 'wsLogger', 'debug', 'renderFunction', 'force2D', 'YTexture', 'CBTexture', 'CRTexture', 'RGBTexture', 'rgbaBuffer', 'mbWidth', 'codedWidth', 'halfWidth', 'precision\x20mediump\x20float;', 'uniform\x20sampler2D\x20CBTexture;', 'void\x20main()\x20{', 'float\x20y\x20=\x20texture2D(YTexture,\x20texCoord).r;', 'float\x20cb\x20=\x20texture2D(CBTexture,\x20texCoord).r\x20-\x200.5;', 'gl_FragColor\x20=\x20vec4(', 'y\x20+\x20-0.343\x20*\x20cb\x20-\x200.711\x20*\x20cr,', '1.0', 'join', 'attribute\x20vec2\x20vertex;', 'varying\x20vec2\x20texCoord;', 'texCoord\x20=\x20vertex;', 'gl_Position\x20=\x20vec4((vertex\x20*\x202.0\x20-\x201.0)\x20*\x20vec2(1,\x20-1),\x200.0,\x201.0);', 'SHADER_VERTEX_IDENTITY_RGBA', 'varying\x20vec2\x20tc;', 'void\x20main(){', 'gl_Position\x20=\x20vertex;', 'SHADER_FRAGMENT_RGBA', 'uniform\x20sampler2D\x20RGBTexture;', 'gl_FragColor\x20=\x20texture2D(RGBTexture,\x20tc);', 'getContext', 'experimental-webgl', 'inputFormat', 'rgba', 'initWebGLRGB', 'initWebGLYUV', 'renderFrame2D', 'bindBuffer', 'ARRAY_BUFFER', 'bufferData', 'STATIC_DRAW', 'program', 'attachShader', 'compileShader', 'SHADER_VERTEX_IDENTITY_YUV', 'FRAGMENT_SHADER', 'SHADER_FRAGMENT_YCBCRTORGBA', 'linkProgram', 'getProgramParameter', 'Failed\x20to\x20init\x20WebGL!\x20Message\x20', 'getProgramInfoLog', 'useProgram', 'createTexture', 'getAttribLocation', 'vertex', 'enableVertexAttribArray', 'vertexAttribPointer', 'createProgram', 'bindAttribLocation', 'FLOAT', 'renderFrameGLRGB', 'undefined', 'createImageData', 'putImageData', 'clear', 'COLOR_BUFFER_BIT', 'DEPTH_BUFFER_BIT', 'TEXTURE_2D', 'texParameteri', 'TEXTURE_MAG_FILTER', 'LINEAR', 'TEXTURE_MIN_FILTER', 'CLAMP_TO_EDGE', 'TEXTURE_WRAP_T', 'getUniformLocation', 'createShader', 'getShaderParameter', 'COMPILE_STATUS', 'getShaderInfoLog', 'isUsingWebGL', 'activeTexture', 'bindTexture', 'texImage2D', 'LUMINANCE', 'UNSIGNED_BYTE', 'TEXTURE1', 'TEXTURE2', 'drawArrays', 'TRIANGLE_STRIP', 'TEXTURE0', 'RGBA', 'TRIANGLES', 'type', 'YCbCrToRGBA', 'set', 'Changing\x20canvas\x20resolution\x20from\x20', '\x20to\x20', 'lastTimeRendered', 'getLastTimeRendered', 'nodeConnected', 'gainNode', 'createGain', 'abs', 'Audio\x20node\x20buffer\x20size\x20', 'internalBufferSize', 'createScriptProcessor', 'audioJSNode', 'previousSync', 'lastSync', 'lastSyncTime', 'playbackTime', 'value', 'disconnect', 'resetBuffers', 'playAudio', 'getBufferLength', 'currentTime', 'audioChunkTimeLength', 'No\x20audio!\x20', 'previousSyncTime', 'Audio\x20player\x20mute', 'gain', 'Audio\x20player\x20resume', 'setTimeout', 'state', 'initialized', 'init', 'canvas', 'api', 'configuration', 'initBuffers', 'initialVolume', 'audioPlayer', 'error', 'Failed\x20to\x20init\x20audio\x20player\x20', 'yuv', 'videoRenderer', 'Failed\x20to\x20init\x20video\x20renderer\x20', 'receiver', 'terminate', 'receiverPath', 'addEventListener', 'message', 'data', 'status', 'failed', 'closed', 'stop', 'AVData', 'audioLength', 'audioReceived', 'audio', 'length', 'videoLength', 'Received\x20video,\x20frames:', 'videoReceived', 'video', 'videoBuffer', 'push', 'videoFrameTimeLength', 'getCurrentSync', 'PLAYING', 'muted', 'decodedVideoBuffer', 'tsVideoWaitingList'];
8579
8579
 
@@ -10397,7 +10397,7 @@ module.exports = constants;
10397
10397
  },{}],41:[function(require,module,exports){
10398
10398
  'use strict';
10399
10399
 
10400
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
10400
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
10401
10401
 
10402
10402
  var swfobject = require('swfobject');
10403
10403
 
@@ -11032,7 +11032,7 @@ module.exports = {
11032
11032
  },{"promise-polyfill":4,"swfobject":7,"uuid":9}],42:[function(require,module,exports){
11033
11033
  'use strict';
11034
11034
 
11035
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
11035
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
11036
11036
 
11037
11037
  var _require = require('uuid'),
11038
11038
  uuid_v1 = _require.v1;
@@ -11487,6 +11487,9 @@ var getSession = function getSession(id) {
11487
11487
  * @param {Object=} options.sipOptions Sip configuration
11488
11488
  * @param {Object=} options.mediaOptions Media connection configuration
11489
11489
  * @param {Integer=} options.timeout Connection timeout in milliseconds
11490
+ * @param {Integer=} options.pingInterval Server ping interval in milliseconds [0]
11491
+ * @param {Integer=} options.receiveProbes A maximum subsequental pings received missing count [0]
11492
+ * @param {Integer=} options.probesInterval Interval to check subsequental pings received [0]
11490
11493
  * @returns {Session} Created session
11491
11494
  * @throws {Error} Error if API is not initialized
11492
11495
  * @throws {TypeError} Error if options.urlServer is not specified
@@ -11513,6 +11516,8 @@ var createSession = function createSession(options) {
11513
11516
  var mediaOptions = options.mediaOptions;
11514
11517
  var keepAlive = options.keepAlive;
11515
11518
  var timeout = options.timeout;
11519
+ var wsPingSender = new WSPingSender(options.pingInterval || 0);
11520
+ var wsPingReceiver = new WSPingReceiver(options.receiveProbes || 0, options.probesInterval || 0);
11516
11521
  var connectionTimeout;
11517
11522
  var cConfig; //SIP config
11518
11523
 
@@ -11630,7 +11635,7 @@ var createSession = function createSession(options) {
11630
11635
  mediaProviders: Object.keys(MediaProvider),
11631
11636
  keepAlive: keepAlive,
11632
11637
  authToken: authToken,
11633
- clientVersion: "2.0.205",
11638
+ clientVersion: "2.0.209",
11634
11639
  clientOSVersion: window.navigator.appVersion,
11635
11640
  clientBrowserVersion: window.navigator.userAgent,
11636
11641
  msePacketizationVersion: 2,
@@ -11643,7 +11648,11 @@ var createSession = function createSession(options) {
11643
11648
 
11644
11649
 
11645
11650
  send("connection", cConfig);
11646
- logger.setConnection(wsConnection);
11651
+ logger.setConnection(wsConnection); // Send ping messages to server to check if connection is still alive #WCS-3410
11652
+
11653
+ wsPingSender.start(); // Check subsequintel pings received from server to check if connection is still alive #WCS-3410
11654
+
11655
+ wsPingReceiver.start();
11647
11656
  };
11648
11657
 
11649
11658
  wsConnection.onmessage = function (event) {
@@ -11659,6 +11668,7 @@ var createSession = function createSession(options) {
11659
11668
  switch (data.message) {
11660
11669
  case 'ping':
11661
11670
  send("pong", null);
11671
+ wsPingReceiver.success();
11662
11672
  break;
11663
11673
 
11664
11674
  case 'getUserData':
@@ -11818,7 +11828,11 @@ var createSession = function createSession(options) {
11818
11828
  sessionStatus = newStatus;
11819
11829
 
11820
11830
  if (sessionStatus == SESSION_STATUS.DISCONNECTED || sessionStatus == SESSION_STATUS.FAILED) {
11821
- //remove streams
11831
+ // Stop pinging server #WCS-3410
11832
+ wsPingSender.stop(); // Stop checking pings received #WCS-3410
11833
+
11834
+ wsPingReceiver.stop(); //remove streams
11835
+
11822
11836
  for (var prop in streamRefreshHandlers) {
11823
11837
  if (streamRefreshHandlers.hasOwnProperty(prop) && typeof streamRefreshHandlers[prop] === 'function') {
11824
11838
  streamRefreshHandlers[prop]({
@@ -11834,6 +11848,73 @@ var createSession = function createSession(options) {
11834
11848
  if (callbacks[sessionStatus]) {
11835
11849
  callbacks[sessionStatus](session, obj);
11836
11850
  }
11851
+ } // Websocket periodic ping sender
11852
+
11853
+
11854
+ function WSPingSender(interval) {
11855
+ this.interval = interval || 0;
11856
+ this.intervalId = null;
11857
+
11858
+ this.start = function () {
11859
+ if (this.interval > 0) {
11860
+ this.intervalId = setInterval(function () {
11861
+ send("ping", null);
11862
+ }, this.interval);
11863
+ }
11864
+ };
11865
+
11866
+ this.stop = function () {
11867
+ if (this.intervalId) {
11868
+ clearInterval(this.intervalId);
11869
+ }
11870
+ };
11871
+
11872
+ return this;
11873
+ } // Websocket ping receive prober
11874
+
11875
+
11876
+ function WSPingReceiver(receiveProbes, probesInterval) {
11877
+ this.maxPings = receiveProbes || 0;
11878
+ this.interval = probesInterval || 0;
11879
+ this.intervalId = null;
11880
+ this.pingsMissing = 0;
11881
+
11882
+ this.start = function () {
11883
+ if (this.maxPings > 0 && this.interval > 0) {
11884
+ var receiver = this;
11885
+ this.intervalId = setInterval(function () {
11886
+ receiver.checkPingsReceived();
11887
+ }, this.interval);
11888
+ }
11889
+ };
11890
+
11891
+ this.stop = function () {
11892
+ if (this.intervalId) {
11893
+ clearInterval(this.intervalId);
11894
+ }
11895
+
11896
+ this.pingsMissing = 0;
11897
+ };
11898
+
11899
+ this.checkPingsReceived = function () {
11900
+ this.pingsMissing++;
11901
+
11902
+ if (this.pingsMissing >= this.maxPings) {
11903
+ this.failure();
11904
+ }
11905
+ };
11906
+
11907
+ this.success = function () {
11908
+ this.pingsMissing = 0;
11909
+ };
11910
+
11911
+ this.failure = function () {
11912
+ logger.info(LOG_PREFIX, "Missing " + this.pingsMissing + " pings from server, connection seems to be down");
11913
+ onSessionStatusChange(SESSION_STATUS.FAILED);
11914
+ wsConnection.close();
11915
+ };
11916
+
11917
+ return this;
11837
11918
  }
11838
11919
  /**
11839
11920
  * @callback sdpHook
@@ -14458,7 +14539,7 @@ module.exports = {
14458
14539
  },{}],45:[function(require,module,exports){
14459
14540
  'use strict';
14460
14541
 
14461
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
14542
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
14462
14543
 
14463
14544
  var browserDetails = require('webrtc-adapter')["default"].browserDetails;
14464
14545
 
@@ -14945,7 +15026,7 @@ var createConnection = function createConnection(options) {
14945
15026
  if (report.type == 'outbound-rtp') {
14946
15027
  fillStatObject(result.outboundStream, report);
14947
15028
 
14948
- if (report.mediaType == 'video') {
15029
+ if (report.mediaType == 'video' && localVideo != undefined && localVideo != null) {
14949
15030
  var vSettings = localVideo.srcObject.getVideoTracks()[0].getSettings();
14950
15031
  result.outboundStream[report.mediaType].height = vSettings.height;
14951
15032
  result.outboundStream[report.mediaType].width = vSettings.width;
@@ -14953,7 +15034,7 @@ var createConnection = function createConnection(options) {
14953
15034
  } else if (report.type == 'inbound-rtp') {
14954
15035
  fillStatObject(result.inboundStream, report);
14955
15036
 
14956
- if (report.mediaType == 'video' && remoteVideo != undefined) {
15037
+ if (report.mediaType == 'video' && remoteVideo != undefined && remoteVideo != null) {
14957
15038
  result.inboundStream[report.mediaType].height = remoteVideo.videoHeight;
14958
15039
  result.inboundStream[report.mediaType].width = remoteVideo.videoWidth;
14959
15040
  }
@@ -15126,7 +15207,7 @@ var createConnection = function createConnection(options) {
15126
15207
  clonedConstraints.video.mediaSource = source;
15127
15208
  }
15128
15209
 
15129
- if (window.chrome && woExtension) {
15210
+ if (woExtension) {
15130
15211
  getScreenDeviceIdWoExtension(clonedConstraints).then(function (screenSharingConstraints) {
15131
15212
  navigator.mediaDevices.getDisplayMedia(screenSharingConstraints).then(function (stream) {
15132
15213
  processScreenStream(stream, resolve);