@webex/plugin-meetings 2.24.1 → 2.26.0

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.
Files changed (47) hide show
  1. package/dist/common/logs/logger-proxy.js +7 -6
  2. package/dist/common/logs/logger-proxy.js.map +1 -1
  3. package/dist/config.js +2 -1
  4. package/dist/config.js.map +1 -1
  5. package/dist/constants.js +4 -11
  6. package/dist/constants.js.map +1 -1
  7. package/dist/media/properties.js +2 -2
  8. package/dist/media/properties.js.map +1 -1
  9. package/dist/media/util.js +18 -4
  10. package/dist/media/util.js.map +1 -1
  11. package/dist/meeting/index.js +9 -5
  12. package/dist/meeting/index.js.map +1 -1
  13. package/dist/metrics/constants.js +2 -1
  14. package/dist/metrics/constants.js.map +1 -1
  15. package/dist/peer-connection-manager/index.js +6 -4
  16. package/dist/peer-connection-manager/index.js.map +1 -1
  17. package/dist/reconnection-manager/index.js +40 -14
  18. package/dist/reconnection-manager/index.js.map +1 -1
  19. package/dist/roap/handler.js +0 -2
  20. package/dist/roap/handler.js.map +1 -1
  21. package/dist/roap/index.js +36 -7
  22. package/dist/roap/index.js.map +1 -1
  23. package/dist/roap/request.js +5 -3
  24. package/dist/roap/request.js.map +1 -1
  25. package/dist/roap/turnDiscovery.js +273 -0
  26. package/dist/roap/turnDiscovery.js.map +1 -0
  27. package/dist/roap/util.js +0 -2
  28. package/dist/roap/util.js.map +1 -1
  29. package/package.json +5 -5
  30. package/src/common/logs/logger-proxy.js +7 -6
  31. package/src/config.js +2 -1
  32. package/src/constants.ts +3 -4
  33. package/src/media/properties.js +2 -2
  34. package/src/media/util.js +17 -7
  35. package/src/meeting/index.js +9 -7
  36. package/src/metrics/constants.js +2 -1
  37. package/src/peer-connection-manager/index.js +6 -3
  38. package/src/reconnection-manager/index.js +13 -10
  39. package/src/roap/handler.js +0 -2
  40. package/src/roap/index.js +36 -6
  41. package/src/roap/request.js +5 -3
  42. package/src/roap/turnDiscovery.ts +238 -0
  43. package/src/roap/util.js +0 -2
  44. package/test/unit/spec/meeting/index.js +47 -0
  45. package/test/unit/spec/peerconnection-manager/index.js +47 -4
  46. package/test/unit/spec/roap/index.ts +113 -0
  47. package/test/unit/spec/roap/turnDiscovery.ts +334 -0
@@ -14,8 +14,6 @@ var _window = _interopRequireDefault(require("global/window"));
14
14
 
15
15
  var _browserDetection = _interopRequireDefault(require("../common/browser-detection"));
16
16
 
17
- var _constants = require("../constants");
18
-
19
17
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
20
18
 
21
19
  /* globals MediaStream */
@@ -24,8 +22,24 @@ var _BrowserDetection = (0, _browserDetection.default)(),
24
22
 
25
23
  var MediaUtil = {};
26
24
 
