@webex/plugin-meetings 3.2.0 → 3.3.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 (162) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/constants.js +2 -4
  4. package/dist/constants.js.map +1 -1
  5. package/dist/interpretation/index.js +1 -1
  6. package/dist/interpretation/siLanguage.js +1 -1
  7. package/dist/mediaQualityMetrics/config.js +10 -10
  8. package/dist/mediaQualityMetrics/config.js.map +1 -1
  9. package/dist/meeting/index.js +8 -21
  10. package/dist/meeting/index.js.map +1 -1
  11. package/dist/meetings/index.js +1 -6
  12. package/dist/meetings/index.js.map +1 -1
  13. package/dist/reachability/index.js +9 -82
  14. package/dist/reachability/index.js.map +1 -1
  15. package/dist/statsAnalyzer/index.js +2 -4
  16. package/dist/statsAnalyzer/index.js.map +1 -1
  17. package/dist/statsAnalyzer/mqaUtil.js +0 -14
  18. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  19. package/dist/types/constants.d.ts +1 -2
  20. package/dist/types/mediaQualityMetrics/config.d.ts +2 -8
  21. package/dist/types/meeting/index.d.ts +0 -8
  22. package/dist/types/reachability/index.d.ts +0 -11
  23. package/dist/webinar/index.js +1 -1
  24. package/package.json +21 -21
  25. package/src/constants.ts +1 -2
  26. package/src/mediaQualityMetrics/config.ts +7 -13
  27. package/src/meeting/index.ts +9 -23
  28. package/src/meetings/index.ts +2 -7
  29. package/src/reachability/index.ts +0 -57
  30. package/src/statsAnalyzer/index.ts +3 -6
  31. package/src/statsAnalyzer/mqaUtil.ts +0 -18
  32. package/test/unit/spec/meeting/index.js +8 -28
  33. package/test/unit/spec/meetings/index.js +15 -38
  34. package/test/unit/spec/reachability/index.ts +0 -266
  35. package/test/unit/spec/stats-analyzer/index.js +8 -89
  36. package/dist/annotation/annotation.types.d.ts +0 -42
  37. package/dist/annotation/constants.d.ts +0 -31
  38. package/dist/annotation/index.d.ts +0 -117
  39. package/dist/breakouts/breakout.d.ts +0 -8
  40. package/dist/breakouts/collection.d.ts +0 -5
  41. package/dist/breakouts/edit-lock-error.d.ts +0 -15
  42. package/dist/breakouts/events.d.ts +0 -8
  43. package/dist/breakouts/index.d.ts +0 -5
  44. package/dist/breakouts/request.d.ts +0 -22
  45. package/dist/breakouts/utils.d.ts +0 -15
  46. package/dist/common/browser-detection.d.ts +0 -9
  47. package/dist/common/collection.d.ts +0 -48
  48. package/dist/common/config.d.ts +0 -2
  49. package/dist/common/errors/captcha-error.d.ts +0 -15
  50. package/dist/common/errors/intent-to-join.d.ts +0 -16
  51. package/dist/common/errors/join-meeting.d.ts +0 -17
  52. package/dist/common/errors/media.d.ts +0 -15
  53. package/dist/common/errors/no-meeting-info.d.ts +0 -14
  54. package/dist/common/errors/parameter.d.ts +0 -15
  55. package/dist/common/errors/password-error.d.ts +0 -15
  56. package/dist/common/errors/permission.d.ts +0 -14
  57. package/dist/common/errors/reclaim-host-role-errors.d.ts +0 -60
  58. package/dist/common/errors/reconnection-in-progress.d.ts +0 -9
  59. package/dist/common/errors/reconnection-in-progress.js +0 -34
  60. package/dist/common/errors/reconnection-in-progress.js.map +0 -1
  61. package/dist/common/errors/reconnection.d.ts +0 -15
  62. package/dist/common/errors/stats.d.ts +0 -15
  63. package/dist/common/errors/webex-errors.d.ts +0 -93
  64. package/dist/common/errors/webex-meetings-error.d.ts +0 -20
  65. package/dist/common/events/events-scope.d.ts +0 -17
  66. package/dist/common/events/events.d.ts +0 -12
  67. package/dist/common/events/trigger-proxy.d.ts +0 -2
  68. package/dist/common/events/util.d.ts +0 -2
  69. package/dist/common/logs/logger-config.d.ts +0 -2
  70. package/dist/common/logs/logger-proxy.d.ts +0 -2
  71. package/dist/common/logs/request.d.ts +0 -36
  72. package/dist/common/queue.d.ts +0 -34
  73. package/dist/config.d.ts +0 -73
  74. package/dist/constants.d.ts +0 -1088
  75. package/dist/controls-options-manager/constants.d.ts +0 -4
  76. package/dist/controls-options-manager/enums.d.ts +0 -15
  77. package/dist/controls-options-manager/index.d.ts +0 -136
  78. package/dist/controls-options-manager/types.d.ts +0 -43
  79. package/dist/controls-options-manager/util.d.ts +0 -1
  80. package/dist/index.d.ts +0 -7
  81. package/dist/interceptors/index.d.ts +0 -2
  82. package/dist/interceptors/locusRetry.d.ts +0 -27
  83. package/dist/interpretation/collection.d.ts +0 -5
  84. package/dist/interpretation/index.d.ts +0 -5
  85. package/dist/interpretation/siLanguage.d.ts +0 -5
  86. package/dist/locus-info/controlsUtils.d.ts +0 -2
  87. package/dist/locus-info/embeddedAppsUtils.d.ts +0 -2
  88. package/dist/locus-info/fullState.d.ts +0 -2
  89. package/dist/locus-info/hostUtils.d.ts +0 -2
  90. package/dist/locus-info/index.d.ts +0 -322
  91. package/dist/locus-info/infoUtils.d.ts +0 -2
  92. package/dist/locus-info/mediaSharesUtils.d.ts +0 -2
  93. package/dist/locus-info/parser.d.ts +0 -272
  94. package/dist/locus-info/selfUtils.d.ts +0 -2
  95. package/dist/media/MediaConnectionAwaiter.d.ts +0 -61
  96. package/dist/media/index.d.ts +0 -34
  97. package/dist/media/properties.d.ts +0 -93
  98. package/dist/media/util.d.ts +0 -2
  99. package/dist/mediaQualityMetrics/config.d.ts +0 -241
  100. package/dist/meeting/in-meeting-actions.d.ts +0 -167
  101. package/dist/meeting/index.d.ts +0 -1825
  102. package/dist/meeting/locusMediaRequest.d.ts +0 -74
  103. package/dist/meeting/muteState.d.ts +0 -178
  104. package/dist/meeting/request.d.ts +0 -295
  105. package/dist/meeting/request.type.d.ts +0 -11
  106. package/dist/meeting/state.d.ts +0 -9
  107. package/dist/meeting/util.d.ts +0 -119
  108. package/dist/meeting/voicea-meeting.d.ts +0 -16
  109. package/dist/meeting-info/collection.d.ts +0 -20
  110. package/dist/meeting-info/index.d.ts +0 -69
  111. package/dist/meeting-info/meeting-info-v2.d.ts +0 -123
  112. package/dist/meeting-info/request.d.ts +0 -22
  113. package/dist/meeting-info/util.d.ts +0 -2
  114. package/dist/meeting-info/utilv2.d.ts +0 -2
  115. package/dist/meetings/collection.d.ts +0 -40
  116. package/dist/meetings/index.d.ts +0 -398
  117. package/dist/meetings/meetings.types.d.ts +0 -4
  118. package/dist/meetings/request.d.ts +0 -27
  119. package/dist/meetings/util.d.ts +0 -18
  120. package/dist/member/index.d.ts +0 -160
  121. package/dist/member/types.d.ts +0 -32
  122. package/dist/member/util.d.ts +0 -2
  123. package/dist/members/collection.d.ts +0 -29
  124. package/dist/members/index.d.ts +0 -353
  125. package/dist/members/request.d.ts +0 -114
  126. package/dist/members/types.d.ts +0 -25
  127. package/dist/members/util.d.ts +0 -215
  128. package/dist/metrics/constants.d.ts +0 -70
  129. package/dist/metrics/index.d.ts +0 -45
  130. package/dist/multistream/mediaRequestManager.d.ts +0 -119
  131. package/dist/multistream/receiveSlot.d.ts +0 -68
  132. package/dist/multistream/receiveSlotManager.d.ts +0 -56
  133. package/dist/multistream/remoteMedia.d.ts +0 -72
  134. package/dist/multistream/remoteMediaGroup.d.ts +0 -49
  135. package/dist/multistream/remoteMediaManager.d.ts +0 -300
  136. package/dist/multistream/sendSlotManager.d.ts +0 -69
  137. package/dist/networkQualityMonitor/index.d.ts +0 -70
  138. package/dist/personal-meeting-room/index.d.ts +0 -47
  139. package/dist/personal-meeting-room/request.d.ts +0 -14
  140. package/dist/personal-meeting-room/util.d.ts +0 -2
  141. package/dist/reachability/clusterReachability.d.ts +0 -110
  142. package/dist/reachability/index.d.ts +0 -109
  143. package/dist/reachability/request.d.ts +0 -39
  144. package/dist/reachability/util.d.ts +0 -15
  145. package/dist/reactions/constants.d.ts +0 -3
  146. package/dist/reactions/reactions.d.ts +0 -4
  147. package/dist/reactions/reactions.type.d.ts +0 -52
  148. package/dist/reconnection-manager/index.d.ts +0 -136
  149. package/dist/recording-controller/enums.d.ts +0 -7
  150. package/dist/recording-controller/index.d.ts +0 -207
  151. package/dist/recording-controller/util.d.ts +0 -14
  152. package/dist/roap/index.d.ts +0 -86
  153. package/dist/roap/request.d.ts +0 -39
  154. package/dist/roap/turnDiscovery.d.ts +0 -155
  155. package/dist/rtcMetrics/constants.d.ts +0 -4
  156. package/dist/rtcMetrics/index.d.ts +0 -61
  157. package/dist/statsAnalyzer/global.d.ts +0 -36
  158. package/dist/statsAnalyzer/index.d.ts +0 -217
  159. package/dist/statsAnalyzer/mqaUtil.d.ts +0 -48
  160. package/dist/transcription/index.d.ts +0 -64
  161. package/dist/webinar/collection.d.ts +0 -16
  162. package/dist/webinar/index.d.ts +0 -5
