@observertc/observer-js 0.40.13 → 0.40.15
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/lib/ObservedClient.d.ts +1 -8
- package/lib/ObservedClient.d.ts.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/monitors/CallSummary.d.ts +12 -3
- package/lib/monitors/CallSummary.d.ts.map +1 -1
- package/lib/monitors/CallSummaryMonitor.d.ts.map +1 -1
- package/lib/monitors/CallSummaryMonitor.js +4 -4
- package/package.json +1 -1
- package/src/ObservedClient.ts +1 -9
- package/src/index.ts +1 -1
- package/src/monitors/CallSummary.ts +12 -3
- package/src/monitors/CallSummaryMonitor.ts +8 -8
package/lib/ObservedClient.d.ts
CHANGED
|
@@ -4,14 +4,7 @@ import { ObservedCall } from './ObservedCall';
|
|
|
4
4
|
import { EventEmitter } from 'events';
|
|
5
5
|
import { ObservedPeerConnection } from './ObservedPeerConnection';
|
|
6
6
|
import { ObservedSfu } from './ObservedSfu';
|
|
7
|
-
|
|
8
|
-
severity: 'critical' | 'major' | 'minor';
|
|
9
|
-
timestamp: number;
|
|
10
|
-
description?: string;
|
|
11
|
-
peerConnectionId?: string;
|
|
12
|
-
trackId?: string;
|
|
13
|
-
attachments?: Record<string, unknown>;
|
|
14
|
-
}
|
|
7
|
+
import { ClientIssue } from './monitors/CallSummary';
|
|
15
8
|
export type ObservedClientModel = {
|
|
16
9
|
clientId: string;
|
|
17
10
|
mediaUnitId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedClient.d.ts","sourceRoot":"","sources":["../src/ObservedClient.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAChJ,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAOlE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ObservedClient.d.ts","sourceRoot":"","sources":["../src/ObservedClient.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export type { ObservedClient, ObservedClientModel } from './ObservedClient';
|
|
|
10
10
|
export type { ObservedPeerConnection, ObservedPeerConnectionModel, ObservedPeerConnectionEvents } from './ObservedPeerConnection';
|
|
11
11
|
export type { ObservedInboundTrack, ObservedInboundTrackModel, ObservedInboundTrackEvents } from './ObservedInboundTrack';
|
|
12
12
|
export type { ObservedOutboundTrack, ObservedOutboundTrackModel, ObservedOutboundTrackEvents } from './ObservedOutboundTrack';
|
|
13
|
+
export type { CallSummary, ClientSummary, ClientIssue } from './monitors/CallSummary';
|
|
13
14
|
export type { ObserverSinkContext } from './common/types';
|
|
14
15
|
import { Observer, ObserverConfig } from './Observer';
|
|
15
16
|
export declare function createObserver(config?: Partial<ObserverConfig>): Observer;
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAE9D,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAExD,YAAY,EACX,OAAO,EACP,YAAY,EACZ,SAAS,EACT,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,WAAW,GACX,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACX,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,EAC7B,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,YAAY,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAClI,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAC1H,YAAY,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAE9D,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAExD,YAAY,EACX,OAAO,EACP,YAAY,EACZ,SAAS,EACT,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,WAAW,GACX,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACX,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,EAC7B,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,YAAY,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAClI,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAC1H,YAAY,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAC9H,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACtF,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACtD,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,YAE9D;AAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAA8B,MAAM,iBAAiB,CAAC;AAC/E,wBAAgB,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAG3D"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export interface ClientIssue extends Record<string, unknown> {
|
|
2
|
+
severity: 'critical' | 'major' | 'minor';
|
|
3
|
+
timestamp: number;
|
|
4
|
+
description?: string;
|
|
5
|
+
peerConnectionId?: string;
|
|
6
|
+
trackId?: string;
|
|
7
|
+
attachments?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
export interface ClientSummary extends Record<string, unknown> {
|
|
3
10
|
clientId: string;
|
|
4
11
|
mediaUnitId: string;
|
|
5
12
|
userId?: string;
|
|
@@ -14,13 +21,15 @@ export interface ClientSummary {
|
|
|
14
21
|
usedTurn: boolean;
|
|
15
22
|
issues: ClientIssue[];
|
|
16
23
|
}
|
|
17
|
-
export interface CallSummary {
|
|
24
|
+
export interface CallSummary extends Record<string, unknown> {
|
|
18
25
|
serviceId: string;
|
|
19
26
|
roomId: string;
|
|
20
27
|
callId: string;
|
|
21
28
|
started: number;
|
|
22
29
|
durationInMs: number;
|
|
23
30
|
maxNumberOfParticipants: number;
|
|
31
|
+
numberOfIssues: number;
|
|
32
|
+
highestSeverity?: ClientIssue['severity'];
|
|
24
33
|
clients: ClientSummary[];
|
|
25
34
|
}
|
|
26
35
|
//# sourceMappingURL=CallSummary.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallSummary.d.ts","sourceRoot":"","sources":["../../src/monitors/CallSummary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"CallSummary.d.ts","sourceRoot":"","sources":["../../src/monitors/CallSummary.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAY,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3D,QAAQ,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAY,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1C,OAAO,EAAE,aAAa,EAAE,CAAC;CACzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallSummaryMonitor.d.ts","sourceRoot":"","sources":["../../src/monitors/CallSummaryMonitor.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"CallSummaryMonitor.d.ts","sourceRoot":"","sources":["../../src/monitors/CallSummaryMonitor.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,WAAW,EAA8B,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,MAAM,MAAM,wBAAwB,GAAG;IACtC,KAAK,EAAE,EAAE,CAAC;IACV,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;CACvB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACtC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,uCAAuC,CAAC,EAAE,OAAO,CAAC;CAClD,CAAA;AAED,MAAM,CAAC,OAAO,WAAW,kBAAkB;IAC1C,EAAE,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACvH,GAAG,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACxH,IAAI,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACzH,IAAI,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CACxG;AAED,qBAAa,kBAAmB,SAAQ,YAAY;aAKlC,MAAM,EAAE,wBAAwB;IAJjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAE7D,OAAO,CAAC,OAAO,CAAS;gBAEP,MAAM,GAAE,wBAA6B;IAK/C,OAAO,CAAC,IAAI,EAAE,YAAY;IA8BjC,OAAO,CAAC,UAAU;IAsElB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,sBAAsB;IAmBvB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAU3D,IAAW,MAAM,YAEhB;IAEM,KAAK;CAMZ"}
|
|
@@ -21,6 +21,7 @@ class CallSummaryMonitor extends events_1.EventEmitter {
|
|
|
21
21
|
clients: [],
|
|
22
22
|
durationInMs: 0,
|
|
23
23
|
maxNumberOfParticipants: 0,
|
|
24
|
+
numberOfIssues: 0,
|
|
24
25
|
started: call.created,
|
|
25
26
|
};
|
|
26
27
|
this._summaries.set(call.callId, callSummary);
|
|
@@ -62,14 +63,13 @@ class CallSummaryMonitor extends events_1.EventEmitter {
|
|
|
62
63
|
clientSummary.usedTurn || (clientSummary.usedTurn = usingTurn);
|
|
63
64
|
};
|
|
64
65
|
const onIssue = (issue) => {
|
|
66
|
+
++callSummary.numberOfIssues;
|
|
65
67
|
clientSummary.issues.push(issue);
|
|
66
68
|
};
|
|
67
69
|
const onUserMediaError = (error) => {
|
|
68
70
|
if (!this.config.detectUserMediaIssues)
|
|
69
71
|
return;
|
|
70
|
-
|
|
71
|
-
const alreadyDetected = clientSummary.issues.find((issue) => issue.severity === 'critical' && issue.description === error);
|
|
72
|
-
!alreadyDetected && clientSummary.issues.push({
|
|
72
|
+
client.addIssue({
|
|
73
73
|
severity: 'critical',
|
|
74
74
|
timestamp: Date.now(),
|
|
75
75
|
description: error,
|
|
@@ -107,7 +107,7 @@ class CallSummaryMonitor extends events_1.EventEmitter {
|
|
|
107
107
|
const onQualityLimitationChanged = (reason) => {
|
|
108
108
|
if (!this.config.detectMediaTrackQualityLimitationIssues)
|
|
109
109
|
return;
|
|
110
|
-
|
|
110
|
+
track.peerConnection.client.addIssue({
|
|
111
111
|
severity: 'minor',
|
|
112
112
|
timestamp: Date.now(),
|
|
113
113
|
description: reason,
|
package/package.json
CHANGED
package/src/ObservedClient.ts
CHANGED
|
@@ -9,18 +9,10 @@ import { isValidUuid } from './common/utils';
|
|
|
9
9
|
import { createClientLeftEventReport } from './common/callEventReports';
|
|
10
10
|
import { CallEventType } from './common/CallEventType';
|
|
11
11
|
import { ObservedSfu } from './ObservedSfu';
|
|
12
|
+
import { ClientIssue } from './monitors/CallSummary';
|
|
12
13
|
|
|
13
14
|
const logger = createLogger('ObservedClient');
|
|
14
15
|
|
|
15
|
-
export interface ClientIssue {
|
|
16
|
-
severity: 'critical' | 'major' | 'minor';
|
|
17
|
-
timestamp: number;
|
|
18
|
-
description?: string;
|
|
19
|
-
peerConnectionId?: string,
|
|
20
|
-
trackId?: string,
|
|
21
|
-
attachments?: Record<string, unknown>,
|
|
22
|
-
}
|
|
23
|
-
|
|
24
16
|
export type ObservedClientModel= {
|
|
25
17
|
clientId: string;
|
|
26
18
|
mediaUnitId: string;
|
package/src/index.ts
CHANGED
|
@@ -57,7 +57,7 @@ export type { ObservedClient, ObservedClientModel } from './ObservedClient';
|
|
|
57
57
|
export type { ObservedPeerConnection, ObservedPeerConnectionModel, ObservedPeerConnectionEvents } from './ObservedPeerConnection';
|
|
58
58
|
export type { ObservedInboundTrack, ObservedInboundTrackModel, ObservedInboundTrackEvents } from './ObservedInboundTrack';
|
|
59
59
|
export type { ObservedOutboundTrack, ObservedOutboundTrackModel, ObservedOutboundTrackEvents } from './ObservedOutboundTrack';
|
|
60
|
-
|
|
60
|
+
export type { CallSummary, ClientSummary, ClientIssue } from './monitors/CallSummary';
|
|
61
61
|
export type { ObserverSinkContext } from './common/types';
|
|
62
62
|
|
|
63
63
|
import { Observer, ObserverConfig } from './Observer';
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
export interface ClientIssue extends Record<string, unknown> {
|
|
2
|
+
severity: 'critical' | 'major' | 'minor';
|
|
3
|
+
timestamp: number;
|
|
4
|
+
description?: string;
|
|
5
|
+
peerConnectionId?: string,
|
|
6
|
+
trackId?: string,
|
|
7
|
+
attachments?: Record<string, unknown>,
|
|
8
|
+
}
|
|
2
9
|
|
|
3
|
-
export interface ClientSummary {
|
|
10
|
+
export interface ClientSummary extends Record<string, unknown> {
|
|
4
11
|
clientId: string;
|
|
5
12
|
mediaUnitId: string;
|
|
6
13
|
userId?: string;
|
|
@@ -16,12 +23,14 @@ export interface ClientSummary {
|
|
|
16
23
|
issues: ClientIssue[];
|
|
17
24
|
}
|
|
18
25
|
|
|
19
|
-
export interface CallSummary {
|
|
26
|
+
export interface CallSummary extends Record<string, unknown> {
|
|
20
27
|
serviceId: string;
|
|
21
28
|
roomId: string;
|
|
22
29
|
callId: string;
|
|
23
30
|
started: number;
|
|
24
31
|
durationInMs: number;
|
|
25
32
|
maxNumberOfParticipants: number;
|
|
33
|
+
numberOfIssues: number;
|
|
34
|
+
highestSeverity?: ClientIssue['severity'],
|
|
26
35
|
clients: ClientSummary[];
|
|
27
36
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
import { CallSummary, ClientSummary } from './CallSummary';
|
|
2
|
+
import { CallSummary, ClientIssue, ClientSummary } from './CallSummary';
|
|
3
3
|
import { ObservedCall } from '../ObservedCall';
|
|
4
|
-
import {
|
|
4
|
+
import { ObservedClient } from '../ObservedClient';
|
|
5
5
|
import { ObservedOutboundTrack } from '../ObservedOutboundTrack';
|
|
6
6
|
import { ObservedPeerConnection } from '../ObservedPeerConnection';
|
|
7
7
|
|
|
@@ -35,7 +35,7 @@ export class CallSummaryMonitor extends EventEmitter {
|
|
|
35
35
|
public addCall(call: ObservedCall) {
|
|
36
36
|
if (this.closed) return;
|
|
37
37
|
|
|
38
|
-
let callSummary = this._summaries.get(call.callId);
|
|
38
|
+
let callSummary: CallSummary | undefined = this._summaries.get(call.callId);
|
|
39
39
|
|
|
40
40
|
if (!callSummary) {
|
|
41
41
|
callSummary = {
|
|
@@ -45,6 +45,7 @@ export class CallSummaryMonitor extends EventEmitter {
|
|
|
45
45
|
clients: [],
|
|
46
46
|
durationInMs: 0,
|
|
47
47
|
maxNumberOfParticipants: 0,
|
|
48
|
+
numberOfIssues: 0,
|
|
48
49
|
started: call.created,
|
|
49
50
|
};
|
|
50
51
|
this._summaries.set(call.callId, callSummary);
|
|
@@ -91,16 +92,15 @@ export class CallSummaryMonitor extends EventEmitter {
|
|
|
91
92
|
};
|
|
92
93
|
|
|
93
94
|
const onIssue = (issue: ClientIssue) => {
|
|
95
|
+
++callSummary.numberOfIssues;
|
|
94
96
|
clientSummary.issues.push(issue);
|
|
97
|
+
|
|
95
98
|
};
|
|
96
99
|
|
|
97
100
|
const onUserMediaError = (error: string) => {
|
|
98
101
|
if (!this.config.detectUserMediaIssues) return;
|
|
99
102
|
|
|
100
|
-
|
|
101
|
-
const alreadyDetected = clientSummary.issues.find((issue) => issue.severity === 'critical' && issue.description === error);
|
|
102
|
-
|
|
103
|
-
!alreadyDetected && clientSummary.issues.push({
|
|
103
|
+
client.addIssue({
|
|
104
104
|
severity: 'critical',
|
|
105
105
|
timestamp: Date.now(),
|
|
106
106
|
description: error,
|
|
@@ -145,7 +145,7 @@ export class CallSummaryMonitor extends EventEmitter {
|
|
|
145
145
|
const onQualityLimitationChanged = (reason: string) => {
|
|
146
146
|
if (!this.config.detectMediaTrackQualityLimitationIssues) return;
|
|
147
147
|
|
|
148
|
-
|
|
148
|
+
track.peerConnection.client.addIssue({
|
|
149
149
|
severity: 'minor',
|
|
150
150
|
timestamp: Date.now(),
|
|
151
151
|
description: reason,
|