@observertc/observer-js 0.40.4-beta → 0.40.5-beta

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.
@@ -24,10 +24,12 @@ export declare class ObservedCall<AppData extends Record<string, unknown> = Reco
24
24
  private readonly _model;
25
25
  readonly observer: Observer;
26
26
  readonly appData: AppData;
27
+ readonly created: number;
27
28
  private readonly _clients;
28
29
  readonly sfuStreamIdToOutboundAudioTrack: Map<string | number, ObservedOutboundTrack<"audio">>;
29
30
  readonly sfuStreamIdToOutboundVideoTrack: Map<string | number, ObservedOutboundTrack<"video">>;
30
31
  private _closed;
32
+ private _updated;
31
33
  private _ended?;
32
34
  constructor(_model: ObservedCallModel, observer: Observer, appData: AppData);
33
35
  get serviceId(): string;
@@ -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,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,MAAM,iBAAiB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,EAAE,CAAC;IACX,SAAS,EAAE,CAAC,cAAc,CAAC,CAAC;IAC5B,KAAK,EAAE,EAAE,CAAC;CACV,CAAA;AAED,MAAM,CAAC,OAAO,WAAW,YAAY;IACpC,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3G,GAAG,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5G,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7G,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CAC5F;AAED,qBAAa,YAAY,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,YAAY;IAS/G,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,QAAQ,EAAE,QAAQ;aAClB,OAAO,EAAE,OAAO;IAVjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAE9D,SAAgB,+BAA+B,uDAA8D;IAC7G,SAAgB,+BAA+B,uDAA8D;IAC7G,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAS;gBAGN,MAAM,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO;IAMjC,IAAW,SAAS,IAAI,MAAM,CAG7B;IAED,IAAW,OAAO,kDAEjB;IAED,IAAW,MAAM,WAGhB;IAED,IAAW,MAAM,WAGhB;IAED,IAAW,OAAO,WAEjB;IAED,IAAW,KAAK,uBAEf;IAED,IAAW,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAExD;IAED,IAAW,MAAM,YAEhB;IAEM,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM;IAUxB,YAAY,CAAC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,mBAAmB,GAAG;QAAE,OAAO,EAAE,aAAa,CAAC;QAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;CAgC5M"}
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,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,MAAM,MAAM,iBAAiB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,EAAE,CAAC;IACX,SAAS,EAAE,CAAC,cAAc,CAAC,CAAC;IAC5B,KAAK,EAAE,EAAE,CAAC;CACV,CAAA;AAED,MAAM,CAAC,OAAO,WAAW,YAAY;IACpC,EAAE,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3G,GAAG,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5G,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7G,IAAI,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CAC5F;AAED,qBAAa,YAAY,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,YAAY;IAY/G,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,QAAQ,EAAE,QAAQ;aAClB,OAAO,EAAE,OAAO;IAbjC,SAAgB,OAAO,SAAc;IAErC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAE9D,SAAgB,+BAA+B,uDAA8D;IAC7G,SAAgB,+BAA+B,uDAA8D;IAC7G,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,MAAM,CAAC,CAAS;gBAGN,MAAM,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO;IAMjC,IAAW,SAAS,IAAI,MAAM,CAG7B;IAED,IAAW,OAAO,kDAEjB;IAED,IAAW,MAAM,WAGhB;IAED,IAAW,MAAM,WAGhB;IAED,IAAW,OAAO,WAEjB;IAED,IAAW,KAAK,uBAEf;IAED,IAAW,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAExD;IAED,IAAW,MAAM,YAEhB;IAEM,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM;IAUxB,YAAY,CAAC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,mBAAmB,GAAG;QAAE,OAAO,EAAE,aAAa,CAAC;QAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;CAmC5M"}
@@ -21,10 +21,12 @@ class ObservedCall extends events_1.EventEmitter {
21
21
  this._model = _model;
22
22
  this.observer = observer;
23
23
  this.appData = appData;
24
+ this.created = Date.now();
24
25
  this._clients = new Map();
25
26
  this.sfuStreamIdToOutboundAudioTrack = new Map();
26
27
  this.sfuStreamIdToOutboundVideoTrack = new Map();
27
28
  this._closed = false;
29
+ this._updated = Date.now();
28
30
  this.setMaxListeners(Infinity);
29
31
  }
