@webex/plugin-meetings 3.0.0-beta.22 → 3.0.0-beta.24

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 (124) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/constants.js +0 -3
  4. package/dist/constants.js.map +1 -1
  5. package/dist/media/properties.js.map +1 -1
  6. package/dist/mediaQualityMetrics/config.js +505 -493
  7. package/dist/mediaQualityMetrics/config.js.map +1 -1
  8. package/dist/meeting/index.js +1 -4
  9. package/dist/meeting/index.js.map +1 -1
  10. package/dist/networkQualityMonitor/index.js +4 -2
  11. package/dist/networkQualityMonitor/index.js.map +1 -1
  12. package/dist/statsAnalyzer/global.js +1 -93
  13. package/dist/statsAnalyzer/global.js.map +1 -1
  14. package/dist/statsAnalyzer/index.js +297 -299
  15. package/dist/statsAnalyzer/index.js.map +1 -1
  16. package/dist/statsAnalyzer/mqaUtil.js +84 -47
  17. package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
  18. package/dist/types/breakouts/breakout.d.ts +8 -0
  19. package/dist/types/breakouts/collection.d.ts +5 -0
  20. package/dist/types/breakouts/index.d.ts +5 -0
  21. package/dist/types/common/browser-detection.d.ts +9 -0
  22. package/dist/types/common/collection.d.ts +48 -0
  23. package/dist/types/common/config.d.ts +2 -0
  24. package/dist/types/common/errors/captcha-error.d.ts +15 -0
  25. package/dist/types/common/errors/intent-to-join.d.ts +16 -0
  26. package/dist/types/common/errors/join-meeting.d.ts +17 -0
  27. package/dist/types/common/errors/media.d.ts +15 -0
  28. package/dist/types/common/errors/parameter.d.ts +15 -0
  29. package/dist/types/common/errors/password-error.d.ts +15 -0
  30. package/dist/types/common/errors/permission.d.ts +14 -0
  31. package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
  32. package/dist/types/common/errors/reconnection.d.ts +15 -0
  33. package/dist/types/common/errors/stats.d.ts +15 -0
  34. package/dist/types/common/errors/webex-errors.d.ts +69 -0
  35. package/dist/types/common/errors/webex-meetings-error.d.ts +20 -0
  36. package/dist/types/common/events/events-scope.d.ts +17 -0
  37. package/dist/types/common/events/events.d.ts +12 -0
  38. package/dist/types/common/events/trigger-proxy.d.ts +2 -0
  39. package/dist/types/common/events/util.d.ts +2 -0
  40. package/dist/types/common/logs/logger-config.d.ts +2 -0
  41. package/dist/types/common/logs/logger-proxy.d.ts +2 -0
  42. package/dist/types/common/logs/request.d.ts +34 -0
  43. package/dist/types/common/queue.d.ts +32 -0
  44. package/dist/types/config.d.ts +77 -0
  45. package/dist/types/constants.d.ts +895 -0
  46. package/dist/types/index.d.ts +5 -0
  47. package/dist/types/locus-info/controlsUtils.d.ts +2 -0
  48. package/dist/types/locus-info/embeddedAppsUtils.d.ts +2 -0
  49. package/dist/types/locus-info/fullState.d.ts +2 -0
  50. package/dist/types/locus-info/hostUtils.d.ts +2 -0
  51. package/dist/types/locus-info/index.d.ts +269 -0
  52. package/dist/types/locus-info/infoUtils.d.ts +2 -0
  53. package/dist/types/locus-info/mediaSharesUtils.d.ts +2 -0
  54. package/dist/types/locus-info/parser.d.ts +212 -0
  55. package/dist/types/locus-info/selfUtils.d.ts +2 -0
  56. package/dist/types/media/index.d.ts +32 -0
  57. package/dist/types/media/properties.d.ts +107 -0
  58. package/dist/types/media/util.d.ts +2 -0
  59. package/dist/types/mediaQualityMetrics/config.d.ts +365 -0
  60. package/dist/types/meeting/effectsState.d.ts +42 -0
  61. package/dist/types/meeting/in-meeting-actions.d.ts +75 -0
  62. package/dist/types/meeting/index.d.ts +1706 -0
  63. package/dist/types/meeting/muteState.d.ts +108 -0
  64. package/dist/types/meeting/request.d.ts +261 -0
  65. package/dist/types/meeting/request.type.d.ts +11 -0
  66. package/dist/types/meeting/state.d.ts +9 -0
  67. package/dist/types/meeting/util.d.ts +2 -0
  68. package/dist/types/meeting-info/collection.d.ts +20 -0
  69. package/dist/types/meeting-info/index.d.ts +57 -0
  70. package/dist/types/meeting-info/meeting-info-v2.d.ts +93 -0
  71. package/dist/types/meeting-info/request.d.ts +22 -0
  72. package/dist/types/meeting-info/util.d.ts +2 -0
  73. package/dist/types/meeting-info/utilv2.d.ts +2 -0
  74. package/dist/types/meetings/collection.d.ts +23 -0
  75. package/dist/types/meetings/index.d.ts +297 -0
  76. package/dist/types/meetings/request.d.ts +27 -0
  77. package/dist/types/meetings/util.d.ts +18 -0
  78. package/dist/types/member/index.d.ts +146 -0
  79. package/dist/types/member/util.d.ts +2 -0
  80. package/dist/types/members/collection.d.ts +24 -0
  81. package/dist/types/members/index.d.ts +320 -0
  82. package/dist/types/members/request.d.ts +50 -0
  83. package/dist/types/members/util.d.ts +2 -0
  84. package/dist/types/metrics/config.d.ts +178 -0
  85. package/dist/types/metrics/constants.d.ts +57 -0
  86. package/dist/types/metrics/index.d.ts +160 -0
  87. package/dist/types/multistream/mediaRequestManager.d.ts +50 -0
  88. package/dist/types/multistream/receiveSlot.d.ts +64 -0
  89. package/dist/types/multistream/receiveSlotManager.d.ts +41 -0
  90. package/dist/types/multistream/remoteMedia.d.ts +93 -0
  91. package/dist/types/multistream/remoteMediaGroup.d.ts +56 -0
  92. package/dist/types/multistream/remoteMediaManager.d.ts +241 -0
  93. package/dist/types/networkQualityMonitor/index.d.ts +70 -0
  94. package/dist/types/personal-meeting-room/index.d.ts +47 -0
  95. package/dist/types/personal-meeting-room/request.d.ts +14 -0
  96. package/dist/types/personal-meeting-room/util.d.ts +2 -0
  97. package/dist/types/reachability/index.d.ts +140 -0
  98. package/dist/types/reachability/request.d.ts +35 -0
  99. package/dist/types/reactions/constants.d.ts +3 -0
  100. package/dist/types/reactions/reactions.d.ts +4 -0
  101. package/dist/types/reactions/reactions.type.d.ts +52 -0
  102. package/dist/types/reconnection-manager/index.d.ts +117 -0
  103. package/dist/types/recording-controller/enums.d.ts +7 -0
  104. package/dist/types/recording-controller/index.d.ts +193 -0
  105. package/dist/types/recording-controller/util.d.ts +13 -0
  106. package/dist/types/roap/index.d.ts +77 -0
  107. package/dist/types/roap/request.d.ts +35 -0
  108. package/dist/types/roap/turnDiscovery.d.ts +74 -0
  109. package/dist/types/statsAnalyzer/global.d.ts +36 -0
  110. package/dist/types/statsAnalyzer/index.d.ts +195 -0
  111. package/dist/types/statsAnalyzer/mqaUtil.d.ts +24 -0
  112. package/dist/types/transcription/index.d.ts +64 -0
  113. package/package.json +19 -19
  114. package/src/constants.ts +0 -3
  115. package/src/media/properties.ts +1 -3
  116. package/src/mediaQualityMetrics/config.ts +379 -377
  117. package/src/meeting/index.ts +1 -4
  118. package/src/networkQualityMonitor/index.ts +6 -6
  119. package/src/statsAnalyzer/global.ts +1 -94
  120. package/src/statsAnalyzer/index.ts +325 -373
  121. package/src/statsAnalyzer/mqaUtil.ts +92 -89
  122. package/test/integration/spec/space-meeting.js +1 -1
  123. package/test/unit/spec/networkQualityMonitor/index.js +4 -4
  124. package/test/unit/spec/stats-analyzer/index.js +63 -39
