@observertc/observer-js 0.40.18 → 0.40.20
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 -0
- package/lib/ObservedClient.d.ts.map +1 -1
- package/lib/ObservedClient.js +4 -1
- package/lib/monitors/CallSummary.d.ts +6 -4
- package/lib/monitors/CallSummary.d.ts.map +1 -1
- package/lib/monitors/CallSummaryMonitor.d.ts.map +1 -1
- package/lib/monitors/CallSummaryMonitor.js +15 -15
- package/package.json +1 -1
- package/src/ObservedClient.ts +5 -2
- package/src/monitors/CallSummary.ts +6 -4
- package/src/monitors/CallSummaryMonitor.ts +17 -18
package/lib/ObservedClient.d.ts
CHANGED
|
@@ -102,6 +102,7 @@ export declare class ObservedClient<AppData extends Record<string, unknown> = Re
|
|
|
102
102
|
readonly mediaDevices: string[];
|
|
103
103
|
readonly codecs: string[];
|
|
104
104
|
readonly userMediaErrors: string[];
|
|
105
|
+
readonly issues: ClientIssue[];
|
|
105
106
|
readonly ωpendingCreatedTracksTimestamp: Map<string, number>;
|
|
106
107
|
readonly ωpendingCreatedPeerConnectionTimestamp: Map<string, number>;
|
|
107
108
|
constructor(_model: ObservedClientModel, call: ObservedCall, appData: AppData);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedClient.d.ts","sourceRoot":"","sources":["../src/ObservedClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ObservedClient.d.ts","sourceRoot":"","sources":["../src/ObservedClient.ts"],"names":[],"mappings":"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"}
|
package/lib/ObservedClient.js
CHANGED
|
@@ -58,6 +58,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
58
58
|
this.mediaDevices = [];
|
|
59
59
|
this.codecs = [];
|
|
60
60
|
this.userMediaErrors = [];
|
|
61
|
+
this.issues = [];
|
|
61
62
|
this.ωpendingCreatedTracksTimestamp = new Map();
|
|
62
63
|
this.ωpendingCreatedPeerConnectionTimestamp = new Map();
|
|
63
64
|
this.setMaxListeners(Infinity);
|
|
@@ -151,11 +152,12 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
151
152
|
timestamp: (_a = issue.timestamp) !== null && _a !== void 0 ? _a : Date.now(),
|
|
152
153
|
attachments: issue.attachments ? JSON.stringify(issue.attachments) : undefined,
|
|
153
154
|
});
|
|
154
|
-
this.emit('issue', issue);
|
|
155
155
|
}
|
|
156
156
|
catch (err) {
|
|
157
157
|
logger.warn(`Error adding client issue: ${err === null || err === void 0 ? void 0 : err.message}`);
|
|
158
158
|
}
|
|
159
|
+
this.issues.push(issue);
|
|
160
|
+
this.emit('issue', issue);
|
|
159
161
|
}
|
|
160
162
|
accept(sample) {
|
|
161
163
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20;
|
|
@@ -264,6 +266,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
264
266
|
trackId: callEvent.mediaTrackId,
|
|
265
267
|
attachments: callEvent.attachments ? JSON.parse(callEvent.attachments) : undefined,
|
|
266
268
|
};
|
|
269
|
+
this.issues.push(issue);
|
|
267
270
|
this.emit('issue', issue);
|
|
268
271
|
}
|
|
269
272
|
catch (err) {
|
|
@@ -13,10 +13,12 @@ export interface ClientSummary extends Record<string, unknown> {
|
|
|
13
13
|
joined: number;
|
|
14
14
|
left?: number;
|
|
15
15
|
durationInMs: number;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
totalOutboundAudioBytes: number;
|
|
17
|
+
totalOutboundVideoBytes: number;
|
|
18
|
+
totalInboundAudioBytes: number;
|
|
19
|
+
totalInboundVideoBytes: number;
|
|
20
|
+
totalDataChannelBytesSent: number;
|
|
21
|
+
totalDataChannelBytesReceived: number;
|
|
20
22
|
ewmaRttInMs: number;
|
|
21
23
|
usedTurn: boolean;
|
|
22
24
|
issues: ClientIssue[];
|
|
@@ -1 +1 @@
|
|
|
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
|
+
{"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,yBAAyB,EAAE,MAAM,CAAC;IAClC,6BAA6B,EAAE,MAAM,CAAC;IACtC,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,EAAiB,MAAM,eAAe,CAAC;AAC3D,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"}
|
|
@@ -43,10 +43,12 @@ class CallSummaryMonitor extends events_1.EventEmitter {
|
|
|
43
43
|
clientId: client.clientId,
|
|
44
44
|
mediaUnitId: client.mediaUnitId,
|
|
45
45
|
durationInMs: 0,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
totalInboundAudioBytes: 0,
|
|
47
|
+
totalInboundVideoBytes: 0,
|
|
48
|
+
totalOutboundAudioBytes: 0,
|
|
49
|
+
totalOutboundVideoBytes: 0,
|
|
50
|
+
totalDataChannelBytesSent: 0,
|
|
51
|
+
totalDataChannelBytesReceived: 0,
|
|
50
52
|
ewmaRttInMs: 0,
|
|
51
53
|
joined: client.created,
|
|
52
54
|
userId: client.userId,
|
|
@@ -62,10 +64,6 @@ class CallSummaryMonitor extends events_1.EventEmitter {
|
|
|
62
64
|
const onUsingTurn = (usingTurn) => {
|
|
63
65
|
clientSummary.usedTurn || (clientSummary.usedTurn = usingTurn);
|
|
64
66
|
};
|
|
65
|
-
const onIssue = (issue) => {
|
|
66
|
-
++callSummary.numberOfIssues;
|
|
67
|
-
clientSummary.issues.push(issue);
|
|
68
|
-
};
|
|
69
67
|
const onUserMediaError = (error) => {
|
|
70
68
|
if (!this.config.detectUserMediaIssues)
|
|
71
69
|
return;
|
|
@@ -78,23 +76,25 @@ class CallSummaryMonitor extends events_1.EventEmitter {
|
|
|
78
76
|
const onNewPeerConnection = (peerConnection) => this._addPeerConnection(clientSummary, peerConnection);
|
|
79
77
|
client.on('update', updateClient);
|
|
80
78
|
client.on('usingturn', onUsingTurn);
|
|
81
|
-
client.on('issue', onIssue);
|
|
82
79
|
client.on('usermediaerror', onUserMediaError);
|
|
83
80
|
client.on('newpeerconnection', onNewPeerConnection);
|
|
84
81
|
client.once('close', () => {
|
|
85
82
|
const now = Date.now();
|
|
86
|
-
|
|
87
|
-
clientSummary.
|
|
88
|
-
clientSummary.
|
|
89
|
-
clientSummary.
|
|
90
|
-
clientSummary.
|
|
83
|
+
clientSummary.totalInboundAudioBytes = client.totalReceivedAudioBytes;
|
|
84
|
+
clientSummary.totalInboundVideoBytes = client.totalReceivedVideoBytes;
|
|
85
|
+
clientSummary.totalOutboundAudioBytes = client.totalSentAudioBytes;
|
|
86
|
+
clientSummary.totalOutboundVideoBytes = client.totalSentVideoBytes;
|
|
87
|
+
clientSummary.totalDataChannelBytesSent = client.totalDataChannelBytesSent;
|
|
88
|
+
clientSummary.totalDataChannelBytesReceived = client.totalDataChannelBytesReceived;
|
|
91
89
|
clientSummary.durationInMs = now - client.created;
|
|
90
|
+
clientSummary.left = now;
|
|
91
|
+
clientSummary.issues.push(...client.issues);
|
|
92
92
|
client.off('update', updateClient);
|
|
93
93
|
client.off('usingturn', onUsingTurn);
|
|
94
|
-
client.off('issue', onIssue);
|
|
95
94
|
client.off('usermediaerror', onUserMediaError);
|
|
96
95
|
client.off('newpeerconnection', onNewPeerConnection);
|
|
97
96
|
callSummary.durationInMs += clientSummary.durationInMs;
|
|
97
|
+
callSummary.numberOfIssues += clientSummary.issues.length;
|
|
98
98
|
});
|
|
99
99
|
}
|
|
100
100
|
_addPeerConnection(clientSummary, peerConnection) {
|
package/package.json
CHANGED
package/src/ObservedClient.ts
CHANGED
|
@@ -108,6 +108,7 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
|
|
|
108
108
|
public readonly mediaDevices: string[] = [];
|
|
109
109
|
public readonly codecs: string[] = [];
|
|
110
110
|
public readonly userMediaErrors: string[] = [];
|
|
111
|
+
public readonly issues: ClientIssue[] = [];
|
|
111
112
|
|
|
112
113
|
public readonly ωpendingCreatedTracksTimestamp = new Map<string, number>();
|
|
113
114
|
public readonly ωpendingCreatedPeerConnectionTimestamp = new Map<string, number>();
|
|
@@ -231,11 +232,12 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
|
|
|
231
232
|
timestamp: issue.timestamp ?? Date.now(),
|
|
232
233
|
attachments: issue.attachments ? JSON.stringify(issue.attachments): undefined,
|
|
233
234
|
});
|
|
234
|
-
this.emit('issue', issue);
|
|
235
235
|
} catch (err) {
|
|
236
236
|
logger.warn(`Error adding client issue: ${(err as Error)?.message}`);
|
|
237
237
|
}
|
|
238
|
-
|
|
238
|
+
|
|
239
|
+
this.issues.push(issue);
|
|
240
|
+
this.emit('issue', issue);
|
|
239
241
|
}
|
|
240
242
|
|
|
241
243
|
public accept(sample: ClientSample): void {
|
|
@@ -433,6 +435,7 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
|
|
|
433
435
|
attachments: callEvent.attachments ? JSON.parse(callEvent.attachments) : undefined,
|
|
434
436
|
};
|
|
435
437
|
|
|
438
|
+
this.issues.push(issue);
|
|
436
439
|
this.emit('issue', issue);
|
|
437
440
|
} catch (err) {
|
|
438
441
|
logger.warn(`Error parsing client issue: ${(err as Error)?.message}`);
|
|
@@ -14,10 +14,12 @@ export interface ClientSummary extends Record<string, unknown> {
|
|
|
14
14
|
joined: number;
|
|
15
15
|
left?: number;
|
|
16
16
|
durationInMs: number;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
totalOutboundAudioBytes: number,
|
|
18
|
+
totalOutboundVideoBytes: number,
|
|
19
|
+
totalInboundAudioBytes: number,
|
|
20
|
+
totalInboundVideoBytes: number,
|
|
21
|
+
totalDataChannelBytesSent: number,
|
|
22
|
+
totalDataChannelBytesReceived: number,
|
|
21
23
|
ewmaRttInMs: number,
|
|
22
24
|
usedTurn: boolean;
|
|
23
25
|
issues: ClientIssue[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
import { CallSummary,
|
|
2
|
+
import { CallSummary, ClientSummary } from './CallSummary';
|
|
3
3
|
import { ObservedCall } from '../ObservedCall';
|
|
4
4
|
import { ObservedClient } from '../ObservedClient';
|
|
5
5
|
import { ObservedOutboundTrack } from '../ObservedOutboundTrack';
|
|
@@ -68,10 +68,12 @@ export class CallSummaryMonitor extends EventEmitter {
|
|
|
68
68
|
clientId: client.clientId,
|
|
69
69
|
mediaUnitId: client.mediaUnitId,
|
|
70
70
|
durationInMs: 0,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
totalInboundAudioBytes: 0,
|
|
72
|
+
totalInboundVideoBytes: 0,
|
|
73
|
+
totalOutboundAudioBytes: 0,
|
|
74
|
+
totalOutboundVideoBytes: 0,
|
|
75
|
+
totalDataChannelBytesSent: 0,
|
|
76
|
+
totalDataChannelBytesReceived: 0,
|
|
75
77
|
ewmaRttInMs: 0,
|
|
76
78
|
joined: client.created,
|
|
77
79
|
userId: client.userId,
|
|
@@ -91,12 +93,6 @@ export class CallSummaryMonitor extends EventEmitter {
|
|
|
91
93
|
clientSummary.usedTurn ||= usingTurn;
|
|
92
94
|
};
|
|
93
95
|
|
|
94
|
-
const onIssue = (issue: ClientIssue) => {
|
|
95
|
-
++callSummary.numberOfIssues;
|
|
96
|
-
clientSummary.issues.push(issue);
|
|
97
|
-
|
|
98
|
-
};
|
|
99
|
-
|
|
100
96
|
const onUserMediaError = (error: string) => {
|
|
101
97
|
if (!this.config.detectUserMediaIssues) return;
|
|
102
98
|
|
|
@@ -111,25 +107,28 @@ export class CallSummaryMonitor extends EventEmitter {
|
|
|
111
107
|
|
|
112
108
|
client.on('update', updateClient);
|
|
113
109
|
client.on('usingturn', onUsingTurn);
|
|
114
|
-
client.on('issue', onIssue);
|
|
115
110
|
client.on('usermediaerror', onUserMediaError);
|
|
116
111
|
client.on('newpeerconnection', onNewPeerConnection);
|
|
117
112
|
client.once('close', () => {
|
|
118
113
|
const now = Date.now();
|
|
119
|
-
const elapsedTimeInS = (now - client.created) / 1000;
|
|
120
114
|
|
|
121
|
-
clientSummary.
|
|
122
|
-
clientSummary.
|
|
123
|
-
clientSummary.
|
|
124
|
-
clientSummary.
|
|
115
|
+
clientSummary.totalInboundAudioBytes = client.totalReceivedAudioBytes;
|
|
116
|
+
clientSummary.totalInboundVideoBytes = client.totalReceivedVideoBytes;
|
|
117
|
+
clientSummary.totalOutboundAudioBytes = client.totalSentAudioBytes;
|
|
118
|
+
clientSummary.totalOutboundVideoBytes = client.totalSentVideoBytes;
|
|
119
|
+
clientSummary.totalDataChannelBytesSent = client.totalDataChannelBytesSent;
|
|
120
|
+
clientSummary.totalDataChannelBytesReceived = client.totalDataChannelBytesReceived;
|
|
125
121
|
clientSummary.durationInMs = now - client.created;
|
|
122
|
+
clientSummary.left = now;
|
|
123
|
+
clientSummary.issues.push(...client.issues);
|
|
124
|
+
|
|
126
125
|
client.off('update', updateClient);
|
|
127
126
|
client.off('usingturn', onUsingTurn);
|
|
128
|
-
client.off('issue', onIssue);
|
|
129
127
|
client.off('usermediaerror', onUserMediaError);
|
|
130
128
|
client.off('newpeerconnection', onNewPeerConnection);
|
|
131
129
|
|
|
132
130
|
callSummary.durationInMs += clientSummary.durationInMs;
|
|
131
|
+
callSummary.numberOfIssues += clientSummary.issues.length;
|
|
133
132
|
});
|
|
134
133
|
}
|
|
135
134
|
|