30
32
  get serviceId() {
@@ -67,7 +69,10 @@ class ObservedCall extends events_1.EventEmitter {
67
69
  throw new Error(`Call ${this.callId} is closed`);
68
70
  const { appData, generateClientJoinedReport, joined = Date.now() } = config, model = __rest(config, ["appData", "generateClientJoinedReport", "joined"]);
69
71
  const result = new ObservedClient_1.ObservedClient(model, this, appData);
70
- const onUpdate = () => this.emit('update');
72
+ const onUpdate = () => {
73
+ this._updated = Date.now();
74
+ this.emit('update');
75
+ };
71
76
  result.once('close', () => {
72
77
  result.off('update', onUpdate);
73
78
  this._clients.delete(result.clientId);
@@ -74,9 +74,24 @@ export declare class ObservedClient<AppData extends Record<string, unknown> = Re
74
74
  totalDataChannelBytesReceived: number;
75
75
  totalSentBytes: number;
76
76
  totalReceivedBytes: number;
77
+ totalReceivedAudioBytes: number;
78
+ totalReceivedVideoBytes: number;
79
+ totalSentAudioBytes: number;
80
+ totalSentVideoBytes: number;
81
+ deltaReceivedAudioBytes: number;
82
+ deltaReceivedVideoBytes: number;
83
+ deltaSentAudioBytes: number;
84
+ deltaSentVideoBytes: number;
85
+ deltaDataChannelBytesSent: number;
86
+ deltaDataChannelBytesReceived: number;
87
+ deltaInboundPacketsLost: number;
88
+ deltaInboundPacketsReceived: number;
89
+ deltaOutboundPacketsSent: number;
77
90
  avgRttInMs?: number;
78
- sendingBitrate?: number;
79
- receivingBitrate?: number;
91
+ outboundAudioBitrate?: number;
92
+ outboundVideoBitrate?: number;
93
+ inboundAudioBitrate?: number;
94
+ inboundVideoBitrate?: number;
80
95
  readonly mediaDevices: string[];
81
96
  readonly codecs: string[];
82
97
  readonly userMediaErrors: string[];
@@ -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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"}
@@ -42,6 +42,19 @@ class ObservedClient extends events_1.EventEmitter {
42
42
  this.totalDataChannelBytesReceived = 0;
43
43
  this.totalSentBytes = 0;
44
44
  this.totalReceivedBytes = 0;
45
+ this.totalReceivedAudioBytes = 0;
46
+ this.totalReceivedVideoBytes = 0;
47
+ this.totalSentAudioBytes = 0;
48
+ this.totalSentVideoBytes = 0;
49
+ this.deltaReceivedAudioBytes = 0;
50
+ this.deltaReceivedVideoBytes = 0;
51
+ this.deltaSentAudioBytes = 0;
52
+ this.deltaSentVideoBytes = 0;
53
+ this.deltaDataChannelBytesSent = 0;
54
+ this.deltaDataChannelBytesReceived = 0;
55
+ this.deltaInboundPacketsLost = 0;
56
+ this.deltaInboundPacketsReceived = 0;
57
+ this.deltaOutboundPacketsSent = 0;
45
58
  this.mediaDevices = [];
46
59
  this.codecs = [];
47
60
  this.userMediaErrors = [];
@@ -451,38 +464,58 @@ class ObservedClient extends events_1.EventEmitter {
451
464
  }
452
465
  // update metrics
453
466
  const wasUsingTURN = this.usingTURN;
467
+ const elapsedTimeInMs = now - this._updated;
454
468
  this.usingTURN = false;
455
469
  this.availableIncomingBitrate = 0;
456
470
  this.availableOutgoingBitrate = 0;
457
- this.totalSentBytes = 0;
458
- this.totalReceivedBytes = 0;
459
- this.totalOutboundPacketsSent = 0;
460
- this.totalInboundPacketsReceived = 0;
461
- this.totalInboundPacketsLost = 0;
462
- this.totalDataChannelBytesSent = 0;
463
- this.totalDataChannelBytesReceived = 0;
464
- this.sendingBitrate = 0;
465
- this.receivingBitrate = 0;
471
+ this.deltaInboundPacketsLost = 0;
472
+ this.deltaInboundPacketsReceived = 0;
473
+ this.deltaOutboundPacketsSent = 0;
474
+ this.deltaReceivedAudioBytes = 0;
475
+ this.deltaReceivedVideoBytes = 0;
476
+ this.deltaSentAudioBytes = 0;
477
+ this.deltaSentVideoBytes = 0;
478
+ this.deltaDataChannelBytesReceived = 0;
479
+ this.deltaDataChannelBytesSent = 0;
480
+ this.outboundAudioBitrate = 0;
481
+ this.outboundVideoBitrate = 0;
482
+ this.inboundAudioBitrate = 0;
483
+ this.inboundVideoBitrate = 0;
466
484
  let sumRttInMs = 0;
467
485
  for (const peerConnection of this._peerConnections.values()) {
468
486
  if (peerConnection.closed)
469
487
  continue;
470
488
  peerConnection.updateMetrics();
471
- this.totalSentBytes += peerConnection.totalSentAudioBytes + peerConnection.totalSentVideoBytes;
472
- this.totalReceivedBytes += peerConnection.totalReceivedAudioBytes + peerConnection.totalReceivedVideoBytes;
473
- this.totalOutboundPacketsSent += peerConnection.totalOutboundPacketsSent;
474
- this.totalInboundPacketsReceived += peerConnection.totalInboundPacketsReceived;
475
- this.totalInboundPacketsLost += peerConnection.totalInboundPacketsLost;
476
- this.totalDataChannelBytesSent += peerConnection.totalDataChannelBytesSent;
477
- this.totalDataChannelBytesReceived += peerConnection.totalDataChannelBytesReceived;
478
- this.sendingBitrate += peerConnection.sendingAudioBitrate + peerConnection.sendingVideoBitrate;
479
- this.receivingBitrate += peerConnection.receivingAudioBitrate + peerConnection.receivingVideoBitrate;
489
+ this.deltaInboundPacketsLost += peerConnection.deltaInboundPacketsLost;
490
+ this.deltaInboundPacketsReceived += peerConnection.deltaInboundPacketsReceived;
491
+ this.deltaOutboundPacketsSent += peerConnection.deltaOutboundPacketsSent;
492
+ this.deltaReceivedAudioBytes += peerConnection.deltaReceivedAudioBytes;
493
+ this.deltaReceivedVideoBytes += peerConnection.deltaReceivedVideoBytes;
494
+ this.deltaSentAudioBytes += peerConnection.deltaSentAudioBytes;
495
+ this.deltaSentVideoBytes += peerConnection.deltaSentVideoBytes;
496
+ this.deltaDataChannelBytesReceived += peerConnection.deltaDataChannelBytesReceived;
497
+ this.deltaDataChannelBytesSent += peerConnection.deltaDataChannelBytesSent;
480
498
  this.availableIncomingBitrate += (_18 = peerConnection.availableIncomingBitrate) !== null && _18 !== void 0 ? _18 : 0;
481
499
  this.availableOutgoingBitrate += (_19 = peerConnection.availableOutgoingBitrate) !== null && _19 !== void 0 ? _19 : 0;
482
500
  sumRttInMs += (_20 = peerConnection.avgRttInMs) !== null && _20 !== void 0 ? _20 : 0;
483
501
  if (peerConnection.usingTURN)
484
502
  this.usingTURN = true;
485
503
  }
504
+ this.totalSentBytes += this.deltaSentAudioBytes + this.deltaSentVideoBytes;
505
+ this.totalReceivedBytes += this.deltaReceivedAudioBytes + this.deltaReceivedVideoBytes;
506
+ this.totalReceivedAudioBytes += this.deltaReceivedAudioBytes;
507
+ this.totalReceivedVideoBytes += this.deltaReceivedVideoBytes;
508
+ this.totalSentAudioBytes += this.deltaSentAudioBytes;
509
+ this.totalSentVideoBytes += this.deltaSentVideoBytes;
510
+ this.totalOutboundPacketsSent += this.deltaOutboundPacketsSent;
511
+ this.totalInboundPacketsReceived += this.deltaInboundPacketsReceived;
512
+ this.totalInboundPacketsLost += this.deltaInboundPacketsLost;
513
+ this.totalDataChannelBytesSent += this.deltaDataChannelBytesSent;
514
+ this.totalDataChannelBytesReceived += this.deltaDataChannelBytesReceived;
515
+ this.outboundAudioBitrate = (this.deltaSentAudioBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
516
+ this.outboundVideoBitrate = (this.deltaSentVideoBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
517
+ this.inboundAudioBitrate = (this.deltaReceivedAudioBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
518
+ this.inboundVideoBitrate = (this.deltaReceivedVideoBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
486
519
  this.avgRttInMs = this._peerConnections.size ? sumRttInMs / this._peerConnections.size : undefined;
487
520
  if (wasUsingTURN !== this.usingTURN)
488
521
  this.emit('usingturn', this.usingTURN);
@@ -1 +1 @@
1
- {"version":3,"file":"ObservedOutboundTrack.d.ts","sourceRoot":"","sources":["../src/ObservedOutboundTrack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ObservedOutboundTrack.d.ts","sourceRoot":"","sources":["../src/ObservedOutboundTrack.ts"],"names":[],"mappings":"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"}
@@ -118,6 +118,7 @@ class ObservedOutboundTrack extends events_1.EventEmitter {
118
118
  this.totalLostPackets = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.packetsLost) !== null && _a !== void 0 ? _a : 0); }, 0);
119
119
  this.totalSentPackets = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.packetsSent) !== null && _a !== void 0 ? _a : 0); }, 0);
120
120
  this.totalSentBytes = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.bytesSent) !== null && _a !== void 0 ? _a : 0); }, 0);