@@ -0,0 +1,195 @@
1
+ /// <reference types="node" />
2
+ import EventsScope from '../common/events/events-scope';
3
+ export declare const EVENTS: {
4
+ MEDIA_QUALITY: string;
5
+ LOCAL_MEDIA_STARTED: string;
6
+ LOCAL_MEDIA_STOPPED: string;
7
+ REMOTE_MEDIA_STARTED: string;
8
+ REMOTE_MEDIA_STOPPED: string;
9
+ };
10
+ /**
11
+ * Stats Analyzer class that will emit events based on detected quality
12
+ *
13
+ * @export
14
+ * @class StatsAnalyzer
15
+ * @extends {EventsScope}
16
+ */
17
+ export declare class StatsAnalyzer extends EventsScope {
18
+ config: any;
19
+ correlationId: any;
20
+ lastEmittedStartStopEvent: any;
21
+ lastMqaDataSent: any;
22
+ lastStatsResults: any;
23
+ meetingMediaStatus: any;
24
+ mqaInterval: NodeJS.Timeout;
25
+ mqaSentCount: any;
26
+ networkQualityMonitor: any;
27
+ mediaConnection: any;
28
+ statsInterval: NodeJS.Timeout;
29
+ statsResults: any;
30
+ statsStarted: any;
31
+ /**
32
+ * Creates a new instance of StatsAnalyzer
33
+ * @constructor
34
+ * @public
35
+ * @param {Object} config SDK Configuration Object
36
+ * @param {Object} networkQualityMonitor class for assessing network characteristics (jitter, packetLoss, latency)
37
+ * @param {Object} statsResults Default properties for stats
38
+ */
39
+ constructor(config: any, networkQualityMonitor?: object, statsResults?: object);
40
+ /**
41
+ * Resets cumulative stats arrays.
42
+ *
43
+ * @public
44
+ * @memberof StatsAnalyzer
45
+ * @returns {void}
46
+ */
47
+ resetStatsResults(): void;
48
+ /**
49
+ * sets mediaStatus status for analyzing metrics
50
+ *
51
+ * @public
52
+ * @param {Object} status for the audio and video
53
+ * @memberof StatsAnalyzer
54
+ * @returns {void}
55
+ */
56
+ updateMediaStatus(status: object): void;
57
+ /**
58
+ * captures MQA data from media connection
59
+ *
60
+ * @public
61
+ * @memberof StatsAnalyzer
62
+ * @returns {void}
63
+ */
64
+ sendMqaData(): void;
65
+ /**
66
+ * updated the media connection when changed
67
+ *
68
+ * @private
69
+ * @memberof StatsAnalyzer
70
+ * @param {RoapMediaConnection} mediaConnection
71
+ * @returns {void}
72
+ */
73
+ updateMediaConnection(mediaConnection: any): void;
74
+ /**
75
+ * Starts the stats analyzer on interval
76
+ *
77
+ * @public
78
+ * @memberof StatsAnalyzer
79
+ * @param {RoapMediaConnection} mediaConnection
80
+ * @returns {Promise}
81
+ */
82
+ startAnalyzer(mediaConnection: any): any;
83
+ /**
84
+ * Cleans up the analyzer when done
85
+ *
86
+ * @public
87
+ * @memberof StatsAnalyzer
88
+ * @returns {void}
89
+ */
90
+ stopAnalyzer(): any;
91
+ /**
92
+ * Parse a single result of get stats
93
+ *
94
+ * @private
95
+ * @param {*} getStatsResult
96
+ * @param {String} type
97
+ * @param {boolean} isSender
98
+ * @returns {void}
99
+ * @memberof StatsAnalyzer
100
+ */
101
+ private parseGetStatsResult;
102
+ /**
103
+ * Filters the get stats results for types
104
+ * @private
105
+ * @param {Array} statsItem
106
+ * @param {String} type
107
+ * @param {boolean} isSender
108
+ * @returns {void}
109
+ */
110
+ filterAndParseGetStatsResults(statsItem: any, type: string, isSender: boolean): void;
111
+ /**
112
+ * parse the audio
113
+ * @param {String} result
114
+ * @param {boolean} type
115
+ * @returns {void}
116
+ */
117
+ parseAudioSource(result: any, type: any): void;
118
+ /**
119
+ * emits started/stopped events for local/remote media by checking
120
+ * if given values are increasing or not. The previousValue, currentValue
121
+ * params can be any numerical value like number of receive packets or
122
+ * decoded frames, etc.
123
+ *
124
+ * @private
125
+ * @param {string} mediaType
126
+ * @param {number} previousValue - value to compare
127
+ * @param {number} currentValue - value to compare (must be same type of value as previousValue)
128
+ * @param {boolean} isLocal - true if stats are for local media being sent out, false for remote media being received
129
+ * @memberof StatsAnalyzer
130
+ * @returns {void}
131
+ */
132
+ emitStartStopEvents: (mediaType: string, previousValue: number, currentValue: number, isLocal: boolean) => void;
133
+ /**
134
+ * compares current and previous stats to check if packets are not sent
135
+ *
136
+ * @private
137
+ * @memberof StatsAnalyzer
138
+ * @returns {void}
139
+ */
140
+ private compareLastStatsResult;
141
+ /**
142
+ * Does a `getStats` on all the transceivers and parses the results
143
+ *
144
+ * @private
145
+ * @memberof StatsAnalyzer
146
+ * @returns {Promise}
147
+ */
148
+ private getStatsAndParse;
149
+ /**
150
+ * Processes OutboundRTP stats result and stores
151
+ * @private
152
+ * @param {*} result
153
+ * @param {*} mediaType
154
+ * @returns {void}
155
+ */
156
+ private processOutboundRTPResult;
157
+ /**
158
+ * Processes InboundRTP stats result and stores
159
+ * @private
160
+ * @param {*} result
161
+ * @param {*} mediaType
162
+ * @returns {void}
163
+ */
164
+ private processInboundRTPResult;
165
+ /**
166
+ * Processes remote and local candidate result and stores
167
+ * @private
168
+ * @param {*} result
169
+ * @param {*} type
170
+ * @param {boolean} isSender
171
+ * @param {boolean} isRemote
172
+ *
173
+ * @returns {void}
174
+ */
175
+ parseCandidate: (result: any, type: any, isSender: boolean, isRemote: boolean) => void;
176
+ /**
177
+ * Process Track results
178
+ *
179
+ * @private
180
+ * @param {*} result
181
+ * @param {*} mediaType
182
+ * @returns {void}
183
+ * @memberof StatsAnalyzer
184
+ */
185
+ private processTrackResult;
186
+ /**
187
+ *
188
+ * @private
189
+ * @param {*} result
190
+ * @param {*} type
191
+ * @returns {void}
192
+ * @memberof StatsAnalyzer
193
+ */
194
+ compareSentAndReceived(result: any, type: any): void;
195
+ }
@@ -0,0 +1,24 @@
1
+ export declare const getAudioReceiverMqa: ({ audioReceiver, statsResults, lastMqaDataSent, mediaType }: {
2
+ audioReceiver: any;
3
+ statsResults: any;
4
+ lastMqaDataSent: any;
5
+ mediaType: any;
6
+ }) => void;
7
+ export declare const getAudioSenderMqa: ({ audioSender, statsResults, lastMqaDataSent, mediaType }: {
8
+ audioSender: any;
9
+ statsResults: any;
10
+ lastMqaDataSent: any;
11
+ mediaType: any;
12
+ }) => void;
13
+ export declare const getVideoReceiverMqa: ({ videoReceiver, statsResults, lastMqaDataSent, mediaType }: {
14
+ videoReceiver: any;
15
+ statsResults: any;
16
+ lastMqaDataSent: any;
17
+ mediaType: any;
18
+ }) => void;
19
+ export declare const getVideoSenderMqa: ({ videoSender, statsResults, lastMqaDataSent, mediaType }: {
20
+ videoSender: any;
21
+ statsResults: any;
22
+ lastMqaDataSent: any;
23
+ mediaType: any;
24
+ }) => void;
@@ -0,0 +1,64 @@
1
+ /**
2
+ * @description Meeting Webex assistance transcription feature.
3
+ * @exports
4
+ * @class Transcription
5
+ */
6
+ export default class Transcription {
7
+ webSocketUrl: any;
8
+ sessionID: any;
9
+ members: any;
10
+ memberCSIs: any;
11
+ webSocket: any;
12
+ /**
13
+ * @param {string} webSocketUrl
14
+ * @param {sessionID} sessionId
15
+ * @param {object} members
16
+ * @constructor
17
+ * @memberof Transcription
18
+ */
19
+ constructor(webSocketUrl: string, sessionId: any, members: object);
20
+ /**
21
+ * open the Low Latency Mercury connection
22
+ * An event parameter will be send to the callback.
23
+ *
24
+ * @param {string} token
25
+ * @param {string} sessionID
26
+ * @returns {void}
27
+ */
28
+ connect(token: string): void;
29
+ /**
30
+ * Sets callback to invoke when the web socket connection is closed.
31
+ *
32
+ * @param {Function} callback
33
+ * @returns {void}
34
+ */
35
+ onCloseSocket(callback: any): void;
36
+ /**
37
+ * Sets callback to invoke when a web socket connection error occurs.
38
+ * An event parameter will be send to the callback.
39
+ *
40
+ * @param {Function} callback
41
+ * @returns {void}
42
+ */
43
+ onErrorSocket(callback: any): void;
44
+ /**
45
+ * Get current speaker from the given csis payload and update the global csis map
46
+ *
47
+ * @private
48
+ * @param {object} csis
49
+ * @returns {object}
50
+ */
51
+ private getSpeaker;
52
+ /**
53
+ * Sends transcription data to given callback as it arrives.
54
+ *
55
+ * @param {Function} callback
56
+ * @returns {void}
57
+ */
58
+ subscribe(callback: any): void;
59
+ /**
60
+ * Close the LLM web socket connection
61
+ * @returns {void}
62
+ */
63
+ closeSocket(): void;
64
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/plugin-meetings",
3
- "version": "3.0.0-beta.22",
3
+ "version": "3.0.0-beta.24",
4
4
  "description": "",
5
5
  "license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
6
6
  "contributors": [
@@ -32,12 +32,12 @@
32
32
  "build": "yarn run -T tsc --declaration true --declarationDir ./dist/types"
33
33
  },
34
34
  "devDependencies": {
35
- "@webex/plugin-meetings": "3.0.0-beta.22",
36
- "@webex/test-helper-chai": "3.0.0-beta.22",
37
- "@webex/test-helper-mocha": "3.0.0-beta.22",
38
- "@webex/test-helper-mock-webex": "3.0.0-beta.22",
39
- "@webex/test-helper-retry": "3.0.0-beta.22",
40
- "@webex/test-helper-test-users": "3.0.0-beta.22",
35
+ "@webex/plugin-meetings": "3.0.0-beta.24",
36
+ "@webex/test-helper-chai": "3.0.0-beta.24",
37
+ "@webex/test-helper-mocha": "3.0.0-beta.24",
38
+ "@webex/test-helper-mock-webex": "3.0.0-beta.24",
39
+ "@webex/test-helper-retry": "3.0.0-beta.24",
40
+ "@webex/test-helper-test-users": "3.0.0-beta.24",
41
41
  "chai": "^4.3.4",
42
42
  "chai-as-promised": "^7.1.1",
43
43
  "jsdom-global": "3.0.2",
@@ -45,18 +45,18 @@
45
45
  "typed-emitter": "^2.1.0"
46
46
  },
47
47
  "dependencies": {
48
- "@webex/common": "3.0.0-beta.22",
49
- "@webex/internal-media-core": "1.33.0",
50
- "@webex/internal-plugin-conversation": "3.0.0-beta.22",
51
- "@webex/internal-plugin-device": "3.0.0-beta.22",
52
- "@webex/internal-plugin-llm": "3.0.0-beta.22",
53
- "@webex/internal-plugin-mercury": "3.0.0-beta.22",
54
- "@webex/internal-plugin-metrics": "3.0.0-beta.22",
55
- "@webex/internal-plugin-support": "3.0.0-beta.22",
56
- "@webex/internal-plugin-user": "3.0.0-beta.22",
57
- "@webex/plugin-people": "3.0.0-beta.22",
58
- "@webex/plugin-rooms": "3.0.0-beta.22",
59
- "@webex/webex-core": "3.0.0-beta.22",
48
+ "@webex/common": "3.0.0-beta.24",
49
+ "@webex/internal-media-core": "1.33.1",
50
+ "@webex/internal-plugin-conversation": "3.0.0-beta.24",
51
+ "@webex/internal-plugin-device": "3.0.0-beta.24",
52
+ "@webex/internal-plugin-llm": "3.0.0-beta.24",
53
+ "@webex/internal-plugin-mercury": "3.0.0-beta.24",
54
+ "@webex/internal-plugin-metrics": "3.0.0-beta.24",
55
+ "@webex/internal-plugin-support": "3.0.0-beta.24",
56
+ "@webex/internal-plugin-user": "3.0.0-beta.24",
57
+ "@webex/plugin-people": "3.0.0-beta.24",
58
+ "@webex/plugin-rooms": "3.0.0-beta.24",
59
+ "@webex/webex-core": "3.0.0-beta.24",
60
60
  "ampersand-collection": "^2.0.2",
61
61
  "bowser": "^2.11.0",
62
62
  "btoa": "^1.2.1",
package/src/constants.ts CHANGED
@@ -886,9 +886,6 @@ export const NETWORK_TYPE = {
886
886
  };
887
887
 
888
888
  export const STATS = {
889
- AUDIO_CORRELATE: 'audio',
890
- VIDEO_CORRELATE: 'video',
891
- SHARE_CORRELATE: 'share',
892
889
  SEND_DIRECTION: 'send',
893
890
  RECEIVE_DIRECTION: 'recv',
894
891
  REMOTE: 'remote',
@@ -212,7 +212,7 @@ export default class MediaProperties {
212
212
  *
213
213
  * @returns {Promise<void>}
214
214
  */
215
- waitForMediaConnectionConnected() {
215
+ waitForMediaConnectionConnected(): Promise<void> {
216
216
  const isConnected = () =>
217
217
  this.webrtcMediaConnection.getConnectionState() === ConnectionState.Connected;
218
218
 
@@ -256,9 +256,7 @@ export default class MediaProperties {
256
256
  const allStatsReports = [];
257
257
 
258
258
  try {
259
- // eslint-disable-next-line no-await-in-loop
260
259
  const statsResult = await this.webrtcMediaConnection.getStats();
261
-
262
260
  statsResult.forEach((report) => allStatsReports.push(report));
263
261
  } catch (error) {
264
262
  LoggerProxy.logger.warn(