@webex/plugin-meetings 3.8.1-next.9 → 3.8.1
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/README.md +13 -26
- package/dist/annotation/annotation.types.d.ts +42 -0
- package/dist/annotation/constants.d.ts +31 -0
- package/dist/annotation/index.d.ts +117 -0
- package/dist/breakouts/breakout.d.ts +8 -0
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/collection.d.ts +5 -0
- package/dist/breakouts/edit-lock-error.d.ts +15 -0
- package/dist/breakouts/events.d.ts +8 -0
- package/dist/breakouts/index.d.ts +5 -0
- package/dist/breakouts/index.js +1 -1
- package/dist/breakouts/request.d.ts +22 -0
- package/dist/breakouts/utils.d.ts +15 -0
- package/dist/common/browser-detection.d.ts +9 -0
- package/dist/common/collection.d.ts +48 -0
- package/dist/common/config.d.ts +2 -0
- package/dist/common/errors/captcha-error.d.ts +15 -0
- package/dist/common/errors/intent-to-join.d.ts +16 -0
- package/dist/common/errors/join-meeting.d.ts +17 -0
- package/dist/common/errors/media.d.ts +15 -0
- package/dist/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/common/errors/parameter.d.ts +15 -0
- package/dist/common/errors/password-error.d.ts +15 -0
- package/dist/common/errors/permission.d.ts +14 -0
- package/dist/common/errors/reclaim-host-role-error.d.ts +60 -0
- package/dist/common/errors/reclaim-host-role-error.js +158 -0
- package/dist/common/errors/reclaim-host-role-error.js.map +1 -0
- package/dist/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/common/errors/reconnection-in-progress.js +35 -0
- package/dist/common/errors/reconnection-in-progress.js.map +1 -0
- package/dist/common/errors/reconnection.d.ts +15 -0
- package/dist/common/errors/stats.d.ts +15 -0
- package/dist/common/errors/webex-errors.d.ts +81 -0
- package/dist/common/errors/webex-meetings-error.d.ts +20 -0
- package/dist/common/events/events-scope.d.ts +17 -0
- package/dist/common/events/events.d.ts +12 -0
- package/dist/common/events/trigger-proxy.d.ts +2 -0
- package/dist/common/events/util.d.ts +2 -0
- package/dist/common/logs/logger-config.d.ts +2 -0
- package/dist/common/logs/logger-proxy.d.ts +2 -0
- package/dist/common/logs/request.d.ts +34 -0
- package/dist/common/queue.d.ts +32 -0
- package/dist/config.d.ts +73 -0
- package/dist/constants.d.ts +952 -0
- package/dist/constants.js +1 -8
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/constants.d.ts +4 -0
- package/dist/controls-options-manager/enums.d.ts +5 -0
- package/dist/controls-options-manager/enums.js +0 -1
- package/dist/controls-options-manager/enums.js.map +1 -1
- package/dist/controls-options-manager/index.d.ts +120 -0
- package/dist/controls-options-manager/types.d.ts +43 -0
- package/dist/controls-options-manager/types.js.map +1 -1
- package/dist/controls-options-manager/util.d.ts +7 -0
- package/dist/controls-options-manager/util.js +0 -26
- package/dist/controls-options-manager/util.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/interceptors/index.d.ts +2 -0
- package/dist/interceptors/locusRetry.d.ts +27 -0
- package/dist/interpretation/collection.d.ts +5 -0
- package/dist/interpretation/index.d.ts +5 -0
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.d.ts +5 -0
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/controlsUtils.d.ts +2 -0
- package/dist/locus-info/controlsUtils.js +3 -11
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/embeddedAppsUtils.d.ts +2 -0
- package/dist/locus-info/fullState.d.ts +2 -0
- package/dist/locus-info/hostUtils.d.ts +2 -0
- package/dist/locus-info/index.d.ts +269 -0
- package/dist/locus-info/index.js +0 -30
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/infoUtils.d.ts +2 -0
- package/dist/locus-info/mediaSharesUtils.d.ts +2 -0
- package/dist/locus-info/parser.d.ts +212 -0
- package/dist/locus-info/selfUtils.d.ts +2 -0
- package/dist/media/index.d.ts +32 -0
- package/dist/media/properties.d.ts +108 -0
- package/dist/media/util.d.ts +2 -0
- package/dist/mediaQualityMetrics/config.d.ts +233 -0
- package/dist/mediaQualityMetrics/config.js +513 -0
- package/dist/mediaQualityMetrics/config.js.map +1 -0
- package/dist/meeting/brbState.js +2 -3
- package/dist/meeting/brbState.js.map +1 -1
- package/dist/meeting/effectsState.d.ts +42 -0
- package/dist/meeting/effectsState.js +260 -0
- package/dist/meeting/effectsState.js.map +1 -0
- package/dist/meeting/in-meeting-actions.d.ts +79 -0
- package/dist/meeting/in-meeting-actions.js +1 -5
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.d.ts +1622 -0
- package/dist/meeting/index.js +66 -88
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/locusMediaRequest.d.ts +74 -0
- package/dist/meeting/muteState.d.ts +116 -0
- package/dist/meeting/request.d.ts +257 -0
- package/dist/meeting/request.type.d.ts +11 -0
- package/dist/meeting/state.d.ts +9 -0
- package/dist/meeting/util.d.ts +2 -0
- package/dist/meeting/voicea-meeting.d.ts +16 -0
- package/dist/meeting-info/collection.d.ts +20 -0
- package/dist/meeting-info/index.d.ts +57 -0
- package/dist/meeting-info/meeting-info-v2.d.ts +93 -0
- package/dist/meeting-info/request.d.ts +22 -0
- package/dist/meeting-info/util.d.ts +2 -0
- package/dist/meeting-info/utilv2.d.ts +2 -0
- package/dist/meetings/collection.d.ts +23 -0
- package/dist/meetings/index.d.ts +296 -0
- package/dist/meetings/meetings.types.d.ts +4 -0
- package/dist/meetings/request.d.ts +27 -0
- package/dist/meetings/util.d.ts +18 -0
- package/dist/member/index.d.ts +148 -0
- package/dist/member/member.types.d.ts +11 -0
- package/dist/member/member.types.js +18 -0
- package/dist/member/member.types.js.map +1 -0
- package/dist/member/types.d.ts +32 -0
- package/dist/member/util.d.ts +2 -0
- package/dist/members/collection.d.ts +24 -0
- package/dist/members/index.d.ts +308 -0
- package/dist/members/request.d.ts +58 -0
- package/dist/members/types.d.ts +25 -0
- package/dist/members/util.d.ts +2 -0
- package/dist/metrics/config.d.ts +169 -0
- package/dist/metrics/config.js +289 -0
- package/dist/metrics/config.js.map +1 -0
- package/dist/metrics/constants.d.ts +59 -0
- package/dist/metrics/constants.js +0 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/metrics/index.d.ts +152 -0
- package/dist/multistream/mediaRequestManager.d.ts +119 -0
- package/dist/multistream/receiveSlot.d.ts +68 -0
- package/dist/multistream/receiveSlotManager.d.ts +56 -0
- package/dist/multistream/remoteMedia.d.ts +72 -0
- package/dist/multistream/remoteMediaGroup.d.ts +49 -0
- package/dist/multistream/remoteMediaManager.d.ts +300 -0
- package/dist/multistream/sendSlotManager.d.ts +69 -0
- package/dist/networkQualityMonitor/index.d.ts +70 -0
- package/dist/networkQualityMonitor/index.js +226 -0
- package/dist/networkQualityMonitor/index.js.map +1 -0
- package/dist/peer-connection-manager/index.d.ts +6 -0
- package/dist/peer-connection-manager/index.js +671 -0
- package/dist/peer-connection-manager/index.js.map +1 -0
- package/dist/peer-connection-manager/util.d.ts +6 -0
- package/dist/peer-connection-manager/util.js +110 -0
- package/dist/peer-connection-manager/util.js.map +1 -0
- package/dist/personal-meeting-room/index.d.ts +47 -0
- package/dist/personal-meeting-room/request.d.ts +14 -0
- package/dist/personal-meeting-room/util.d.ts +2 -0
- package/dist/reachability/clusterReachability.d.ts +109 -0
- package/dist/reachability/index.d.ts +139 -0
- package/dist/reachability/index.js +10 -5
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.d.ts +35 -0
- package/dist/reachability/util.d.ts +8 -0
- package/dist/reactions/constants.d.ts +3 -0
- package/dist/reactions/reactions.d.ts +4 -0
- package/dist/reactions/reactions.type.d.ts +32 -0
- package/dist/reconnection-manager/index.d.ts +112 -0
- package/dist/recording-controller/enums.d.ts +7 -0
- package/dist/recording-controller/index.d.ts +193 -0
- package/dist/recording-controller/util.d.ts +13 -0
- package/dist/roap/collection.d.ts +10 -0
- package/dist/roap/collection.js +63 -0
- package/dist/roap/collection.js.map +1 -0
- package/dist/roap/handler.d.ts +47 -0
- package/dist/roap/handler.js +279 -0
- package/dist/roap/handler.js.map +1 -0
- package/dist/roap/index.d.ts +116 -0
- package/dist/roap/request.d.ts +35 -0
- package/dist/roap/state.d.ts +9 -0
- package/dist/roap/state.js +127 -0
- package/dist/roap/state.js.map +1 -0
- package/dist/roap/turnDiscovery.d.ts +81 -0
- package/dist/roap/util.d.ts +2 -0
- package/dist/roap/util.js +76 -0
- package/dist/roap/util.js.map +1 -0
- package/dist/rtcMetrics/constants.d.ts +4 -0
- package/dist/rtcMetrics/constants.js +11 -0
- package/dist/rtcMetrics/constants.js.map +1 -0
- package/dist/rtcMetrics/index.d.ts +61 -0
- package/dist/rtcMetrics/index.js +197 -0
- package/dist/rtcMetrics/index.js.map +1 -0
- package/dist/statsAnalyzer/global.d.ts +118 -0
- package/dist/statsAnalyzer/global.js +127 -0
- package/dist/statsAnalyzer/global.js.map +1 -0
- package/dist/statsAnalyzer/index.d.ts +193 -0
- package/dist/statsAnalyzer/index.js +1019 -0
- package/dist/statsAnalyzer/index.js.map +1 -0
- package/dist/statsAnalyzer/mqaUtil.d.ts +22 -0
- package/dist/statsAnalyzer/mqaUtil.js +181 -0
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -0
- package/dist/transcription/index.d.ts +64 -0
- package/dist/types/common/errors/reconnection-in-progress.d.ts +9 -0
- package/dist/types/constants.d.ts +0 -6
- package/dist/types/controls-options-manager/enums.d.ts +1 -2
- package/dist/types/controls-options-manager/types.d.ts +1 -4
- package/dist/types/mediaQualityMetrics/config.d.ts +241 -0
- package/dist/types/meeting/in-meeting-actions.d.ts +0 -4
- package/dist/types/metrics/constants.d.ts +0 -1
- package/dist/types/networkQualityMonitor/index.d.ts +70 -0
- package/dist/types/reachability/index.d.ts +2 -2
- package/dist/types/rtcMetrics/constants.d.ts +4 -0
- package/dist/types/rtcMetrics/index.d.ts +71 -0
- package/dist/types/statsAnalyzer/global.d.ts +36 -0
- package/dist/types/statsAnalyzer/index.d.ts +217 -0
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +48 -0
- package/dist/webinar/collection.d.ts +16 -0
- package/dist/webinar/index.d.ts +5 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +23 -23
- package/src/constants.ts +0 -9
- package/src/controls-options-manager/enums.ts +0 -1
- package/src/controls-options-manager/types.ts +1 -6
- package/src/controls-options-manager/util.ts +0 -31
- package/src/locus-info/controlsUtils.ts +0 -15
- package/src/locus-info/index.ts +0 -41
- package/src/meeting/brbState.ts +2 -4
- package/src/meeting/in-meeting-actions.ts +0 -8
- package/src/meeting/index.ts +29 -62
- package/src/metrics/constants.ts +0 -1
- package/src/reachability/index.ts +13 -5
- package/test/unit/spec/controls-options-manager/util.js +0 -58
- package/test/unit/spec/locus-info/controlsUtils.js +0 -52
- package/test/unit/spec/locus-info/index.js +0 -42
- package/test/unit/spec/meeting/brbState.ts +2 -21
- package/test/unit/spec/meeting/in-meeting-actions.ts +0 -4
- package/test/unit/spec/meeting/index.js +27 -130
- package/test/unit/spec/reachability/index.ts +6 -2
@@ -0,0 +1,217 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import EventsScope from '../common/events/events-scope';
|
3
|
+
import { ReceiveSlot } from '../multistream/receiveSlot';
|
4
|
+
export declare const EVENTS: {
|
5
|
+
MEDIA_QUALITY: string;
|
6
|
+
LOCAL_MEDIA_STARTED: string;
|
7
|
+
LOCAL_MEDIA_STOPPED: string;
|
8
|
+
REMOTE_MEDIA_STARTED: string;
|
9
|
+
REMOTE_MEDIA_STOPPED: string;
|
10
|
+
};
|
11
|
+
type ReceiveSlotCallback = (csi: number) => ReceiveSlot | undefined;
|
12
|
+
type MediaStatus = {
|
13
|
+
actual?: any;
|
14
|
+
expected?: any;
|
15
|
+
};
|
16
|
+
/**
|
17
|
+
* Stats Analyzer class that will emit events based on detected quality
|
18
|
+
*
|
19
|
+
* @export
|
20
|
+
* @class StatsAnalyzer
|
21
|
+
* @extends {EventsScope}
|
22
|
+
*/
|
23
|
+
export declare class StatsAnalyzer extends EventsScope {
|
24
|
+
config: any;
|
25
|
+
correlationId: any;
|
26
|
+
lastEmittedStartStopEvent: any;
|
27
|
+
lastMqaDataSent: any;
|
28
|
+
lastStatsResults: any;
|
29
|
+
meetingMediaStatus: any;
|
30
|
+
mqaInterval: NodeJS.Timeout;
|
31
|
+
mqaSentCount: any;
|
32
|
+
networkQualityMonitor: any;
|
33
|
+
mediaConnection: any;
|
34
|
+
statsInterval: NodeJS.Timeout;
|
35
|
+
statsResults: any;
|
36
|
+
statsStarted: any;
|
37
|
+
successfulCandidatePair: any;
|
38
|
+
localIpAddress: string;
|
39
|
+
receiveSlotCallback: ReceiveSlotCallback;
|
40
|
+
/**
|
41
|
+
* Creates a new instance of StatsAnalyzer
|
42
|
+
* @constructor
|
43
|
+
* @public
|
44
|
+
* @param {Object} config SDK Configuration Object
|
45
|
+
* @param {Function} receiveSlotCallback Callback used to access receive slots.
|
46
|
+
* @param {Object} networkQualityMonitor class for assessing network characteristics (jitter, packetLoss, latency)
|
47
|
+
* @param {Object} statsResults Default properties for stats
|
48
|
+
*/
|
49
|
+
constructor(config: any, receiveSlotCallback?: ReceiveSlotCallback, networkQualityMonitor?: object, statsResults?: object);
|
50
|
+
/**
|
51
|
+
* Resets cumulative stats arrays.
|
52
|
+
*
|
53
|
+
* @public
|
54
|
+
* @memberof StatsAnalyzer
|
55
|
+
* @returns {void}
|
56
|
+
*/
|
57
|
+
resetStatsResults(): void;
|
58
|
+
/**
|
59
|
+
* sets mediaStatus status for analyzing metrics
|
60
|
+
*
|
61
|
+
* @public
|
62
|
+
* @param {Object} status for the audio and video
|
63
|
+
* @memberof StatsAnalyzer
|
64
|
+
* @returns {void}
|
65
|
+
*/
|
66
|
+
updateMediaStatus(status: MediaStatus): void;
|
67
|
+
/**
|
68
|
+
* captures MQA data from media connection
|
69
|
+
*
|
70
|
+
* @public
|
71
|
+
* @memberof StatsAnalyzer
|
72
|
+
* @returns {void}
|
73
|
+
*/
|
74
|
+
sendMqaData(): void;
|
75
|
+
/**
|
76
|
+
* updated the media connection when changed
|
77
|
+
*
|
78
|
+
* @private
|
79
|
+
* @memberof StatsAnalyzer
|
80
|
+
* @param {RoapMediaConnection} mediaConnection
|
81
|
+
* @returns {void}
|
82
|
+
*/
|
83
|
+
updateMediaConnection(mediaConnection: any): void;
|
84
|
+
/**
|
85
|
+
* Returns the local IP address for diagnostics.
|
86
|
+
* this is the local IP of the interface used for the current media connection
|
87
|
+
* a host can have many local Ip Addresses
|
88
|
+
* @returns {string | undefined} The local IP address.
|
89
|
+
*/
|
90
|
+
getLocalIpAddress(): string;
|
91
|
+
/**
|
92
|
+
* Starts the stats analyzer on interval
|
93
|
+
*
|
94
|
+
* @public
|
95
|
+
* @memberof StatsAnalyzer
|
96
|
+
* @param {RoapMediaConnection} mediaConnection
|
97
|
+
* @returns {Promise}
|
98
|
+
*/
|
99
|
+
startAnalyzer(mediaConnection: any): any;
|
100
|
+
/**
|
101
|
+
* Cleans up the analyzer when done
|
102
|
+
*
|
103
|
+
* @public
|
104
|
+
* @memberof StatsAnalyzer
|
105
|
+
* @returns {void}
|
106
|
+
*/
|
107
|
+
stopAnalyzer(): any;
|
108
|
+
/**
|
109
|
+
* Parse a single result of get stats
|
110
|
+
*
|
111
|
+
* @private
|
112
|
+
* @param {*} getStatsResult
|
113
|
+
* @param {String} type
|
114
|
+
* @param {boolean} isSender
|
115
|
+
* @returns {void}
|
116
|
+
* @memberof StatsAnalyzer
|
117
|
+
*/
|
118
|
+
private parseGetStatsResult;
|
119
|
+
/**
|
120
|
+
* Filters the get stats results for types
|
121
|
+
* @private
|
122
|
+
* @param {Array} statsItem
|
123
|
+
* @param {String} type
|
124
|
+
* @param {boolean} isSender
|
125
|
+
* @returns {void}
|
126
|
+
*/
|
127
|
+
filterAndParseGetStatsResults(statsItem: any, type: string, isSender: boolean): void;
|
128
|
+
/**
|
129
|
+
* parse the audio
|
130
|
+
* @param {String} result
|
131
|
+
* @param {boolean} type
|
132
|
+
* @returns {void}
|
133
|
+
*/
|
134
|
+
parseAudioSource(result: any, type: any): void;
|
135
|
+
/**
|
136
|
+
* emits started/stopped events for local/remote media by checking
|
137
|
+
* if given values are increasing or not. The previousValue, currentValue
|
138
|
+
* params can be any numerical value like number of receive packets or
|
139
|
+
* decoded frames, etc.
|
140
|
+
*
|
141
|
+
* @private
|
142
|
+
* @param {string} mediaType
|
143
|
+
* @param {number} previousValue - value to compare
|
144
|
+
* @param {number} currentValue - value to compare (must be same type of value as previousValue)
|
145
|
+
* @param {boolean} isLocal - true if stats are for local media being sent out, false for remote media being received
|
146
|
+
* @memberof StatsAnalyzer
|
147
|
+
* @returns {void}
|
148
|
+
*/
|
149
|
+
emitStartStopEvents: (mediaType: string, previousValue: number, currentValue: number, isLocal: boolean) => void;
|
150
|
+
/**
|
151
|
+
* compares current and previous stats to check if packets are not sent
|
152
|
+
*
|
153
|
+
* @private
|
154
|
+
* @memberof StatsAnalyzer
|
155
|
+
* @returns {void}
|
156
|
+
*/
|
157
|
+
private compareLastStatsResult;
|
158
|
+
/**
|
159
|
+
* Does a `getStats` on all the transceivers and parses the results
|
160
|
+
*
|
161
|
+
* @private
|
162
|
+
* @memberof StatsAnalyzer
|
163
|
+
* @returns {Promise}
|
164
|
+
*/
|
165
|
+
private getStatsAndParse;
|
166
|
+
/**
|
167
|
+
* Processes OutboundRTP stats result and stores
|
168
|
+
* @private
|
169
|
+
* @param {*} result
|
170
|
+
* @param {*} mediaType
|
171
|
+
* @returns {void}
|
172
|
+
*/
|
173
|
+
private processOutboundRTPResult;
|
174
|
+
/**
|
175
|
+
* Processes InboundRTP stats result and stores
|
176
|
+
* @private
|
177
|
+
* @param {*} result
|
178
|
+
* @param {*} mediaType
|
179
|
+
* @returns {void}
|
180
|
+
*/
|
181
|
+
private processInboundRTPResult;
|
182
|
+
/**
|
183
|
+
* extracts the local Ip address from the statsResult object by looking at stats results candidates
|
184
|
+
* and matches that ID with the successful candidate pair. It looks at the type of local candidate it is
|
185
|
+
* and then extracts the IP address from the relatedAddress or address property based on conditions known in webrtc
|
186
|
+
* note, there are known incompatibilities and it is possible for this to set undefined, or for the IP address to be the public IP address
|
187
|
+
* for example, firefox does not set the relayProtocol, and if the user is behind a NAT it might be the public IP
|
188
|
+
* @private
|
189
|
+
* @param {string} successfulCandidatePairId - The ID of the successful candidate pair.
|
190
|
+
* @param {Object} candidates - the stats result candidates
|
191
|
+
* @returns {void}
|
192
|
+
*/
|
193
|
+
extractAndSetLocalIpAddressInfoForDiagnostics: (successfulCandidatePairId: string, candidates: {
|
194
|
+
[key: string]: Record<string, unknown>;
|
195
|
+
}) => void;
|
196
|
+
/**
|
197
|
+
* Processes remote and local candidate result and stores
|
198
|
+
* @private
|
199
|
+
* @param {*} result
|
200
|
+
* @param {*} type
|
201
|
+
* @param {boolean} isSender
|
202
|
+
* @param {boolean} isRemote
|
203
|
+
*
|
204
|
+
* @returns {void}
|
205
|
+
*/
|
206
|
+
parseCandidate: (result: any, type: any, isSender: boolean, isRemote: boolean) => void;
|
207
|
+
/**
|
208
|
+
*
|
209
|
+
* @private
|
210
|
+
* @param {*} result
|
211
|
+
* @param {*} type
|
212
|
+
* @returns {void}
|
213
|
+
* @memberof StatsAnalyzer
|
214
|
+
*/
|
215
|
+
compareSentAndReceived(result: any, type: any): void;
|
216
|
+
}
|
217
|
+
export {};
|
@@ -0,0 +1,48 @@
|
|
1
|
+
export declare const getAudioReceiverMqa: ({ audioReceiver, statsResults, lastMqaDataSent, baseMediaType, }: {
|
2
|
+
audioReceiver: any;
|
3
|
+
statsResults: any;
|
4
|
+
lastMqaDataSent: any;
|
5
|
+
baseMediaType: any;
|
6
|
+
}) => void;
|
7
|
+
export declare const getAudioReceiverStreamMqa: ({ audioReceiverStream, statsResults, lastMqaDataSent, mediaType, }: {
|
8
|
+
audioReceiverStream: any;
|
9
|
+
statsResults: any;
|
10
|
+
lastMqaDataSent: any;
|
11
|
+
mediaType: any;
|
12
|
+
}) => void;
|
13
|
+
export declare const getAudioSenderMqa: ({ audioSender, statsResults, lastMqaDataSent, baseMediaType }: {
|
14
|
+
audioSender: any;
|
15
|
+
statsResults: any;
|
16
|
+
lastMqaDataSent: any;
|
17
|
+
baseMediaType: any;
|
18
|
+
}) => void;
|
19
|
+
export declare const getAudioSenderStreamMqa: ({ audioSenderStream, statsResults, lastMqaDataSent, mediaType, }: {
|
20
|
+
audioSenderStream: any;
|
21
|
+
statsResults: any;
|
22
|
+
lastMqaDataSent: any;
|
23
|
+
mediaType: any;
|
24
|
+
}) => void;
|
25
|
+
export declare const getVideoReceiverMqa: ({ videoReceiver, statsResults, lastMqaDataSent, baseMediaType, }: {
|
26
|
+
videoReceiver: any;
|
27
|
+
statsResults: any;
|
28
|
+
lastMqaDataSent: any;
|
29
|
+
baseMediaType: any;
|
30
|
+
}) => void;
|
31
|
+
export declare const getVideoReceiverStreamMqa: ({ videoReceiverStream, statsResults, lastMqaDataSent, mediaType, }: {
|
32
|
+
videoReceiverStream: any;
|
33
|
+
statsResults: any;
|
34
|
+
lastMqaDataSent: any;
|
35
|
+
mediaType: any;
|
36
|
+
}) => void;
|
37
|
+
export declare const getVideoSenderMqa: ({ videoSender, statsResults, lastMqaDataSent, baseMediaType }: {
|
38
|
+
videoSender: any;
|
39
|
+
statsResults: any;
|
40
|
+
lastMqaDataSent: any;
|
41
|
+
baseMediaType: any;
|
42
|
+
}) => void;
|
43
|
+
export declare const getVideoSenderStreamMqa: ({ videoSenderStream, statsResults, lastMqaDataSent, mediaType, }: {
|
44
|
+
videoSenderStream: any;
|
45
|
+
statsResults: any;
|
46
|
+
lastMqaDataSent: any;
|
47
|
+
mediaType: any;
|
48
|
+
}) => void;
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/*!
|
2
|
+
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
3
|
+
*/
|
4
|
+
declare class WebinarCollection {
|
5
|
+
webinarInfo: any;
|
6
|
+
namespace: string;
|
7
|
+
mainIndex: string;
|
8
|
+
constructor();
|
9
|
+
set(id: any, info: any): void;
|
10
|
+
/**
|
11
|
+
* @param {String} id
|
12
|
+
* @returns {Member}
|
13
|
+
*/
|
14
|
+
get(id: string): any;
|
15
|
+
}
|
16
|
+
export default WebinarCollection;
|
package/dist/webinar/index.js
CHANGED
package/package.json
CHANGED
@@ -43,13 +43,13 @@
|
|
43
43
|
"@webex/eslint-config-legacy": "0.0.0",
|
44
44
|
"@webex/jest-config-legacy": "0.0.0",
|
45
45
|
"@webex/legacy-tools": "0.0.0",
|
46
|
-
"@webex/plugin-meetings": "3.8.1
|
47
|
-
"@webex/plugin-rooms": "3.8.1
|
48
|
-
"@webex/test-helper-chai": "3.8.1
|
49
|
-
"@webex/test-helper-mocha": "3.8.1
|
50
|
-
"@webex/test-helper-mock-webex": "3.8.1
|
51
|
-
"@webex/test-helper-retry": "3.8.1
|
52
|
-
"@webex/test-helper-test-users": "3.8.1
|
46
|
+
"@webex/plugin-meetings": "3.8.1",
|
47
|
+
"@webex/plugin-rooms": "3.8.1",
|
48
|
+
"@webex/test-helper-chai": "3.8.1",
|
49
|
+
"@webex/test-helper-mocha": "3.8.1",
|
50
|
+
"@webex/test-helper-mock-webex": "3.8.1",
|
51
|
+
"@webex/test-helper-retry": "3.8.1",
|
52
|
+
"@webex/test-helper-test-users": "3.8.1",
|
53
53
|
"chai": "^4.3.4",
|
54
54
|
"chai-as-promised": "^7.1.1",
|
55
55
|
"eslint": "^8.24.0",
|
@@ -61,23 +61,23 @@
|
|
61
61
|
"typescript": "^4.7.4"
|
62
62
|
},
|
63
63
|
"dependencies": {
|
64
|
-
"@webex/common": "3.8.1
|
65
|
-
"@webex/event-dictionary-ts": "^1.0.
|
66
|
-
"@webex/internal-media-core": "2.
|
67
|
-
"@webex/internal-plugin-conversation": "3.8.1
|
68
|
-
"@webex/internal-plugin-device": "3.8.1
|
69
|
-
"@webex/internal-plugin-llm": "3.8.1
|
70
|
-
"@webex/internal-plugin-mercury": "3.8.1
|
71
|
-
"@webex/internal-plugin-metrics": "3.8.1
|
72
|
-
"@webex/internal-plugin-support": "3.8.1
|
73
|
-
"@webex/internal-plugin-user": "3.8.1
|
74
|
-
"@webex/internal-plugin-voicea": "3.8.1
|
75
|
-
"@webex/media-helpers": "3.8.1
|
76
|
-
"@webex/plugin-people": "3.8.1
|
77
|
-
"@webex/plugin-rooms": "3.8.1
|
64
|
+
"@webex/common": "3.8.1",
|
65
|
+
"@webex/event-dictionary-ts": "^1.0.1753",
|
66
|
+
"@webex/internal-media-core": "2.17.1",
|
67
|
+
"@webex/internal-plugin-conversation": "3.8.1",
|
68
|
+
"@webex/internal-plugin-device": "3.8.1",
|
69
|
+
"@webex/internal-plugin-llm": "3.8.1",
|
70
|
+
"@webex/internal-plugin-mercury": "3.8.1",
|
71
|
+
"@webex/internal-plugin-metrics": "3.8.1",
|
72
|
+
"@webex/internal-plugin-support": "3.8.1",
|
73
|
+
"@webex/internal-plugin-user": "3.8.1",
|
74
|
+
"@webex/internal-plugin-voicea": "3.8.1",
|
75
|
+
"@webex/media-helpers": "3.8.1",
|
76
|
+
"@webex/plugin-people": "3.8.1",
|
77
|
+
"@webex/plugin-rooms": "3.8.1",
|
78
78
|
"@webex/ts-sdp": "^1.8.1",
|
79
79
|
"@webex/web-capabilities": "^1.4.0",
|
80
|
-
"@webex/webex-core": "3.8.1
|
80
|
+
"@webex/webex-core": "3.8.1",
|
81
81
|
"ampersand-collection": "^2.0.2",
|
82
82
|
"bowser": "^2.11.0",
|
83
83
|
"btoa": "^1.2.1",
|
@@ -93,5 +93,5 @@
|
|
93
93
|
"//": [
|
94
94
|
"TODO: upgrade jwt-decode when moving to node 18"
|
95
95
|
],
|
96
|
-
"version": "3.8.1
|
96
|
+
"version": "3.8.1"
|
97
97
|
}
|
package/src/constants.ts
CHANGED
@@ -372,7 +372,6 @@ export const EVENT_TRIGGERS = {
|
|
372
372
|
MEETING_CONTROLS_ANNOTATION_UPDATED: 'meeting:controls:annotation:updated',
|
373
373
|
MEETING_CONTROLS_REMOTE_DESKTOP_CONTROL_UPDATED:
|
374
374
|
'meeting:controls:remote-desktop-control:updated',
|
375
|
-
MEETING_CONTROLS_POLLING_QA_UPDATED: 'meeting:controls:polling-qa:updated',
|
376
375
|
// Locus URL changed
|
377
376
|
MEETING_LOCUS_URL_UPDATE: 'meeting:locus:locusUrl:update',
|
378
377
|
MEETING_STREAM_PUBLISH_STATE_CHANGED: 'meeting:streamPublishStateChanged',
|
@@ -380,7 +379,6 @@ export const EVENT_TRIGGERS = {
|
|
380
379
|
MEETING_TRANSCRIPTION_CONNECTED: 'meeting:transcription:connected',
|
381
380
|
MEETING_STARTED_RECEIVING_TRANSCRIPTION: 'meeting:receiveTranscription:started',
|
382
381
|
MEETING_STOPPED_RECEIVING_TRANSCRIPTION: 'meeting:receiveTranscription:stopped',
|
383
|
-
MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED: 'meeting:transcription:spokenLanguageUpdate',
|
384
382
|
MEETING_MANUAL_CAPTION_UPDATED: 'meeting:manualCaptionControl:updated',
|
385
383
|
MEETING_CAPTION_RECEIVED: 'meeting:caption-received',
|
386
384
|
MEETING_PARTICIPANT_REASON_CHANGED: 'meeting:participant-reason-changed',
|
@@ -701,8 +699,6 @@ export const LOCUSINFO = {
|
|
701
699
|
CONTROLS_MEETING_LAYOUT_UPDATED: 'CONTROLS_MEETING_LAYOUT_UPDATED',
|
702
700
|
CONTROLS_RECORDING_UPDATED: 'CONTROLS_RECORDING_UPDATED',
|
703
701
|
CONTROLS_MEETING_TRANSCRIBE_UPDATED: 'CONTROLS_MEETING_TRANSCRIBE_UPDATED',
|
704
|
-
CONTROLS_MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED:
|
705
|
-
'CONTROLS_MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED',
|
706
702
|
CONTROLS_MEETING_MANUAL_CAPTION_UPDATED: 'CONTROLS_MEETING_MANUAL_CAPTION_UPDATED',
|
707
703
|
CONTROLS_MEETING_BREAKOUT_UPDATED: 'CONTROLS_MEETING_BREAKOUT_UPDATED',
|
708
704
|
CONTROLS_MEETING_CONTAINER_UPDATED: 'CONTROLS_MEETING_CONTAINER_UPDATED',
|
@@ -721,7 +717,6 @@ export const LOCUSINFO = {
|
|
721
717
|
CONTROLS_STAGE_VIEW_UPDATED: 'CONTROLS_STAGE_VIEW_UPDATED',
|
722
718
|
CONTROLS_ANNOTATION_CHANGED: 'CONTROLS_ANNOTATION_CHANGED',
|
723
719
|
CONTROLS_REMOTE_DESKTOP_CONTROL_CHANGED: 'CONTROLS_REMOTE_DESKTOP_CONTROL_CHANGED',
|
724
|
-
CONTROLS_POLLING_QA_CHANGED: 'CONTROLS_POLLING_QA_CHANGED',
|
725
720
|
SELF_UNADMITTED_GUEST: 'SELF_UNADMITTED_GUEST',
|
726
721
|
SELF_ADMITTED_GUEST: 'SELF_ADMITTED_GUEST',
|
727
722
|
SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED: 'SELF_REMOTE_VIDEO_MUTE_STATUS_UPDATED',
|
@@ -1051,10 +1046,6 @@ export const DISPLAY_HINTS = {
|
|
1051
1046
|
// Remote Desktop Control
|
1052
1047
|
ENABLE_RDC_MEETING_OPTION: 'ENABLE_RDC_MEETING_OPTION',
|
1053
1048
|
DISABLE_RDC_MEETING_OPTION: 'DISABLE_RDC_MEETING_OPTION',
|
1054
|
-
|
1055
|
-
// Polling QA
|
1056
|
-
ENABLE_ATTENDEE_START_POLLING_QA: 'ENABLE_ATTENDEE_START_POLLING_QA',
|
1057
|
-
DISABLE_ATTENDEE_START_POLLING_QA: 'DISABLE_ATTENDEE_START_POLLING_QA',
|
1058
1049
|
};
|
1059
1050
|
|
1060
1051
|
export const INTERSTITIAL_DISPLAY_HINTS = [DISPLAY_HINTS.VOIP_IS_ENABLED];
|
@@ -48,10 +48,6 @@ export interface RemoteDesktopControlProperties {
|
|
48
48
|
enabled?: boolean;
|
49
49
|
}
|
50
50
|
|
51
|
-
export interface PollingQAProperties {
|
52
|
-
enabled?: boolean;
|
53
|
-
}
|
54
|
-
|
55
51
|
export type Properties =
|
56
52
|
| AudioProperties
|
57
53
|
| RaiseHandProperties
|
@@ -60,8 +56,7 @@ export type Properties =
|
|
60
56
|
| VideoProperties
|
61
57
|
| ViewTheParticipantListProperties
|
62
58
|
| AnnotationProperties
|
63
|
-
| RemoteDesktopControlProperties
|
64
|
-
| PollingQAProperties;
|
59
|
+
| RemoteDesktopControlProperties;
|
65
60
|
|
66
61
|
export interface ControlConfig<Props = Properties> {
|
67
62
|
/**
|
@@ -9,7 +9,6 @@ import {
|
|
9
9
|
VideoProperties,
|
10
10
|
type RemoteDesktopControlProperties,
|
11
11
|
type AnnotationProperties,
|
12
|
-
type PollingQAProperties,
|
13
12
|
} from './types';
|
14
13
|
|
15
14
|
/**
|
@@ -305,29 +304,6 @@ class Utils {
|
|
305
304
|
return Utils.hasHints({requiredHints, displayHints});
|
306
305
|
}
|
307
306
|
|
308
|
-
/**
|
309
|
-
* Validate if a pollingQA-scoped control is allowed to be sent to the service.
|
310
|
-
*
|
311
|
-
* @param {ControlConfig<PollingQAProperties>} control - Polling QA config to validate
|
312
|
-
* @param {Array<string>} displayHints - All available hints
|
313
|
-
* @returns {boolean} - True if all of the actions are allowed.
|
314
|
-
*/
|
315
|
-
public static canUpdatePollingQA(
|
316
|
-
control: ControlConfig<PollingQAProperties>,
|
317
|
-
displayHints: Array<string>
|
318
|
-
): boolean {
|
319
|
-
const requiredHints = [];
|
320
|
-
|
321
|
-
if (control.properties.enabled === true) {
|
322
|
-
requiredHints.push(DISPLAY_HINTS.ENABLE_ATTENDEE_START_POLLING_QA);
|
323
|
-
}
|
324
|
-
if (control.properties.enabled === false) {
|
325
|
-
requiredHints.push(DISPLAY_HINTS.DISABLE_ATTENDEE_START_POLLING_QA);
|
326
|
-
}
|
327
|
-
|
328
|
-
return Utils.hasHints({requiredHints, displayHints});
|
329
|
-
}
|
330
|
-
|
331
307
|
/**
|
332
308
|
* Validate that a control can be sent to the service based on the provided
|
333
309
|
* display hints.
|
@@ -387,13 +363,6 @@ class Utils {
|
|
387
363
|
);
|
388
364
|
break;
|
389
365
|
|
390
|
-
case Control.pollingQA:
|
391
|
-
determinant = Utils.canUpdatePollingQA(
|
392
|
-
control as ControlConfig<PollingQAProperties>,
|
393
|
-
displayHints
|
394
|
-
);
|
395
|
-
break;
|
396
|
-
|
397
366
|
default:
|
398
367
|
determinant = false;
|
399
368
|
}
|
@@ -40,7 +40,6 @@ ControlsUtils.parse = (controls: any) => {
|
|
40
40
|
parsedControls.transcribe = {
|
41
41
|
transcribing: controls.transcribe.transcribing,
|
42
42
|
caption: controls.transcribe.caption,
|
43
|
-
spokenLanguage: controls.transcribe.spokenLanguage,
|
44
43
|
};
|
45
44
|
}
|
46
45
|
|
@@ -124,12 +123,6 @@ ControlsUtils.parse = (controls: any) => {
|
|
124
123
|
};
|
125
124
|
}
|
126
125
|
|
127
|
-
if (controls?.pollingQAControl) {
|
128
|
-
parsedControls.pollingQAControl = {
|
129
|
-
enabled: controls.pollingQAControl.enabled,
|
130
|
-
};
|
131
|
-
}
|
132
|
-
|
133
126
|
return parsedControls;
|
134
127
|
};
|
135
128
|
|
@@ -193,11 +186,6 @@ ControlsUtils.getControls = (oldControls: any, newControls: any) => {
|
|
193
186
|
!isEqual(previous?.transcribe?.transcribing, current?.transcribe?.transcribing) && // upon first join, previous?.record?.recording = undefined; thus, never going to be equal and will always return true
|
194
187
|
(previous?.transcribe?.transcribing || current?.transcribe?.transcribing), // therefore, condition added to prevent false firings of #meeting:recording:stopped upon first joining a meeting
|
195
188
|
|
196
|
-
hasTranscribeSpokenLanguageChanged:
|
197
|
-
current?.transcribe &&
|
198
|
-
!isEqual(previous?.transcribe?.spokenLanguage, current?.transcribe?.spokenLanguage) &&
|
199
|
-
!!(previous?.transcribe?.spokenLanguage || current?.transcribe?.spokenLanguage),
|
200
|
-
|
201
189
|
hasManualCaptionChanged:
|
202
190
|
current?.manualCaptionControl &&
|
203
191
|
!isEqual(previous?.manualCaptionControl?.enabled, current?.manualCaptionControl?.enabled) &&
|
@@ -241,9 +229,6 @@ ControlsUtils.getControls = (oldControls: any, newControls: any) => {
|
|
241
229
|
|
242
230
|
hasRemoteDesktopControlChanged:
|
243
231
|
current?.rdcControl?.enabled !== previous?.rdcControl?.enabled,
|
244
|
-
|
245
|
-
hasPollingQAControlChanged:
|
246
|
-
current?.pollingQAControl?.enabled !== previous?.pollingQAControl?.enabled,
|
247
232
|
},
|
248
233
|
};
|
249
234
|
};
|
package/src/locus-info/index.ts
CHANGED
@@ -160,22 +160,6 @@ export default class LocusInfo extends EventsScope {
|
|
160
160
|
} else {
|
161
161
|
meeting.locusInfo.onFullLocus(res.body);
|
162
162
|
}
|
163
|
-
})
|
164
|
-
.catch((e) => {
|
165
|
-
LoggerProxy.logger.info(
|
166
|
-
`Locus-info:index#doLocusSync --> getLocusDTO succeeded but failed to handle result, locus parser will resume but not all data may be synced (${e.toString()})`
|
167
|
-
);
|
168
|
-
|
169
|
-
Metrics.sendBehavioralMetric(BEHAVIORAL_METRICS.LOCUS_SYNC_HANDLING_FAILED, {
|
170
|
-
correlationId: meeting.correlationId,
|
171
|
-
url,
|
172
|
-
reason: e.message,
|
173
|
-
errorName: e.name,
|
174
|
-
stack: e.stack,
|
175
|
-
code: e.code,
|
176
|
-
});
|
177
|
-
})
|
178
|
-
.finally(() => {
|
179
163
|
// Notify parser to resume processing delta events.
|
180
164
|
// Any deltas in the queue that have now been superseded by this sync will simply be ignored
|
181
165
|
this.locusParser.resume();
|
@@ -834,7 +818,6 @@ export default class LocusInfo extends EventsScope {
|
|
834
818
|
hasRecordingPausedChanged,
|
835
819
|
hasMeetingContainerChanged,
|
836
820
|
hasTranscribeChanged,
|
837
|
-
hasTranscribeSpokenLanguageChanged,
|
838
821
|
hasManualCaptionChanged,
|
839
822
|
hasEntryExitToneChanged,
|
840
823
|
hasBreakoutChanged,
|
@@ -854,7 +837,6 @@ export default class LocusInfo extends EventsScope {
|
|
854
837
|
hasStageViewChanged,
|
855
838
|
hasAnnotationControlChanged,
|
856
839
|
hasRemoteDesktopControlChanged,
|
857
|
-
hasPollingQAControlChanged,
|
858
840
|
},
|
859
841
|
current,
|
860
842
|
} = ControlsUtils.getControls(this.controls, controls);
|
@@ -974,21 +956,6 @@ export default class LocusInfo extends EventsScope {
|
|
974
956
|
);
|
975
957
|
}
|
976
958
|
|
977
|
-
if (hasTranscribeSpokenLanguageChanged) {
|
978
|
-
const {spokenLanguage} = current.transcribe;
|
979
|
-
|
980
|
-
this.emitScoped(
|
981
|
-
{
|
982
|
-
file: 'locus-info',
|
983
|
-
function: 'updateControls',
|
984
|
-
},
|
985
|
-
LOCUSINFO.EVENTS.CONTROLS_MEETING_TRANSCRIPTION_SPOKEN_LANGUAGE_UPDATED,
|
986
|
-
{
|
987
|
-
spokenLanguage,
|
988
|
-
}
|
989
|
-
);
|
990
|
-
}
|
991
|
-
|
992
959
|
if (hasManualCaptionChanged) {
|
993
960
|
const {enabled} = current.manualCaptionControl;
|
994
961
|
|
@@ -1121,14 +1088,6 @@ export default class LocusInfo extends EventsScope {
|
|
1121
1088
|
);
|
1122
1089
|
}
|
1123
1090
|
|
1124
|
-
if (hasPollingQAControlChanged) {
|
1125
|
-
this.emitScoped(
|
1126
|
-
{file: 'locus-info', function: 'updateControls'},
|
1127
|
-
LOCUSINFO.EVENTS.CONTROLS_POLLING_QA_CHANGED,
|
1128
|
-
{state: current.pollingQAControl}
|
1129
|
-
);
|
1130
|
-
}
|
1131
|
-
|
1132
1091
|
this.controls = controls;
|
1133
1092
|
}
|
1134
1093
|
}
|
package/src/meeting/brbState.ts
CHANGED
@@ -109,11 +109,9 @@ export class BrbState {
|
|
109
109
|
// need to check if a new sync is required, because this.state.client may have changed while we were doing the current sync
|
110
110
|
this.applyClientStateToServer(sendSlotManager);
|
111
111
|
})
|
112
|
-
.catch((
|
112
|
+
.catch((e) => {
|
113
113
|
this.state.syncToServerInProgress = false;
|
114
|
-
LoggerProxy.logger.warn(`Meeting:brbState#applyClientStateToServer:
|
115
|
-
|
116
|
-
return Promise.reject(error);
|
114
|
+
LoggerProxy.logger.warn(`Meeting:brbState#applyClientStateToServer: error: ${e}`);
|
117
115
|
});
|
118
116
|
}
|
119
117
|
|
@@ -107,8 +107,6 @@ interface IInMeetingActions {
|
|
107
107
|
canEnableRemoteDesktopControl?: boolean;
|
108
108
|
canDisableRemoteDesktopControl?: boolean;
|
109
109
|
canMoveToLobby?: boolean;
|
110
|
-
canEnablePollingQA?: boolean;
|
111
|
-
canDisablePollingQA?: boolean;
|
112
110
|
}
|
113
111
|
|
114
112
|
/**
|
@@ -311,10 +309,6 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
311
309
|
|
312
310
|
canMoveToLobby = null;
|
313
311
|
|
314
|
-
canEnablePollingQA = null;
|
315
|
-
|
316
|
-
canDisablePollingQA = null;
|
317
|
-
|
318
312
|
/**
|
319
313
|
* Returns all meeting action options
|
320
314
|
* @returns {Object}
|
@@ -417,8 +411,6 @@ export default class InMeetingActions implements IInMeetingActions {
|
|
417
411
|
canEnableRemoteDesktopControl: this.canEnableRemoteDesktopControl,
|
418
412
|
canDisableRemoteDesktopControl: this.canDisableRemoteDesktopControl,
|
419
413
|
canMoveToLobby: this.canMoveToLobby,
|
420
|
-
canEnablePollingQA: this.canEnablePollingQA,
|
421
|
-
canDisablePollingQA: this.canDisablePollingQA,
|
422
414
|
});
|
423
415
|
|
424
416
|
/**
|