@webex/plugin-meetings 3.0.0 → 3.1.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 (138) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/config.d.ts +1 -0
  4. package/dist/config.js +2 -1
  5. package/dist/config.js.map +1 -1
  6. package/dist/constants.d.ts +5 -4
  7. package/dist/constants.js +8 -4
  8. package/dist/constants.js.map +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.js +6 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/interpretation/index.js +16 -2
  13. package/dist/interpretation/index.js.map +1 -1
  14. package/dist/interpretation/siLanguage.js +1 -1
  15. package/dist/locus-info/mediaSharesUtils.js +15 -1
  16. package/dist/locus-info/mediaSharesUtils.js.map +1 -1
  17. package/dist/locus-info/selfUtils.js +5 -0
  18. package/dist/locus-info/selfUtils.js.map +1 -1
  19. package/dist/media/MediaConnectionAwaiter.d.ts +61 -0
  20. package/dist/media/MediaConnectionAwaiter.js +163 -0
  21. package/dist/media/MediaConnectionAwaiter.js.map +1 -0
  22. package/dist/media/index.js +4 -1
  23. package/dist/media/index.js.map +1 -1
  24. package/dist/media/properties.js +4 -24
  25. package/dist/media/properties.js.map +1 -1
  26. package/dist/meeting/index.d.ts +26 -7
  27. package/dist/meeting/index.js +893 -677
  28. package/dist/meeting/index.js.map +1 -1
  29. package/dist/meeting/muteState.d.ts +2 -8
  30. package/dist/meeting/muteState.js +37 -25
  31. package/dist/meeting/muteState.js.map +1 -1
  32. package/dist/meeting/request.d.ts +3 -0
  33. package/dist/meeting/request.js +32 -23
  34. package/dist/meeting/request.js.map +1 -1
  35. package/dist/meeting/util.js +1 -0
  36. package/dist/meeting/util.js.map +1 -1
  37. package/dist/meeting-info/utilv2.js +4 -1
  38. package/dist/meeting-info/utilv2.js.map +1 -1
  39. package/dist/meetings/index.d.ts +8 -0
  40. package/dist/meetings/index.js +20 -0
  41. package/dist/meetings/index.js.map +1 -1
  42. package/dist/multistream/mediaRequestManager.d.ts +2 -1
  43. package/dist/multistream/mediaRequestManager.js +1 -1
  44. package/dist/multistream/mediaRequestManager.js.map +1 -1
  45. package/dist/multistream/remoteMediaGroup.d.ts +2 -0
  46. package/dist/multistream/remoteMediaGroup.js +16 -2
  47. package/dist/multistream/remoteMediaGroup.js.map +1 -1
  48. package/dist/multistream/remoteMediaManager.d.ts +15 -0
  49. package/dist/multistream/remoteMediaManager.js +179 -65
  50. package/dist/multistream/remoteMediaManager.js.map +1 -1
  51. package/dist/multistream/sendSlotManager.d.ts +9 -1
  52. package/dist/multistream/sendSlotManager.js +22 -0
  53. package/dist/multistream/sendSlotManager.js.map +1 -1
  54. package/dist/reachability/clusterReachability.d.ts +1 -0
  55. package/dist/reachability/clusterReachability.js +29 -15
  56. package/dist/reachability/clusterReachability.js.map +1 -1
  57. package/dist/reachability/index.d.ts +4 -0
  58. package/dist/reachability/index.js +18 -2
  59. package/dist/reachability/index.js.map +1 -1
  60. package/dist/reachability/request.js +12 -10
  61. package/dist/reachability/request.js.map +1 -1
  62. package/dist/reachability/util.d.ts +7 -0
  63. package/dist/reachability/util.js +19 -0
  64. package/dist/reachability/util.js.map +1 -1
  65. package/dist/reconnection-manager/index.js +2 -1
  66. package/dist/reconnection-manager/index.js.map +1 -1
  67. package/dist/roap/index.d.ts +10 -2
  68. package/dist/roap/index.js +15 -0
  69. package/dist/roap/index.js.map +1 -1
  70. package/dist/roap/request.js +3 -3
  71. package/dist/roap/request.js.map +1 -1
  72. package/dist/roap/turnDiscovery.d.ts +64 -17
  73. package/dist/roap/turnDiscovery.js +307 -126
  74. package/dist/roap/turnDiscovery.js.map +1 -1
  75. package/dist/statsAnalyzer/index.js +53 -30
  76. package/dist/statsAnalyzer/index.js.map +1 -1
  77. package/dist/webinar/index.js +1 -1
  78. package/package.json +22 -22
  79. package/src/config.ts +1 -0
  80. package/src/constants.ts +7 -3
  81. package/src/index.ts +1 -0
  82. package/src/interpretation/index.ts +18 -1
  83. package/src/locus-info/mediaSharesUtils.ts +16 -0
  84. package/src/locus-info/selfUtils.ts +5 -0
  85. package/src/media/MediaConnectionAwaiter.ts +174 -0
  86. package/src/media/index.ts +3 -1
  87. package/src/media/properties.ts +6 -31
  88. package/src/meeting/index.ts +321 -106
  89. package/src/meeting/muteState.ts +34 -20
  90. package/src/meeting/request.ts +18 -2
  91. package/src/meeting/util.ts +1 -0
  92. package/src/meeting-info/utilv2.ts +2 -1
  93. package/src/meetings/index.ts +18 -0
  94. package/src/multistream/mediaRequestManager.ts +4 -1
  95. package/src/multistream/remoteMediaGroup.ts +19 -0
  96. package/src/multistream/remoteMediaManager.ts +101 -16
  97. package/src/multistream/sendSlotManager.ts +28 -0
  98. package/src/reachability/clusterReachability.ts +20 -5
  99. package/src/reachability/index.ts +24 -1
  100. package/src/reachability/request.ts +15 -11
  101. package/src/reachability/util.ts +21 -0
  102. package/src/reconnection-manager/index.ts +1 -1
  103. package/src/roap/index.ts +25 -3
  104. package/src/roap/request.ts +3 -3
  105. package/src/roap/turnDiscovery.ts +244 -78
  106. package/src/statsAnalyzer/index.ts +63 -27
  107. package/test/integration/spec/journey.js +14 -14
  108. package/test/integration/spec/space-meeting.js +1 -1
  109. package/test/unit/spec/interpretation/index.ts +39 -3
  110. package/test/unit/spec/locus-info/index.js +28 -19
  111. package/test/unit/spec/locus-info/mediaSharesUtils.ts +9 -0
  112. package/test/unit/spec/locus-info/selfUtils.js +42 -12
  113. package/test/unit/spec/media/MediaConnectionAwaiter.ts +344 -0
  114. package/test/unit/spec/media/index.ts +89 -78
  115. package/test/unit/spec/media/properties.ts +16 -70
  116. package/test/unit/spec/meeting/index.js +638 -139
  117. package/test/unit/spec/meeting/muteState.js +219 -67
  118. package/test/unit/spec/meeting/request.js +21 -0
  119. package/test/unit/spec/meeting/utils.js +6 -1
  120. package/test/unit/spec/meeting-info/utilv2.js +6 -0
  121. package/test/unit/spec/meetings/index.js +40 -20
  122. package/test/unit/spec/multistream/mediaRequestManager.ts +20 -2
  123. package/test/unit/spec/multistream/remoteMediaGroup.ts +79 -1
  124. package/test/unit/spec/multistream/remoteMediaManager.ts +199 -1
  125. package/test/unit/spec/multistream/sendSlotManager.ts +50 -18
  126. package/test/unit/spec/reachability/clusterReachability.ts +86 -22
  127. package/test/unit/spec/reachability/index.ts +197 -60
  128. package/test/unit/spec/reachability/request.js +15 -7
  129. package/test/unit/spec/reachability/util.ts +32 -2
  130. package/test/unit/spec/reconnection-manager/index.js +28 -0
  131. package/test/unit/spec/roap/index.ts +61 -6
  132. package/test/unit/spec/roap/turnDiscovery.ts +298 -16
  133. package/test/unit/spec/stats-analyzer/index.js +179 -0
  134. package/dist/member/member.types.d.ts +0 -11
  135. package/dist/member/member.types.js +0 -17
  136. package/dist/member/member.types.js.map +0 -1
  137. package/src/member/member.types.ts +0 -13
  138. /package/test/unit/spec/locus-info/{lib/selfConstant.js → selfConstant.js} +0 -0
