@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
@@ -1,86 +0,0 @@
1
- import { StatelessWebexPlugin } from '@webex/webex-core';
2
- import TurnDiscovery, { TurnDiscoveryResult } from './turnDiscovery';
3
- import Meeting from '../meeting';
4
- export { type TurnDiscoveryResult, type TurnServerInfo, type TurnDiscoverySkipReason, } from './turnDiscovery';
5
- /**
6
- * Roap options
7
- * @typedef {Object} RoapOptions
8
- * @property {String} sdp
9
- * @property {Meeting} meeting
10
- * @property {Number} seq
11
- * @property {Number} tieBreaker
12
- * @property {Boolean} reconnect
13
- */
14
- /**
15
- * @typedef {Object} SeqOptions
16
- * @property {String} correlationId
17
- * @property {String} mediaId
18
- * @property {Number} seq
19
- */
20
- /**
21
- * @class Roap
22
- * @export
23
- * @private
24
- */
25
- export default class Roap extends StatelessWebexPlugin {
26
- attrs: any;
27
- lastRoapOffer: any;
28
- options: any;
29
- roapHandler: any;
30
- roapRequest: any;
31
- turnDiscovery: TurnDiscovery;
32
- /**
33
- *
34
- * @param {Object} attrs
35
- * @param {Object} options
36
- */
37
- constructor(attrs: any, options: any);
38
- /**
39
- *
40
- * @param {SeqOptions} options
41
- * @returns {null}
42
- * @memberof Roap
43
- */
44
- sendRoapOK(options: any): Promise<any>;
45
- /**
46
- * Sends a ROAP answer...
47
- * @param {SeqOptions} options
48
- * @param {Boolean} options.audioMuted
49
- * @param {Boolean} options.videoMuted
50
- * @returns {Promise}
51
- * @memberof Roap
52
- */
53
- sendRoapAnswer(options: any): any;
54
- /**
55
- * Sends a ROAP error...
56
- * @param {Object} options
57
- * @returns {Promise}
58
- * @memberof Roap
59
- */
60
- sendRoapError(options: any): any;
61
- /**
62
- * sends a roap media request
63
- * @param {RoapOptions} options
64
- * @returns {Promise}
65
- * @memberof Roap
66
- */
67
- sendRoapMediaRequest(options: any): any;
68
- /**
69
- * Performs a TURN server discovery procedure, which involves exchanging
70
- * some roap messages with the server. This exchange has to be done before
71
- * any other roap messages are sent
72
- *
73
- * @param {Meeting} meeting
74
- * @param {Boolean} isReconnecting should be set to true if this is a new
75
- * media connection just after a reconnection
76
- * @param {Boolean} [isForced]
77
- * @returns {Promise}
78
- */
79
- doTurnDiscovery(meeting: Meeting, isReconnecting: boolean, isForced?: boolean): Promise<TurnDiscoveryResult>;
80
- generateTurnDiscoveryRequestMessage(meeting: Meeting, isForced: boolean): Promise<{
81
- roapMessage?: object;
82
- turnDiscoverySkippedReason: string;
83
- }>;
84
- handleTurnDiscoveryHttpResponse(meeting: Meeting, httpResponse: object): Promise<TurnDiscoveryResult>;
85
- abortTurnDiscovery(): void;
86
- }
@@ -1,39 +0,0 @@
1
- import { StatelessWebexPlugin } from '@webex/webex-core';
2
- import { IP_VERSION } from '../constants';
3
- import { LocusMediaRequest } from '../meeting/locusMediaRequest';
4
- /**
5
- * @class RoapRequest
6
- */
7
- export default class RoapRequest extends StatelessWebexPlugin {
8
- /**
9
- * Returns reachability data.
10
- * @param {Object} localSdp
11
- * @returns {Object}
12
- */
13
- attachReachabilityData(localSdp: any): Promise<{
14
- localSdp: any;
15
- joinCookie: any;
16
- }>;
17
- /**
18
- * Sends a ROAP message
19
- * @param {Object} options
20
- * @param {Object} options.roapMessage
21
- * @param {String} options.locusSelfUrl
22
- * @param {String} options.mediaId
23
- * @param {String} options.correlationId
24
- * @param {String} options.meetingId
25
- * @param {IP_VERSION} options.ipVersion only required for offers
26
- * @returns {Promise} returns the response/failure of the request
27
- */
28
- sendRoap(options: {
29
- roapMessage: any;
30
- locusSelfUrl: string;
31
- mediaId: string;
32
- meetingId: string;
33
- ipVersion?: IP_VERSION;
34
- locusMediaRequest?: LocusMediaRequest;
35
- }): Promise<{
36
- mediaConnections: any;
37
- locus: any;
38
- }>;
39
- }
@@ -1,155 +0,0 @@
1
- import { Enum } from '../constants';
2
- import RoapRequest from './request';
3
- import Meeting from '../meeting';
4
- declare const TurnDiscoverySkipReason: {
5
- readonly missingHttpResponse: "missing http response";
6
- readonly reachability: "reachability";
7
- readonly alreadyInProgress: "already in progress";
8
- };
9
- export type TurnDiscoverySkipReason = Enum<typeof TurnDiscoverySkipReason> | string | undefined;
10
- export type TurnServerInfo = {
11
- url: string;
12
- username: string;
13
- password: string;
14
- };
15
- export type TurnDiscoveryResult = {
16
- turnServerInfo?: TurnServerInfo;
17
- turnDiscoverySkippedReason: TurnDiscoverySkipReason;
18
- };
19
- /**
20
- * Handles the process of finding out TURN server information from Linus.
21
- * This is achieved by sending a TURN_DISCOVERY_REQUEST.
22
- */
23
- export default class TurnDiscovery {
24
- private roapRequest;
25
- private defer?;
26
- private turnInfo;
27
- private responseTimer?;
28
- /**
29
- * Constructor
30
- *
31
- * @param {RoapRequest} roapRequest
32
- */
33
- constructor(roapRequest: RoapRequest);
34
- /**
35
- * waits for TURN_DISCOVERY_RESPONSE message to arrive
36
- *
37
- * @returns {Promise}
38
- * @private
39
- * @memberof Roap
40
- */
41
- private waitForTurnDiscoveryResponse;
42
- /**
43
- * Handles TURN_DISCOVERY_RESPONSE roap message. Use it if the roap message comes over the websocket,
44
- * otherwise use handleTurnDiscoveryHttpResponse() if it comes in the http response.
45
- *
46
- * @param {Object} roapMessage
47
- * @param {string} from string to indicate how we got the response (used just for logging)
48
- * @returns {void}
49
- * @public
50
- * @memberof Roap
51
- */
52
- handleTurnDiscoveryResponse(roapMessage: any, from: string): void;
53
- /**
54
- * Generates TURN_DISCOVERY_REQUEST roap message. When this method returns a roapMessage, it means that a TURN discovery process has started.
55
- * It needs be ended by calling handleTurnDiscoveryHttpResponse() once you get a response from the backend. If you don't get any response
56
- * or want to abort, you need to call abort().
57
- *
58
- * @param {Meeting} meeting
59
- * @param {boolean} isForced
60
- * @returns {Object}
61
- */
62
- generateTurnDiscoveryRequestMessage(meeting: Meeting, isForced: boolean): Promise<{
63
- roapMessage?: object;
64
- turnDiscoverySkippedReason: TurnDiscoverySkipReason;
65
- }>;
66
- /**
67
- * Handles any errors that occur during TURN discovery without re-throwing them.
68
- *
69
- * @param {Meeting} meeting
70
- * @param {Error} error
71
- * @returns {TurnDiscoveryResult}
72
- */
73
- private handleTurnDiscoveryFailure;
74
- /**
75
- * Handles TURN_DISCOVERY_RESPONSE roap message that came in http response. If the response is not valid,
76
- * it returns an object with turnServerInfo set to undefined. In that case you need to call abort()
77
- * to end the TURN discovery process.
78
- *
79
- * @param {Meeting} meeting
80
- * @param {Object|undefined} httpResponse can be undefined to indicate that we didn't get the response
81
- * @returns {Promise<TurnDiscoveryResult>}
82
- * @memberof Roap
83
- */
84
- handleTurnDiscoveryHttpResponse(meeting: Meeting, httpResponse?: object): Promise<TurnDiscoveryResult>;
85
- /**
86
- * Aborts current TURN discovery. This method needs to be called if you called generateTurnDiscoveryRequestMessage(),
87
- * but then never got any response from the server.
88
- * @returns {void}
89
- */
90
- abort(): void;
91
- /**
92
- * Parses the TURN_DISCOVERY_RESPONSE roap message out of the http response
93
- * and returns it.
94
- *
95
- * @param {Meeting} meeting
96
- * @param {any} httpResponse
97
- * @returns {any}
98
- */
99
- private parseHttpTurnDiscoveryResponse;
100
- /**
101
- * sends the TURN_DISCOVERY_REQUEST roap request
102
- *
103
- * @param {Meeting} meeting
104
- * @param {Boolean} isReconnecting
105
- * @returns {Promise}
106
- * @private
107
- * @memberof Roap
108
- */
109
- private sendRoapTurnDiscoveryRequest;
110
- /**
111
- * Sends the OK message that server expects to receive
112
- * after it sends us TURN_DISCOVERY_RESPONSE
113
- *
114
- * @param {Meeting} meeting
115
- * @returns {Promise}
116
- */
117
- sendRoapOK(meeting: Meeting): Promise<{
118
- mediaConnections: any;
119
- locus: any;
120
- }>;
121
- /**
122
- * Gets the reason why reachability is skipped.
123
- *
124
- * @param {Meeting} meeting
125
- * @returns {Promise<string>} Promise with empty string if reachability is not skipped or a reason if it is skipped
126
- */
127
- private getSkipReason;
128
- /**
129
- * Checks if TURN discovery is skipped.
130
- *
131
- * @param {Meeting} meeting
132
- * @returns {Boolean} true if TURN discovery is being skipped, false if it is being done
133
- */
134
- isSkipped(meeting: any): Promise<boolean>;
135
- /**
136
- * Retrieves TURN server information from the backend by doing
137
- * a roap message exchange:
138
- * client server
139
- * | -----TURN_DISCOVERY_REQUEST-----> |
140
- * | <----TURN_DISCOVERY_RESPONSE----- |
141
- * | --------------OK----------------> |
142
- *
143
- * This TURN discovery roap exchange is always done with seq=0.
144
- * The RoapMediaConnection SDP exchange always starts with seq=1,
145
- * so it works fine no matter if TURN discovery is done or not.
146
- *
147
- * @param {Meeting} meeting
148
- * @param {Boolean} [isReconnecting] should be set to true if this is a new
149
- * media connection just after a reconnection
150
- * @param {Boolean} [isForced]
151
- * @returns {Promise}
152
- */
153
- doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean, isForced?: boolean): Promise<TurnDiscoveryResult>;
154
- }
155
- export {};
@@ -1,4 +0,0 @@
1
- declare const RTC_METRICS: {
2
- APP_ID: string;
3
- };
4
- export { RTC_METRICS as default };
@@ -1,61 +0,0 @@
1
- /**
2
- * Rtc Metrics
3
- */
4
- export default class RtcMetrics {
5
- /**
6
- * Array of MetricData items to be sent to the metrics service.
7
- */
8
- metricsQueue: any[];
9
- intervalId: number;
10
- webex: any;
11
- meetingId: string;
12
- correlationId: string;
13
- connectionId: string;
14
- /**
15
- * Initialize the interval.
16
- *
17
- * @param {object} webex - The main `webex` object.
18
- * @param {string} meetingId - The meeting id.
19
- * @param {string} correlationId - The correlation id.
20
- */
21
- constructor(webex: any, meetingId: any, correlationId: any);
22
- /**
23
- * Check to see if the metrics queue has any items.
24
- *
25
- * @returns {void}
26
- */
27
- sendMetricsInQueue(): void;
28
- /**
29
- * Add metrics items to the metrics queue.
30
- *
31
- * @param {object} data - An object with a payload array of metrics items.
32
- *
33
- * @returns {void}
34
- */
35
- addMetrics(data: any): void;
36
- /**
37
- * Clear the metrics interval.
38
- *
39
- * @returns {void}
40
- */
41
- closeMetrics(): void;
42
- /**
43
- * Anonymize IP addresses.
44
- *
45
- * @param {array} stats - An RTCStatsReport organized into an array of strings.
46
- * @returns {string}
47
- */
48
- anonymizeIp(stats: string): string;
49
- /**
50
- * Set a new connection id.
51
- *
52
- * @returns {void}
53
- */
54
- private setNewConnectionId;
55
- /**
56
- * Send metrics to the metrics service.
57
- *
58
- * @returns {void}
59
- */
60
- private sendMetrics;
61
- }
@@ -1,36 +0,0 @@
1
- declare const STATS_DEFAULT: {
2
- encryption: string;
3
- bandwidth: {
4
- systemBandwidth: number;
5
- sentPerSecond: number;
6
- encodedPerSecond: number;
7
- helper: {
8
- audioBytesSent: number;
9
- videoBytestSent: number;
10
- };
11
- speed: number;
12
- };
13
- results: {};
14
- connectionType: {
15
- systemNetworkType: string;
16
- systemIpAddress: string;
17
- local: {
18
- candidateType: any[];
19
- transport: any[];
20
- ipAddress: any[];
21
- networkType: any[];
22
- };
23
- remote: {
24
- candidateType: any[];
25
- transport: any[];
26
- ipAddress: any[];
27
- networkType: any[];
28
- };
29
- };
30
- resolutions: {};
31
- internal: {
32
- remote: {};
33
- candidates: {};
34
- };
35
- };
36
- export default STATS_DEFAULT;
@@ -1,217 +0,0 @@
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 {};
@@ -1,48 +0,0 @@
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;