@webex/plugin-meetings 3.0.0-beta.162 → 3.0.0-beta.164
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/breakouts/breakout.js +7 -3
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/events.js +31 -29
- package/dist/breakouts/events.js.map +1 -1
- package/dist/breakouts/index.js +4 -2
- package/dist/breakouts/index.js.map +1 -1
- package/dist/constants.js +2 -4
- package/dist/constants.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/locus-info/index.js +33 -17
- package/dist/locus-info/index.js.map +1 -1
- package/dist/meeting/index.js +699 -682
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/util.js +47 -25
- package/dist/meeting/util.js.map +1 -1
- package/dist/meeting-info/index.js +48 -7
- package/dist/meeting-info/index.js.map +1 -1
- package/dist/meeting-info/meeting-info-v2.js +24 -10
- package/dist/meeting-info/meeting-info-v2.js.map +1 -1
- package/dist/meetings/index.js +12 -9
- package/dist/meetings/index.js.map +1 -1
- package/dist/metrics/index.js +1 -487
- package/dist/metrics/index.js.map +1 -1
- package/dist/reconnection-manager/index.js +27 -17
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/roap/request.js +20 -14
- package/dist/roap/request.js.map +1 -1
- package/dist/types/breakouts/events.d.ts +7 -1
- package/dist/types/constants.d.ts +0 -1
- package/dist/types/meeting/index.d.ts +31 -133
- package/dist/types/meeting-info/index.d.ts +6 -1
- package/dist/types/meetings/index.d.ts +1 -0
- package/dist/types/metrics/index.d.ts +4 -128
- package/package.json +19 -19
- package/src/breakouts/breakout.ts +10 -2
- package/src/breakouts/events.ts +51 -32
- package/src/breakouts/index.ts +9 -5
- package/src/constants.ts +0 -2
- package/src/locus-info/index.ts +35 -17
- package/src/meeting/index.ts +474 -536
- package/src/meeting/util.ts +42 -19
- package/src/meeting-info/index.ts +54 -8
- package/src/meeting-info/meeting-info-v2.ts +24 -9
- package/src/meetings/index.ts +11 -6
- package/src/metrics/index.ts +1 -506
- package/src/reconnection-manager/index.ts +27 -17
- package/src/roap/request.ts +21 -9
- package/test/unit/spec/breakouts/breakout.ts +4 -2
- package/test/unit/spec/breakouts/events.ts +24 -18
- package/test/unit/spec/locus-info/index.js +112 -0
- package/test/unit/spec/meeting/index.js +178 -145
- package/test/unit/spec/meeting/utils.js +93 -7
- package/test/unit/spec/meeting-info/index.js +181 -0
- package/test/unit/spec/meeting-info/meetinginfov2.js +68 -68
- package/test/unit/spec/meetings/index.js +35 -55
- package/test/unit/spec/metrics/index.js +1 -148
- package/test/unit/spec/reconnection-manager/index.js +51 -2
- package/test/unit/spec/roap/index.ts +8 -2
- package/test/unit/spec/roap/request.ts +43 -5
- package/dist/metrics/config.js +0 -335
- package/dist/metrics/config.js.map +0 -1
- package/dist/types/metrics/config.d.ts +0 -195
- package/src/metrics/config.ts +0 -534
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
+
*/
|
|
1
4
|
/**
|
|
2
5
|
* @description Metrics handles all the call metrics events
|
|
3
6
|
* @export
|
|
@@ -5,9 +8,6 @@
|
|
|
5
8
|
*/
|
|
6
9
|
declare class Metrics {
|
|
7
10
|
static instance: Metrics;
|
|
8
|
-
_events: any;
|
|
9
|
-
keys: any;
|
|
10
|
-
meetingCollection: any;
|
|
11
11
|
webex: any;
|
|
12
12
|
/**
|
|
13
13
|
* Create Metrics Object
|
|
@@ -19,135 +19,11 @@ declare class Metrics {
|
|
|
19
19
|
/**
|
|
20
20
|
* Initializes the Metrics singleton with a meeting Collection.
|
|
21
21
|
*
|
|
22
|
-
* @param {Object} meetingCollection meetings object
|
|
23
22
|
* @param {Object} webex webex SDK object
|
|
24
23
|
*
|
|
25
24
|
* @returns {void}
|
|
26
25
|
*/
|
|
27
|
-
initialSetup(
|
|
28
|
-
/**
|
|
29
|
-
* poste Meeting event metrics
|
|
30
|
-
* @param {object} options {meetingId/meeting} as a json object
|
|
31
|
-
* @param {Meeting} options.meeting Meeting object
|
|
32
|
-
* @param {String} options.meetingId
|
|
33
|
-
* @param {object} options.data
|
|
34
|
-
* @param {object} options.event
|
|
35
|
-
* @returns {object} null
|
|
36
|
-
*/
|
|
37
|
-
postEvent(options: {
|
|
38
|
-
meeting?: any;
|
|
39
|
-
meetingId?: string;
|
|
40
|
-
data?: object;
|
|
41
|
-
event?: any;
|
|
42
|
-
} | any): void;
|
|
43
|
-
/**
|
|
44
|
-
* Docs for Call analyzer metrics
|
|
45
|
-
* https://sqbu-github.cisco.com/WebExSquared/call-analyzer/wiki
|
|
46
|
-
* https://sqbu-github.cisco.com/WebExSquared/event-dictionary/blob/master/diagnostic-events.raml
|
|
47
|
-
*/
|
|
48
|
-
initPayload(eventType: any, identifiers: any, options: any): any;
|
|
49
|
-
/**
|
|
50
|
-
* get the payload specific for a media quality event through call analyzer
|
|
51
|
-
* @param {String} eventType the event name
|
|
52
|
-
* @param {Object} identifiers contains the identifiers needed for CA
|
|
53
|
-
* @param {String} identifiers.correlationId
|
|
54
|
-
* @param {String} identifiers.locusUrl
|
|
55
|
-
* @param {String} identifiers.locusId
|
|
56
|
-
* @param {Object} options
|
|
57
|
-
* @param {Object} options.intervalData
|
|
58
|
-
* @param {String} options.clientType
|
|
59
|
-
* @returns {Object}
|
|
60
|
-
* @public
|
|
61
|
-
* @memberof Metrics
|
|
62
|
-
*/
|
|
63
|
-
initMediaPayload(eventType: string, identifiers: {
|
|
64
|
-
correlationId: string;
|
|
65
|
-
locusUrl: string;
|
|
66
|
-
locusId: string;
|
|
67
|
-
}, options?: {
|
|
68
|
-
intervalData: object;
|
|
69
|
-
clientType: string;
|
|
70
|
-
} | any): {
|
|
71
|
-
eventId: any;
|
|
72
|
-
version: number;
|
|
73
|
-
origin: {
|
|
74
|
-
audioSetupDelay: any;
|
|
75
|
-
videoSetupDelay: any;
|
|
76
|
-
name: string;
|
|
77
|
-
networkType: any;
|
|
78
|
-
userAgent: string;
|
|
79
|
-
clientInfo: {
|
|
80
|
-
clientType: any;
|
|
81
|
-
clientVersion: string;
|
|
82
|
-
localNetworkPrefix: string;
|
|
83
|
-
os: any;
|
|
84
|
-
osVersion: any;
|
|
85
|
-
subClientType: any;
|
|
86
|
-
browser: any;
|
|
87
|
-
browserVersion: any;
|
|
88
|
-
};
|
|
89
|
-
};
|
|
90
|
-
originTime: {
|
|
91
|
-
triggered: string;
|
|
92
|
-
};
|
|
93
|
-
senderCountryCode: any;
|
|
94
|
-
event: {
|
|
95
|
-
name: string;
|
|
96
|
-
canProceed: boolean;
|
|
97
|
-
identifiers: {
|
|
98
|
-
correlationId: string;
|
|
99
|
-
locusUrl: string;
|
|
100
|
-
locusId: string;
|
|
101
|
-
};
|
|
102
|
-
intervals: any[];
|
|
103
|
-
joinTimes: any;
|
|
104
|
-
eventData: {
|
|
105
|
-
webClientDomain: any;
|
|
106
|
-
};
|
|
107
|
-
sourceMetadata: {
|
|
108
|
-
applicationSoftwareType: string;
|
|
109
|
-
applicationSoftwareVersion: any;
|
|
110
|
-
mediaEngineSoftwareType: any;
|
|
111
|
-
mediaEngineSoftwareVersion: any;
|
|
112
|
-
startTime: string;
|
|
113
|
-
};
|
|
114
|
-
};
|
|
115
|
-
};
|
|
116
|
-
/**
|
|
117
|
-
* This function Parses a Locus error and returns a diagnostic event payload.
|
|
118
|
-
* It should keep updating from:
|
|
119
|
-
* https://sqbu-github.cisco.com/WebExSquared/spark-client-framework/blob/master/spark-client-framework/Adapters/TelephonyAdapter/TelephonyAdapter.cpp#L920
|
|
120
|
-
*
|
|
121
|
-
* @param {Object} err the error Object from Locus response
|
|
122
|
-
* @param {boolean} showToUser true if a toast is shown to user
|
|
123
|
-
* @returns {{showToUser: boolean, category: string, errorDescription: string,
|
|
124
|
-
* errorCode: number, errorData: *, fatal: boolean, name: string}}
|
|
125
|
-
*/
|
|
126
|
-
parseLocusError(err: any, showToUser: boolean): any;
|
|
127
|
-
/**
|
|
128
|
-
* Pareses webex api error.
|
|
129
|
-
*
|
|
130
|
-
* @param {object} err
|
|
131
|
-
* @param {boolean} showToUser
|
|
132
|
-
* @returns {object | null}
|
|
133
|
-
*/
|
|
134
|
-
parseWebexApiError(err: any, showToUser: boolean): any;
|
|
135
|
-
/**
|
|
136
|
-
* Generates Error for the CA event
|
|
137
|
-
*
|
|
138
|
-
* @param {integer} errorCode
|
|
139
|
-
* @param {boolean} shownToUser
|
|
140
|
-
* @param {string} name
|
|
141
|
-
* @param {any} err
|
|
142
|
-
* @returns {any}
|
|
143
|
-
*/
|
|
144
|
-
generateErrorPayload(errorCode: any, shownToUser: any, name: any, err: any): any;
|
|
145
|
-
/**
|
|
146
|
-
* Returns a formated string of the user agent.
|
|
147
|
-
*
|
|
148
|
-
* @returns {string} formatted user agent information
|
|
149
|
-
*/
|
|
150
|
-
userAgentToString(): string;
|
|
26
|
+
initialSetup(webex: object): void;
|
|
151
27
|
/**
|
|
152
28
|
* Uploads given metric to the Metrics service as an Behavioral metric.
|
|
153
29
|
* Metadata about the environment such as browser, OS, SDK and their versions
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/plugin-meetings",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.164",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
|
|
6
6
|
"contributors": [
|
|
@@ -32,12 +32,12 @@
|
|
|
32
32
|
"build": "yarn run -T tsc --declaration true --declarationDir ./dist/types"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@webex/plugin-meetings": "3.0.0-beta.
|
|
36
|
-
"@webex/test-helper-chai": "3.0.0-beta.
|
|
37
|
-
"@webex/test-helper-mocha": "3.0.0-beta.
|
|
38
|
-
"@webex/test-helper-mock-webex": "3.0.0-beta.
|
|
39
|
-
"@webex/test-helper-retry": "3.0.0-beta.
|
|
40
|
-
"@webex/test-helper-test-users": "3.0.0-beta.
|
|
35
|
+
"@webex/plugin-meetings": "3.0.0-beta.164",
|
|
36
|
+
"@webex/test-helper-chai": "3.0.0-beta.164",
|
|
37
|
+
"@webex/test-helper-mocha": "3.0.0-beta.164",
|
|
38
|
+
"@webex/test-helper-mock-webex": "3.0.0-beta.164",
|
|
39
|
+
"@webex/test-helper-retry": "3.0.0-beta.164",
|
|
40
|
+
"@webex/test-helper-test-users": "3.0.0-beta.164",
|
|
41
41
|
"chai": "^4.3.4",
|
|
42
42
|
"chai-as-promised": "^7.1.1",
|
|
43
43
|
"jsdom-global": "3.0.2",
|
|
@@ -46,19 +46,19 @@
|
|
|
46
46
|
"typescript": "^4.7.4"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@webex/common": "3.0.0-beta.
|
|
49
|
+
"@webex/common": "3.0.0-beta.164",
|
|
50
50
|
"@webex/internal-media-core": "1.38.6",
|
|
51
|
-
"@webex/internal-plugin-conversation": "3.0.0-beta.
|
|
52
|
-
"@webex/internal-plugin-device": "3.0.0-beta.
|
|
53
|
-
"@webex/internal-plugin-llm": "3.0.0-beta.
|
|
54
|
-
"@webex/internal-plugin-mercury": "3.0.0-beta.
|
|
55
|
-
"@webex/internal-plugin-metrics": "3.0.0-beta.
|
|
56
|
-
"@webex/internal-plugin-support": "3.0.0-beta.
|
|
57
|
-
"@webex/internal-plugin-user": "3.0.0-beta.
|
|
58
|
-
"@webex/media-helpers": "3.0.0-beta.
|
|
59
|
-
"@webex/plugin-people": "3.0.0-beta.
|
|
60
|
-
"@webex/plugin-rooms": "3.0.0-beta.
|
|
61
|
-
"@webex/webex-core": "3.0.0-beta.
|
|
51
|
+
"@webex/internal-plugin-conversation": "3.0.0-beta.164",
|
|
52
|
+
"@webex/internal-plugin-device": "3.0.0-beta.164",
|
|
53
|
+
"@webex/internal-plugin-llm": "3.0.0-beta.164",
|
|
54
|
+
"@webex/internal-plugin-mercury": "3.0.0-beta.164",
|
|
55
|
+
"@webex/internal-plugin-metrics": "3.0.0-beta.164",
|
|
56
|
+
"@webex/internal-plugin-support": "3.0.0-beta.164",
|
|
57
|
+
"@webex/internal-plugin-user": "3.0.0-beta.164",
|
|
58
|
+
"@webex/media-helpers": "3.0.0-beta.164",
|
|
59
|
+
"@webex/plugin-people": "3.0.0-beta.164",
|
|
60
|
+
"@webex/plugin-rooms": "3.0.0-beta.164",
|
|
61
|
+
"@webex/webex-core": "3.0.0-beta.164",
|
|
62
62
|
"ampersand-collection": "^2.0.2",
|
|
63
63
|
"bowser": "^2.11.0",
|
|
64
64
|
"btoa": "^1.2.1",
|
|
@@ -65,7 +65,11 @@ const Breakout = WebexPlugin.extend({
|
|
|
65
65
|
const deviceUrl = this.webex.internal.device.url;
|
|
66
66
|
const {meetingId} = this.collection.parent;
|
|
67
67
|
const meeting = this.webex.meetings.getMeetingByType(_ID_, meetingId);
|
|
68
|
-
breakoutEvent.onBreakoutMoveRequest(
|
|
68
|
+
breakoutEvent.onBreakoutMoveRequest(
|
|
69
|
+
{currentSession: this, meeting, breakoutMoveId},
|
|
70
|
+
// @ts-ignore
|
|
71
|
+
this.webex.internal.newMetrics.submitClientEvent
|
|
72
|
+
);
|
|
69
73
|
const result = await this.request({
|
|
70
74
|
method: HTTP_VERBS.POST,
|
|
71
75
|
uri: `${this.url}/move`,
|
|
@@ -76,7 +80,11 @@ const Breakout = WebexPlugin.extend({
|
|
|
76
80
|
sessionId: this.sessionId,
|
|
77
81
|
},
|
|
78
82
|
});
|
|
79
|
-
breakoutEvent.onBreakoutMoveResponse(
|
|
83
|
+
breakoutEvent.onBreakoutMoveResponse(
|
|
84
|
+
{currentSession: this, meeting, breakoutMoveId},
|
|
85
|
+
// @ts-ignore
|
|
86
|
+
this.webex.internal.newMetrics.submitClientEvent
|
|
87
|
+
);
|
|
80
88
|
|
|
81
89
|
return result;
|
|
82
90
|
},
|
package/src/breakouts/events.ts
CHANGED
|
@@ -1,37 +1,56 @@
|
|
|
1
1
|
// eslint-disable-next-line import/prefer-default-export
|
|
2
|
-
import
|
|
3
|
-
import {eventType} from '../metrics/config';
|
|
2
|
+
import {ClientEvent} from '@webex/internal-plugin-metrics';
|
|
4
3
|
|
|
5
|
-
const breakoutEvent:
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
4
|
+
const breakoutEvent: {
|
|
5
|
+
onBreakoutMoveRequest: (eventInfo: any, submitClientEvent: any) => void;
|
|
6
|
+
onBreakoutMoveResponse: (eventInfo: any, submitClientEvent: any) => void;
|
|
7
|
+
onBreakoutJoinResponse: (eventInfo: any, submitClientEvent: any) => void;
|
|
8
|
+
postMoveCallAnalyzer: (
|
|
9
|
+
event: ClientEvent['name'],
|
|
10
|
+
eventInfo: any,
|
|
11
|
+
submitClientEvent: any
|
|
12
|
+
) => void;
|
|
13
|
+
} = {
|
|
14
|
+
onBreakoutMoveRequest: (eventInfo, submitClientEvent) => {
|
|
15
|
+
breakoutEvent.postMoveCallAnalyzer(
|
|
16
|
+
'client.breakout-session.move.request',
|
|
17
|
+
eventInfo,
|
|
18
|
+
submitClientEvent
|
|
19
|
+
);
|
|
20
|
+
},
|
|
21
|
+
onBreakoutMoveResponse: (eventInfo, submitClientEvent) => {
|
|
22
|
+
breakoutEvent.postMoveCallAnalyzer(
|
|
23
|
+
'client.breakout-session.move.response',
|
|
24
|
+
eventInfo,
|
|
25
|
+
submitClientEvent
|
|
26
|
+
);
|
|
27
|
+
},
|
|
28
|
+
onBreakoutJoinResponse: (eventInfo, submitClientEvent) => {
|
|
29
|
+
breakoutEvent.postMoveCallAnalyzer(
|
|
30
|
+
'client.breakout-session.join.response',
|
|
31
|
+
eventInfo,
|
|
32
|
+
submitClientEvent
|
|
33
|
+
);
|
|
34
|
+
},
|
|
35
|
+
postMoveCallAnalyzer: (event: ClientEvent['name'], eventInfo: any, submitClientEvent) => {
|
|
36
|
+
if (!eventInfo?.breakoutMoveId || !eventInfo?.meeting) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (!eventInfo.meeting.meetingInfo?.enableConvergedArchitecture) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
submitClientEvent({
|
|
43
|
+
name: event,
|
|
44
|
+
payload: {
|
|
45
|
+
identifiers: {
|
|
46
|
+
breakoutMoveId: eventInfo.breakoutMoveId,
|
|
47
|
+
breakoutSessionId: eventInfo?.currentSession?.sessionId,
|
|
48
|
+
breakoutGroupId: eventInfo?.currentSession?.groupId,
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
options: {meetingId: eventInfo.meeting.id},
|
|
52
|
+
});
|
|
53
|
+
},
|
|
35
54
|
};
|
|
36
55
|
|
|
37
56
|
export default breakoutEvent;
|
package/src/breakouts/index.ts
CHANGED
|
@@ -349,11 +349,15 @@ const Breakouts = WebexPlugin.extend({
|
|
|
349
349
|
) {
|
|
350
350
|
// should report joined session changed
|
|
351
351
|
const meeting = this.webex.meetings.getMeetingByType(_ID_, this.meetingId);
|
|
352
|
-
breakoutEvent.onBreakoutJoinResponse(
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
352
|
+
breakoutEvent.onBreakoutJoinResponse(
|
|
353
|
+
{
|
|
354
|
+
currentSession: this.currentBreakoutSession,
|
|
355
|
+
meeting,
|
|
356
|
+
breakoutMoveId: params.breakoutMoveId,
|
|
357
|
+
},
|
|
358
|
+
// @ts-ignore
|
|
359
|
+
this.webex.internal.newMetrics.submitClientEvent
|
|
360
|
+
);
|
|
357
361
|
}
|
|
358
362
|
},
|
|
359
363
|
|
package/src/constants.ts
CHANGED
|
@@ -1157,8 +1157,6 @@ export const MEDIA_DEVICES = {
|
|
|
1157
1157
|
CAMERA: 'camera',
|
|
1158
1158
|
};
|
|
1159
1159
|
|
|
1160
|
-
export const METRICS_JOIN_TIMES_MAX_DURATION = 1200000;
|
|
1161
|
-
|
|
1162
1160
|
export const PSTN_STATUS = {
|
|
1163
1161
|
JOINED: 'JOINED', // we have provisioned a pstn device, which can be used to connect
|
|
1164
1162
|
CONNECTED: 'CONNECTED', // user is connected to audio with pstn device
|
package/src/locus-info/index.ts
CHANGED
|
@@ -17,8 +17,6 @@ import {
|
|
|
17
17
|
CALL_REMOVED_REASON,
|
|
18
18
|
RECORDING_STATE,
|
|
19
19
|
} from '../constants';
|
|
20
|
-
import Metrics from '../metrics';
|
|
21
|
-
import {eventType} from '../metrics/config';
|
|
22
20
|
import InfoUtils from './infoUtils';
|
|
23
21
|
import FullState from './fullState';
|
|
24
22
|
import SelfUtils from './selfUtils';
|
|
@@ -430,10 +428,15 @@ export default class LocusInfo extends EventsScope {
|
|
|
430
428
|
LoggerProxy.logger.warn(
|
|
431
429
|
'Locus-info:index#isMeetingActive --> Call Ended, locus state is inactive.'
|
|
432
430
|
);
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
431
|
+
|
|
432
|
+
// @ts-ignore
|
|
433
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
434
|
+
name: 'client.call.remote-ended',
|
|
435
|
+
options: {
|
|
436
|
+
meetingId: this.meetingId,
|
|
437
|
+
},
|
|
436
438
|
});
|
|
439
|
+
|
|
437
440
|
this.emitScoped(
|
|
438
441
|
{
|
|
439
442
|
file: 'locus-info',
|
|
@@ -452,9 +455,12 @@ export default class LocusInfo extends EventsScope {
|
|
|
452
455
|
this.parsedLocus.self.state === MEETING_STATE.STATES.NOTIFIED ||
|
|
453
456
|
this.parsedLocus.self.state === MEETING_STATE.STATES.JOINED)
|
|
454
457
|
) {
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
+
// @ts-ignore
|
|
459
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
460
|
+
name: 'client.call.remote-ended',
|
|
461
|
+
options: {
|
|
462
|
+
meetingId: this.meetingId,
|
|
463
|
+
},
|
|
458
464
|
});
|
|
459
465
|
this.emitScoped(
|
|
460
466
|
{
|
|
@@ -476,10 +482,14 @@ export default class LocusInfo extends EventsScope {
|
|
|
476
482
|
partner.state === MEETING_STATE.STATES.NOTIFIED ||
|
|
477
483
|
partner.state === MEETING_STATE.STATES.IDLE) // Happens when user just joins and adds no Media
|
|
478
484
|
) {
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
485
|
+
// @ts-ignore
|
|
486
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
487
|
+
name: 'client.call.remote-ended',
|
|
488
|
+
options: {
|
|
489
|
+
meetingId: this.meetingId,
|
|
490
|
+
},
|
|
482
491
|
});
|
|
492
|
+
|
|
483
493
|
this.emitScoped(
|
|
484
494
|
{
|
|
485
495
|
file: 'locus-info',
|
|
@@ -502,9 +512,13 @@ export default class LocusInfo extends EventsScope {
|
|
|
502
512
|
LoggerProxy.logger.warn(
|
|
503
513
|
'Locus-info:index#isMeetingActive --> Meeting is ending due to inactive or terminating'
|
|
504
514
|
);
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
515
|
+
|
|
516
|
+
// @ts-ignore
|
|
517
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
518
|
+
name: 'client.call.remote-ended',
|
|
519
|
+
options: {
|
|
520
|
+
meetingId: this.meetingId,
|
|
521
|
+
},
|
|
508
522
|
});
|
|
509
523
|
this.emitScoped(
|
|
510
524
|
{
|
|
@@ -519,9 +533,13 @@ export default class LocusInfo extends EventsScope {
|
|
|
519
533
|
);
|
|
520
534
|
} else if (this.fullState && this.fullState.removed) {
|
|
521
535
|
// user has been dropped from a meeting
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
536
|
+
|
|
537
|
+
// @ts-ignore
|
|
538
|
+
this.webex.internal.newMetrics.submitClientEvent({
|
|
539
|
+
name: 'client.call.remote-ended',
|
|
540
|
+
options: {
|
|
541
|
+
meetingId: this.meetingId,
|
|
542
|
+
},
|
|
525
543
|
});
|
|
526
544
|
this.emitScoped(
|
|
527
545
|
{
|