@@ -1543,6 +1543,185 @@ describe('plugin-meetings', () => {
1543
1543
  },
1544
1544
  ]);
1545
1545
  });
1546
+
1547
+ it('has three streams for video senders for simulcast', async () => {
1548
+ pc.getTransceiverStats = sinon.stub().resolves({
1549
+ audio: {
1550
+ senders: [fakeStats.audio.senders[0]],
1551
+ receivers: [fakeStats.audio.receivers[0]],
1552
+ },
1553
+ video: {
1554
+ senders: [
1555
+ {
1556
+ localTrackLabel: 'fake-camera',
1557
+ report: [
1558
+ {
1559
+ type: 'outbound-rtp',
1560
+ bytesSent: 1,
1561
+ framesSent: 0,
1562
+ packetsSent: 0,
1563
+ },
1564
+ {
1565
+ type: 'outbound-rtp',
1566
+ bytesSent: 0,
1567
+ framesSent: 0,
1568
+ packetsSent: 0,
1569
+ },
1570
+ {
1571
+ type: 'outbound-rtp',
1572
+ bytesSent: 1000,
1573
+ framesSent: 1,
1574
+ packetsSent: 1,
1575
+ },
1576
+ {
1577
+ type: 'remote-inbound-rtp',
1578
+ packetsLost: 0,
1579
+ },
1580
+ {
1581
+ type: 'candidate-pair',
1582
+ state: 'succeeded',
1583
+ localCandidateId: 'fake-candidate-id',
1584
+ },
1585
+ {
1586
+ type: 'candidate-pair',
1587
+ state: 'failed',
1588
+ localCandidateId: 'bad-candidate-id',
1589
+ },
1590
+ {
1591
+ type: 'local-candidate',
1592
+ id: 'fake-candidate-id',
1593
+ protocol: 'tcp',
1594
+ },
1595
+ ],
1596
+ },
1597
+ ],
1598
+ receivers: [fakeStats.video.receivers[0]],
1599
+ },
1600
+ screenShareAudio: {
1601
+ senders: [fakeStats.audio.senders[0]],
1602
+ receivers: [fakeStats.audio.receivers[0]],
1603
+ },
1604
+ screenShareVideo: {
1605
+ senders: [fakeStats.video.senders[0]],
1606
+ receivers: [fakeStats.video.receivers[0]],
1607
+ },
1608
+ });
1609
+
1610
+ await startStatsAnalyzer({expected: {receiveVideo: true}});
1611
+
1612
+ await progressTime();
1613
+
1614
+ assert.deepEqual(mqeData.videoTransmit[0].streams, [
1615
+ {
1616
+ common: {
1617
+ codec: 'H264',
1618
+ csi: [],
1619
+ duplicateSsci: 0,
1620
+ requestedBitrate: 0,
1621
+ requestedFrames: 0,
1622
+ rtpPackets: 0,
1623
+ ssci: 0,
1624
+ transmittedBitrate: 0.13333333333333333,
1625
+ transmittedFrameRate: 0
1626
+ },
1627
+ h264CodecProfile: 'BP',
1628
+ isAvatar: false,
1629
+ isHardwareEncoded: false,
1630
+ localConfigurationChanges: 2,
1631
+ maxFrameQp: 0,
1632
+ maxNoiseLevel: 0,
1633
+ minRegionQp: 0,
1634
+ remoteConfigurationChanges: 0,
1635
+ requestedFrameSize: 0,
1636
+ requestedKeyFrames: 0,
1637
+ transmittedFrameSize: 0,
1638
+ transmittedHeight: 0,
1639
+ transmittedKeyFrames: 0,
1640
+ transmittedKeyFramesClient: 0,
1641
+ transmittedKeyFramesConfigurationChange: 0,
1642
+ transmittedKeyFramesFeedback: 0,
1643
+ transmittedKeyFramesLocalDrop: 0,
1644
+ transmittedKeyFramesOtherLayer: 0,
1645
+ transmittedKeyFramesPeriodic: 0,
1646
+ transmittedKeyFramesSceneChange: 0,
1647
+ transmittedKeyFramesStartup: 0,
1648
+ transmittedKeyFramesUnknown: 0,
1649
+ transmittedWidth: 0,
1650
+ },
1651
+ {
1652
+ common: {
1653
+ codec: 'H264',
1654
+ csi: [],
1655
+ duplicateSsci: 0,
1656
+ requestedBitrate: 0,
1657
+ requestedFrames: 0,
1658
+ rtpPackets: 0,
1659
+ ssci: 0,
1660
+ transmittedBitrate: 0,
1661
+ transmittedFrameRate: 0,
1662
+ },
1663
+ h264CodecProfile: 'BP',
1664
+ isAvatar: false,
1665
+ isHardwareEncoded: false,
1666
+ localConfigurationChanges: 2,
1667
+ maxFrameQp: 0,
1668
+ maxNoiseLevel: 0,
1669
+ minRegionQp: 0,
1670
+ remoteConfigurationChanges: 0,
1671
+ requestedFrameSize: 0,
1672
+ requestedKeyFrames: 0,
1673
+ transmittedFrameSize: 0,
1674
+ transmittedHeight: 0,
1675
+ transmittedKeyFrames: 0,
1676
+ transmittedKeyFramesClient: 0,
1677
+ transmittedKeyFramesConfigurationChange: 0,
1678
+ transmittedKeyFramesFeedback: 0,
1679
+ transmittedKeyFramesLocalDrop: 0,
1680
+ transmittedKeyFramesOtherLayer: 0,
1681
+ transmittedKeyFramesPeriodic: 0,
1682
+ transmittedKeyFramesSceneChange: 0,
1683
+ transmittedKeyFramesStartup: 0,
1684
+ transmittedKeyFramesUnknown: 0,
1685
+ transmittedWidth: 0,
1686
+ },
1687
+ {
1688
+ common: {
1689
+ codec: 'H264',
1690
+ csi: [],
1691
+ duplicateSsci: 0,
1692
+ requestedBitrate: 0,
1693
+ requestedFrames: 0,
1694
+ rtpPackets: 1,
1695
+ ssci: 0,
1696
+ transmittedBitrate: 133.33333333333334,
1697
+ transmittedFrameRate: 0,
1698
+ },
1699
+ h264CodecProfile: 'BP',
1700
+ isAvatar: false,
1701
+ isHardwareEncoded: false,
1702
+ localConfigurationChanges: 2,
1703
+ maxFrameQp: 0,
1704
+ maxNoiseLevel: 0,
1705
+ minRegionQp: 0,
1706
+ remoteConfigurationChanges: 0,
1707
+ requestedFrameSize: 0,
1708
+ requestedKeyFrames: 0,
1709
+ transmittedFrameSize: 0,
1710
+ transmittedHeight: 0,
1711
+ transmittedKeyFrames: 0,
1712
+ transmittedKeyFramesClient: 0,
1713
+ transmittedKeyFramesConfigurationChange: 0,
1714
+ transmittedKeyFramesFeedback: 0,
1715
+ transmittedKeyFramesLocalDrop: 0,
1716
+ transmittedKeyFramesOtherLayer: 0,
1717
+ transmittedKeyFramesPeriodic: 0,
1718
+ transmittedKeyFramesSceneChange: 0,
1719
+ transmittedKeyFramesStartup: 0,
1720
+ transmittedKeyFramesUnknown: 0,
1721
+ transmittedWidth: 0,
1722
+ }
1723
+ ]);
1724
+ });
1546
1725
  });