@@ -998,11 +998,12 @@ export class StatsAnalyzer extends EventsScope {
998
998
  result.qualityLimitationReason;
999
999
  this.statsResults[mediaType][sendrecvType].qualityLimitationResolutionChanges =
1000
1000
  result.qualityLimitationResolutionChanges;
1001
- this.statsResults[mediaType][sendrecvType].totalRtxPacketsSent =
1001
+ this.statsResults[mediaType][sendrecvType].retransmittedPacketsSent =
1002
1002
  result.retransmittedPacketsSent;
1003
- this.statsResults[mediaType][sendrecvType].totalRtxBytesSent = result.retransmittedBytesSent;
1004
1003
  this.statsResults[mediaType][sendrecvType].totalBytesSent = result.bytesSent;
1005
1004
  this.statsResults[mediaType][sendrecvType].headerBytesSent = result.headerBytesSent;
1005
+ this.statsResults[mediaType][sendrecvType].retransmittedBytesSent =
1006
+ result.retransmittedBytesSent;
1006
1007
  this.statsResults[mediaType][sendrecvType].requestedBitrate = result.requestedBitrate;
1007
1008
  this.statsResults[mediaType][sendrecvType].requestedFrameSize = result.requestedFrameSize;
1008
1009
  }
@@ -1135,10 +1136,6 @@ export class StatsAnalyzer extends EventsScope {
1135
1136
  this.statsResults[mediaType][sendrecvType].fecPacketsReceived = result.fecPacketsReceived;
1136
1137
  this.statsResults[mediaType][sendrecvType].totalBytesReceived = result.bytesReceived;
1137
1138
  this.statsResults[mediaType][sendrecvType].headerBytesReceived = result.headerBytesReceived;
1138
- this.statsResults[mediaType][sendrecvType].totalRtxPacketsReceived =
1139
- result.retransmittedPacketsReceived;
1140
- this.statsResults[mediaType][sendrecvType].totalRtxBytesReceived =
1141
- result.retransmittedBytesReceived;
1142
1139
 
1143
1140
  this.statsResults[mediaType][sendrecvType].meanRtpJitter.push(result.jitter);
1144
1141
 
@@ -237,16 +237,10 @@ export const getVideoReceiverMqa = ({
237
237
  const lastPacketsLost = getLastTotalValue('totalPacketsLost');
238
238
  const lastBytesReceived = getLastTotalValue('totalBytesReceived');
239
239
 
240
- const lastRtxPacketsReceived = getLastTotalValue('totalRtxPacketsReceived');
241
- const lastRtxBytesReceived = getLastTotalValue('totalRtxBytesReceived');
242
-
243
240
  const packetsLost = getTotalValue('totalPacketsLost');
244
241
  const totalPacketsReceived = getTotalValue('totalPacketsReceived');
245
242
  const totalBytesReceived = getTotalValue('totalBytesReceived');
246
243
 
247
- const totalRtxPacketsReceived = getTotalValue('totalRtxPacketsReceived');
248
- const totalRtxBytesReceived = getTotalValue('totalRtxBytesReceived');
249
-
250
244
  const meanRemoteJitter = Object.keys(statsResults)
251
245
  .filter((mt) => mt.includes(baseMediaType))
252
246
  .reduce((acc, mt) => acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter), []);
@@ -272,15 +266,10 @@ export const getVideoReceiverMqa = ({
272
266
 
273
267
  // Calculate the outgoing bitrate
274
268
  const totalBytesReceivedInaMin = totalBytesReceived - lastBytesReceived;
275
- const totalRtxBytesReceivedInaMin = totalRtxBytesReceived - lastRtxBytesReceived;
276
269
 
277
270
  videoReceiver.common.rtpBitrate = totalBytesReceivedInaMin
278
271
  ? (totalBytesReceivedInaMin * 8) / 60
279
272
  : 0;
280
- videoReceiver.common.rtxPackets = totalRtxPacketsReceived - lastRtxPacketsReceived;
281
- videoReceiver.common.rtxBitrate = totalRtxBytesReceivedInaMin
282
- ? (totalRtxBytesReceivedInaMin * 8) / 60
283
- : 0;
284
273
  };
285
274
 
286
275
  export const getVideoReceiverStreamMqa = ({
@@ -360,15 +349,11 @@ export const getVideoSenderMqa = ({videoSender, statsResults, lastMqaDataSent, b
360
349
  const lastPacketsSent = getLastTotalValue('totalPacketsSent');
361
350
  const lastBytesSent = getLastTotalValue('totalBytesSent');
362
351
  const lastPacketsLostTotal = getLastTotalValue('totalPacketsLostOnReceiver');
363
- const lastRtxPacketsSent = getLastTotalValue('totalRtxPacketsSent');
364
- const lastRtxBytesSent = getLastTotalValue('totalRtxBytesSent');
365
352
 
366
353
  const totalPacketsLostOnReceiver = getTotalValue('totalPacketsLostOnReceiver');
367
354
  const totalPacketsSent = getTotalValue('totalPacketsSent');
368
355
  const totalBytesSent = getTotalValue('totalBytesSent');
369
356
  const availableOutgoingBitrate = getTotalValue('availableOutgoingBitrate');
370
- const totalRtxPacketsSent = getTotalValue('totalRtxPacketsSent');
371
- const totalRtxBytesSent = getTotalValue('totalRtxBytesSent');
372
357
 
373
358
  videoSender.common.common.direction =
374
359
  statsResults[Object.keys(statsResults).find((mediaType) => mediaType.includes(baseMediaType))]
@@ -404,11 +389,8 @@ export const getVideoSenderMqa = ({videoSender, statsResults, lastMqaDataSent, b
404
389
 
405
390
  // Calculate the outgoing bitrate
406
391
  const totalBytesSentInaMin = totalBytesSent - lastBytesSent;
407
- const totalRtxBytesSentInaMin = totalRtxBytesSent - lastRtxBytesSent;
408
392
 
409
393
  videoSender.common.rtpBitrate = totalBytesSentInaMin ? (totalBytesSentInaMin * 8) / 60 : 0;
410
- videoSender.common.rtxPackets = totalRtxPacketsSent - lastRtxPacketsSent;
411
- videoSender.common.rtxBitrate = totalRtxBytesSentInaMin ? (totalRtxBytesSentInaMin * 8) / 60 : 0;
412
394
  };
413
395
 
414
396
  export const getVideoSenderStreamMqa = ({
@@ -1302,31 +1302,6 @@ describe('plugin-meetings', () => {
1302
1302
  );
1303
1303
  });
1304
1304
  });
1305
-
1306
- describe('#handleLLMOnline', () => {
1307
- beforeEach(() => {
1308
- webex.internal.llm.off = sinon.stub();
1309
- });
1310
-
1311
- it('turns off llm online, emits transcription connected events', () => {
1312
- meeting.handleLLMOnline();
1313
- assert.calledOnceWithExactly(
1314
- webex.internal.llm.off,
1315
- 'online',
1316
- meeting.handleLLMOnline
1317
- );
1318
- assert.calledWith(
1319
- TriggerProxy.trigger,
1320
- sinon.match.instanceOf(Meeting),
1321
- {
1322
- file: 'meeting/index',
1323
- function: 'handleLLMOnline',
1324
- },
1325
- EVENT_TRIGGERS.MEETING_TRANSCRIPTION_CONNECTED
1326
- );
1327
- });
1328
- });
1329
-
1330
1305
  describe('#join', () => {
1331
1306
  let sandbox = null;
1332
1307
  let setCorrelationIdSpy;
@@ -1376,10 +1351,15 @@ describe('plugin-meetings', () => {
1376
1351
  assert.calledOnce(MeetingUtil.joinMeeting);
1377
1352
  assert.calledOnce(meeting.setLocus);
1378
1353
  assert.equal(result, joinMeetingResult);
1354
+
1379
1355
  assert.calledWith(
1380
- webex.internal.llm.on,
1381
- 'online',
1382
- meeting.handleLLMOnline
1356
+ TriggerProxy.trigger,
1357
+ sinon.match.instanceOf(Meeting),
1358
+ {
1359
+ file: 'meeting/index',
1360
+ function: 'join',
1361
+ },
1362
+ EVENT_TRIGGERS.MEETING_TRANSCRIPTION_CONNECTED
1383
1363
  );
1384
1364
  });
1385
1365
 
@@ -18,7 +18,6 @@ import TriggerProxy from '@webex/plugin-meetings/src/common/events/trigger-proxy
18
18
  import LoggerProxy from '@webex/plugin-meetings/src/common/logs/logger-proxy';
19
19
  import LoggerConfig from '@webex/plugin-meetings/src/common/logs/logger-config';
20
20
  import Meeting, {CallStateForMetrics} from '@webex/plugin-meetings/src/meeting';
21
- import {Services} from '@webex/webex-core';
22
21
  import MeetingUtil from '@webex/plugin-meetings/src/meeting/util';
23
22
  import Meetings from '@webex/plugin-meetings/src/meetings';
24
23
  import MeetingCollection from '@webex/plugin-meetings/src/meetings/collection';
@@ -76,8 +75,6 @@ describe('plugin-meetings', () => {
76
75
  let test1;
77
76
  let test2;
78
77
  let locusInfo;
79
- let services;
80
- let catalog;
81
78
 
82
79
  describe('meetings index', () => {
83
80
  beforeEach(() => {
@@ -96,13 +93,9 @@ describe('plugin-meetings', () => {
96
93
  device: Device,
97
94
  mercury: Mercury,
98
95
  meetings: Meetings,
99
- services: Services,
100
96
  },
101
97
  });
102
98
 
103
- services = webex.internal.services;
104
- catalog = services._getCatalog();
105
-
106
99
  Object.assign(webex, {
107
100
  logging: logger,
108
101
  });
@@ -168,7 +161,6 @@ describe('plugin-meetings', () => {
168
161
  ],
169
162
  })
170
163
  ),
171
- _getCatalog: sinon.stub().returns(catalog),
172
164
  fetchClientRegionInfo: sinon.stub().returns(Promise.resolve()),
173
165
  },
174
166
  metrics: {
@@ -1925,34 +1917,34 @@ describe('plugin-meetings', () => {
1925
1917
  let loggerProxySpy;
1926
1918
 
1927
1919
  it('should call request.getMeetingPreferences to get the preferred webex site ', async () => {
1928
- assert.deepEqual(webex.internal.services._getCatalog().getAllowedDomains(), []);
1929
1920
  assert.isDefined(webex.meetings.preferredWebexSite);
1930
1921
  await webex.meetings.fetchUserPreferredWebexSite();
1931
1922
 
1932
1923
  assert.equal(webex.meetings.preferredWebexSite, 'go.webex.com');
1933
- assert.deepEqual(webex.internal.services._getCatalog().getAllowedDomains(), [
1934
- 'go.webex.com',
1935
- ]);
1936
1924
  });
1937
1925
 
1938
1926
  const setup = ({user} = {}) => {
1939
1927
  loggerProxySpy = sinon.spy(LoggerProxy.logger, 'error');
1940
- assert.deepEqual(webex.internal.services._getCatalog().getAllowedDomains(), []);
1941
1928
 
1942
1929
  Object.assign(webex.internal, {
1930
+ services: {
1931
+ getMeetingPreferences: sinon.stub().returns(Promise.resolve({})),
1932
+ },
1943
1933
  user: {
1944
1934
  get: sinon.stub().returns(Promise.resolve(user)),
1945
1935
  },
1946
1936
  });
1947
-
1948
- Object.assign(webex.internal.services, {
1949
- getMeetingPreferences: sinon.stub().returns(Promise.resolve({})),
1950
- });
1951
1937
  };
1952
1938
 
1953
1939
  it('should not fail if UserPreferred info is not fetched ', async () => {
1954
1940
  setup();
1955
1941
 
1942
+ Object.assign(webex.internal, {
1943
+ services: {
1944
+ getMeetingPreferences: sinon.stub().returns(Promise.resolve({})),
1945
+ },
1946
+ });
1947
+
1956
1948
  await webex.meetings.fetchUserPreferredWebexSite().then(() => {
1957
1949
  assert.equal(webex.meetings.preferredWebexSite, '');
1958
1950
  });
@@ -1960,7 +1952,6 @@ describe('plugin-meetings', () => {
1960
1952
  loggerProxySpy,
1961
1953
  'Failed to fetch preferred site from user - no site will be set'
1962
1954
  );
1963
- assert.deepEqual(webex.internal.services._getCatalog().getAllowedDomains(), ['']);
1964
1955
  });
1965
1956
 
1966
1957
  it('should fall back to fetching the site from the user', async () => {
@@ -1977,10 +1968,6 @@ describe('plugin-meetings', () => {
1977
1968
  await webex.meetings.fetchUserPreferredWebexSite();
1978
1969
 
1979
1970
  assert.equal(webex.meetings.preferredWebexSite, 'site.webex.com');
1980
- assert.deepEqual(webex.internal.services._getCatalog().getAllowedDomains(), [
1981
- '',
1982
- 'site.webex.com',
1983
- ]);
1984
1971
  assert.notCalled(loggerProxySpy);
1985
1972
  });
1986
1973
 
@@ -2002,7 +1989,6 @@ describe('plugin-meetings', () => {
2002
1989
  loggerProxySpy,
2003
1990
  'Failed to fetch preferred site from user - no site will be set'
2004
1991
  );
2005
- assert.deepEqual(webex.internal.services._getCatalog().getAllowedDomains(), ['']);
2006
1992
  });
2007
1993
  }
2008
1994
  );
@@ -2019,7 +2005,6 @@ describe('plugin-meetings', () => {
2019
2005
  loggerProxySpy,
2020
2006
  'Failed to fetch preferred site from user - no site will be set'
2021
2007
  );
2022
- assert.deepEqual(webex.internal.services._getCatalog().getAllowedDomains(), ['']);
2023
2008
  });
2024
2009
 
2025
2010
  it('should fall back to fetching the site from the user', async () => {
@@ -2037,10 +2022,6 @@ describe('plugin-meetings', () => {
2037
2022
 
2038
2023
  assert.equal(webex.meetings.preferredWebexSite, 'site.webex.com');
2039
2024
  assert.notCalled(loggerProxySpy);
2040
- assert.deepEqual(webex.internal.services._getCatalog().getAllowedDomains(), [
2041
- '',
2042
- 'site.webex.com',
2043
- ]);
2044
2025
  });
2045
2026
 
2046
2027
  forEach(
@@ -2061,7 +2042,6 @@ describe('plugin-meetings', () => {
2061
2042
  loggerProxySpy,
2062
2043
  'Failed to fetch preferred site from user - no site will be set'
2063
2044
  );
2064
- assert.deepEqual(webex.internal.services._getCatalog().getAllowedDomains(), ['']);
2065
2045
  });
2066
2046
  }
2067
2047
  );
@@ -2078,7 +2058,6 @@ describe('plugin-meetings', () => {
2078
2058
  loggerProxySpy,
2079
2059
  'Failed to fetch preferred site from user - no site will be set'
2080
2060
  );
2081
- assert.deepEqual(webex.internal.services._getCatalog().getAllowedDomains(), ['']);
2082
2061
  });
2083
2062
  });
2084
2063
  });
@@ -2365,14 +2344,12 @@ describe('plugin-meetings', () => {
2365
2344
  sessionType: 'MAIN',
2366
2345
  };
2367
2346
  newLocus.self.state = 'JOINED';
2368
- newLocus.self.devices = [
2369
- {
2370
- intent: {
2371
- reason: 'ON_HOLD_LOBBY',
2372
- type: 'WAIT',
2373
- },
2374
- },
2375
- ];
2347
+ newLocus.self.devices = [{
2348
+ intent: {
2349
+ reason: 'ON_HOLD_LOBBY',
2350
+ type: 'WAIT',
2351
+ }
2352
+ }];
2376
2353
  LoggerProxy.logger.log = sinon.stub();
2377
2354
  const result = webex.meetings.isNeedHandleLocusDTO(meeting, newLocus);
2378
2355
  assert.equal(result, true);
@@ -141,272 +141,6 @@ describe('isAnyPublicClusterReachable', () => {
141
141
  });
142
142
  });
143
143
 
144
-
145
- describe('isWebexMediaBackendUnreachable', () => {
146
- let webex;
147
-
148
- beforeEach(() => {
149
- webex = new MockWebex();
150
-
151
- sinon.stub(MeetingUtil, 'getIpVersion').returns(IP_VERSION.unknown);
152
- });
153
-
154
- afterEach(() => {
155
- sinon.restore();
156
- });
157
-
158
- const runCheck = async (mockStorage: any, expectedValue: boolean) => {
159
- if (mockStorage) {
160
- await webex.boundedStorage.put(
161
- 'Reachability',
162
- 'reachability.result',
163
- JSON.stringify(mockStorage)
164
- );
165
- }
166
- const reachability = new Reachability(webex);
167
-
168
- const result = await reachability.isWebexMediaBackendUnreachable();
169
-
170
- assert.equal(result, expectedValue);
171
- };
172
-
173
- [
174
- {
175
- title: 'no clusters at all',
176
- mockStorage: {},
177
- expectedResult: false,
178
- },
179
- {
180
- title: 'clusters without results',
181
- mockStorage: {a: {}, b: {}},
182
- expectedResult: false,
183
- },
184
- {
185
- title: 'all clusters untested',
186
- mockStorage: {
187
- a: {udp: 'untested'},
188
- b: {udp: 'untested', tcp: 'untested'},
189
- },
190
- expectedResult: false,
191
- },
192
- {
193
- title: 'one cluster with udp reachable',
194
- mockStorage: {x: {udp: {result: 'reachable'}, tcp: {result: 'unreachable'}}},
195
- expectedResult: false,
196
- },
197
- {
198
- title: 'one cluster with tcp reachable',
199
- mockStorage: {x: {tcp: {result: 'reachable'}}},
200
- expectedResult: false,
201
- },
202
- {
203
- title: 'one cluster with xtls reachable',
204
- mockStorage: {x: {xtls: {result: 'reachable'}}, y: {xtls: {result: 'unreachable'}}},
205
- expectedResult: false,
206
- },
207
- {
208
- title: 'multiple clusters with various protocols reachable',
209
- mockStorage: {
210
- a: {udp: {result: 'reachable'}, tcp: {result: 'reachable'}},
211
- b: {udp: {result: 'unreachable'}, tcp: {result: 'reachable'}},
212
- c: {tcp: {result: 'reachable'}},
213
- d: {xtls: {result: 'reachable'}},
214
- },
215
- expectedResult: false,
216
- },
217
- {
218
- title: 'multiple clusters with all protocols unreachable',
219
- mockStorage: {
220
- a: {
221
- udp: {result: 'unreachable'},
222
- tcp: {result: 'unreachable'},
223
- xtls: {result: 'unreachable'},
224
- },
225
- b: {
226
- udp: {result: 'unreachable'},
227
- tcp: {result: 'unreachable'},
228
- xtls: {result: 'unreachable'},
229
- },
230
- c: {
231
- udp: {result: 'unreachable'},
232
- tcp: {result: 'unreachable'},
233
- xtls: {result: 'unreachable'},
234
- },
235
- },
236
- expectedResult: true,
237
- },
238
- {
239
- title: 'multiple clusters with UDP and TCP protocols unreachable, but TLS not tested',
240
- mockStorage: {
241
- a: {
242
- udp: {result: 'unreachable'},
243
- tcp: {result: 'unreachable'},
244
- xtls: {result: 'untested'},
245
- },
246
- b: {
247
- udp: {result: 'unreachable'},
248
- tcp: {result: 'unreachable'},
249
- xtls: {result: 'untested'},
250
- },
251
- c: {
252
- udp: {result: 'unreachable'},
253
- tcp: {result: 'unreachable'},
254
- xtls: {result: 'untested'},
255
- },
256
- },
257
- expectedResult: false,
258
- },
259
- {
260
- title: 'multiple clusters with UDP and TCP protocols unreachable, but TLS missing',
261
- mockStorage: {
262
- a: {
263
- udp: {result: 'unreachable'},
264
- tcp: {result: 'unreachable'},
265
- },
266
- b: {
267
- udp: {result: 'unreachable'},
268
- tcp: {result: 'unreachable'},
269
- },
270
- c: {
271
- udp: {result: 'unreachable'},
272
- tcp: {result: 'unreachable'},
273
- },
274
- },
275
- expectedResult: false,
276
- },
277
- {
278
- title: 'multiple clusters with UDP and TLS protocols unreachable, but TCP not tested',
279
- mockStorage: {
280
- a: {
281
- udp: {result: 'unreachable'},
282
- tcp: {result: 'untested'},
283
- xtls: {result: 'unreachable'},
284
- },
285
- b: {
286
- udp: {result: 'unreachable'},
287
- tcp: {result: 'untested'},
288
- xtls: {result: 'unreachable'},
289
- },
290
- c: {
291
- udp: {result: 'unreachable'},
292
- tcp: {result: 'untested'},
293
- xtls: {result: 'unreachable'},
294
- },
295
- },
296
- expectedResult: false,
297
- },
298
- {
299
- title: 'multiple clusters with UDP and TLS protocols unreachable, but TCP missing',
300
- mockStorage: {
301
- a: {
302
- udp: {result: 'unreachable'},
303
- xtls: {result: 'unreachable'},
304
- },
305
- b: {
306
- udp: {result: 'unreachable'},
307
- xtls: {result: 'unreachable'},
308
- },
309
- c: {
310
- udp: {result: 'unreachable'},
311
- xtls: {result: 'unreachable'},
312
- },
313
- },
314
- expectedResult: false,
315
- },
316
- {
317
- title: 'multiple clusters with all protocols unreachable, some untested',
318
- mockStorage: {
319
- a: {
320
- udp: {result: 'unreachable'},
321
- tcp: {result: 'unreachable'},
322
- xtls: {result: 'unreachable'},
323
- },
324
- b: {udp: {result: 'unreachable'}, tcp: {result: 'untested'}, xtls: {result: 'unreachable'}},
325
- c: {udp: {result: 'unreachable'}, tcp: {result: 'unreachable'}, xtls: {result: 'untested'}},
326
- },
327
- expectedResult: true,
328
- },
329
- {
330
- title: 'multiple clusters with all protocols unreachable, except for 1 reachable on udp',
331
- mockStorage: {
332
- a: {
333
- udp: {result: 'reachable'},
334
- tcp: {result: 'unreachable'},
335
- xtls: {result: 'unreachable'},
336
- },
337
- b: {
338
- udp: {result: 'unreachable'},
339
- tcp: {result: 'unreachable'},
340
- xtls: {result: 'unreachable'},
341
- },
342
- c: {
343
- udp: {result: 'unreachable'},
344
- tcp: {result: 'unreachable'},
345
- xtls: {result: 'unreachable'},
346
- },
347
- },
348
- expectedResult: false,
349
- },
350
- {
351
- title: 'multiple clusters with all protocols unreachable, except for 1 reachable on tcp',
352
- mockStorage: {
353
- a: {
354
- udp: {result: 'unreachable'},
355
- tcp: {result: 'unreachable'},
356
- xtls: {result: 'unreachable'},
357
- },
358
- b: {
359
- udp: {result: 'unreachable'},
360
- tcp: {result: 'unreachable'},
361
- xtls: {result: 'unreachable'},
362
- },
363
- c: {
364
- udp: {result: 'unreachable'},
365
- tcp: {result: 'reachable'},
366
- xtls: {result: 'unreachable'},
367
- },
368
- },
369
- expectedResult: false,
370
- },
371
- {
372
- title: 'multiple clusters with all protocols unreachable, except for 1 reachable on xtls',
373
- mockStorage: {
374
- a: {
375
- udp: {result: 'unreachable'},
376
- tcp: {result: 'unreachable'},
377
- xtls: {result: 'unreachable'},
378
- },
379
- b: {
380
- udp: {result: 'unreachable'},
381
- tcp: {result: 'unreachable'},
382
- xtls: {result: 'reachable'},
383
- },
384
- c: {
385
- udp: {result: 'unreachable'},
386
- tcp: {result: 'unreachable'},
387
- xtls: {result: 'unreachable'},
388
- },
389
- },
390
- expectedResult: false,
391
- },
392
- {
393
- title: 'multiple clusters with some missing results',
394
- mockStorage: {
395
- a: {udp: {result: 'unreachable'}},
396
- b: {tcp: {result: 'unreachable'}},
397
- c: {xtls: {result: 'unreachable'}},
398
- d: {},
399
- },
400
- expectedResult: true,
401
- },
402
- ].forEach(({mockStorage, expectedResult, title}) => {
403
- it(`returns ${expectedResult} when ${title}`, async () => {
404
- await runCheck(mockStorage, expectedResult);
405
- });
406
- });
407
- });
408
-
409
-
410
144
  describe('gatherReachability', () => {
411
145
  let webex;
412
146