@observertc/observer-js 1.0.0-beta.1 → 1.0.0-beta.3
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/ObservedCall.d.ts +4 -19
- package/lib/ObservedCall.d.ts.map +1 -1
- package/lib/ObservedCall.js +20 -43
- package/lib/ObservedCallEventMonitor.d.ts +3 -0
- package/lib/ObservedCallEventMonitor.d.ts.map +1 -1
- package/lib/ObservedCallEventMonitor.js +7 -0
- package/lib/ObservedClient.d.ts +6 -18
- package/lib/ObservedClient.d.ts.map +1 -1
- package/lib/ObservedClient.js +119 -41
- package/lib/ObservedInboundTrack.d.ts +2 -0
- package/lib/ObservedInboundTrack.d.ts.map +1 -1
- package/lib/ObservedInboundTrack.js +32 -0
- package/lib/ObservedOutboundTrack.d.ts +2 -0
- package/lib/ObservedOutboundTrack.d.ts.map +1 -1
- package/lib/ObservedOutboundTrack.js +5 -0
- package/lib/ObservedPeerConnection.d.ts +3 -3
- package/lib/ObservedPeerConnection.d.ts.map +1 -1
- package/lib/ObservedPeerConnection.js +15 -0
- package/lib/Observer.d.ts +2 -5
- package/lib/Observer.d.ts.map +1 -1
- package/lib/Observer.js +10 -10
- package/lib/ObserverEventMonitor.d.ts +3 -0
- package/lib/ObserverEventMonitor.d.ts.map +1 -1
- package/lib/ObserverEventMonitor.js +7 -0
- package/lib/Reports.d.ts +85 -0
- package/lib/Reports.d.ts.map +1 -0
- package/lib/Reports.js +2 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/ObservedCall.ts +25 -55
- package/src/ObservedCallEventMonitor.ts +10 -0
- package/src/ObservedClient.ts +141 -46
- package/src/ObservedInboundTrack.ts +32 -2
- package/src/ObservedOutboundTrack.ts +8 -0
- package/src/ObservedPeerConnection.ts +19 -3
- package/src/Observer.ts +11 -10
- package/src/ObserverEventMonitor.ts +10 -0
- package/src/Reports.ts +87 -0
- package/src/index.ts +4 -0
package/lib/ObservedCall.d.ts
CHANGED
|
@@ -11,9 +11,10 @@ import { ObservedCallEventMonitor } from './ObservedCallEventMonitor';
|
|
|
11
11
|
export type ObservedCallSettings<AppData extends Record<string, unknown> = Record<string, unknown>> = {
|
|
12
12
|
callId: string;
|
|
13
13
|
appData?: AppData;
|
|
14
|
-
remoteTrackResolvePolicy?: 'p2p' | 'mediasoup-sfu';
|
|
14
|
+
remoteTrackResolvePolicy?: 'p2p' | 'mediasoup-sfu' | 'none';
|
|
15
15
|
updatePolicy?: 'update-on-any-client-updated' | 'update-when-all-client-updated' | 'update-on-interval';
|
|
16
16
|
updateIntervalInMs?: number;
|
|
17
|
+
closeCallIfEmptyForMs?: number;
|
|
17
18
|
};
|
|
18
19
|
export type ObservedCallEvents = {
|
|
19
20
|
update: [];
|
|
@@ -40,18 +41,6 @@ export declare class ObservedCall<AppData extends Record<string, unknown> = Reco
|
|
|
40
41
|
remoteTrackResolver?: RemoteTrackResolver;
|
|
41
42
|
totalAddedClients: number;
|
|
42
43
|
totalRemovedClients: number;
|
|
43
|
-
totalClientsReceivedAudioBytes: number;
|
|
44
|
-
totalClientsReceivedVideoBytes: number;
|
|
45
|
-
totalClientsReceivedDataChannelBytes: number;
|
|
46
|
-
totalClientsReceivedBytes: number;
|
|
47
|
-
totalClientsSentAudioBytes: number;
|
|
48
|
-
totalClientsSentDataChannelBytes: number;
|
|
49
|
-
totalClientsSentVideoBytes: number;
|
|
50
|
-
totalClientsSentBytes: number;
|
|
51
|
-
totalRttLt50Measurements: number;
|
|
52
|
-
totalRttLt150Measurements: number;
|
|
53
|
-
totalRttLt300Measurements: number;
|
|
54
|
-
totalRttGtOrEq300Measurements: number;
|
|
55
44
|
numberOfIssues: number;
|
|
56
45
|
numberOfPeerConnections: number;
|
|
57
46
|
numberOfInboundRtpStreams: number;
|
|
@@ -59,17 +48,13 @@ export declare class ObservedCall<AppData extends Record<string, unknown> = Reco
|
|
|
59
48
|
numberOfDataChannels: number;
|
|
60
49
|
maxNumberOfClients: number;
|
|
61
50
|
deltaNumberOfIssues: number;
|
|
62
|
-
deltaRttLt50Measurements: number;
|
|
63
|
-
deltaRttLt150Measurements: number;
|
|
64
|
-
deltaRttLt300Measurements: number;
|
|
65
|
-
deltaRttGtOrEq300Measurements: number;
|
|
66
51
|
appData: AppData;
|
|
67
52
|
closed: boolean;
|
|
68
53
|
startedAt?: number;
|
|
69
54
|
endedAt?: number;
|
|
70
55
|
closedAt?: number;
|
|
71
|
-
|
|
72
|
-
private
|
|
56
|
+
readonly settings: Pick<ObservedCallSettings, 'closeCallIfEmptyForMs'>;
|
|
57
|
+
private closeTimer?;
|
|
73
58
|
constructor(settings: ObservedCallSettings<AppData>, observer: Observer);
|
|
74
59
|
get numberOfClients(): number;
|
|
75
60
|
get score(): number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedCall.d.ts","sourceRoot":"","sources":["../src/ObservedCall.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,MAAM,oBAAoB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACrG,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wBAAwB,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ObservedCall.d.ts","sourceRoot":"","sources":["../src/ObservedCall.ts"],"names":[],"mappings":"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"}
|
package/lib/ObservedCall.js
CHANGED
|
@@ -24,18 +24,6 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
24
24
|
remoteTrackResolver;
|
|
25
25
|
totalAddedClients = 0;
|
|
26
26
|
totalRemovedClients = 0;
|
|
27
|
-
totalClientsReceivedAudioBytes = 0;
|
|
28
|
-
totalClientsReceivedVideoBytes = 0;
|
|
29
|
-
totalClientsReceivedDataChannelBytes = 0;
|
|
30
|
-
totalClientsReceivedBytes = 0;
|
|
31
|
-
totalClientsSentAudioBytes = 0;
|
|
32
|
-
totalClientsSentDataChannelBytes = 0;
|
|
33
|
-
totalClientsSentVideoBytes = 0;
|
|
34
|
-
totalClientsSentBytes = 0;
|
|
35
|
-
totalRttLt50Measurements = 0;
|
|
36
|
-
totalRttLt150Measurements = 0;
|
|
37
|
-
totalRttLt300Measurements = 0;
|
|
38
|
-
totalRttGtOrEq300Measurements = 0;
|
|
39
27
|
numberOfIssues = 0;
|
|
40
28
|
numberOfPeerConnections = 0;
|
|
41
29
|
numberOfInboundRtpStreams = 0;
|
|
@@ -43,17 +31,17 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
43
31
|
numberOfDataChannels = 0;
|
|
44
32
|
maxNumberOfClients = 0;
|
|
45
33
|
deltaNumberOfIssues = 0;
|
|
46
|
-
deltaRttLt50Measurements = 0;
|
|
47
|
-
deltaRttLt150Measurements = 0;
|
|
48
|
-
deltaRttLt300Measurements = 0;
|
|
49
|
-
deltaRttGtOrEq300Measurements = 0;
|
|
34
|
+
// public deltaRttLt50Measurements = 0;
|
|
35
|
+
// public deltaRttLt150Measurements = 0;
|
|
36
|
+
// public deltaRttLt300Measurements = 0;
|
|
37
|
+
// public deltaRttGtOrEq300Measurements = 0;
|
|
50
38
|
appData;
|
|
51
39
|
closed = false;
|
|
52
40
|
startedAt;
|
|
53
41
|
endedAt;
|
|
54
42
|
closedAt;
|
|
55
|
-
|
|
56
|
-
|
|
43
|
+
settings;
|
|
44
|
+
closeTimer;
|
|
57
45
|
constructor(settings, observer) {
|
|
58
46
|
super();
|
|
59
47
|
this.observer = observer;
|
|
@@ -85,11 +73,8 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
85
73
|
case 'mediasoup-sfu':
|
|
86
74
|
break;
|
|
87
75
|
}
|
|
88
|
-
this.
|
|
89
|
-
|
|
90
|
-
};
|
|
91
|
-
this._callEndedEvent = {
|
|
92
|
-
emitted: false,
|
|
76
|
+
this.settings = {
|
|
77
|
+
closeCallIfEmptyForMs: settings.closeCallIfEmptyForMs,
|
|
93
78
|
};
|
|
94
79
|
}
|
|
95
80
|
get numberOfClients() {
|
|
@@ -130,6 +115,9 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
130
115
|
throw new Error(`Call ${this.callId} is closed`);
|
|
131
116
|
if (this.observedClients.has(settings.clientId))
|
|
132
117
|
throw new Error(`Client with id ${settings.clientId} already exists`);
|
|
118
|
+
if (!settings.closeClientIfIdleForMs) {
|
|
119
|
+
settings.closeClientIfIdleForMs = this.observer.config.closeClientIfIdleForMs;
|
|
120
|
+
}
|
|
133
121
|
const result = new ObservedClient_1.ObservedClient(settings, this);
|
|
134
122
|
const wasEmpty = this.observedClients.size === 0;
|
|
135
123
|
const onUpdate = () => this._onClientUpdate(result);
|
|
@@ -142,6 +130,11 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
142
130
|
this.observedClients.delete(settings.clientId);
|
|
143
131
|
if (this.observedClients.size === 0) {
|
|
144
132
|
this.emit('empty');
|
|
133
|
+
if (this.settings.closeCallIfEmptyForMs) {
|
|
134
|
+
this.closeTimer = setTimeout(() => {
|
|
135
|
+
this.close();
|
|
136
|
+
}, this.settings.closeCallIfEmptyForMs);
|
|
137
|
+
}
|
|
145
138
|
}
|
|
146
139
|
++this.totalRemovedClients;
|
|
147
140
|
});
|
|
@@ -151,6 +144,10 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
151
144
|
++this.totalAddedClients;
|
|
152
145
|
this.observedClients.set(settings.clientId, result);
|
|
153
146
|
this.maxNumberOfClients = Math.max(this.maxNumberOfClients, this.observedClients.size);
|
|
147
|
+
if (this.closeTimer) {
|
|
148
|
+
clearTimeout(this.closeTimer);
|
|
149
|
+
this.closeTimer = undefined;
|
|
150
|
+
}
|
|
154
151
|
this.emit('newclient', result);
|
|
155
152
|
if (wasEmpty) {
|
|
156
153
|
this.emit('not-empty');
|
|
@@ -177,28 +174,8 @@ class ObservedCall extends events_1.EventEmitter {
|
|
|
177
174
|
this.scoreCalculator.update();
|
|
178
175
|
this.emit('update');
|
|
179
176
|
this.deltaNumberOfIssues = 0;
|
|
180
|
-
this.deltaRttLt50Measurements = 0;
|
|
181
|
-
this.deltaRttLt150Measurements = 0;
|
|
182
|
-
this.deltaRttLt300Measurements = 0;
|
|
183
|
-
this.deltaRttGtOrEq300Measurements = 0;
|
|
184
177
|
}
|
|
185
178
|
_onClientUpdate(client) {
|
|
186
|
-
this.totalClientsReceivedAudioBytes += client.deltaReceivedAudioBytes;
|
|
187
|
-
this.totalClientsReceivedVideoBytes += client.deltaReceivedVideoBytes;
|
|
188
|
-
this.totalClientsReceivedDataChannelBytes += client.deltaDataChannelBytesReceived;
|
|
189
|
-
this.totalClientsReceivedBytes += client.deltaTransportReceivedBytes;
|
|
190
|
-
this.totalClientsSentAudioBytes += client.deltaSentAudioBytes;
|
|
191
|
-
this.totalClientsSentVideoBytes += client.deltaSentVideoBytes;
|
|
192
|
-
this.totalClientsSentDataChannelBytes += client.deltaDataChannelBytesSent;
|
|
193
|
-
this.totalClientsSentBytes += client.deltaTransportSentBytes;
|
|
194
|
-
this.deltaRttLt50Measurements += client.deltaRttLt50Measurements;
|
|
195
|
-
this.deltaRttLt150Measurements += client.deltaRttLt150Measurements;
|
|
196
|
-
this.deltaRttLt300Measurements += client.deltaRttLt300Measurements;
|
|
197
|
-
this.deltaRttGtOrEq300Measurements += client.deltaRttGtOrEq300Measurements;
|
|
198
|
-
this.totalRttLt50Measurements += client.deltaRttLt50Measurements;
|
|
199
|
-
this.totalRttLt150Measurements += client.deltaRttLt150Measurements;
|
|
200
|
-
this.totalRttLt300Measurements += client.deltaRttLt300Measurements;
|
|
201
|
-
this.totalRttGtOrEq300Measurements += client.deltaRttGtOrEq300Measurements;
|
|
202
179
|
this.deltaNumberOfIssues += client.deltaNumberOfIssues;
|
|
203
180
|
this.numberOfIssues += client.deltaNumberOfIssues;
|
|
204
181
|
if (client.usingTURN) {
|
|
@@ -13,6 +13,7 @@ import { ObservedMediaSource } from './ObservedMediaSource';
|
|
|
13
13
|
import { ObservedOutboundRtp } from './ObservedOutboundRtp';
|
|
14
14
|
import { ObservedOutboundTrack } from './ObservedOutboundTrack';
|
|
15
15
|
import { ObservedPeerConnection } from './ObservedPeerConnection';
|
|
16
|
+
import { TrackReport } from './Reports';
|
|
16
17
|
import { ClientEvent, ClientIssue, ClientMetaData, ClientSample, ExtensionStat } from './schema/ClientSample';
|
|
17
18
|
export declare class ObservedCallEventMonitor<Context> {
|
|
18
19
|
readonly call: ObservedCall;
|
|
@@ -64,6 +65,7 @@ export declare class ObservedCallEventMonitor<Context> {
|
|
|
64
65
|
onRemovedMediaPlayout?: (mediaPlayout: ObservedMediaPlayout, ctx: Context) => void;
|
|
65
66
|
onMediaSourceAdded?: (mediaSource: ObservedMediaSource, ctx: Context) => void;
|
|
66
67
|
onMediaSourceRemoved?: (mediaSource: ObservedMediaSource, ctx: Context) => void;
|
|
68
|
+
onTrackReport?: (trackReport: TrackReport, ctx: Context) => void;
|
|
67
69
|
private _onCallAdded;
|
|
68
70
|
private _onClientAdded;
|
|
69
71
|
private _onClientRejoined;
|
|
@@ -100,5 +102,6 @@ export declare class ObservedCallEventMonitor<Context> {
|
|
|
100
102
|
private _onClientLeft;
|
|
101
103
|
private _onUserMediaError;
|
|
102
104
|
private _onUsingTurn;
|
|
105
|
+
private _onTrackReport;
|
|
103
106
|
}
|
|
104
107
|
//# sourceMappingURL=ObservedCallEventMonitor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedCallEventMonitor.d.ts","sourceRoot":"","sources":["../src/ObservedCallEventMonitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAwB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE9G,qBAAa,wBAAwB,CAAC,OAAO;aAE3B,IAAI,EAAE,YAAY;aAClB,OAAO,EAAE,OAAO;gBADhB,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,OAAO;IA2C1B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1D,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAE3D,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/D,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAChE,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAClE,aAAa,CAAC,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1F,gBAAgB,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACpG,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/G,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAChE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9D,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/F,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACvF,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACvF,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnF,qBAAqB,CAAC,EAAE,CAAC,cAAc,EAAE,sBAAsB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACvF,uBAAuB,CAAC,EAAE,CAAC,cAAc,EAAE,sBAAsB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACzF,8BAA8B,CAAC,EAAE,CAAC,cAAc,EAAE,sBAAsB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAChG,yBAAyB,CAAC,EAAE,CAAC,cAAc,EAAE,sBAAsB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3F,0BAA0B,CAAC,EAAE,CAAC,cAAc,EAAE,sBAAsB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5F,uBAAuB,CAAC,EAAE,CAAC,cAAc,EAAE,sBAAsB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzF,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9E,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEhF,mBAAmB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACjF,qBAAqB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnF,oBAAoB,CAAC,EAAE,CAAC,aAAa,EAAE,qBAAqB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACpF,sBAAsB,CAAC,EAAE,CAAC,aAAa,EAAE,qBAAqB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEtF,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3E,mBAAmB,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAE7E,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9E,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEhF,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9E,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEhF,mBAAmB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACjF,qBAAqB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnF,mBAAmB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACjF,qBAAqB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnF,uBAAuB,CAAC,EAAE,CAAC,aAAa,EAAE,wBAAwB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1F,yBAAyB,CAAC,EAAE,CAAC,aAAa,EAAE,wBAAwB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAE5F,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACjE,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnE,mBAAmB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACjF,qBAAqB,CAAC,EAAE,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAEnF,kBAAkB,CAAC,EAAE,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9E,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ObservedCallEventMonitor.d.ts","sourceRoot":"","sources":["../src/ObservedCallEventMonitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,6 +92,7 @@ class ObservedCallEventMonitor {
|
|
|
92
92
|
onRemovedMediaPlayout;
|
|
93
93
|
onMediaSourceAdded;
|
|
94
94
|
onMediaSourceRemoved;
|
|
95
|
+
onTrackReport;
|
|
95
96
|
_onCallAdded(call) {
|
|
96
97
|
const onCallEmpty = () => this.onCallEmpty?.(call, this.context);
|
|
97
98
|
const onCallNotEmpty = () => this.onCallNotEmpty?.(call, this.context);
|
|
@@ -119,6 +120,7 @@ class ObservedCallEventMonitor {
|
|
|
119
120
|
const onUserMediaError = (error) => this._onUserMediaError(observedClient, error);
|
|
120
121
|
const onClientUpdated = (...args) => this.onClientUpdated?.(observedClient, args[0], this.context);
|
|
121
122
|
const onClientEvent = (event) => this.onClientEvent?.(observedClient, event, this.context);
|
|
123
|
+
const onTrackReport = (trackReport) => this._onTrackReport(observedClient, trackReport);
|
|
122
124
|
observedClient.once('close', () => {
|
|
123
125
|
observedClient.off('newpeerconnection', this._onPeerConnconnectionAdded);
|
|
124
126
|
observedClient.off('issue', onClientIssue);
|
|
@@ -130,6 +132,7 @@ class ObservedCallEventMonitor {
|
|
|
130
132
|
observedClient.off('usingturn', onUsingTurn);
|
|
131
133
|
observedClient.off('update', onClientUpdated);
|
|
132
134
|
observedClient.off('clientEvent', onClientEvent);
|
|
135
|
+
observedClient.off('trackreport', onTrackReport);
|
|
133
136
|
this.onClientClosed?.(observedClient, this.context);
|
|
134
137
|
});
|
|
135
138
|
observedClient.on('newpeerconnection', this._onPeerConnconnectionAdded);
|
|
@@ -143,6 +146,7 @@ class ObservedCallEventMonitor {
|
|
|
143
146
|
observedClient.on('extensionStats', onClientExtensionStats);
|
|
144
147
|
observedClient.on('update', onClientUpdated);
|
|
145
148
|
observedClient.on('clientEvent', onClientEvent);
|
|
149
|
+
observedClient.on('trackreport', onTrackReport);
|
|
146
150
|
this.onClientAdded?.(observedClient, this.context);
|
|
147
151
|
}
|
|
148
152
|
_onClientRejoined(observedClient) {
|
|
@@ -310,5 +314,8 @@ class ObservedCallEventMonitor {
|
|
|
310
314
|
_onUsingTurn(observedClient, usingTurn) {
|
|
311
315
|
this.onClientUsingTurn?.(observedClient, usingTurn, this.context);
|
|
312
316
|
}
|
|
317
|
+
_onTrackReport(client, trackReport) {
|
|
318
|
+
this.onTrackReport?.(trackReport, this.context);
|
|
319
|
+
}
|
|
313
320
|
}
|
|
314
321
|
exports.ObservedCallEventMonitor = ObservedCallEventMonitor;
|
package/lib/ObservedClient.d.ts
CHANGED
|
@@ -6,9 +6,11 @@ import * as MetaData from './schema/ClientMetaTypes';
|
|
|
6
6
|
import { ObservedCall } from './ObservedCall';
|
|
7
7
|
import { CalculatedScore } from './scores/CalculatedScore';
|
|
8
8
|
import { Detectors } from './detectors/Detectors';
|
|
9
|
+
import { ClientReport, TrackReport } from './Reports';
|
|
9
10
|
export type ObservedClientSettings<AppData extends Record<string, unknown> = Record<string, unknown>> = {
|
|
10
11
|
clientId: string;
|
|
11
12
|
appData?: AppData;
|
|
13
|
+
closeClientIfIdleForMs?: number;
|
|
12
14
|
};
|
|
13
15
|
export type ObservedClientEvents = {
|
|
14
16
|
update: [sample: ClientSample, elapsedTimeInMs: number];
|
|
@@ -23,6 +25,7 @@ export type ObservedClientEvents = {
|
|
|
23
25
|
extensionStats: [ExtensionStat];
|
|
24
26
|
clientEvent: [ClientEvent];
|
|
25
27
|
newpeerconnection: [ObservedPeerConnection];
|
|
28
|
+
trackreport: [TrackReport];
|
|
26
29
|
};
|
|
27
30
|
export declare interface ObservedClient {
|
|
28
31
|
on<U extends keyof ObservedClientEvents>(event: U, listener: (...args: ObservedClientEvents[U]) => void): this;
|
|
@@ -36,6 +39,7 @@ export declare class ObservedClient<AppData extends Record<string, unknown> = Re
|
|
|
36
39
|
readonly clientId: string;
|
|
37
40
|
readonly observedPeerConnections: Map<string, ObservedPeerConnection>;
|
|
38
41
|
readonly calculatedScore: CalculatedScore;
|
|
42
|
+
readonly settings: Pick<ObservedClientSettings, 'closeClientIfIdleForMs'>;
|
|
39
43
|
appData: AppData;
|
|
40
44
|
attachments?: Record<string, unknown>;
|
|
41
45
|
updated: number;
|
|
@@ -54,19 +58,6 @@ export declare class ObservedClient<AppData extends Record<string, unknown> = Re
|
|
|
54
58
|
usingTCP: boolean;
|
|
55
59
|
availableOutgoingBitrate: number;
|
|
56
60
|
availableIncomingBitrate: number;
|
|
57
|
-
totalInboundPacketsLost: number;
|
|
58
|
-
totalInboundPacketsReceived: number;
|
|
59
|
-
totalOutboundPacketsSent: number;
|
|
60
|
-
totalDataChannelBytesSent: number;
|
|
61
|
-
totalDataChannelBytesReceived: number;
|
|
62
|
-
totalDataChannelMessagesSent: number;
|
|
63
|
-
totalDataChannelMessagesReceived: number;
|
|
64
|
-
totalReceivedAudioBytes: number;
|
|
65
|
-
totalReceivedVideoBytes: number;
|
|
66
|
-
totalSentAudioBytes: number;
|
|
67
|
-
totalSentVideoBytes: number;
|
|
68
|
-
totalSentBytes: number;
|
|
69
|
-
totalReceivedBytes: number;
|
|
70
61
|
deltaReceivedAudioBytes: number;
|
|
71
62
|
deltaReceivedVideoBytes: number;
|
|
72
63
|
deltaSentAudioBytes: number;
|
|
@@ -96,17 +87,14 @@ export declare class ObservedClient<AppData extends Record<string, unknown> = Re
|
|
|
96
87
|
numberOfOutboundRtpStreams: number;
|
|
97
88
|
numberOfOutboundTracks: number;
|
|
98
89
|
numberOfDataChannels: number;
|
|
99
|
-
totalRttLt50Measurements: number;
|
|
100
|
-
totalRttLt150Measurements: number;
|
|
101
|
-
totalRttLt300Measurements: number;
|
|
102
|
-
totalRttGtOrEq300Measurements: number;
|
|
103
90
|
deltaNumberOfIssues: number;
|
|
104
91
|
totalScoreSum: number;
|
|
105
92
|
numberOfScoreMeasurements: number;
|
|
106
|
-
|
|
93
|
+
readonly report: ClientReport;
|
|
107
94
|
readonly mediaDevices: MetaData.MediaDeviceInfo[];
|
|
108
95
|
issues: ClientIssue[];
|
|
109
96
|
private _injections;
|
|
97
|
+
private closeTimer?;
|
|
110
98
|
constructor(settings: ObservedClientSettings<AppData>, call: ObservedCall);
|
|
111
99
|
get numberOfPeerConnections(): number;
|
|
112
100
|
get score(): number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedClient.d.ts","sourceRoot":"","sources":["../src/ObservedClient.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAwB,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACpI,OAAO,KAAK,QAAQ,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ObservedClient.d.ts","sourceRoot":"","sources":["../src/ObservedClient.ts"],"names":[],"mappings":"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"}
|
package/lib/ObservedClient.js
CHANGED
|
@@ -18,6 +18,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
18
18
|
weight: 1,
|
|
19
19
|
value: undefined,
|
|
20
20
|
};
|
|
21
|
+
settings;
|
|
21
22
|
appData;
|
|
22
23
|
attachments;
|
|
23
24
|
updated = Date.now();
|
|
@@ -37,19 +38,23 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
37
38
|
usingTCP = false;
|
|
38
39
|
availableOutgoingBitrate = 0;
|
|
39
40
|
availableIncomingBitrate = 0;
|
|
40
|
-
totalInboundPacketsLost = 0;
|
|
41
|
-
totalInboundPacketsReceived = 0;
|
|
42
|
-
totalOutboundPacketsSent = 0;
|
|
43
|
-
totalDataChannelBytesSent = 0;
|
|
44
|
-
totalDataChannelBytesReceived = 0;
|
|
45
|
-
totalDataChannelMessagesSent = 0;
|
|
46
|
-
totalDataChannelMessagesReceived = 0;
|
|
47
|
-
totalReceivedAudioBytes = 0;
|
|
48
|
-
totalReceivedVideoBytes = 0;
|
|
49
|
-
totalSentAudioBytes = 0;
|
|
50
|
-
totalSentVideoBytes = 0;
|
|
51
|
-
totalSentBytes = 0;
|
|
52
|
-
totalReceivedBytes = 0;
|
|
41
|
+
// public totalInboundPacketsLost = 0;
|
|
42
|
+
// public totalInboundPacketsReceived = 0;
|
|
43
|
+
// public totalOutboundPacketsSent = 0;
|
|
44
|
+
// public totalDataChannelBytesSent = 0;
|
|
45
|
+
// public totalDataChannelBytesReceived = 0;
|
|
46
|
+
// public totalDataChannelMessagesSent = 0;
|
|
47
|
+
// public totalDataChannelMessagesReceived = 0;
|
|
48
|
+
// public totalReceivedAudioBytes = 0;
|
|
49
|
+
// public totalReceivedVideoBytes = 0;
|
|
50
|
+
// public totalSentAudioBytes = 0;
|
|
51
|
+
// public totalSentVideoBytes = 0;
|
|
52
|
+
// public totalSentBytes = 0;
|
|
53
|
+
// public totalReceivedBytes = 0;
|
|
54
|
+
// public totalRttLt50Measurements = 0;
|
|
55
|
+
// public totalRttLt150Measurements = 0;
|
|
56
|
+
// public totalRttLt300Measurements = 0;
|
|
57
|
+
// public totalRttGtOrEq300Measurements = 0;
|
|
53
58
|
deltaReceivedAudioBytes = 0;
|
|
54
59
|
deltaReceivedVideoBytes = 0;
|
|
55
60
|
deltaSentAudioBytes = 0;
|
|
@@ -79,17 +84,15 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
79
84
|
numberOfOutboundRtpStreams = 0;
|
|
80
85
|
numberOfOutboundTracks = 0;
|
|
81
86
|
numberOfDataChannels = 0;
|
|
82
|
-
totalRttLt50Measurements = 0;
|
|
83
|
-
totalRttLt150Measurements = 0;
|
|
84
|
-
totalRttLt300Measurements = 0;
|
|
85
|
-
totalRttGtOrEq300Measurements = 0;
|
|
86
87
|
deltaNumberOfIssues = 0;
|
|
87
88
|
totalScoreSum = 0;
|
|
88
89
|
numberOfScoreMeasurements = 0;
|
|
89
|
-
totalNumberOfIssues = 0;
|
|
90
|
+
// public totalNumberOfIssues = 0;
|
|
91
|
+
report;
|
|
90
92
|
mediaDevices = [];
|
|
91
93
|
issues = [];
|
|
92
94
|
_injections = {};
|
|
95
|
+
closeTimer;
|
|
93
96
|
constructor(settings, call) {
|
|
94
97
|
super();
|
|
95
98
|
this.call = call;
|
|
@@ -97,6 +100,46 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
97
100
|
this.clientId = settings.clientId;
|
|
98
101
|
this.appData = settings.appData ?? {};
|
|
99
102
|
this.detectors = new Detectors_1.Detectors();
|
|
103
|
+
this.settings = {
|
|
104
|
+
closeClientIfIdleForMs: settings.closeClientIfIdleForMs,
|
|
105
|
+
};
|
|
106
|
+
this.report = {
|
|
107
|
+
callId: this.call.callId,
|
|
108
|
+
clientId: this.clientId,
|
|
109
|
+
rttDistribution: {
|
|
110
|
+
gtOrEq300ms: 0,
|
|
111
|
+
lt50ms: 0,
|
|
112
|
+
lt150ms: 0,
|
|
113
|
+
lt300ms: 0,
|
|
114
|
+
count: 0,
|
|
115
|
+
sum: 0,
|
|
116
|
+
},
|
|
117
|
+
scoreDistribution: {
|
|
118
|
+
'0': 0,
|
|
119
|
+
'1': 0,
|
|
120
|
+
'2': 0,
|
|
121
|
+
'3': 0,
|
|
122
|
+
'4': 0,
|
|
123
|
+
'5': 0,
|
|
124
|
+
count: 0,
|
|
125
|
+
sum: 0,
|
|
126
|
+
},
|
|
127
|
+
issues: {},
|
|
128
|
+
totalAudioBytesReceived: 0,
|
|
129
|
+
totalVideoBytesReceived: 0,
|
|
130
|
+
totalAudioBytesSent: 0,
|
|
131
|
+
totalVideoBytesSent: 0,
|
|
132
|
+
totalDataChannelBytesReceived: 0,
|
|
133
|
+
totalDataChannelBytesSent: 0,
|
|
134
|
+
totalDataChannelMessagesReceived: 0,
|
|
135
|
+
totalDataChannelMessagesSent: 0,
|
|
136
|
+
totalInboundRtpBytesReceived: 0,
|
|
137
|
+
totalInboundRtpPacketsLost: 0,
|
|
138
|
+
totalInboundRtpPacketsReceived: 0,
|
|
139
|
+
totalOutboundRtpBytesSent: 0,
|
|
140
|
+
totalOutboundRtpPacketsSent: 0,
|
|
141
|
+
totalNumberOfIssues: 0,
|
|
142
|
+
};
|
|
100
143
|
}
|
|
101
144
|
get numberOfPeerConnections() {
|
|
102
145
|
return this.observedPeerConnections.size;
|
|
@@ -125,6 +168,10 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
125
168
|
accept(sample) {
|
|
126
169
|
if (this.closed)
|
|
127
170
|
throw new Error(`Client ${this.clientId} is closed`);
|
|
171
|
+
if (this.closeTimer) {
|
|
172
|
+
clearTimeout(this.closeTimer);
|
|
173
|
+
this.closeTimer = undefined;
|
|
174
|
+
}
|
|
128
175
|
const now = Date.now();
|
|
129
176
|
const elapsedInMs = now - this.updated;
|
|
130
177
|
const elapsedInSeconds = elapsedInMs / 1000;
|
|
@@ -215,16 +262,22 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
215
262
|
}
|
|
216
263
|
if (observedPeerConnection.currentRttInMs < 50) {
|
|
217
264
|
this.deltaRttLt50Measurements += 1;
|
|
265
|
+
this.report.rttDistribution.lt50ms += 1;
|
|
218
266
|
}
|
|
219
267
|
else if (observedPeerConnection.currentRttInMs < 150) {
|
|
220
268
|
this.deltaRttLt150Measurements += 1;
|
|
269
|
+
this.report.rttDistribution.lt150ms += 1;
|
|
221
270
|
}
|
|
222
271
|
else if (observedPeerConnection.currentRttInMs < 300) {
|
|
223
272
|
this.deltaRttLt300Measurements += 1;
|
|
273
|
+
this.report.rttDistribution.lt300ms += 1;
|
|
224
274
|
}
|
|
225
275
|
else if (300 <= observedPeerConnection.currentRttInMs) {
|
|
226
276
|
this.deltaRttGtOrEq300Measurements += 1;
|
|
277
|
+
this.report.rttDistribution.gtOrEq300ms += 1;
|
|
227
278
|
}
|
|
279
|
+
this.report.rttDistribution.count += 1;
|
|
280
|
+
this.report.rttDistribution.sum += observedPeerConnection.currentRttInMs;
|
|
228
281
|
sumOfRtts += observedPeerConnection.currentRttInMs;
|
|
229
282
|
++numberOfRttMeasurements;
|
|
230
283
|
}
|
|
@@ -234,30 +287,32 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
234
287
|
}
|
|
235
288
|
// emit new attachments?
|
|
236
289
|
this.attachments = sample.attachments;
|
|
237
|
-
this.totalDataChannelBytesReceived += this.deltaDataChannelBytesReceived;
|
|
238
|
-
this.totalDataChannelBytesSent += this.deltaDataChannelBytesSent;
|
|
239
|
-
this.totalDataChannelMessagesReceived += this.deltaDataChannelMessagesReceived;
|
|
240
|
-
this.totalDataChannelMessagesSent += this.deltaDataChannelMessagesSent;
|
|
241
|
-
this.
|
|
242
|
-
this.
|
|
243
|
-
this.
|
|
244
|
-
this.
|
|
245
|
-
this.
|
|
246
|
-
this.
|
|
247
|
-
this.
|
|
248
|
-
this.
|
|
249
|
-
this.
|
|
250
|
-
this.
|
|
251
|
-
this.totalRttLt150Measurements += this.deltaRttLt150Measurements;
|
|
252
|
-
this.totalRttLt300Measurements += this.deltaRttLt300Measurements;
|
|
253
|
-
this.totalRttGtOrEq300Measurements += this.deltaRttGtOrEq300Measurements;
|
|
254
|
-
this.totalNumberOfIssues += this.deltaNumberOfIssues;
|
|
290
|
+
this.report.totalDataChannelBytesReceived += this.deltaDataChannelBytesReceived;
|
|
291
|
+
this.report.totalDataChannelBytesSent += this.deltaDataChannelBytesSent;
|
|
292
|
+
this.report.totalDataChannelMessagesReceived += this.deltaDataChannelMessagesReceived;
|
|
293
|
+
this.report.totalDataChannelMessagesSent += this.deltaDataChannelMessagesSent;
|
|
294
|
+
this.report.totalInboundRtpPacketsLost += this.deltaInboundPacketsLost;
|
|
295
|
+
this.report.totalInboundRtpPacketsReceived += this.deltaInboundPacketsReceived;
|
|
296
|
+
this.report.totalOutboundRtpPacketsSent += this.deltaOutboundPacketsSent;
|
|
297
|
+
this.report.totalAudioBytesReceived += this.deltaReceivedAudioBytes;
|
|
298
|
+
this.report.totalVideoBytesReceived += this.deltaReceivedVideoBytes;
|
|
299
|
+
this.report.totalAudioBytesSent += this.deltaSentAudioBytes;
|
|
300
|
+
this.report.totalVideoBytesSent += this.deltaSentVideoBytes;
|
|
301
|
+
this.report.totalInboundRtpBytesReceived += this.deltaTransportReceivedBytes;
|
|
302
|
+
this.report.totalOutboundRtpBytesSent += this.deltaTransportSentBytes;
|
|
303
|
+
this.report.totalNumberOfIssues += this.deltaNumberOfIssues;
|
|
255
304
|
this.receivingAudioBitrate = (this.deltaReceivedAudioBytes * 8) / (elapsedInSeconds);
|
|
256
|
-
this.receivingVideoBitrate = (this.
|
|
305
|
+
this.receivingVideoBitrate = (this.deltaReceivedVideoBytes * 8) / (elapsedInSeconds);
|
|
257
306
|
this.sendingAudioBitrate = (this.deltaSentAudioBytes * 8) / (elapsedInSeconds);
|
|
258
307
|
this.sendingVideoBitrate = (this.deltaSentVideoBytes * 8) / (elapsedInSeconds);
|
|
259
308
|
this.currentAvgRttInMs = 0 < numberOfRttMeasurements ? sumOfRtts / numberOfRttMeasurements : undefined;
|
|
260
309
|
this.calculatedScore.value = sample.score;
|
|
310
|
+
if (sample.score !== undefined) {
|
|
311
|
+
const bucket = Math.floor(sample.score).toString();
|
|
312
|
+
this.report.scoreDistribution[bucket] = (this.report.scoreDistribution[bucket] ?? 0) + 1;
|
|
313
|
+
this.report.scoreDistribution.count += 1;
|
|
314
|
+
this.report.scoreDistribution.sum += sample.score;
|
|
315
|
+
}
|
|
261
316
|
this.detectors.update();
|
|
262
317
|
this.lastSampleTimestamp = sample.timestamp;
|
|
263
318
|
// emit update
|
|
@@ -268,6 +323,11 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
268
323
|
this.totalScoreSum += this.calculatedScore.value;
|
|
269
324
|
++this.numberOfScoreMeasurements;
|
|
270
325
|
}
|
|
326
|
+
if (this.settings.closeClientIfIdleForMs !== undefined) {
|
|
327
|
+
this.closeTimer = setTimeout(() => {
|
|
328
|
+
this.close();
|
|
329
|
+
}, this.settings.closeClientIfIdleForMs);
|
|
330
|
+
}
|
|
271
331
|
}
|
|
272
332
|
_processClientEvent(event, postBuffer) {
|
|
273
333
|
// eslint-disable-next-line no-console
|
|
@@ -574,6 +634,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
574
634
|
addIssue(issue) {
|
|
575
635
|
if (this.closed)
|
|
576
636
|
return;
|
|
637
|
+
this.report.issues[issue.type] = (this.report.issues[issue.type] ?? 0) + 1;
|
|
577
638
|
this.emit('issue', issue);
|
|
578
639
|
this.call.observer.emit('client-issue', this, issue);
|
|
579
640
|
}
|
|
@@ -587,12 +648,29 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
587
648
|
if (!sample.peerConnectionId) {
|
|
588
649
|
return (logger.warn(`ObservedClient received an invalid PeerConnectionSample (missing peerConnectionId field). ClientId: ${this.clientId}, CallId: ${this.call.callId}`, sample), void 0);
|
|
589
650
|
}
|
|
590
|
-
|
|
591
|
-
|
|
651
|
+
const newObservedPeerConnection = new ObservedPeerConnection_1.ObservedPeerConnection(sample.peerConnectionId, this);
|
|
652
|
+
const onInboundTrackRemoved = (track) => {
|
|
653
|
+
this.emit('trackreport', {
|
|
654
|
+
direction: 'inbound',
|
|
655
|
+
...track.report,
|
|
656
|
+
});
|
|
657
|
+
};
|
|
658
|
+
const onOutboundTrackRemoved = (track) => {
|
|
659
|
+
this.emit('trackreport', {
|
|
660
|
+
direction: 'outbound',
|
|
661
|
+
...track.report,
|
|
662
|
+
});
|
|
663
|
+
};
|
|
664
|
+
newObservedPeerConnection.once('close', () => {
|
|
665
|
+
newObservedPeerConnection?.off('removed-inbound-track', onInboundTrackRemoved);
|
|
666
|
+
newObservedPeerConnection?.off('removed-outbound-track', onOutboundTrackRemoved);
|
|
592
667
|
this.observedPeerConnections.delete(sample.peerConnectionId);
|
|
593
668
|
});
|
|
594
|
-
|
|
595
|
-
|
|
669
|
+
newObservedPeerConnection.on('removed-inbound-track', onInboundTrackRemoved);
|
|
670
|
+
newObservedPeerConnection.on('removed-outbound-track', onOutboundTrackRemoved);
|
|
671
|
+
this.observedPeerConnections.set(sample.peerConnectionId, newObservedPeerConnection);
|
|
672
|
+
this.emit('newpeerconnection', newObservedPeerConnection);
|
|
673
|
+
observedPeerConnection = newObservedPeerConnection;
|
|
596
674
|
}
|
|
597
675
|
observedPeerConnection.accept(sample);
|
|
598
676
|
return observedPeerConnection;
|
|
@@ -5,6 +5,7 @@ import { Detectors } from './detectors/Detectors';
|
|
|
5
5
|
import { ObservedPeerConnection } from './ObservedPeerConnection';
|
|
6
6
|
import { ObservedInboundRtp } from './ObservedInboundRtp';
|
|
7
7
|
import { ObservedMediaPlayout } from './ObservedMediaPlayout';
|
|
8
|
+
import { InboundTrackReport } from './Reports';
|
|
8
9
|
export declare class ObservedInboundTrack implements InboundTrackSample {
|
|
9
10
|
timestamp: number;
|
|
10
11
|
readonly id: string;
|
|
@@ -15,6 +16,7 @@ export declare class ObservedInboundTrack implements InboundTrackSample {
|
|
|
15
16
|
readonly detectors: Detectors;
|
|
16
17
|
readonly calculatedScore: CalculatedScore;
|
|
17
18
|
appData?: Record<string, unknown>;
|
|
19
|
+
report: InboundTrackReport;
|
|
18
20
|
private _visited;
|
|
19
21
|
addedAt?: number | undefined;
|
|
20
22
|
removedAt?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedInboundTrack.d.ts","sourceRoot":"","sources":["../src/ObservedInboundTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"ObservedInboundTrack.d.ts","sourceRoot":"","sources":["../src/ObservedInboundTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,qBAAa,oBAAqB,YAAW,kBAAkB;IAmBtD,SAAS,EAAE,MAAM;aACR,EAAE,EAAE,MAAM;aACV,IAAI,EAAE,SAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAvBhC,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,eAAe,EAAE,eAAe,CAG9C;IACK,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,EAAE,kBAAkB,CAAC;IAElC,OAAO,CAAC,QAAQ,CAAS;IAElB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAEvB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;gBAG1C,SAAS,EAAE,MAAM,EACR,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,SAAS,EACd,eAAe,EAAE,sBAAsB,EACvC,WAAW,CAAC,gCAAoB,EAChC,aAAa,CAAC,kCAAsB;IAoBtD,IAAW,KAAK,uBAEf;IAED,IAAW,OAAO,YAMjB;IAEM,iBAAiB;IAIjB,aAAa;IAIb,eAAe;IAIf,sBAAsB;IAItB,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;CAuB9C"}
|