@webex/plugin-meetings 3.0.0-stream-classes.4 → 3.0.0-test.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 +12 -0
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/common/errors/no-meeting-info.js +51 -0
- package/dist/common/errors/no-meeting-info.js.map +1 -0
- package/dist/common/errors/reclaim-host-role-errors.js +158 -0
- package/dist/common/errors/reclaim-host-role-errors.js.map +1 -0
- package/dist/common/errors/webex-errors.js +23 -3
- package/dist/common/errors/webex-errors.js.map +1 -1
- package/dist/common/logs/request.js +5 -1
- package/dist/common/logs/request.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.js +69 -9
- package/dist/constants.js.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/interceptors/index.js +15 -0
- package/dist/interceptors/index.js.map +1 -0
- package/dist/interceptors/locusRetry.js +93 -0
- package/dist/interceptors/locusRetry.js.map +1 -0
- package/dist/interpretation/index.js +16 -2
- package/dist/interpretation/index.js.map +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.js +40 -11
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/mediaSharesUtils.js +15 -1
- package/dist/locus-info/mediaSharesUtils.js.map +1 -1
- package/dist/locus-info/parser.js +42 -21
- package/dist/locus-info/parser.js.map +1 -1
- package/dist/media/index.js +10 -6
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js +13 -3
- package/dist/media/properties.js.map +1 -1
- package/dist/mediaQualityMetrics/config.js +135 -330
- package/dist/mediaQualityMetrics/config.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +4 -0
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +2187 -1074
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +37 -25
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/request.js +34 -19
- package/dist/meeting/request.js.map +1 -1
- package/dist/meeting/util.js +71 -0
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +48 -23
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +25 -4
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meeting-info/utilv2.js +1 -1
- package/dist/meeting-info/utilv2.js.map +1 -1
- package/dist/meetings/collection.js +17 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +142 -57
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/util.js +2 -6
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +9 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +11 -0
- package/dist/member/util.js.map +1 -1
- package/dist/members/index.js +17 -1
- package/dist/members/index.js.map +1 -1
- package/dist/members/types.js.map +1 -1
- package/dist/members/util.js +15 -4
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/constants.js +15 -1
- package/dist/metrics/constants.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +1 -1
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/remoteMediaGroup.js +16 -2
- package/dist/multistream/remoteMediaGroup.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +222 -73
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/multistream/sendSlotManager.js +22 -0
- package/dist/multistream/sendSlotManager.js.map +1 -1
- package/dist/reachability/clusterReachability.js +356 -0
- package/dist/reachability/clusterReachability.js.map +1 -0
- package/dist/reachability/index.js +262 -432
- package/dist/reachability/index.js.map +1 -1
- package/dist/reachability/request.js +1 -1
- package/dist/reachability/request.js.map +1 -1
- package/dist/reachability/util.js +29 -0
- package/dist/reachability/util.js.map +1 -0
- package/dist/reconnection-manager/index.js +113 -96
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/index.js +57 -25
- package/dist/roap/index.js.map +1 -1
- package/dist/roap/request.js +5 -13
- package/dist/roap/request.js.map +1 -1
- package/dist/roap/turnDiscovery.js +173 -81
- package/dist/roap/turnDiscovery.js.map +1 -1
- package/dist/rtcMetrics/index.js +68 -6
- package/dist/rtcMetrics/index.js.map +1 -1
- package/dist/statsAnalyzer/index.js +338 -289
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/statsAnalyzer/mqaUtil.js +296 -156
- package/dist/statsAnalyzer/mqaUtil.js.map +1 -1
- package/dist/types/common/errors/no-meeting-info.d.ts +14 -0
- package/dist/types/common/errors/reclaim-host-role-errors.d.ts +60 -0
- package/dist/types/common/errors/webex-errors.d.ts +13 -1
- package/dist/types/common/logs/request.d.ts +2 -0
- package/dist/types/config.d.ts +1 -1
- package/dist/types/constants.d.ts +66 -13
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interceptors/index.d.ts +2 -0
- package/dist/types/interceptors/locusRetry.d.ts +27 -0
- package/dist/types/locus-info/index.d.ts +1 -1
- package/dist/types/locus-info/parser.d.ts +3 -2
- package/dist/types/mediaQualityMetrics/config.d.ts +99 -223
- package/dist/types/meeting/in-meeting-actions.d.ts +4 -0
- package/dist/types/meeting/index.d.ts +285 -34
- package/dist/types/meeting/locusMediaRequest.d.ts +1 -2
- package/dist/types/meeting/muteState.d.ts +2 -8
- package/dist/types/meeting/request.d.ts +4 -1
- package/dist/types/meeting/util.d.ts +25 -1
- package/dist/types/meeting-info/index.d.ts +7 -0
- package/dist/types/meeting-info/meeting-info-v2.d.ts +1 -0
- package/dist/types/meetings/collection.d.ts +9 -0
- package/dist/types/meetings/index.d.ts +42 -14
- package/dist/types/member/index.d.ts +1 -0
- package/dist/types/members/types.d.ts +1 -0
- package/dist/types/members/util.d.ts +5 -0
- package/dist/types/metrics/constants.d.ts +15 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +2 -0
- package/dist/types/multistream/remoteMediaGroup.d.ts +2 -0
- package/dist/types/multistream/remoteMediaManager.d.ts +25 -1
- package/dist/types/multistream/sendSlotManager.d.ts +9 -0
- package/dist/types/reachability/clusterReachability.d.ts +109 -0
- package/dist/types/reachability/index.d.ts +59 -112
- package/dist/types/reachability/request.d.ts +1 -1
- package/dist/types/reachability/util.d.ts +8 -0
- package/dist/types/reconnection-manager/index.d.ts +10 -0
- package/dist/types/roap/index.d.ts +2 -1
- package/dist/types/roap/request.d.ts +2 -1
- package/dist/types/roap/turnDiscovery.d.ts +21 -4
- package/dist/types/rtcMetrics/index.d.ts +15 -1
- package/dist/types/statsAnalyzer/index.d.ts +28 -11
- package/dist/types/statsAnalyzer/mqaUtil.d.ts +28 -4
- package/dist/types/webinar/collection.d.ts +16 -0
- package/dist/types/webinar/index.d.ts +5 -0
- package/dist/webinar/collection.js +44 -0
- package/dist/webinar/collection.js.map +1 -0
- package/dist/webinar/index.js +69 -0
- package/dist/webinar/index.js.map +1 -0
- package/package.json +3 -2
- package/src/common/errors/no-meeting-info.ts +24 -0
- package/src/common/errors/reclaim-host-role-errors.ts +134 -0
- package/src/common/errors/webex-errors.ts +19 -2
- package/src/common/logs/request.ts +5 -1
- package/src/config.ts +1 -1
- package/src/constants.ts +71 -6
- package/src/index.ts +5 -0
- package/src/interceptors/index.ts +3 -0
- package/src/interceptors/locusRetry.ts +67 -0
- package/src/interpretation/index.ts +18 -1
- package/src/locus-info/index.ts +52 -16
- package/src/locus-info/mediaSharesUtils.ts +16 -0
- package/src/locus-info/parser.ts +47 -21
- package/src/media/index.ts +8 -6
- package/src/media/properties.ts +17 -2
- package/src/mediaQualityMetrics/config.ts +103 -238
- package/src/meeting/in-meeting-actions.ts +8 -0
- package/src/meeting/index.ts +1510 -529
- package/src/meeting/muteState.ts +34 -20
- package/src/meeting/request.ts +19 -1
- package/src/meeting/util.ts +97 -0
- package/src/meeting-info/index.ts +47 -20
- package/src/meeting-info/meeting-info-v2.ts +27 -5
- package/src/meeting-info/utilv2.ts +1 -1
- package/src/meetings/collection.ts +13 -0
- package/src/meetings/index.ts +112 -31
- package/src/meetings/util.ts +2 -8
- package/src/member/index.ts +9 -0
- package/src/member/util.ts +14 -0
- package/src/members/index.ts +29 -2
- package/src/members/types.ts +1 -0
- package/src/members/util.ts +15 -1
- package/src/metrics/constants.ts +14 -0
- package/src/multistream/mediaRequestManager.ts +4 -1
- package/src/multistream/remoteMediaGroup.ts +19 -0
- package/src/multistream/remoteMediaManager.ts +141 -18
- package/src/multistream/sendSlotManager.ts +29 -0
- package/src/reachability/clusterReachability.ts +320 -0
- package/src/reachability/index.ts +221 -382
- package/src/reachability/request.ts +1 -1
- package/src/reachability/util.ts +24 -0
- package/src/reconnection-manager/index.ts +87 -83
- package/src/roap/index.ts +60 -24
- package/src/roap/request.ts +3 -16
- package/src/roap/turnDiscovery.ts +112 -39
- package/src/rtcMetrics/index.ts +71 -5
- package/src/statsAnalyzer/index.ts +430 -427
- package/src/statsAnalyzer/mqaUtil.ts +317 -168
- package/src/webinar/collection.ts +31 -0
- package/src/webinar/index.ts +62 -0
- package/test/integration/spec/converged-space-meetings.js +7 -7
- package/test/integration/spec/journey.js +86 -104
- package/test/integration/spec/space-meeting.js +9 -9
- package/test/unit/spec/interceptors/locusRetry.ts +131 -0
- package/test/unit/spec/interpretation/index.ts +36 -3
- package/test/unit/spec/locus-info/index.js +205 -12
- package/test/unit/spec/locus-info/lib/SeqCmp.json +16 -0
- package/test/unit/spec/locus-info/mediaSharesUtils.ts +10 -0
- package/test/unit/spec/locus-info/parser.js +54 -13
- package/test/unit/spec/media/index.ts +20 -4
- package/test/unit/spec/media/properties.ts +2 -2
- package/test/unit/spec/meeting/in-meeting-actions.ts +4 -0
- package/test/unit/spec/meeting/index.js +4027 -1075
- package/test/unit/spec/meeting/muteState.js +219 -67
- package/test/unit/spec/meeting/request.js +63 -12
- package/test/unit/spec/meeting/utils.js +93 -0
- package/test/unit/spec/meeting-info/index.js +180 -61
- package/test/unit/spec/meeting-info/meetinginfov2.js +196 -53
- package/test/unit/spec/meetings/collection.js +12 -0
- package/test/unit/spec/meetings/index.js +619 -206
- package/test/unit/spec/meetings/utils.js +35 -12
- package/test/unit/spec/member/index.js +8 -7
- package/test/unit/spec/member/util.js +32 -0
- package/test/unit/spec/members/index.js +130 -17
- package/test/unit/spec/members/utils.js +26 -0
- package/test/unit/spec/multistream/mediaRequestManager.ts +20 -2
- package/test/unit/spec/multistream/remoteMediaGroup.ts +80 -1
- package/test/unit/spec/multistream/remoteMediaManager.ts +210 -3
- package/test/unit/spec/multistream/sendSlotManager.ts +50 -18
- package/test/unit/spec/reachability/clusterReachability.ts +279 -0
- package/test/unit/spec/reachability/index.ts +505 -135
- package/test/unit/spec/reachability/util.ts +40 -0
- package/test/unit/spec/reconnection-manager/index.js +74 -17
- package/test/unit/spec/roap/index.ts +181 -61
- package/test/unit/spec/roap/request.ts +27 -3
- package/test/unit/spec/roap/turnDiscovery.ts +362 -101
- package/test/unit/spec/rtcMetrics/index.ts +57 -3
- package/test/unit/spec/stats-analyzer/index.js +1225 -12
- package/test/unit/spec/webinar/collection.ts +13 -0
- package/test/unit/spec/webinar/index.ts +60 -0
- package/test/utils/integrationTestUtils.js +4 -4
- package/test/utils/webex-test-users.js +12 -4
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
3
|
*/
|
|
4
|
+
import { RECONNECTION_STATE } from '../constants';
|
|
4
5
|
import Meeting from '../meeting';
|
|
5
6
|
/**
|
|
6
7
|
* @export
|
|
@@ -73,6 +74,15 @@ export default class ReconnectionManager {
|
|
|
73
74
|
* @returns {Boolean} true if reconnection operation is in progress
|
|
74
75
|
*/
|
|
75
76
|
isReconnectInProgress(): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Sets the reconnection status
|
|
79
|
+
*
|
|
80
|
+
* @public
|
|
81
|
+
* @param {RECONNECTION_STATE} status
|
|
82
|
+
* @memberof ReconnectionManager
|
|
83
|
+
* @returns {undefined}
|
|
84
|
+
*/
|
|
85
|
+
setStatus(status: RECONNECTION_STATE): void;
|
|
76
86
|
/**
|
|
77
87
|
* @returns {Boolean}
|
|
78
88
|
* @throws {ReconnectionError}
|
|
@@ -71,7 +71,8 @@ export default class Roap extends StatelessWebexPlugin {
|
|
|
71
71
|
* @param {Meeting} meeting
|
|
72
72
|
* @param {Boolean} isReconnecting should be set to true if this is a new
|
|
73
73
|
* media connection just after a reconnection
|
|
74
|
+
* @param {Boolean} [isForced]
|
|
74
75
|
* @returns {Promise}
|
|
75
76
|
*/
|
|
76
|
-
doTurnDiscovery(meeting: Meeting, isReconnecting: boolean): any;
|
|
77
|
+
doTurnDiscovery(meeting: Meeting, isReconnecting: boolean, isForced?: boolean): any;
|
|
77
78
|
}
|
|
@@ -22,6 +22,7 @@ export default class RoapRequest extends StatelessWebexPlugin {
|
|
|
22
22
|
* @param {String} options.mediaId
|
|
23
23
|
* @param {String} options.correlationId
|
|
24
24
|
* @param {String} options.meetingId
|
|
25
|
+
* @param {IP_VERSION} options.ipVersion only required for offers
|
|
25
26
|
* @returns {Promise} returns the response/failure of the request
|
|
26
27
|
*/
|
|
27
28
|
sendRoap(options: {
|
|
@@ -29,7 +30,7 @@ export default class RoapRequest extends StatelessWebexPlugin {
|
|
|
29
30
|
locusSelfUrl: string;
|
|
30
31
|
mediaId: string;
|
|
31
32
|
meetingId: string;
|
|
32
|
-
ipVersion
|
|
33
|
+
ipVersion?: IP_VERSION;
|
|
33
34
|
locusMediaRequest?: LocusMediaRequest;
|
|
34
35
|
}): Promise<{
|
|
35
36
|
mediaConnections: any;
|
|
@@ -27,11 +27,20 @@ export default class TurnDiscovery {
|
|
|
27
27
|
* handles TURN_DISCOVERY_RESPONSE roap message
|
|
28
28
|
*
|
|
29
29
|
* @param {Object} roapMessage
|
|
30
|
+
* @param {string} from string to indicate how we got the response (used just for logging)
|
|
30
31
|
* @returns {void}
|
|
31
32
|
* @public
|
|
32
33
|
* @memberof Roap
|
|
33
34
|
*/
|
|
34
|
-
handleTurnDiscoveryResponse(roapMessage:
|
|
35
|
+
handleTurnDiscoveryResponse(roapMessage: any, from: string): void;
|
|
36
|
+
/**
|
|
37
|
+
* handles TURN_DISCOVERY_RESPONSE roap message that came in http response
|
|
38
|
+
*
|
|
39
|
+
* @param {Object} roapMessage
|
|
40
|
+
* @returns {Promise}
|
|
41
|
+
* @memberof Roap
|
|
42
|
+
*/
|
|
43
|
+
private handleTurnDiscoveryResponseInHttpResponse;
|
|
35
44
|
/**
|
|
36
45
|
* sends the TURN_DISCOVERY_REQUEST roap request
|
|
37
46
|
*
|
|
@@ -41,7 +50,7 @@ export default class TurnDiscovery {
|
|
|
41
50
|
* @private
|
|
42
51
|
* @memberof Roap
|
|
43
52
|
*/
|
|
44
|
-
sendRoapTurnDiscoveryRequest(meeting: Meeting, isReconnecting: boolean): Promise<
|
|
53
|
+
sendRoapTurnDiscoveryRequest(meeting: Meeting, isReconnecting: boolean): Promise<any>;
|
|
45
54
|
/**
|
|
46
55
|
* Sends the OK message that server expects to receive
|
|
47
56
|
* after it sends us TURN_DISCOVERY_RESPONSE
|
|
@@ -80,12 +89,20 @@ export default class TurnDiscovery {
|
|
|
80
89
|
* so it works fine no matter if TURN discovery is done or not.
|
|
81
90
|
*
|
|
82
91
|
* @param {Meeting} meeting
|
|
83
|
-
* @param {Boolean} isReconnecting should be set to true if this is a new
|
|
92
|
+
* @param {Boolean} [isReconnecting] should be set to true if this is a new
|
|
84
93
|
* media connection just after a reconnection
|
|
94
|
+
* @param {Boolean} [isForced]
|
|
85
95
|
* @returns {Promise}
|
|
86
96
|
*/
|
|
87
|
-
doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean): Promise<{
|
|
97
|
+
doTurnDiscovery(meeting: Meeting, isReconnecting?: boolean, isForced?: boolean): Promise<{
|
|
88
98
|
turnServerInfo: any;
|
|
99
|
+
turnDiscoverySkippedReason: string;
|
|
100
|
+
} | {
|
|
101
|
+
turnServerInfo: {
|
|
102
|
+
url: string;
|
|
103
|
+
username: string;
|
|
104
|
+
password: string;
|
|
105
|
+
};
|
|
89
106
|
turnDiscoverySkippedReason: any;
|
|
90
107
|
}>;
|
|
91
108
|
}
|
|
@@ -10,6 +10,7 @@ export default class RtcMetrics {
|
|
|
10
10
|
webex: any;
|
|
11
11
|
meetingId: string;
|
|
12
12
|
correlationId: string;
|
|
13
|
+
connectionId: string;
|
|
13
14
|
/**
|
|
14
15
|
* Initialize the interval.
|
|
15
16
|
*
|
|
@@ -23,7 +24,7 @@ export default class RtcMetrics {
|
|
|
23
24
|
*
|
|
24
25
|
* @returns {void}
|
|
25
26
|
*/
|
|
26
|
-
|
|
27
|
+
sendMetricsInQueue(): void;
|
|
27
28
|
/**
|
|
28
29
|
* Add metrics items to the metrics queue.
|
|
29
30
|
*
|
|
@@ -38,6 +39,19 @@ export default class RtcMetrics {
|
|
|
38
39
|
* @returns {void}
|
|
39
40
|
*/
|
|
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;
|
|
41
55
|
/**
|
|
42
56
|
* Send metrics to the metrics service.
|
|
43
57
|
*
|
|
@@ -9,6 +9,10 @@ export declare const EVENTS: {
|
|
|
9
9
|
REMOTE_MEDIA_STOPPED: string;
|
|
10
10
|
};
|
|
11
11
|
type ReceiveSlotCallback = (csi: number) => ReceiveSlot | undefined;
|
|
12
|
+
type MediaStatus = {
|
|
13
|
+
actual?: any;
|
|
14
|
+
expected?: any;
|
|
15
|
+
};
|
|
12
16
|
/**
|
|
13
17
|
* Stats Analyzer class that will emit events based on detected quality
|
|
14
18
|
*
|
|
@@ -30,6 +34,8 @@ export declare class StatsAnalyzer extends EventsScope {
|
|
|
30
34
|
statsInterval: NodeJS.Timeout;
|
|
31
35
|
statsResults: any;
|
|
32
36
|
statsStarted: any;
|
|
37
|
+
successfulCandidatePair: any;
|
|
38
|
+
localIpAddress: string;
|
|
33
39
|
receiveSlotCallback: ReceiveSlotCallback;
|
|
34
40
|
/**
|
|
35
41
|
* Creates a new instance of StatsAnalyzer
|
|
@@ -57,7 +63,7 @@ export declare class StatsAnalyzer extends EventsScope {
|
|
|
57
63
|
* @memberof StatsAnalyzer
|
|
58
64
|
* @returns {void}
|
|
59
65
|
*/
|
|
60
|
-
updateMediaStatus(status:
|
|
66
|
+
updateMediaStatus(status: MediaStatus): void;
|
|
61
67
|
/**
|
|
62
68
|
* captures MQA data from media connection
|
|
63
69
|
*
|
|
@@ -75,6 +81,13 @@ export declare class StatsAnalyzer extends EventsScope {
|
|
|
75
81
|
* @returns {void}
|
|
76
82
|
*/
|
|
77
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;
|
|
78
91
|
/**
|
|
79
92
|
* Starts the stats analyzer on interval
|
|
80
93
|
*
|
|
@@ -166,6 +179,20 @@ export declare class StatsAnalyzer extends EventsScope {
|
|
|
166
179
|
* @returns {void}
|
|
167
180
|
*/
|
|
168
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;
|
|
169
196
|
/**
|
|
170
197
|
* Processes remote and local candidate result and stores
|
|
171
198
|
* @private
|
|
@@ -177,16 +204,6 @@ export declare class StatsAnalyzer extends EventsScope {
|
|
|
177
204
|
* @returns {void}
|
|
178
205
|
*/
|
|
179
206
|
parseCandidate: (result: any, type: any, isSender: boolean, isRemote: boolean) => void;
|
|
180
|
-
/**
|
|
181
|
-
* Process Track results
|
|
182
|
-
*
|
|
183
|
-
* @private
|
|
184
|
-
* @param {*} result
|
|
185
|
-
* @param {*} mediaType
|
|
186
|
-
* @returns {void}
|
|
187
|
-
* @memberof StatsAnalyzer
|
|
188
|
-
*/
|
|
189
|
-
private processTrackResult;
|
|
190
207
|
/**
|
|
191
208
|
*
|
|
192
209
|
* @private
|
|
@@ -1,24 +1,48 @@
|
|
|
1
|
-
export declare const getAudioReceiverMqa: ({ audioReceiver, statsResults, lastMqaDataSent,
|
|
1
|
+
export declare const getAudioReceiverMqa: ({ audioReceiver, statsResults, lastMqaDataSent, baseMediaType, }: {
|
|
2
2
|
audioReceiver: any;
|
|
3
3
|
statsResults: any;
|
|
4
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;
|
|
5
11
|
mediaType: any;
|
|
6
12
|
}) => void;
|
|
7
|
-
export declare const getAudioSenderMqa: ({ audioSender, statsResults, lastMqaDataSent,
|
|
13
|
+
export declare const getAudioSenderMqa: ({ audioSender, statsResults, lastMqaDataSent, baseMediaType }: {
|
|
8
14
|
audioSender: any;
|
|
9
15
|
statsResults: any;
|
|
10
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;
|
|
11
23
|
mediaType: any;
|
|
12
24
|
}) => void;
|
|
13
|
-
export declare const getVideoReceiverMqa: ({ videoReceiver, statsResults, lastMqaDataSent,
|
|
25
|
+
export declare const getVideoReceiverMqa: ({ videoReceiver, statsResults, lastMqaDataSent, baseMediaType, }: {
|
|
14
26
|
videoReceiver: any;
|
|
15
27
|
statsResults: any;
|
|
16
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;
|
|
17
35
|
mediaType: any;
|
|
18
36
|
}) => void;
|
|
19
|
-
export declare const getVideoSenderMqa: ({ videoSender, statsResults, lastMqaDataSent,
|
|
37
|
+
export declare const getVideoSenderMqa: ({ videoSender, statsResults, lastMqaDataSent, baseMediaType }: {
|
|
20
38
|
videoSender: any;
|
|
21
39
|
statsResults: any;
|
|
22
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;
|
|
23
47
|
mediaType: any;
|
|
24
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;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
10
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
12
|
+
var _constants = require("../constants");
|
|
13
|
+
/*!
|
|
14
|
+
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
|
15
|
+
*/
|
|
16
|
+
var WebinarCollection = /*#__PURE__*/function () {
|
|
17
|
+
function WebinarCollection() {
|
|
18
|
+
(0, _classCallCheck2.default)(this, WebinarCollection);
|
|
19
|
+
(0, _defineProperty2.default)(this, "webinarInfo", void 0);
|
|
20
|
+
(0, _defineProperty2.default)(this, "namespace", _constants.MEETINGS);
|
|
21
|
+
(0, _defineProperty2.default)(this, "mainIndex", 'sessionId');
|
|
22
|
+
this.webinarInfo = {};
|
|
23
|
+
}
|
|
24
|
+
(0, _createClass2.default)(WebinarCollection, [{
|
|
25
|
+
key: "set",
|
|
26
|
+
value: function set(id, info) {
|
|
27
|
+
this.webinarInfo[id] = info;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @param {String} id
|
|
32
|
+
* @returns {Member}
|
|
33
|
+
*/
|
|
34
|
+
}, {
|
|
35
|
+
key: "get",
|
|
36
|
+
value: function get(id) {
|
|
37
|
+
return this.webinarInfo[id];
|
|
38
|
+
}
|
|
39
|
+
}]);
|
|
40
|
+
return WebinarCollection;
|
|
41
|
+
}();
|
|
42
|
+
var _default = WebinarCollection;
|
|
43
|
+
exports.default = _default;
|
|
44
|
+
//# sourceMappingURL=collection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["WebinarCollection","MEETINGS","webinarInfo","id","info"],"sources":["collection.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {MEETINGS} from '../constants';\n\nclass WebinarCollection {\n webinarInfo: any;\n\n namespace = MEETINGS;\n\n mainIndex = 'sessionId';\n\n constructor() {\n this.webinarInfo = {};\n }\n\n set(id, info) {\n this.webinarInfo[id] = info;\n }\n\n /**\n * @param {String} id\n * @returns {Member}\n */\n get(id: string) {\n return this.webinarInfo[id];\n }\n}\n\nexport default WebinarCollection;\n"],"mappings":";;;;;;;;;;;AAIA;AAJA;AACA;AACA;AAFA,IAMMA,iBAAiB;EAOrB,6BAAc;IAAA;IAAA;IAAA,iDAJFC,mBAAQ;IAAA,iDAER,WAAW;IAGrB,IAAI,CAACC,WAAW,GAAG,CAAC,CAAC;EACvB;EAAC;IAAA;IAAA,OAED,aAAIC,EAAE,EAAEC,IAAI,EAAE;MACZ,IAAI,CAACF,WAAW,CAACC,EAAE,CAAC,GAAGC,IAAI;IAC7B;;IAEA;AACF;AACA;AACA;EAHE;IAAA;IAAA,OAIA,aAAID,EAAU,EAAE;MACd,OAAO,IAAI,CAACD,WAAW,CAACC,EAAE,CAAC;IAC7B;EAAC;EAAA;AAAA;AAAA,eAGYH,iBAAiB;AAAA"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _webexCore = require("@webex/webex-core");
|
|
10
|
+
var _constants = require("../constants");
|
|
11
|
+
var _collection = _interopRequireDefault(require("./collection"));
|
|
12
|
+
/*!
|
|
13
|
+
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @class Webinar
|
|
18
|
+
*/
|
|
19
|
+
var Webinar = _webexCore.WebexPlugin.extend({
|
|
20
|
+
namespace: _constants.MEETINGS,
|
|
21
|
+
collections: {
|
|
22
|
+
webinar: _collection.default
|
|
23
|
+
},
|
|
24
|
+
props: {
|
|
25
|
+
locusUrl: 'string',
|
|
26
|
+
// appears current webinar's locus url
|
|
27
|
+
webcastUrl: 'string',
|
|
28
|
+
// current webinar's webcast url
|
|
29
|
+
webinarAttendeesSearchingUrl: 'string',
|
|
30
|
+
// current webinarAttendeesSearching url
|
|
31
|
+
canManageWebcast: 'boolean' // appears the ability to manage webcast
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* Update the current locus url of the webinar
|
|
35
|
+
* @param {string} locusUrl // locus url
|
|
36
|
+
* @returns {void}
|
|
37
|
+
*/
|
|
38
|
+
locusUrlUpdate: function locusUrlUpdate(locusUrl) {
|
|
39
|
+
this.set('locusUrl', locusUrl);
|
|
40
|
+
},
|
|
41
|
+
/**
|
|
42
|
+
* Update the current webcast url of the meeting
|
|
43
|
+
* @param {string} webcastUrl // webcast url
|
|
44
|
+
* @returns {void}
|
|
45
|
+
*/
|
|
46
|
+
webcastUrlUpdate: function webcastUrlUpdate(webcastUrl) {
|
|
47
|
+
this.set('webcastUrl', webcastUrl);
|
|
48
|
+
},
|
|
49
|
+
/**
|
|
50
|
+
* Update the current webinarAttendeesSearching url of the meeting
|
|
51
|
+
* @param {string} webinarAttendeesSearchingUrl // webinarAttendeesSearching url
|
|
52
|
+
* @returns {void}
|
|
53
|
+
*/
|
|
54
|
+
webinarAttendeesSearchingUrlUpdate: function webinarAttendeesSearchingUrlUpdate(webinarAttendeesSearchingUrl) {
|
|
55
|
+
this.set('webinarAttendeesSearchingUrl', webinarAttendeesSearchingUrl);
|
|
56
|
+
},
|
|
57
|
+
/**
|
|
58
|
+
* Update whether self has capability to manage start/stop webcast (only host can manage it)
|
|
59
|
+
* @param {boolean} canManageWebcast
|
|
60
|
+
* @returns {void}
|
|
61
|
+
*/
|
|
62
|
+
updateCanManageWebcast: function updateCanManageWebcast(canManageWebcast) {
|
|
63
|
+
this.set('canManageWebcast', canManageWebcast);
|
|
64
|
+
},
|
|
65
|
+
version: "3.0.0-beta.384"
|
|
66
|
+
});
|
|
67
|
+
var _default = Webinar;
|
|
68
|
+
exports.default = _default;
|
|
69
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Webinar","WebexPlugin","extend","namespace","MEETINGS","collections","webinar","WebinarCollection","props","locusUrl","webcastUrl","webinarAttendeesSearchingUrl","canManageWebcast","locusUrlUpdate","set","webcastUrlUpdate","webinarAttendeesSearchingUrlUpdate","updateCanManageWebcast"],"sources":["index.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\nimport {WebexPlugin} from '@webex/webex-core';\nimport {MEETINGS} from '../constants';\n\nimport WebinarCollection from './collection';\n\n/**\n * @class Webinar\n */\nconst Webinar = WebexPlugin.extend({\n namespace: MEETINGS,\n collections: {\n webinar: WebinarCollection,\n },\n\n props: {\n locusUrl: 'string', // appears current webinar's locus url\n webcastUrl: 'string', // current webinar's webcast url\n webinarAttendeesSearchingUrl: 'string', // current webinarAttendeesSearching url\n canManageWebcast: 'boolean', // appears the ability to manage webcast\n },\n\n /**\n * Update the current locus url of the webinar\n * @param {string} locusUrl // locus url\n * @returns {void}\n */\n locusUrlUpdate(locusUrl) {\n this.set('locusUrl', locusUrl);\n },\n\n /**\n * Update the current webcast url of the meeting\n * @param {string} webcastUrl // webcast url\n * @returns {void}\n */\n webcastUrlUpdate(webcastUrl) {\n this.set('webcastUrl', webcastUrl);\n },\n\n /**\n * Update the current webinarAttendeesSearching url of the meeting\n * @param {string} webinarAttendeesSearchingUrl // webinarAttendeesSearching url\n * @returns {void}\n */\n webinarAttendeesSearchingUrlUpdate(webinarAttendeesSearchingUrl) {\n this.set('webinarAttendeesSearchingUrl', webinarAttendeesSearchingUrl);\n },\n\n /**\n * Update whether self has capability to manage start/stop webcast (only host can manage it)\n * @param {boolean} canManageWebcast\n * @returns {void}\n */\n updateCanManageWebcast(canManageWebcast) {\n this.set('canManageWebcast', canManageWebcast);\n },\n});\n\nexport default Webinar;\n"],"mappings":";;;;;;;;AAGA;AACA;AAEA;AANA;AACA;AACA;;AAMA;AACA;AACA;AACA,IAAMA,OAAO,GAAGC,sBAAW,CAACC,MAAM,CAAC;EACjCC,SAAS,EAAEC,mBAAQ;EACnBC,WAAW,EAAE;IACXC,OAAO,EAAEC;EACX,CAAC;EAEDC,KAAK,EAAE;IACLC,QAAQ,EAAE,QAAQ;IAAE;IACpBC,UAAU,EAAE,QAAQ;IAAE;IACtBC,4BAA4B,EAAE,QAAQ;IAAE;IACxCC,gBAAgB,EAAE,SAAS,CAAE;EAC/B,CAAC;EAED;AACF;AACA;AACA;AACA;EACEC,cAAc,0BAACJ,QAAQ,EAAE;IACvB,IAAI,CAACK,GAAG,CAAC,UAAU,EAAEL,QAAQ,CAAC;EAChC,CAAC;EAED;AACF;AACA;AACA;AACA;EACEM,gBAAgB,4BAACL,UAAU,EAAE;IAC3B,IAAI,CAACI,GAAG,CAAC,YAAY,EAAEJ,UAAU,CAAC;EACpC,CAAC;EAED;AACF;AACA;AACA;AACA;EACEM,kCAAkC,8CAACL,4BAA4B,EAAE;IAC/D,IAAI,CAACG,GAAG,CAAC,8BAA8B,EAAEH,4BAA4B,CAAC;EACxE,CAAC;EAED;AACF;AACA;AACA;AACA;EACEM,sBAAsB,kCAACL,gBAAgB,EAAE;IACvC,IAAI,CAACE,GAAG,CAAC,kBAAkB,EAAEF,gBAAgB,CAAC;EAChD,CAAC;EAAA;AACH,CAAC,CAAC;AAAC,eAEYZ,OAAO;AAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/plugin-meetings",
|
|
3
|
-
"version": "3.0.0-
|
|
3
|
+
"version": "3.0.0-test.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
|
|
6
6
|
"contributors": [
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"build": "yarn run -T tsc --declaration true --declarationDir ./dist/types"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
+
"@peculiar/webcrypto": "^1.4.3",
|
|
35
36
|
"@webex/plugin-meetings": "workspace:^",
|
|
36
37
|
"@webex/test-helper-chai": "workspace:^",
|
|
37
38
|
"@webex/test-helper-mocha": "workspace:^",
|
|
@@ -47,7 +48,7 @@
|
|
|
47
48
|
},
|
|
48
49
|
"dependencies": {
|
|
49
50
|
"@webex/common": "workspace:^",
|
|
50
|
-
"@webex/internal-media-core": "2.0
|
|
51
|
+
"@webex/internal-media-core": "2.3.0",
|
|
51
52
|
"@webex/internal-plugin-conversation": "workspace:^",
|
|
52
53
|
"@webex/internal-plugin-device": "workspace:^",
|
|
53
54
|
"@webex/internal-plugin-llm": "workspace:^",
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import {ERROR_DICTIONARY} from '../../constants';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Extended Error object for general parameter errors
|
|
5
|
+
*/
|
|
6
|
+
export default class NoMeetingInfoError extends Error {
|
|
7
|
+
code: any;
|
|
8
|
+
error: any;
|
|
9
|
+
sdkMessage: any;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @constructor
|
|
13
|
+
* @param {String} [message]
|
|
14
|
+
* @param {Object} [error]
|
|
15
|
+
*/
|
|
16
|
+
constructor(message: string = ERROR_DICTIONARY.NO_MEETING_INFO.MESSAGE, error: any = null) {
|
|
17
|
+
super(message);
|
|
18
|
+
this.name = ERROR_DICTIONARY.NO_MEETING_INFO.NAME;
|
|
19
|
+
this.sdkMessage = ERROR_DICTIONARY.NO_MEETING_INFO.MESSAGE;
|
|
20
|
+
this.error = error;
|
|
21
|
+
this.stack = error ? error.stack : new Error().stack;
|
|
22
|
+
this.code = ERROR_DICTIONARY.NO_MEETING_INFO.CODE;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import * as MEETINGCONSTANTS from '../../constants';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Extended Error object for reclaim host role empty or wrong key
|
|
5
|
+
*/
|
|
6
|
+
export class ReclaimHostEmptyWrongKeyError extends Error {
|
|
7
|
+
sdkMessage: string;
|
|
8
|
+
error: null;
|
|
9
|
+
code: number;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @constructor
|
|
14
|
+
* @param {String} [message]
|
|
15
|
+
* @param {Object} [error]
|
|
16
|
+
*/
|
|
17
|
+
constructor(
|
|
18
|
+
message: string = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_EMPTY_OR_WRONG_KEY
|
|
19
|
+
.MESSAGE,
|
|
20
|
+
error: any = null
|
|
21
|
+
) {
|
|
22
|
+
super(message);
|
|
23
|
+
|
|
24
|
+
if (Error.captureStackTrace) {
|
|
25
|
+
Error.captureStackTrace(this, ReclaimHostEmptyWrongKeyError);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
this.name = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_EMPTY_OR_WRONG_KEY.NAME;
|
|
29
|
+
this.sdkMessage =
|
|
30
|
+
message || MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_EMPTY_OR_WRONG_KEY.MESSAGE;
|
|
31
|
+
this.error = error;
|
|
32
|
+
|
|
33
|
+
this.code = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_EMPTY_OR_WRONG_KEY.CODE;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Extended Error object for reclaim host role not supported
|
|
39
|
+
*/
|
|
40
|
+
export class ReclaimHostNotSupportedError extends Error {
|
|
41
|
+
sdkMessage: string;
|
|
42
|
+
error: null;
|
|
43
|
+
code: number;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
*
|
|
47
|
+
* @constructor
|
|
48
|
+
* @param {String} [message]
|
|
49
|
+
* @param {Object} [error]
|
|
50
|
+
*/
|
|
51
|
+
constructor(
|
|
52
|
+
message: string = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_SUPPORTED.MESSAGE,
|
|
53
|
+
error: any = null
|
|
54
|
+
) {
|
|
55
|
+
super(message);
|
|
56
|
+
|
|
57
|
+
if (Error.captureStackTrace) {
|
|
58
|
+
Error.captureStackTrace(this, ReclaimHostNotSupportedError);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
this.name = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_SUPPORTED.NAME;
|
|
62
|
+
this.sdkMessage =
|
|
63
|
+
message || MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_SUPPORTED.MESSAGE;
|
|
64
|
+
this.error = error;
|
|
65
|
+
|
|
66
|
+
this.code = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_SUPPORTED.CODE;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Extended Error object for reclaim host role not allowed for other participants
|
|
72
|
+
*/
|
|
73
|
+
export class ReclaimHostNotAllowedError extends Error {
|
|
74
|
+
sdkMessage: string;
|
|
75
|
+
error: null;
|
|
76
|
+
code: number;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
*
|
|
80
|
+
* @constructor
|
|
81
|
+
* @param {String} [message]
|
|
82
|
+
* @param {Object} [error]
|
|
83
|
+
*/
|
|
84
|
+
constructor(
|
|
85
|
+
message: string = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_ALLOWED.MESSAGE,
|
|
86
|
+
error: any = null
|
|
87
|
+
) {
|
|
88
|
+
super(message);
|
|
89
|
+
|
|
90
|
+
if (Error.captureStackTrace) {
|
|
91
|
+
Error.captureStackTrace(this, ReclaimHostNotAllowedError);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
this.name = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_ALLOWED.NAME;
|
|
95
|
+
this.sdkMessage =
|
|
96
|
+
message || MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_ALLOWED.MESSAGE;
|
|
97
|
+
this.error = error;
|
|
98
|
+
|
|
99
|
+
this.code = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_NOT_ALLOWED.CODE;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Extended Error object for reclaim host role when user is host already
|
|
105
|
+
*/
|
|
106
|
+
export class ReclaimHostIsHostAlreadyError extends Error {
|
|
107
|
+
sdkMessage: string;
|
|
108
|
+
error: null;
|
|
109
|
+
code: number;
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
*
|
|
113
|
+
* @constructor
|
|
114
|
+
* @param {String} [message]
|
|
115
|
+
* @param {Object} [error]
|
|
116
|
+
*/
|
|
117
|
+
constructor(
|
|
118
|
+
message: string = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_IS_ALREADY_HOST.MESSAGE,
|
|
119
|
+
error: any = null
|
|
120
|
+
) {
|
|
121
|
+
super(message);
|
|
122
|
+
|
|
123
|
+
if (Error.captureStackTrace) {
|
|
124
|
+
Error.captureStackTrace(this, ReclaimHostIsHostAlreadyError);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
this.name = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_IS_ALREADY_HOST.NAME;
|
|
128
|
+
this.sdkMessage =
|
|
129
|
+
message || MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_IS_ALREADY_HOST.MESSAGE;
|
|
130
|
+
this.error = error;
|
|
131
|
+
|
|
132
|
+
this.code = MEETINGCONSTANTS.ERROR_DICTIONARY.RECLAIM_HOST_ROLE_IS_ALREADY_HOST.CODE;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -112,7 +112,7 @@ WebExMeetingsErrors[UserInLobbyError.CODE] = UserInLobbyError;
|
|
|
112
112
|
* @classdesc Raised whenever the user passes Space ID as destination for create meeting.
|
|
113
113
|
* @extends WebexMeetingsError
|
|
114
114
|
* @property {number} code - 30105
|
|
115
|
-
* @property {string} message - Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-
|
|
115
|
+
* @property {string} message - Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.'
|
|
116
116
|
*/
|
|
117
117
|
class SpaceIDDeprecatedError extends WebexMeetingsError {
|
|
118
118
|
static CODE = 30105;
|
|
@@ -120,7 +120,7 @@ class SpaceIDDeprecatedError extends WebexMeetingsError {
|
|
|
120
120
|
constructor() {
|
|
121
121
|
super(
|
|
122
122
|
SpaceIDDeprecatedError.CODE,
|
|
123
|
-
'Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-
|
|
123
|
+
'Using the space ID as a destination is no longer supported. Please refer to the [migration guide](https://github.com/webex/webex-js-sdk/wiki/Migration-to-Unified-Space-Meetings) to migrate to use the meeting ID or SIP address.'
|
|
124
124
|
);
|
|
125
125
|
}
|
|
126
126
|
}
|
|
@@ -145,3 +145,20 @@ class IceGatheringFailed extends WebexMeetingsError {
|
|
|
145
145
|
|
|
146
146
|
export {IceGatheringFailed};
|
|
147
147
|
WebExMeetingsErrors[IceGatheringFailed.CODE] = IceGatheringFailed;
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* @class AddMediaFailed
|
|
151
|
+
* @classdesc Raised whenever we fail to successfully add media to a meeting
|
|
152
|
+
* @extends WebexMeetingsError
|
|
153
|
+
* @property {number} code - 30203
|
|
154
|
+
* @property {string} message - 'Failed to add media'
|
|
155
|
+
*/
|
|
156
|
+
class AddMediaFailed extends WebexMeetingsError {
|
|
157
|
+
static CODE = 30203;
|
|
158
|
+
|
|
159
|
+
constructor() {
|
|
160
|
+
super(AddMediaFailed.CODE, 'Failed to add media');
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
export {AddMediaFailed};
|
|
164
|
+
WebExMeetingsErrors[AddMediaFailed.CODE] = AddMediaFailed;
|
|
@@ -32,6 +32,8 @@ export default class LogsRequest {
|
|
|
32
32
|
*/
|
|
33
33
|
async uploadLogs(
|
|
34
34
|
options: {
|
|
35
|
+
autoupload?: boolean;
|
|
36
|
+
locussessionid?: string;
|
|
35
37
|
feedbackId?: string;
|
|
36
38
|
locusId?: string;
|
|
37
39
|
correlationId?: string;
|
|
@@ -40,7 +42,7 @@ export default class LogsRequest {
|
|
|
40
42
|
} = {}
|
|
41
43
|
) {
|
|
42
44
|
const id = options.feedbackId || uuid.v4();
|
|
43
|
-
const {locusId, correlationId, meetingId, callStart} = options;
|
|
45
|
+
const {locusId, correlationId, meetingId, callStart, locussessionid, autoupload} = options;
|
|
44
46
|
|
|
45
47
|
LoggerProxy.logger.info(
|
|
46
48
|
`Logs:request#uploadLogs --> uploading user logs for feedbackId: ${id}`
|
|
@@ -48,6 +50,8 @@ export default class LogsRequest {
|
|
|
48
50
|
|
|
49
51
|
try {
|
|
50
52
|
await this.webex.internal.support.submitLogs({
|
|
53
|
+
autoupload,
|
|
54
|
+
locussessionid,
|
|
51
55
|
feedbackId: id,
|
|
52
56
|
locusId,
|
|
53
57
|
correlationId,
|