@flashphoner/websdk 2.0.219 → 2.0.223

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flashphoner/websdk",
3
- "version": "2.0.219",
3
+ "version": "2.0.223",
4
4
  "description": "Official Flashphoner WebCallServer WebSDK package",
5
5
  "main": "./src/flashphoner-core.js",
6
6
  "types": "./src/flashphoner-core.d.ts",
@@ -108,7 +108,8 @@ var init = function (options) {
108
108
  }
109
109
  }
110
110
 
111
- var flashProvider = require("./flash-media-provider");
111
+ // flashMediaProvider is disables by default due to end of support in the most browsers #WCS-3577
112
+ var flashProvider = null;
112
113
  if (flashProvider && flashProvider.hasOwnProperty('available') && flashProvider.available() &&
113
114
  (!MediaProvider.WebRTC || (options.preferredMediaProviders && options.preferredMediaProviders.indexOf("Flash") >= 0))) {
114
115
  MediaProvider.Flash = flashProvider;
@@ -46,7 +46,15 @@ var instance = function (url, coreUrl) {
46
46
 
47
47
  var stream = function() {
48
48
  var api = url + STREAM_PATH;
49
- var find = function (mediaSessionId, name, published) {
49
+ var find = function (mediaSessionId, name, published, metrics) {
50
+ if (metrics) {
51
+ return send(api + "/find", {
52
+ mediaSessionId: mediaSessionId,
53
+ name: name,
54
+ published: published,
55
+ display: ["metrics"]
56
+ });
57
+ }
50
58
  return send(api + "/find", {
51
59
  mediaSessionId: mediaSessionId,
52
60
  name: name,
package/src/util.js CHANGED
@@ -366,9 +366,9 @@ const stripCodecs = function(sdp, codecs) {
366
366
  const getCurrentCodecAndSampleRate = function(sdp, mediaType) {
367
367
  var rows = sdp.split("\n");
368
368
  var codecPt;
369
+ var ret = {};
369
370
  for (var i = 0; i < rows.length ; i++) {
370
371
  if (codecPt && rows[i].indexOf("a=rtpmap:" + codecPt) != -1) {
371
- var ret = {};
372
372
  ret.name = rows[i].split(" ")[1].split("/")[0];
373
373
  ret.sampleRate = rows[i].split(" ")[1].split("/")[1];
374
374
  return ret;
@@ -378,6 +378,10 @@ const getCurrentCodecAndSampleRate = function(sdp, mediaType) {
378
378
  codecPt = rows[i].split(" ")[3].trim();
379
379
  }
380
380
  }
381
+ // A workaround for empty sdp passed #WCS-3583
382
+ ret.name = "undefined";
383
+ ret.sampleRate = "undefined";
384
+ return ret;
381
385
  };
382
386
 
383
387
 
@@ -456,7 +456,14 @@ var createConnection = function (options) {
456
456
  obj[mediaType] = {};
457
457
  //WCS-1922, currentRemoteDescription - browser compatibilitySection: Chrome 70, FF 57, Safari 11
458
458
  var description = connection.currentRemoteDescription != undefined ? connection.currentRemoteDescription : connection.remoteDescription;
459
- var codec = util.getCurrentCodecAndSampleRate(description.sdp, mediaType);
459
+ // SDP may be null in Safari 12.1 and older, prevent TypeError here #WCS-3583
460
+ var sdp = "";
461
+ if (description && description.sdp) {
462
+ sdp = description.sdp;
463
+ } else {
464
+ logger.debug(LOG_PREFIX, "Can't parse current SDP to detect codec and sampleRate");
465
+ }
466
+ var codec = util.getCurrentCodecAndSampleRate(sdp, mediaType);
460
467
  obj[mediaType]["codec"] = codec.name;
461
468
  obj[mediaType]["codecRate"] = codec.sampleRate;
462
469
  Object.keys(report).forEach(function (key) {