@webex/plugin-meetings 2.39.0 → 2.39.2
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/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/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/reconnection-in-progress.d.ts +9 -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 +924 -0
- 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/index.d.ts +120 -0
- package/dist/controls-options-manager/util.d.ts +7 -0
- package/dist/index.d.ts +4 -0
- package/dist/locus-info/controlsUtils.d.ts +2 -0
- 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/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/meeting/effectsState.d.ts +42 -0
- package/dist/meeting/in-meeting-actions.d.ts +79 -0
- package/dist/meeting/index.d.ts +1621 -0
- package/dist/meeting/muteState.d.ts +116 -0
- package/dist/meeting/request.d.ts +255 -0
- package/dist/meeting/state.d.ts +9 -0
- package/dist/meeting/util.d.ts +2 -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 +297 -0
- package/dist/meetings/request.d.ts +27 -0
- package/dist/meetings/util.d.ts +18 -0
- package/dist/member/index.d.ts +145 -0
- package/dist/member/util.d.ts +2 -0
- package/dist/members/collection.d.ts +24 -0
- package/dist/members/index.d.ts +298 -0
- package/dist/members/request.d.ts +50 -0
- package/dist/members/util.d.ts +2 -0
- package/dist/metrics/config.d.ts +169 -0
- package/dist/metrics/config.js +1 -11
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/constants.d.ts +57 -0
- package/dist/metrics/index.d.ts +152 -0
- package/dist/metrics/index.js +3 -25
- package/dist/metrics/index.js.map +1 -1
- package/dist/networkQualityMonitor/index.d.ts +70 -0
- package/dist/peer-connection-manager/index.d.ts +6 -0
- package/dist/peer-connection-manager/util.d.ts +6 -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/index.d.ts +139 -0
- package/dist/reachability/request.d.ts +35 -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/handler.d.ts +47 -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/turnDiscovery.d.ts +67 -0
- package/dist/roap/util.d.ts +2 -0
- package/dist/statsAnalyzer/global.d.ts +126 -0
- package/dist/statsAnalyzer/index.d.ts +190 -0
- package/dist/statsAnalyzer/mqaUtil.d.ts +22 -0
- package/dist/transcription/index.d.ts +64 -0
- package/package.json +18 -19
- package/src/metrics/config.ts +0 -10
- package/src/metrics/index.ts +3 -24
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare const RoapCollection: {
|
|
2
|
+
sessions: {};
|
|
3
|
+
getSession(id: any): any;
|
|
4
|
+
deleteSession(id: any): void;
|
|
5
|
+
getSessionSequence(id: any, seqId: any): any;
|
|
6
|
+
deleteSessionSequence(id: any, seqId: any): void;
|
|
7
|
+
isBusy(id: any): boolean;
|
|
8
|
+
onSessionSequenceFinish(id: any, seqId: any): void;
|
|
9
|
+
};
|
|
10
|
+
export default RoapCollection;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { StatelessWebexPlugin } from '@webex/webex-core';
|
|
2
|
+
import Meeting from '../meeting';
|
|
3
|
+
/**
|
|
4
|
+
* @class RoapHandler
|
|
5
|
+
*/
|
|
6
|
+
export default class RoapHandler extends StatelessWebexPlugin {
|
|
7
|
+
attrs: any;
|
|
8
|
+
lastRoapMessage: any;
|
|
9
|
+
options: any;
|
|
10
|
+
roapAnswer: any;
|
|
11
|
+
roapFinished: any;
|
|
12
|
+
roapOk: any;
|
|
13
|
+
constructor(attrs: any, options: any, roapOk: any, roapAnswer: any, roapFinished: any);
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @param {Object} session
|
|
17
|
+
* @param {Meeting} meeting
|
|
18
|
+
* @param {Object} action
|
|
19
|
+
* @returns {null}
|
|
20
|
+
*/
|
|
21
|
+
perform(session: any, meeting: any, action: any): void;
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* @param {String} signal
|
|
25
|
+
* @param {Object} session
|
|
26
|
+
* @param {Object} action
|
|
27
|
+
* @param {Meeting} meeting
|
|
28
|
+
* @param {String} prefix
|
|
29
|
+
* @returns {null}
|
|
30
|
+
*/
|
|
31
|
+
execute(signal: string, session: any, action: any, meeting: Meeting, prefix: string): void;
|
|
32
|
+
/**
|
|
33
|
+
*
|
|
34
|
+
* @param {Object} session
|
|
35
|
+
* @param {Object} action
|
|
36
|
+
* @param {Meeting} meeting
|
|
37
|
+
* @param {String} correlationId
|
|
38
|
+
* @returns {Boolean}
|
|
39
|
+
*/
|
|
40
|
+
handleAction(session: object, action: any, meeting: Meeting, correlationId: string): boolean;
|
|
41
|
+
/**
|
|
42
|
+
*
|
|
43
|
+
* @param {Object} action
|
|
44
|
+
* @returns {Boolean}
|
|
45
|
+
*/
|
|
46
|
+
submit(action: any): boolean;
|
|
47
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { StatelessWebexPlugin } from '@webex/webex-core';
|
|
2
|
+
import Meeting from '../meeting';
|
|
3
|
+
/**
|
|
4
|
+
* Roap options
|
|
5
|
+
* @typedef {Object} RoapOptions
|
|
6
|
+
* @property {String} sdp
|
|
7
|
+
* @property {Meeting} meeting
|
|
8
|
+
* @property {Number} roapSeq
|
|
9
|
+
* @property {Boolean} reconnect
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* @typedef {Object} SeqOptions
|
|
13
|
+
* @property {String} correlationId
|
|
14
|
+
* @property {String} mediaId
|
|
15
|
+
* @property {Number} seq
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* @class Roap
|
|
19
|
+
* @export
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
export default class Roap extends StatelessWebexPlugin {
|
|
23
|
+
attrs: any;
|
|
24
|
+
lastRoapOffer: any;
|
|
25
|
+
options: any;
|
|
26
|
+
roapHandler: any;
|
|
27
|
+
roapRequest: any;
|
|
28
|
+
turnDiscovery: any;
|
|
29
|
+
/**
|
|
30
|
+
*
|
|
31
|
+
* @param {Object} attrs
|
|
32
|
+
* @param {Object} options
|
|
33
|
+
*/
|
|
34
|
+
constructor(attrs: any, options: any);
|
|
35
|
+
/**
|
|
36
|
+
* Starts listening to mercury events for Roap messages
|
|
37
|
+
* @param {object} data event object
|
|
38
|
+
* @returns {Promise}
|
|
39
|
+
* @private
|
|
40
|
+
* @memberof Roap
|
|
41
|
+
*/
|
|
42
|
+
private roapEvent;
|
|
43
|
+
/**
|
|
44
|
+
*
|
|
45
|
+
* @param {String} correlationId correlation id of a meeting
|
|
46
|
+
* @param {Number} seq ROAP sequence number
|
|
47
|
+
* @returns {Promise}
|
|
48
|
+
* @private
|
|
49
|
+
* @memberof Roap
|
|
50
|
+
*/
|
|
51
|
+
private stop;
|
|
52
|
+
/**
|
|
53
|
+
*
|
|
54
|
+
* @param {SeqOptions} options
|
|
55
|
+
* @returns {null}
|
|
56
|
+
* @private
|
|
57
|
+
* @memberof Roap
|
|
58
|
+
*/
|
|
59
|
+
private sendRoapOK;
|
|
60
|
+
/**
|
|
61
|
+
* Sends a ROAP answer...
|
|
62
|
+
* @param {SeqOptions} options
|
|
63
|
+
* @param {Boolean} options.audioMuted
|
|
64
|
+
* @param {Boolean} options.videoMuted
|
|
65
|
+
* @returns {Promise}
|
|
66
|
+
* @private
|
|
67
|
+
* @memberof Roap
|
|
68
|
+
*/
|
|
69
|
+
private sendRoapAnswer;
|
|
70
|
+
/**
|
|
71
|
+
* Sends a ROAP error...
|
|
72
|
+
* @param {Object} session
|
|
73
|
+
* @param {Object} locus
|
|
74
|
+
* @param {String} errorType
|
|
75
|
+
* @returns {Promise}
|
|
76
|
+
* @private
|
|
77
|
+
* @memberof Roap
|
|
78
|
+
*/
|
|
79
|
+
private sendRoapError;
|
|
80
|
+
/**
|
|
81
|
+
* sends a roap media request
|
|
82
|
+
* @param {RoapOptions} options
|
|
83
|
+
* @returns {Promise}
|
|
84
|
+
* @private
|
|
85
|
+
* @memberof Roap
|
|
86
|
+
*/
|
|
87
|
+
sendRoapMediaRequest(options: any): any;
|
|
88
|
+
/**
|
|
89
|
+
* sends a roap media request
|
|
90
|
+
* @param {RoapOptions} options
|
|
91
|
+
* @returns {Promise}
|
|
92
|
+
* @private
|
|
93
|
+
* @memberof Roap
|
|
94
|
+
*/
|
|
95
|
+
sendRoapCallRequest: (options: any) => any;
|
|
96
|
+
/**
|
|
97
|
+
* Called when the roap sequence is finished (completed successfully or failed)
|
|
98
|
+
* @param {String} correlationId id of the meeting affected
|
|
99
|
+
* @param {String} sequenceId the id of the finished sequence
|
|
100
|
+
* @returns {undefined}
|
|
101
|
+
* @private
|
|
102
|
+
* @memberof Roap
|
|
103
|
+
*/
|
|
104
|
+
private roapFinished;
|
|
105
|
+
/**
|
|
106
|
+
* Performs a TURN server discovery procedure, which involves exchanging
|
|
107
|
+
* some roap messages with the server. This exchange has to be done before
|
|
108
|
+
* any other roap messages are sent
|
|
109
|
+
*
|
|
110
|
+
* @param {Meeting} meeting
|
|
111
|
+
* @param {Boolean} isReconnecting should be set to true if this is a new
|
|
112
|
+
* media connection just after a reconnection
|
|
113
|
+
* @returns {Promise}
|
|
114
|
+
*/
|
|
115
|
+
doTurnDiscovery(meeting: Meeting, isReconnecting: boolean): any;
|
|
116
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { StatelessWebexPlugin } from '@webex/webex-core';
|
|
2
|
+
/**
|
|
3
|
+
* @class RoapRequest
|
|
4
|
+
*/
|
|
5
|
+
export default class RoapRequest extends StatelessWebexPlugin {
|
|
6
|
+
/**
|
|
7
|
+
* Joins a meeting via ROAP
|
|
8
|
+
* @param {Object} options
|
|
9
|
+
* @returns {Promise} returns a promise that resolves/rejects whatever the request does
|
|
10
|
+
*/
|
|
11
|
+
attachRechabilityData(localSdp: any): any;
|
|
12
|
+
joinMeetingWithRoap(options: any): Promise<any>;
|
|
13
|
+
/**
|
|
14
|
+
* Sends a ROAP message
|
|
15
|
+
* @param {Object} options
|
|
16
|
+
* @param {Object} options.roapMessage
|
|
17
|
+
* @param {String} options.locusSelfUrl
|
|
18
|
+
* @param {String} options.mediaId
|
|
19
|
+
* @param {String} options.correlationId
|
|
20
|
+
* @param {Boolean} options.audioMuted
|
|
21
|
+
* @param {Boolean} options.videoMuted
|
|
22
|
+
* @param {String} options.meetingId
|
|
23
|
+
* @returns {Promise} returns the response/failure of the request
|
|
24
|
+
*/
|
|
25
|
+
sendRoap(options: {
|
|
26
|
+
roapMessage: any;
|
|
27
|
+
locusSelfUrl: string;
|
|
28
|
+
mediaId: string;
|
|
29
|
+
correlationId: string;
|
|
30
|
+
audioMuted: boolean;
|
|
31
|
+
videoMuted: boolean;
|
|
32
|
+
meetingId: string;
|
|
33
|
+
preferTranscoding?: boolean;
|
|
34
|
+
}): any;
|
|
35
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import RoapRequest from './request';
|
|
2
|
+
import Meeting from '../meeting';
|
|
3
|
+
/**
|
|
4
|
+
* Handles the process of finding out TURN server information from Linus.
|
|
5
|
+
* This is achieved by sending a TURN_DISCOVERY_REQUEST.
|
|
6
|
+
*/
|
|
7
|
+
export default class TurnDiscovery {
|
|
8
|
+
private roapRequest;
|
|
9
|
+
private defer?;
|
|
10
|
+
private turnInfo;
|
|
11
|
+
private responseTimer?;
|
|
12
|
+
/**
|
|
13
|
+
* Constructor
|
|
14
|
+
*
|
|
15
|
+
* @param {RoapRequest} roapRequest
|
|
16
|
+
*/
|
|
17
|
+
constructor(roapRequest: RoapRequest);
|
|
18
|
+
/**
|
|
19
|
+
* waits for TURN_DISCOVERY_RESPONSE message to arrive
|
|
20
|
+
*
|
|
21
|
+
* @returns {Promise}
|
|
22
|
+
* @private
|
|
23
|
+
* @memberof Roap
|
|
24
|
+
*/
|
|
25
|
+
private waitForTurnDiscoveryResponse;
|
|
26
|
+
/**
|
|
27
|
+
* handles TURN_DISCOVERY_RESPONSE roap message
|
|
28
|
+
*
|
|
29
|
+
* @param {Object} roapMessage
|
|
30
|
+
* @returns {void}
|
|
31
|
+
* @public
|
|
32
|
+
* @memberof Roap
|
|
33
|
+
*/
|
|
34
|
+
handleTurnDiscoveryResponse(roapMessage: object): void;
|
|
35
|
+
/**
|
|
36
|
+
* sends the TURN_DISCOVERY_REQUEST roap request
|
|
37
|
+
*
|
|
38
|
+
* @param {Meeting} meeting
|
|
39
|
+
* @param {Boolean} isReconnecting
|
|
40
|
+
* @returns {Promise}
|
|
41
|
+
* @private
|
|
42
|
+
* @memberof Roap
|
|
43
|
+
*/
|
|
44
|
+
private sendRoapTurnDiscoveryRequest;
|
|
45
|
+
/**
|
|
46
|
+
* Sends the OK message that server expects to receive
|
|
47
|
+
* after it sends us TURN_DISCOVERY_RESPONSE
|
|
48
|
+
*
|
|
49
|
+
* @param {Meeting} meeting
|
|
50
|
+
* @returns {Promise}
|
|
51
|
+
*/
|
|
52
|
+
sendRoapOK(meeting: Meeting): any;
|
|
53
|
+
/**
|
|
54
|
+
* Retrieves TURN server information from the backend by doing
|
|
55
|
+
* a roap message exchange:
|
|
56
|
+
* client server
|
|
57
|
+
* | -----TURN_DISCOVERY_REQUEST-----> |
|
|
58
|
+
* | <----TURN_DISCOVERY_RESPONSE----- |
|
|
59
|
+
* | --------------OK----------------> |
|
|
60
|
+
*
|
|
61
|
+
* @param {Meeting} meeting
|
|
62
|
+
* @param {Boolean} isReconnecting should be set to true if this is a new
|
|
63
|
+
* media connection just after a reconnection
|
|
64
|
+
* @returns {Promise}
|
|
65
|
+
*/
|
|
66
|
+
doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean): any;
|
|
67
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
declare const STATS_DEFAULT: {
|
|
2
|
+
encryption: string;
|
|
3
|
+
audio: {
|
|
4
|
+
send: {
|
|
5
|
+
maxPacketLossRatio: number;
|
|
6
|
+
availableBandwidth: number;
|
|
7
|
+
bytesSent: number;
|
|
8
|
+
meanRemoteJitter: any[];
|
|
9
|
+
meanRoundTripTime: any[];
|
|
10
|
+
};
|
|
11
|
+
recv: {
|
|
12
|
+
availableBandwidth: number;
|
|
13
|
+
bytesReceived: number;
|
|
14
|
+
meanRtpJitter: any[];
|
|
15
|
+
meanRoundTripTime: any[];
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
video: {
|
|
19
|
+
send: {
|
|
20
|
+
maxPacketLossRatio: number;
|
|
21
|
+
availableBandwidth: number;
|
|
22
|
+
meanRemoteJitter: any[];
|
|
23
|
+
meanRoundTripTime: any[];
|
|
24
|
+
};
|
|
25
|
+
recv: {
|
|
26
|
+
availableBandwidth: number;
|
|
27
|
+
totalPacketsLost: number;
|
|
28
|
+
meanRtpJitter: any[];
|
|
29
|
+
meanRoundTripTime: any[];
|
|
30
|
+
};
|
|
31
|
+
latency: number;
|
|
32
|
+
packetsLost: number;
|
|
33
|
+
};
|
|
34
|
+
share: {
|
|
35
|
+
send: {
|
|
36
|
+
maxPacketLossRatio: number;
|
|
37
|
+
availableBandwidth: number;
|
|
38
|
+
totalPacketsLost: number;
|
|
39
|
+
meanRemoteJitter: any[];
|
|
40
|
+
meanRoundTripTime: any[];
|
|
41
|
+
};
|
|
42
|
+
recv: {
|
|
43
|
+
availableBandwidth: number;
|
|
44
|
+
meanRtpJitter: any[];
|
|
45
|
+
meanRoundTripTime: any[];
|
|
46
|
+
};
|
|
47
|
+
latency: number;
|
|
48
|
+
packetsLost: number;
|
|
49
|
+
};
|
|
50
|
+
bandwidth: {
|
|
51
|
+
systemBandwidth: number;
|
|
52
|
+
sentPerSecond: number;
|
|
53
|
+
encodedPerSecond: number;
|
|
54
|
+
helper: {
|
|
55
|
+
audioBytesSent: number;
|
|
56
|
+
videoBytestSent: number;
|
|
57
|
+
};
|
|
58
|
+
speed: number;
|
|
59
|
+
};
|
|
60
|
+
results: {};
|
|
61
|
+
connectionType: {
|
|
62
|
+
systemNetworkType: string;
|
|
63
|
+
systemIpAddress: string;
|
|
64
|
+
local: {
|
|
65
|
+
candidateType: any[];
|
|
66
|
+
transport: any[];
|
|
67
|
+
ipAddress: any[];
|
|
68
|
+
networkType: any[];
|
|
69
|
+
};
|
|
70
|
+
remote: {
|
|
71
|
+
candidateType: any[];
|
|
72
|
+
transport: any[];
|
|
73
|
+
ipAddress: any[];
|
|
74
|
+
networkType: any[];
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
resolutions: {
|
|
78
|
+
audio: {
|
|
79
|
+
send: {
|
|
80
|
+
width: number;
|
|
81
|
+
height: number;
|
|
82
|
+
};
|
|
83
|
+
recv: {
|
|
84
|
+
width: number;
|
|
85
|
+
height: number;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
video: {
|
|
89
|
+
send: {
|
|
90
|
+
width: number;
|
|
91
|
+
height: number;
|
|
92
|
+
};
|
|
93
|
+
recv: {
|
|
94
|
+
width: number;
|
|
95
|
+
height: number;
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
share: {
|
|
99
|
+
send: {
|
|
100
|
+
width: number;
|
|
101
|
+
height: number;
|
|
102
|
+
};
|
|
103
|
+
recv: {
|
|
104
|
+
width: number;
|
|
105
|
+
height: number;
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
internal: {
|
|
110
|
+
audio: {
|
|
111
|
+
send: {};
|
|
112
|
+
recv: {};
|
|
113
|
+
};
|
|
114
|
+
video: {
|
|
115
|
+
send: {};
|
|
116
|
+
recv: {};
|
|
117
|
+
};
|
|
118
|
+
share: {
|
|
119
|
+
send: {};
|
|
120
|
+
recv: {};
|
|
121
|
+
};
|
|
122
|
+
remote: {};
|
|
123
|
+
candidates: {};
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
export default STATS_DEFAULT;
|
|
@@ -0,0 +1,190 @@
|
|
|
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
|
+
localMQEStats: any;
|
|
24
|
+
meetingMediaStatus: any;
|
|
25
|
+
mqaInterval: NodeJS.Timeout;
|
|
26
|
+
mqaSentCount: any;
|
|
27
|
+
networkQualityMonitor: any;
|
|
28
|
+
peerConnection: any;
|
|
29
|
+
statsInterval: NodeJS.Timeout;
|
|
30
|
+
statsResults: any;
|
|
31
|
+
statsStarted: any;
|
|
32
|
+
/**
|
|
33
|
+
* Creates a new instance of StatsAnalyzer
|
|
34
|
+
* @constructor
|
|
35
|
+
* @public
|
|
36
|
+
* @param {Object} config SDK Configuration Object
|
|
37
|
+
* @param {Object} networkQualityMonitor class for assessing network characteristics (jitter, packetLoss, latency)
|
|
38
|
+
* @param {Object} statsResults Default properties for stats
|
|
39
|
+
*/
|
|
40
|
+
constructor(config: any, networkQualityMonitor?: object, statsResults?: object);
|
|
41
|
+
populateResults(lastMqa: any): void;
|
|
42
|
+
resetStatsResults(): void;
|
|
43
|
+
/**
|
|
44
|
+
* sets mediaStatus status for analyzing metrics
|
|
45
|
+
*
|
|
46
|
+
* @public
|
|
47
|
+
* @param {Object} status for the audio and video
|
|
48
|
+
* @memberof StatsAnalyzer
|
|
49
|
+
* @returns {void}
|
|
50
|
+
*/
|
|
51
|
+
updateMediaStatus(status: object): void;
|
|
52
|
+
/**
|
|
53
|
+
* captures MQA data from peerconnection
|
|
54
|
+
*
|
|
55
|
+
* @public
|
|
56
|
+
* @memberof StatsAnalyzer
|
|
57
|
+
* @returns {void}
|
|
58
|
+
*/
|
|
59
|
+
sendMqaData(): void;
|
|
60
|
+
/**
|
|
61
|
+
* updated the peerconnection when changed
|
|
62
|
+
*
|
|
63
|
+
* @private
|
|
64
|
+
* @memberof updatePeerconnection
|
|
65
|
+
* @param {PeerConnection} peerConnection
|
|
66
|
+
* @returns {void}
|
|
67
|
+
*/
|
|
68
|
+
updatePeerconnection(peerConnection: any): void;
|
|
69
|
+
/**
|
|
70
|
+
* Starts the stats analyzer on interval
|
|
71
|
+
*
|
|
72
|
+
* @public
|
|
73
|
+
* @memberof StatsAnalyzer
|
|
74
|
+
* @param {PeerConnection} peerConnection
|
|
75
|
+
* @returns {Promise}
|
|
76
|
+
*/
|
|
77
|
+
startAnalyzer(peerConnection: any): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Cleans up the analyzer when done
|
|
80
|
+
*
|
|
81
|
+
* @public
|
|
82
|
+
* @memberof StatsAnalyzer
|
|
83
|
+
* @returns {void}
|
|
84
|
+
*/
|
|
85
|
+
stopAnalyzer(): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Parse a single result of get stats
|
|
88
|
+
*
|
|
89
|
+
* @private
|
|
90
|
+
* @param {*} getStatsResult
|
|
91
|
+
* @param {String} type
|
|
92
|
+
* @param {boolean} isSender
|
|
93
|
+
* @returns {void}
|
|
94
|
+
* @memberof StatsAnalyzer
|
|
95
|
+
*/
|
|
96
|
+
private parseGetStatsResult;
|
|
97
|
+
/**
|
|
98
|
+
* Filters the get stats results for types
|
|
99
|
+
* @private
|
|
100
|
+
* @param {Array} getStatsResults
|
|
101
|
+
* @param {String} type
|
|
102
|
+
* @param {boolean} isSender
|
|
103
|
+
* @returns {void}
|
|
104
|
+
*/
|
|
105
|
+
private filterAndParseGetStatsResults;
|
|
106
|
+
/**
|
|
107
|
+
* parse the audio
|
|
108
|
+
* @param {String} result
|
|
109
|
+
* @param {boolean} type
|
|
110
|
+
* @returns {void}
|
|
111
|
+
*/
|
|
112
|
+
parseAudioSource(result: any, type: any): void;
|
|
113
|
+
/**
|
|
114
|
+
* emits started/stopped events for local/remote media by checking
|
|
115
|
+
* if given values are increasing or not. The previousValue, currentValue
|
|
116
|
+
* params can be any numerical value like number of receive packets or
|
|
117
|
+
* decoded frames, etc.
|
|
118
|
+
*
|
|
119
|
+
* @private
|
|
120
|
+
* @param {string} mediaType
|
|
121
|
+
* @param {number} previousValue - value to compare
|
|
122
|
+
* @param {number} currentValue - value to compare (must be same type of value as previousValue)
|
|
123
|
+
* @param {boolean} isLocal - true if stats are for local media being sent out, false for remote media being received
|
|
124
|
+
* @memberof StatsAnalyzer
|
|
125
|
+
* @returns {void}
|
|
126
|
+
*/
|
|
127
|
+
emitStartStopEvents: (mediaType: string, previousValue: number, currentValue: number, isLocal: boolean) => void;
|
|
128
|
+
/**
|
|
129
|
+
* compares current and previous stats to check if packets are not sent
|
|
130
|
+
*
|
|
131
|
+
* @private
|
|
132
|
+
* @memberof StatsAnalyzer
|
|
133
|
+
* @returns {void}
|
|
134
|
+
*/
|
|
135
|
+
private compareLastStatsResult;
|
|
136
|
+
/**
|
|
137
|
+
* Does a `getStats` on all the transceivers and parses the results
|
|
138
|
+
*
|
|
139
|
+
* @private
|
|
140
|
+
* @memberof StatsAnalyzer
|
|
141
|
+
* @returns {Promise}
|
|
142
|
+
*/
|
|
143
|
+
private getStatsAndParse;
|
|
144
|
+
/**
|
|
145
|
+
* Processes OutboundRTP stats result and stores
|
|
146
|
+
* @private
|
|
147
|
+
* @param {*} result
|
|
148
|
+
* @param {*} type
|
|
149
|
+
* @returns {void}
|
|
150
|
+
*/
|
|
151
|
+
private processOutboundRTPResult;
|
|
152
|
+
/**
|
|
153
|
+
* Processes InboundRTP stats result and stores
|
|
154
|
+
* @private
|
|
155
|
+
* @param {*} result
|
|
156
|
+
* @param {*} type
|
|
157
|
+
* @returns {void}
|
|
158
|
+
*/
|
|
159
|
+
private processInboundRTPResult;
|
|
160
|
+
/**
|
|
161
|
+
* Processes remote and local candidate result and stores
|
|
162
|
+
* @private
|
|
163
|
+
* @param {*} result
|
|
164
|
+
* @param {*} type
|
|
165
|
+
* @param {boolean} isSender
|
|
166
|
+
* @param {boolean} isRemote
|
|
167
|
+
*
|
|
168
|
+
* @returns {void}
|
|
169
|
+
*/
|
|
170
|
+
parseCandidate: (result: any, type: any, isSender: boolean, isRemote: boolean) => void;
|
|
171
|
+
/**
|
|
172
|
+
* Process Track results
|
|
173
|
+
*
|
|
174
|
+
* @private
|
|
175
|
+
* @param {*} result
|
|
176
|
+
* @param {*} mediaType
|
|
177
|
+
* @returns {void}
|
|
178
|
+
* @memberof StatsAnalyzer
|
|
179
|
+
*/
|
|
180
|
+
private processTrackResult;
|
|
181
|
+
/**
|
|
182
|
+
*
|
|
183
|
+
* @private
|
|
184
|
+
* @param {*} result
|
|
185
|
+
* @param {*} type
|
|
186
|
+
* @returns {void}
|
|
187
|
+
* @memberof StatsAnalyzer
|
|
188
|
+
*/
|
|
189
|
+
private compareSentAndReceived;
|
|
190
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare const getAudioReceiverMqa: ({ audioReceiver, statsResults, lastMqaDataSent }: {
|
|
2
|
+
audioReceiver: any;
|
|
3
|
+
statsResults: any;
|
|
4
|
+
lastMqaDataSent: any;
|
|
5
|
+
}) => void;
|
|
6
|
+
export declare const getAudioSenderMqa: ({ audioSender, statsResults, lastMqaDataSent }: {
|
|
7
|
+
audioSender: any;
|
|
8
|
+
statsResults: any;
|
|
9
|
+
lastMqaDataSent: any;
|
|
10
|
+
}) => void;
|
|
11
|
+
export declare const getVideoReceiverMqa: ({ videoReceiver, statsResults, lastMqaDataSent, isShareStream, }: {
|
|
12
|
+
videoReceiver: any;
|
|
13
|
+
statsResults: any;
|
|
14
|
+
lastMqaDataSent: any;
|
|
15
|
+
isShareStream?: boolean;
|
|
16
|
+
}) => void;
|
|
17
|
+
export declare const getVideoSenderMqa: ({ videoSender, statsResults, lastMqaDataSent, isShareStream, }: {
|
|
18
|
+
videoSender: any;
|
|
19
|
+
statsResults: any;
|
|
20
|
+
lastMqaDataSent: any;
|
|
21
|
+
isShareStream?: boolean;
|
|
22
|
+
}) => 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
|
+
}
|