121
+ this.totalSentFrames = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.deltaSentPackets) !== null && _a !== void 0 ? _a : 0); }, 0);
121
122
  this.deltaEncodedFrames = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.deltaEncodedFrames) !== null && _a !== void 0 ? _a : 0); }, 0);
122
123
  this.deltaSentFrames = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.deltaSentFrames) !== null && _a !== void 0 ? _a : 0); }, 0);
123
124
  this.deltaLostPackets = [...this._stats.values()].reduce((acc, stat) => acc + stat.deltaLostPackets, 0);
@@ -43,9 +43,9 @@ export declare class ObservedPeerConnection extends EventEmitter {
43
43
  totalReceivedVideoPackets: number;
44
44
  totalReceivedAudioBytes: number;
45
45
  totalReceivedVideoBytes: number;
46
- deltaInboundLostPackets: number;
47
- deltaInboundReceivedPackets: number;
48
- deltaOutboundSentPackets: number;
46
+ deltaInboundPacketsLost: number;
47
+ deltaInboundPacketsReceived: number;
48
+ deltaOutboundPacketsSent: number;
49
49
  deltaDataChannelBytesSent: number;
50
50
  deltaDataChannelBytesReceived: number;
51
51
  deltaInboundReceivedBytes: number;
@@ -1 +1 @@
1
- {"version":3,"file":"ObservedPeerConnection.d.ts","sourceRoot":"","sources":["../src/ObservedPeerConnection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ObservedPeerConnection.d.ts","sourceRoot":"","sources":["../src/ObservedPeerConnection.ts"],"names":[],"mappings":"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"}
@@ -25,9 +25,9 @@ class ObservedPeerConnection extends events_1.EventEmitter {
25
25
  this.totalReceivedVideoPackets = 0;
26
26
  this.totalReceivedAudioBytes = 0;
27
27
  this.totalReceivedVideoBytes = 0;
28
- this.deltaInboundLostPackets = 0;
29
- this.deltaInboundReceivedPackets = 0;
30
- this.deltaOutboundSentPackets = 0;
28
+ this.deltaInboundPacketsLost = 0;
29
+ this.deltaInboundPacketsReceived = 0;
30
+ this.deltaOutboundPacketsSent = 0;
31
31
  this.deltaDataChannelBytesSent = 0;
32
32
  this.deltaDataChannelBytesReceived = 0;
33
33
  this.deltaInboundReceivedBytes = 0;
@@ -146,9 +146,9 @@ class ObservedPeerConnection extends events_1.EventEmitter {
146
146
  return (_c = (_b = (_a = this._inboundAudioTracks.get(trackId)) !== null && _a !== void 0 ? _a : this._inboundVideoTracks.get(trackId)) !== null && _b !== void 0 ? _b : this._outboundAudioTracks.get(trackId)) !== null && _c !== void 0 ? _c : this._outboundVideoTracks.get(trackId);
147
147
  }
148
148
  resetMetrics() {
149
- this.deltaInboundLostPackets = 0;
150
- this.deltaInboundReceivedPackets = 0;
151
- this.deltaOutboundSentPackets = 0;
149
+ this.deltaInboundPacketsLost = 0;
150
+ this.deltaInboundPacketsReceived = 0;
151
+ this.deltaOutboundPacketsSent = 0;
152
152
  this.deltaDataChannelBytesSent = 0;
153
153
  this.deltaDataChannelBytesReceived = 0;
154
154
  this.deltaReceivedAudioBytes = 0;
@@ -161,78 +161,62 @@ class ObservedPeerConnection extends events_1.EventEmitter {
161
161
  this._outboundVideoTracks.forEach((track) => track.resetMetrics());
162
162
  }
163
163
  updateMetrics() {
164
+ // this.totalInboundPacketsLost = 0;
165
+ // this.totalInboundPacketsReceived = 0;
166
+ // this.totalOutboundPacketsSent = 0;
167
+ // this.totalDataChannelBytesSent = 0;
168
+ // this.totalDataChannelBytesReceived = 0;
164
169
  var _a;
165
- this.totalInboundPacketsLost = 0;
166
- this.totalInboundPacketsReceived = 0;
167
- this.totalOutboundPacketsSent = 0;
168
- this.totalDataChannelBytesSent = 0;
169
- this.totalDataChannelBytesReceived = 0;
170
- this.totalSentAudioBytes = 0;
171
- this.totalSentVideoBytes = 0;
172
- this.totalReceivedAudioBytes = 0;
173
- this.totalReceivedVideoBytes = 0;
174
- this.sendingAudioBitrate = 0;
175
- this.sendingVideoBitrate = 0;
176
- this.receivingAudioBitrate = 0;
177
- this.receivingVideoBitrate = 0;
170
+ // this.totalSentAudioBytes = 0;
171
+ // this.totalSentVideoBytes = 0;
172
+ // this.totalReceivedAudioBytes = 0;
173
+ // this.totalReceivedVideoBytes = 0;
174
+ // this.sendingAudioBitrate = 0;
175
+ // this.sendingVideoBitrate = 0;
176
+ // this.receivingAudioBitrate = 0;
177
+ // this.receivingVideoBitrate = 0;
178
178
  let sumRttInMs = 0;
179
179
  this._inboundAudioTracks.forEach((track) => {
180
180
  var _a;
181
- this.deltaInboundLostPackets += track.deltaLostPackets;
182
- this.deltaInboundReceivedPackets += track.deltaReceivedPackets;
181
+ this.deltaInboundPacketsLost += track.deltaLostPackets;
182
+ this.deltaInboundPacketsReceived += track.deltaReceivedPackets;
183
183
  this.deltaInboundReceivedBytes += track.deltaBytesReceived;
184
184
  this.deltaReceivedAudioBytes += track.deltaBytesReceived;
185
185
  this.deltaReceivedAudioPackets += track.deltaReceivedPackets;
186
186
  this.receivingAudioBitrate += track.bitrate;
187
- this.totalInboundPacketsLost += track.totalLostPackets;
188
- this.totalInboundPacketsReceived += track.totalReceivedPackets;
189
- this.totalReceivedAudioBytes += track.totalBytesReceived;
190
- this.totalReceivedAudioPacktes += track.totalReceivedPackets;
191
187
  sumRttInMs = ((_a = track.rttInMs) !== null && _a !== void 0 ? _a : 0);
192
188
  });
193
189
  this._inboundVideoTracks.forEach((track) => {
194
190
  var _a;
195
- this.deltaInboundLostPackets += track.deltaLostPackets;
196
- this.deltaInboundReceivedPackets += track.deltaReceivedPackets;
191
+ this.deltaInboundPacketsLost += track.deltaLostPackets;
192
+ this.deltaInboundPacketsReceived += track.deltaReceivedPackets;
197
193
  this.deltaInboundReceivedBytes += track.deltaBytesReceived;
198
194
  this.deltaReceivedVideoBytes += track.deltaBytesReceived;
199
195
  this.deltaReceivedVideoPackets += track.deltaReceivedPackets;
200
196
  this.receivingVideoBitrate += track.bitrate;
201
- this.totalInboundPacketsLost += track.totalLostPackets;
202
- this.totalInboundPacketsReceived += track.totalReceivedPackets;
203
- this.totalReceivedVideoBytes += track.totalBytesReceived;
204
- this.totalReceivedVideoPackets += track.totalReceivedPackets;
205
197
  sumRttInMs = ((_a = track.rttInMs) !== null && _a !== void 0 ? _a : 0);
206
198
  });
207
199
  this._outboundAudioTracks.forEach((track) => {
208
200
  var _a;
209
- this.deltaOutboundSentPackets += track.deltaSentPackets;
201
+ this.deltaOutboundPacketsSent += track.deltaSentPackets;
210
202
  this.deltaOutboundSentBytes += track.deltaSentBytes;
211
203
  this.deltaSentAudioBytes += track.deltaSentBytes;
212
204
  this.deltaSentAudioBytes += track.deltaSentPackets;
213
205
  this.sendingAudioBitrate += track.bitrate;
214
- this.totalOutboundPacketsSent += track.totalSentPackets;
215
- this.totalSentAudioBytes += track.totalSentBytes;
216
- this.totalSentAudioPackets += track.totalSentPackets;
217
206
  sumRttInMs = ((_a = track.rttInMs) !== null && _a !== void 0 ? _a : 0);
218
207
  });
219
208
  this._outboundVideoTracks.forEach((track) => {
220
209
  var _a;
221
- this.deltaOutboundSentPackets += track.deltaSentPackets;
210
+ this.deltaOutboundPacketsSent += track.deltaSentPackets;
222
211
  this.deltaOutboundSentBytes += track.deltaSentBytes;
223
212
  this.deltaSentVideoBytes += track.deltaSentBytes;
224
213
  this.deltaSentVideoBytes += track.deltaSentPackets;
225
214
  this.sendingVideoBitrate += track.bitrate;
226
- this.totalOutboundPacketsSent += track.totalSentPackets;
227
- this.totalSentVideoBytes += track.totalSentBytes;
228
- this.totalSentVideoPackets += track.totalSentPackets;
229
215
  sumRttInMs = ((_a = track.rttInMs) !== null && _a !== void 0 ? _a : 0);
230
216
  });
231
217
  this._dataChannels.forEach((channel) => {
232
218
  this.deltaDataChannelBytesSent += channel.deltaBytesSent;
233
219
  this.deltaDataChannelBytesReceived += channel.deltaBytesReceived;
234
- this.totalDataChannelBytesSent += channel.totalBytesSent;
235
- this.totalDataChannelBytesReceived += channel.totalBytesReceived;
236
220
  });
237
221
  const iceRttInMs = (_a = this.ICE.stats) === null || _a === void 0 ? void 0 : _a.currentRoundTripTime;
238
222
  let nrOfBelongings = this._inboundAudioTracks.size + this._inboundVideoTracks.size + this._outboundAudioTracks.size + this._outboundVideoTracks.size;
@@ -241,6 +225,19 @@ class ObservedPeerConnection extends events_1.EventEmitter {
241
225
  nrOfBelongings += 1;
242
226
  }
243
227
  this.avgRttInMs = 0 < nrOfBelongings ? sumRttInMs / nrOfBelongings : undefined;
228
+ this.totalDataChannelBytesReceived += this.deltaDataChannelBytesReceived;
229
+ this.totalDataChannelBytesSent += this.deltaDataChannelBytesSent;
230
+ this.totalInboundPacketsLost += this.deltaInboundPacketsLost;
231
+ this.totalInboundPacketsReceived += this.deltaInboundPacketsReceived;
232
+ this.totalOutboundPacketsSent += this.deltaOutboundPacketsSent;
233
+ this.totalSentAudioBytes += this.deltaSentAudioBytes;
234
+ this.totalSentVideoBytes += this.deltaSentVideoBytes;
235
+ this.totalReceivedAudioBytes += this.deltaReceivedAudioBytes;
236
+ this.totalReceivedVideoBytes += this.deltaReceivedVideoBytes;
237
+ this.totalReceivedAudioPacktes += this.deltaReceivedAudioPackets;
238
+ this.totalReceivedVideoPackets += this.deltaReceivedVideoPackets;
239
+ this.totalSentAudioPackets += this.deltaSentAudioBytes;
240
+ this.totalSentVideoPackets += this.deltaSentVideoBytes;
244
241
  }
245
242
  update(sample, timestamp) {
246
243
  if (this._closed)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@observertc/observer-js",
3
- "version": "0.40.4-beta",
3
+ "version": "0.40.5-beta",
4
4
  "description": "Server Side NodeJS Library for processing ObserveRTC Samples",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -25,11 +25,14 @@ export declare interface ObservedCall {
25
25
  }
26
26
 
27
27
  export class ObservedCall<AppData extends Record<string, unknown> = Record<string, unknown>> extends EventEmitter {
28
+ public readonly created = Date.now();
29
+
28
30
  private readonly _clients = new Map<string, ObservedClient>();
29
31
 
30
32
  public readonly sfuStreamIdToOutboundAudioTrack = new Map<string | number, ObservedOutboundTrack<'audio'>>();
31
33
  public readonly sfuStreamIdToOutboundVideoTrack = new Map<string | number, ObservedOutboundTrack<'video'>>();
32
34
  private _closed = false;
35
+ private _updated = Date.now();
33
36
  private _ended?: number;
34
37
 
35
38
  public constructor(
@@ -92,7 +95,10 @@ export class ObservedCall<AppData extends Record<string, unknown> = Record<strin
92
95
  const { appData, generateClientJoinedReport, joined = Date.now(), ...model } = config;
93
96
 
94
97
  const result = new ObservedClient(model, this, appData);
95
- const onUpdate = () => this.emit('update');
98
+ const onUpdate = () => {
99
+ this._updated = Date.now();
100
+ this.emit('update');
101
+ };
96
102
 
97
103
  result.once('close', () => {
98
104
  result.off('update', onUpdate);
@@ -79,10 +79,26 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
79
79
  public totalDataChannelBytesReceived = 0;
80
80
  public totalSentBytes = 0;
81
81
  public totalReceivedBytes = 0;
82
+ public totalReceivedAudioBytes = 0;
83
+ public totalReceivedVideoBytes = 0;
84
+ public totalSentAudioBytes = 0;
85
+ public totalSentVideoBytes = 0;
86
+
87
+ public deltaReceivedAudioBytes = 0;
88
+ public deltaReceivedVideoBytes = 0;
89
+ public deltaSentAudioBytes = 0;
90
+ public deltaSentVideoBytes = 0;
91
+ public deltaDataChannelBytesSent = 0;
92
+ public deltaDataChannelBytesReceived = 0;
93
+ public deltaInboundPacketsLost = 0;
94
+ public deltaInboundPacketsReceived = 0;
95
+ public deltaOutboundPacketsSent = 0;
82
96
 
83
97
  public avgRttInMs?: number;
84
- public sendingBitrate?: number;
85
- public receivingBitrate?: number;
98
+ public outboundAudioBitrate?: number;
99
+ public outboundVideoBitrate?: number;
100
+ public inboundAudioBitrate?: number;
101
+ public inboundVideoBitrate?: number;
86
102
 
87
103
  public readonly mediaDevices: string[] = [];
88
104
  public readonly codecs: string[] = [];
@@ -677,40 +693,65 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
677
693
 
678
694
  // update metrics
679
695
  const wasUsingTURN = this.usingTURN;
696
+ const elapsedTimeInMs = now - this._updated;
680
697
 
681
698
  this.usingTURN = false;
682
699
  this.availableIncomingBitrate = 0;
683
700
  this.availableOutgoingBitrate = 0;
684
- this.totalSentBytes = 0;
685
- this.totalReceivedBytes = 0;
686
- this.totalOutboundPacketsSent = 0;
687
- this.totalInboundPacketsReceived = 0;
688
- this.totalInboundPacketsLost = 0;
689
- this.totalDataChannelBytesSent = 0;
690
- this.totalDataChannelBytesReceived = 0;
691
- this.sendingBitrate = 0;
692
- this.receivingBitrate = 0;
701
+ this.deltaInboundPacketsLost = 0;
702
+ this.deltaInboundPacketsReceived = 0;
703
+ this.deltaOutboundPacketsSent = 0;
704
+ this.deltaReceivedAudioBytes = 0;
705
+ this.deltaReceivedVideoBytes = 0;
706
+ this.deltaSentAudioBytes = 0;
707
+ this.deltaSentVideoBytes = 0;
708
+ this.deltaDataChannelBytesReceived = 0;
709
+ this.deltaDataChannelBytesSent = 0;
710
+
711
+ this.outboundAudioBitrate = 0;
712
+ this.outboundVideoBitrate = 0;
713
+ this.inboundAudioBitrate = 0;
714
+ this.inboundVideoBitrate = 0;
693
715
  let sumRttInMs = 0;
694
716
 
695
717
  for (const peerConnection of this._peerConnections.values()) {
696
718
  if (peerConnection.closed) continue;
697
719
  peerConnection.updateMetrics();
698
- this.totalSentBytes += peerConnection.totalSentAudioBytes + peerConnection.totalSentVideoBytes;
699
- this.totalReceivedBytes += peerConnection.totalReceivedAudioBytes + peerConnection.totalReceivedVideoBytes;
700
- this.totalOutboundPacketsSent += peerConnection.totalOutboundPacketsSent;
701
- this.totalInboundPacketsReceived += peerConnection.totalInboundPacketsReceived;
702
- this.totalInboundPacketsLost += peerConnection.totalInboundPacketsLost;
703
- this.totalDataChannelBytesSent += peerConnection.totalDataChannelBytesSent;
704
- this.totalDataChannelBytesReceived += peerConnection.totalDataChannelBytesReceived;
705
- this.sendingBitrate += peerConnection.sendingAudioBitrate + peerConnection.sendingVideoBitrate;
706
- this.receivingBitrate += peerConnection.receivingAudioBitrate + peerConnection.receivingVideoBitrate;
720
+ this.deltaInboundPacketsLost += peerConnection.deltaInboundPacketsLost;
721
+ this.deltaInboundPacketsReceived += peerConnection.deltaInboundPacketsReceived;
722
+ this.deltaOutboundPacketsSent += peerConnection.deltaOutboundPacketsSent;
723
+ this.deltaReceivedAudioBytes += peerConnection.deltaReceivedAudioBytes;
724
+ this.deltaReceivedVideoBytes += peerConnection.deltaReceivedVideoBytes;
725
+ this.deltaSentAudioBytes += peerConnection.deltaSentAudioBytes;
726
+ this.deltaSentVideoBytes += peerConnection.deltaSentVideoBytes;
727
+ this.deltaDataChannelBytesReceived += peerConnection.deltaDataChannelBytesReceived;
728
+ this.deltaDataChannelBytesSent += peerConnection.deltaDataChannelBytesSent;
729
+
707
730
  this.availableIncomingBitrate += peerConnection.availableIncomingBitrate ?? 0;
708
731
  this.availableOutgoingBitrate += peerConnection.availableOutgoingBitrate ?? 0;
732
+
709
733
  sumRttInMs += peerConnection.avgRttInMs ?? 0;
710
734
 
711
735
  if (peerConnection.usingTURN) this.usingTURN = true;
712
736
  }
713
737
 
738
+ this.totalSentBytes += this.deltaSentAudioBytes + this.deltaSentVideoBytes;
739
+ this.totalReceivedBytes += this.deltaReceivedAudioBytes + this.deltaReceivedVideoBytes;
740
+ this.totalReceivedAudioBytes += this.deltaReceivedAudioBytes;
741
+ this.totalReceivedVideoBytes += this.deltaReceivedVideoBytes;
742
+ this.totalSentAudioBytes += this.deltaSentAudioBytes;
743
+ this.totalSentVideoBytes += this.deltaSentVideoBytes;
744
+ this.totalOutboundPacketsSent += this.deltaOutboundPacketsSent;
745
+ this.totalInboundPacketsReceived += this.deltaInboundPacketsReceived;
746
+ this.totalInboundPacketsLost += this.deltaInboundPacketsLost;
747
+ this.totalDataChannelBytesSent += this.deltaDataChannelBytesSent;
748
+ this.totalDataChannelBytesReceived += this.deltaDataChannelBytesReceived;
749
+
750
+ this.outboundAudioBitrate = (this.deltaSentAudioBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
751
+ this.outboundVideoBitrate = (this.deltaSentVideoBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
752
+ this.inboundAudioBitrate = (this.deltaReceivedAudioBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
753
+ this.inboundVideoBitrate = (this.deltaReceivedVideoBytes * 8) / (Math.max(elapsedTimeInMs, 1) / 1000);
754
+
714
755
  this.avgRttInMs = this._peerConnections.size ? sumRttInMs / this._peerConnections.size : undefined;
715
756
 
716
757
  if (wasUsingTURN !== this.usingTURN) this.emit('usingturn', this.usingTURN);
@@ -207,6 +207,7 @@ export class ObservedOutboundTrack<Kind extends MediaKind> extends EventEmitter
207
207
  this.totalLostPackets = [ ...this._stats.values() ].reduce((acc, stat) => acc + (stat.packetsLost ?? 0), 0);
208
208
  this.totalSentPackets = [ ...this._stats.values() ].reduce((acc, stat) => acc + (stat.packetsSent ?? 0), 0);
209
209
  this.totalSentBytes = [ ...this._stats.values() ].reduce((acc, stat) => acc + (stat.bytesSent ?? 0), 0);
210
+ this.totalSentFrames = [ ...this._stats.values() ].reduce((acc, stat) => acc + (stat.deltaSentPackets ?? 0), 0);
210
211
 
211
212
  this.deltaEncodedFrames = [ ...this._stats.values() ].reduce((acc, stat) => acc + (stat.deltaEncodedFrames ?? 0), 0);
212
213
  this.deltaSentFrames = [ ...this._stats.values() ].reduce((acc, stat) => acc + (stat.deltaSentFrames ?? 0), 0);
@@ -49,9 +49,9 @@ export class ObservedPeerConnection extends EventEmitter {
49
49
  public totalReceivedAudioBytes = 0;
50
50
  public totalReceivedVideoBytes = 0;
51
51
 
52
- public deltaInboundLostPackets = 0;
53
- public deltaInboundReceivedPackets = 0;
54
- public deltaOutboundSentPackets = 0;
52
+ public deltaInboundPacketsLost = 0;
53
+ public deltaInboundPacketsReceived = 0;
54
+ public deltaOutboundPacketsSent = 0;
55
55
  public deltaDataChannelBytesSent = 0;
56
56
  public deltaDataChannelBytesReceived = 0;
57
57
  public deltaInboundReceivedBytes = 0;
@@ -206,9 +206,9 @@ export class ObservedPeerConnection extends EventEmitter {
206
206
  }
207
207
 
208
208
  public resetMetrics() {
209
- this.deltaInboundLostPackets = 0;
210
- this.deltaInboundReceivedPackets = 0;
211
- this.deltaOutboundSentPackets = 0;
209
+ this.deltaInboundPacketsLost = 0;
210
+ this.deltaInboundPacketsReceived = 0;
211
+ this.deltaOutboundPacketsSent = 0;
212
212
 
213
213
  this.deltaDataChannelBytesSent = 0;
214
214
  this.deltaDataChannelBytesReceived = 0;
@@ -224,26 +224,26 @@ export class ObservedPeerConnection extends EventEmitter {
224
224
  }
225
225
 
226
226
  public updateMetrics() {
227
- this.totalInboundPacketsLost = 0;
228
- this.totalInboundPacketsReceived = 0;
229
- this.totalOutboundPacketsSent = 0;
230
- this.totalDataChannelBytesSent = 0;
231
- this.totalDataChannelBytesReceived = 0;
227
+ // this.totalInboundPacketsLost = 0;
228
+ // this.totalInboundPacketsReceived = 0;
229
+ // this.totalOutboundPacketsSent = 0;
230
+ // this.totalDataChannelBytesSent = 0;
231
+ // this.totalDataChannelBytesReceived = 0;
232
232
 
233
- this.totalSentAudioBytes = 0;
234
- this.totalSentVideoBytes = 0;
235
- this.totalReceivedAudioBytes = 0;
236
- this.totalReceivedVideoBytes = 0;
237
- this.sendingAudioBitrate = 0;
238
- this.sendingVideoBitrate = 0;
239
- this.receivingAudioBitrate = 0;
240
- this.receivingVideoBitrate = 0;
233
+ // this.totalSentAudioBytes = 0;
234
+ // this.totalSentVideoBytes = 0;
235
+ // this.totalReceivedAudioBytes = 0;
236
+ // this.totalReceivedVideoBytes = 0;
237
+ // this.sendingAudioBitrate = 0;
238
+ // this.sendingVideoBitrate = 0;
239
+ // this.receivingAudioBitrate = 0;
240
+ // this.receivingVideoBitrate = 0;
241
241
 
242
242
  let sumRttInMs = 0;
243
243
 
244
244
  this._inboundAudioTracks.forEach((track) => {
245
- this.deltaInboundLostPackets += track.deltaLostPackets;
246
- this.deltaInboundReceivedPackets += track.deltaReceivedPackets;
245
+ this.deltaInboundPacketsLost += track.deltaLostPackets;
246
+ this.deltaInboundPacketsReceived += track.deltaReceivedPackets;
247
247
  this.deltaInboundReceivedBytes += track.deltaBytesReceived;
248
248
 
249
249
  this.deltaReceivedAudioBytes += track.deltaBytesReceived;
@@ -251,17 +251,12 @@ export class ObservedPeerConnection extends EventEmitter {
251
251
 
252
252
  this.receivingAudioBitrate += track.bitrate;
253
253
 
254
- this.totalInboundPacketsLost += track.totalLostPackets;
255
- this.totalInboundPacketsReceived += track.totalReceivedPackets;
256
- this.totalReceivedAudioBytes += track.totalBytesReceived;
257
- this.totalReceivedAudioPacktes += track.totalReceivedPackets;
258
-
259
254
  sumRttInMs = (track.rttInMs ?? 0);
260
255
  });
261
256
 
262
257
  this._inboundVideoTracks.forEach((track) => {
263
- this.deltaInboundLostPackets += track.deltaLostPackets;
264
- this.deltaInboundReceivedPackets += track.deltaReceivedPackets;
258
+ this.deltaInboundPacketsLost += track.deltaLostPackets;
259
+ this.deltaInboundPacketsReceived += track.deltaReceivedPackets;
265
260
  this.deltaInboundReceivedBytes += track.deltaBytesReceived;
266
261
 
267
262
  this.deltaReceivedVideoBytes += track.deltaBytesReceived;
@@ -269,16 +264,11 @@ export class ObservedPeerConnection extends EventEmitter {
269
264
 
270
265
  this.receivingVideoBitrate += track.bitrate;
271
266
 
272
- this.totalInboundPacketsLost += track.totalLostPackets;
273
- this.totalInboundPacketsReceived += track.totalReceivedPackets;
274
- this.totalReceivedVideoBytes += track.totalBytesReceived;
275
- this.totalReceivedVideoPackets += track.totalReceivedPackets;
276
-
277
267
  sumRttInMs = (track.rttInMs ?? 0);
278
268
  });
279
269
 
280
270
  this._outboundAudioTracks.forEach((track) => {
281
- this.deltaOutboundSentPackets += track.deltaSentPackets;
271
+ this.deltaOutboundPacketsSent += track.deltaSentPackets;
282
272
  this.deltaOutboundSentBytes += track.deltaSentBytes;
283
273
 
284
274
  this.deltaSentAudioBytes += track.deltaSentBytes;
@@ -286,15 +276,11 @@ export class ObservedPeerConnection extends EventEmitter {
286
276
 
287
277
  this.sendingAudioBitrate += track.bitrate;
288
278
 
289
- this.totalOutboundPacketsSent += track.totalSentPackets;
290
- this.totalSentAudioBytes += track.totalSentBytes;
291
- this.totalSentAudioPackets += track.totalSentPackets;
292
-
293
279
  sumRttInMs = (track.rttInMs ?? 0);
294
280
  });
295
281
 
296
282
  this._outboundVideoTracks.forEach((track) => {
297
- this.deltaOutboundSentPackets += track.deltaSentPackets;
283
+ this.deltaOutboundPacketsSent += track.deltaSentPackets;
298
284
  this.deltaOutboundSentBytes += track.deltaSentBytes;
299
285
 
300
286
  this.deltaSentVideoBytes += track.deltaSentBytes;
@@ -302,18 +288,12 @@ export class ObservedPeerConnection extends EventEmitter {
302
288
 
303
289
  this.sendingVideoBitrate += track.bitrate;
304
290
 
305
- this.totalOutboundPacketsSent += track.totalSentPackets;
306
- this.totalSentVideoBytes += track.totalSentBytes;
307
- this.totalSentVideoPackets += track.totalSentPackets;
308
-
309
291
  sumRttInMs = (track.rttInMs ?? 0);
310
292
  });
311
293
 
312
294
  this._dataChannels.forEach((channel) => {
313
295
  this.deltaDataChannelBytesSent += channel.deltaBytesSent;
314
296
  this.deltaDataChannelBytesReceived += channel.deltaBytesReceived;
315
- this.totalDataChannelBytesSent += channel.totalBytesSent;
316
- this.totalDataChannelBytesReceived += channel.totalBytesReceived;
317
297
  });
318
298
 
319
299
  const iceRttInMs = this.ICE.stats?.currentRoundTripTime;
@@ -323,7 +303,22 @@ export class ObservedPeerConnection extends EventEmitter {
323
303
  sumRttInMs += iceRttInMs;
324
304
  nrOfBelongings += 1;
325
305
  }
306
+
326
307
  this.avgRttInMs = 0 < nrOfBelongings ? sumRttInMs / nrOfBelongings : undefined;
308
+ this.totalDataChannelBytesReceived += this.deltaDataChannelBytesReceived;
309
+ this.totalDataChannelBytesSent += this.deltaDataChannelBytesSent;
310
+ this.totalInboundPacketsLost += this.deltaInboundPacketsLost;
311
+ this.totalInboundPacketsReceived += this.deltaInboundPacketsReceived;
312
+ this.totalOutboundPacketsSent += this.deltaOutboundPacketsSent;
313
+ this.totalSentAudioBytes += this.deltaSentAudioBytes;
314
+ this.totalSentVideoBytes += this.deltaSentVideoBytes;
315
+ this.totalReceivedAudioBytes += this.deltaReceivedAudioBytes;
316
+ this.totalReceivedVideoBytes += this.deltaReceivedVideoBytes;
317
+ this.totalReceivedAudioPacktes += this.deltaReceivedAudioPackets;
318
+ this.totalReceivedVideoPackets += this.deltaReceivedVideoPackets;
319
+ this.totalSentAudioPackets += this.deltaSentAudioBytes;
320
+ this.totalSentVideoPackets += this.deltaSentVideoBytes;
321
+
327
322
  }
328
323
 
329
324
  public update(sample: PeerConnectionTransport, timestamp: number) {