27
- MediaUtil.createPeerConnection = function () {
28
- return new _window.default.RTCPeerConnection(isBrowser('firefox') ? _constants.RTC_CONFIGURATION_FIREFOX : _constants.RTC_CONFIGURATION);
25
+ MediaUtil.createPeerConnection = function (turnServerInfo) {
26
+ var config = {
27
+ iceServers: []
28
+ };
29
+
30
+ if (turnServerInfo) {
31
+ config.iceServers.push({
32
+ urls: turnServerInfo.url,
33
+ username: turnServerInfo.username || '',
34
+ credential: turnServerInfo.password || ''
35
+ });
36
+ }
37
+
38
+ if (isBrowser('firefox')) {
39
+ config.bundlePolicy = 'max-compat';
40
+ }
41
+
42
+ return new _window.default.RTCPeerConnection(config);
29
43
  };
30
44
 
31
45
  MediaUtil.createMediaStream = function (tracks) {
@@ -1 +1 @@
1
- {"version":3,"names":["BrowserDetection","isBrowser","MediaUtil","createPeerConnection","window","RTCPeerConnection","RTC_CONFIGURATION_FIREFOX","RTC_CONFIGURATION","createMediaStream","tracks","LoggerProxy","logger","error","filtredTracks","filter","element","MediaStream"],"sources":["util.js"],"sourcesContent":["/* globals MediaStream */\nimport window from 'global/window';\n\nimport BrowserDetection from '../common/browser-detection';\nimport {\n RTC_CONFIGURATION,\n RTC_CONFIGURATION_FIREFOX\n} from '../constants';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nconst {isBrowser} = BrowserDetection();\n\nconst MediaUtil = {};\n\nMediaUtil.createPeerConnection = () => new window.RTCPeerConnection(\n isBrowser('firefox') ? RTC_CONFIGURATION_FIREFOX : RTC_CONFIGURATION\n);\n\nMediaUtil.createMediaStream = (tracks) => {\n if (!tracks) {\n LoggerProxy.logger.error('Media:util#createMediaStream --> Tracks don\\'t exist');\n }\n const filtredTracks = tracks.filter((element) => !!element);\n\n return new MediaStream(filtredTracks);\n};\n\nexport default MediaUtil;\n"],"mappings":";;;;;;;;;;;;AACA;;AAEA;;AACA;;AAIA;;AARA;AAUA,wBAAoB,IAAAA,yBAAA,GAApB;AAAA,IAAOC,SAAP,qBAAOA,SAAP;;AAEA,IAAMC,SAAS,GAAG,EAAlB;;AAEAA,SAAS,CAACC,oBAAV,GAAiC;EAAA,OAAM,IAAIC,eAAA,CAAOC,iBAAX,CACrCJ,SAAS,CAAC,SAAD,CAAT,GAAuBK,oCAAvB,GAAmDC,4BADd,CAAN;AAAA,CAAjC;;AAIAL,SAAS,CAACM,iBAAV,GAA8B,UAACC,MAAD,EAAY;EACxC,IAAI,CAACA,MAAL,EAAa;IACXC,oBAAA,CAAYC,MAAZ,CAAmBC,KAAnB,CAAyB,sDAAzB;EACD;;EACD,IAAMC,aAAa,GAAGJ,MAAM,CAACK,MAAP,CAAc,UAACC,OAAD;IAAA,OAAa,CAAC,CAACA,OAAf;EAAA,CAAd,CAAtB;EAEA,OAAO,IAAIC,WAAJ,CAAgBH,aAAhB,CAAP;AACD,CAPD;;eASeX,S"}
1
+ {"version":3,"names":["BrowserDetection","isBrowser","MediaUtil","createPeerConnection","turnServerInfo","config","iceServers","push","urls","url","username","credential","password","bundlePolicy","window","RTCPeerConnection","createMediaStream","tracks","LoggerProxy","logger","error","filtredTracks","filter","element","MediaStream"],"sources":["util.js"],"sourcesContent":["/* globals MediaStream */\nimport window from 'global/window';\n\nimport BrowserDetection from '../common/browser-detection';\nimport LoggerProxy from '../common/logs/logger-proxy';\n\nconst {isBrowser} = BrowserDetection();\n\nconst MediaUtil = {};\n\nMediaUtil.createPeerConnection = (turnServerInfo) => {\n const config = {iceServers: []};\n\n if (turnServerInfo) {\n config.iceServers.push({\n urls: turnServerInfo.url,\n username: turnServerInfo.username || '',\n credential: turnServerInfo.password || ''\n });\n }\n if (isBrowser('firefox')) {\n config.bundlePolicy = 'max-compat';\n }\n\n return new window.RTCPeerConnection(config);\n};\n\n\nMediaUtil.createMediaStream = (tracks) => {\n if (!tracks) {\n LoggerProxy.logger.error('Media:util#createMediaStream --> Tracks don\\'t exist');\n }\n const filtredTracks = tracks.filter((element) => !!element);\n\n return new MediaStream(filtredTracks);\n};\n\nexport default MediaUtil;\n"],"mappings":";;;;;;;;;;;;AACA;;AAEA;;AACA;;AAJA;AAMA,wBAAoB,IAAAA,yBAAA,GAApB;AAAA,IAAOC,SAAP,qBAAOA,SAAP;;AAEA,IAAMC,SAAS,GAAG,EAAlB;;AAEAA,SAAS,CAACC,oBAAV,GAAiC,UAACC,cAAD,EAAoB;EACnD,IAAMC,MAAM,GAAG;IAACC,UAAU,EAAE;EAAb,CAAf;;EAEA,IAAIF,cAAJ,EAAoB;IAClBC,MAAM,CAACC,UAAP,CAAkBC,IAAlB,CAAuB;MACrBC,IAAI,EAAEJ,cAAc,CAACK,GADA;MAErBC,QAAQ,EAAEN,cAAc,CAACM,QAAf,IAA2B,EAFhB;MAGrBC,UAAU,EAAEP,cAAc,CAACQ,QAAf,IAA2B;IAHlB,CAAvB;EAKD;;EACD,IAAIX,SAAS,CAAC,SAAD,CAAb,EAA0B;IACxBI,MAAM,CAACQ,YAAP,GAAsB,YAAtB;EACD;;EAED,OAAO,IAAIC,eAAA,CAAOC,iBAAX,CAA6BV,MAA7B,CAAP;AACD,CAfD;;AAkBAH,SAAS,CAACc,iBAAV,GAA8B,UAACC,MAAD,EAAY;EACxC,IAAI,CAACA,MAAL,EAAa;IACXC,oBAAA,CAAYC,MAAZ,CAAmBC,KAAnB,CAAyB,sDAAzB;EACD;;EACD,IAAMC,aAAa,GAAGJ,MAAM,CAACK,MAAP,CAAc,UAACC,OAAD;IAAA,OAAa,CAAC,CAACA,OAAf;EAAA,CAAd,CAAtB;EAEA,OAAO,IAAIC,WAAJ,CAAgBH,aAAhB,CAAP;AACD,CAPD;;eASenB,S"}
@@ -4456,7 +4456,9 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
4456
4456
  });