1547
1726
  });
1548
1727
  });
@@ -1,11 +0,0 @@
1
- export declare enum MediaStatus {
2
- RECVONLY = "RECVONLY",
3
- SENDONLY = "SENDONLY",
4
- SENDRECV = "SENDRECV",
5
- INACTIVE = "INACTIVE",
6
- UNKNOWN = "UNKNOWN"
7
- }
8
- export interface IMediaStatus {
9
- audio: MediaStatus;
10
- video: MediaStatus;
11
- }
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
- _Object$defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.MediaStatus = void 0;
8
- // values are inherited from locus so don't update these
9
- var MediaStatus = exports.MediaStatus = /*#__PURE__*/function (MediaStatus) {
10
- MediaStatus["RECVONLY"] = "RECVONLY";
11
- MediaStatus["SENDONLY"] = "SENDONLY";
12
- MediaStatus["SENDRECV"] = "SENDRECV";
13
- MediaStatus["INACTIVE"] = "INACTIVE";
14
- MediaStatus["UNKNOWN"] = "UNKNOWN";
15
- return MediaStatus;
16
- }({}); // participant has not added media in the meeting
17
- //# sourceMappingURL=member.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["MediaStatus","exports"],"sources":["member.types.ts"],"sourcesContent":["// values are inherited from locus so don't update these\nexport enum MediaStatus {\n RECVONLY = 'RECVONLY', // participant only receiving and not sending\n SENDONLY = 'SENDONLY', // participant only sending and not receiving\n SENDRECV = 'SENDRECV', // participant both sending and receiving\n INACTIVE = 'INACTIVE', // participant is not connected to media source\n UNKNOWN = 'UNKNOWN', // participant has not added media in the meeting\n}\n\nexport interface IMediaStatus {\n audio: MediaStatus;\n video: MediaStatus;\n}\n"],"mappings":";;;;;;;AAAA;AAAA,IACYA,WAAW,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA,OAKA"}
@@ -1,13 +0,0 @@
1
- // values are inherited from locus so don't update these
2
- export enum MediaStatus {
3
- RECVONLY = 'RECVONLY', // participant only receiving and not sending
4
- SENDONLY = 'SENDONLY', // participant only sending and not receiving
5
- SENDRECV = 'SENDRECV', // participant both sending and receiving
6
- INACTIVE = 'INACTIVE', // participant is not connected to media source
7
- UNKNOWN = 'UNKNOWN', // participant has not added media in the meeting
8
- }
9
-
10
- export interface IMediaStatus {
11
- audio: MediaStatus;
12
- video: MediaStatus;
13
- }