4457
4457
 
4458
4458
  return _util.default.validateOptions(options).then(function () {
4459
- _this37.mediaProperties.setMediaPeerConnection(_util2.default.createPeerConnection());
4459
+ return _this37.roap.doTurnDiscovery(_this37, false);
4460
+ }).then(function (turnServerInfo) {
4461
+ _this37.mediaProperties.setMediaPeerConnection(_util2.default.createPeerConnection(turnServerInfo));
4460
4462
 
4461
4463
  _this37.setMercuryListener();
4462
4464
 
@@ -5543,7 +5545,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5543
5545
  }
5544
5546
  /**
5545
5547
  * Sends request to change layout type for the current meeting for the specific participant/device only
5546
- * @param {String} layoutType a layout type that should be available in meeting constants {@link #layout_types}
5548
+ * @param {String} [layoutType] a layout type that should be available in meeting constants {@link #layout_types}
5547
5549
  * @param {Object} renderInfo preferred dimensions for the remote main and content streams (server can ignore it)
5548
5550
  * @param {Object} renderInfo.main preferred dimensions for the remote main video stream
5549
5551
  * @param {Number} renderInfo.main.width preferred width of main video stream
@@ -5574,10 +5576,12 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
5574
5576
  return this.rejectWithErrorLog('Meeting:index#changeVideoLayout --> cannot change video layout, you are not recieving any video/share stream');
5575
5577
  }
5576
5578
 
5577
- if (_constants.LAYOUT_TYPES.includes(layoutType)) {
5579
+ if (layoutType) {
5580
+ if (!_constants.LAYOUT_TYPES.includes(layoutType)) {
5581
+ this.rejectWithErrorLog('Meeting:index#changeVideoLayout --> cannot change video layout, invalid layoutType recieved.');
5582
+ }
5583
+
5578
5584
  layoutInfo.layoutType = layoutType;
5579
- } else {
5580
- return this.rejectWithErrorLog('Meeting:index#changeVideoLayout --> cannot change video layout, invalid layoutType recieved.');
5581
5585
  }
5582
5586
 
5583
5587
  if (main) {