@observertc/observer-js 0.40.17 → 0.40.19

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.
@@ -151,11 +151,11 @@ class ObservedClient extends events_1.EventEmitter {
151
151
  timestamp: (_a = issue.timestamp) !== null && _a !== void 0 ? _a : Date.now(),
152
152
  attachments: issue.attachments ? JSON.stringify(issue.attachments) : undefined,
153
153
  });
154
- this.emit('issue', issue);
155
154
  }
156
155
  catch (err) {
157
156
  logger.warn(`Error adding client issue: ${err === null || err === void 0 ? void 0 : err.message}`);
158
157
  }
158
+ this.emit('issue', issue);
159
159
  }
160
160
  accept(sample) {
161
161
  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;
@@ -13,10 +13,12 @@ export interface ClientSummary extends Record<string, unknown> {
13
13
  joined: number;
14
14
  left?: number;
15
15
  durationInMs: number;
16
- avgOutboundAudioBitrate: number;
17
- avgOutboundVideoBitrate: number;
18
- avgInboundAudioBitrate: number;
19
- avgInboundVideoBitrate: number;
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,EAA8B,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,MAAM,MAAM,wBAAwB,GAAG;IACtC,KAAK,EAAE,EAAE,CAAC;IACV,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;CACvB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACtC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,uCAAuC,CAAC,EAAE,OAAO,CAAC;CAClD,CAAA;AAED,MAAM,CAAC,OAAO,WAAW,kBAAkB;IAC1C,EAAE,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACvH,GAAG,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACxH,IAAI,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACzH,IAAI,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CACxG;AAED,qBAAa,kBAAmB,SAAQ,YAAY;aAKlC,MAAM,EAAE,wBAAwB;IAJjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAE7D,OAAO,CAAC,OAAO,CAAS;gBAEP,MAAM,GAAE,wBAA6B;IAK/C,OAAO,CAAC,IAAI,EAAE,YAAY;IA8BjC,OAAO,CAAC,UAAU;IAsElB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,sBAAsB;IAmBvB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAU3D,IAAW,MAAM,YAEhB;IAEM,KAAK;CAMZ"}
1
+ {"version":3,"file":"CallSummaryMonitor.d.ts","sourceRoot":"","sources":["../../src/monitors/CallSummaryMonitor.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,WAAW,EAA8B,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK/C,MAAM,MAAM,wBAAwB,GAAG;IACtC,KAAK,EAAE,EAAE,CAAC;IACV,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;CACvB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACtC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,uCAAuC,CAAC,EAAE,OAAO,CAAC;CAClD,CAAA;AAED,MAAM,CAAC,OAAO,WAAW,kBAAkB;IAC1C,EAAE,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACvH,GAAG,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACxH,IAAI,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACzH,IAAI,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CACxG;AAED,qBAAa,kBAAmB,SAAQ,YAAY;aAKlC,MAAM,EAAE,wBAAwB;IAJjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAE7D,OAAO,CAAC,OAAO,CAAS;gBAEP,MAAM,GAAE,wBAA6B;IAK/C,OAAO,CAAC,IAAI,EAAE,YAAY;IA8BjC,OAAO,CAAC,UAAU;IA4ElB,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
- avgInboundAudioBitrate: 0,
47
- avgInboundVideoBitrate: 0,
48
- avgOutboundAudioBitrate: 0,
49
- avgOutboundVideoBitrate: 0,
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,
@@ -82,12 +84,15 @@ class CallSummaryMonitor extends events_1.EventEmitter {
82
84
  client.on('usermediaerror', onUserMediaError);
83
85
  client.on('newpeerconnection', onNewPeerConnection);
84
86
  client.once('close', () => {
85
- const elapsedTimeInS = (Date.now() - client.created) / 1000;
86
- clientSummary.avgInboundAudioBitrate = (client.totalReceivedBytes * 8) / elapsedTimeInS;
87
- clientSummary.avgInboundVideoBitrate = (client.totalReceivedBytes * 8) / elapsedTimeInS;
88
- clientSummary.avgOutboundAudioBitrate = (client.totalSentBytes * 8) / elapsedTimeInS;
89
- clientSummary.avgOutboundVideoBitrate = (client.totalSentBytes * 8) / elapsedTimeInS;
90
- clientSummary.durationInMs = elapsedTimeInS * 1000;
87
+ const now = Date.now();
88
+ clientSummary.totalInboundAudioBytes = client.totalReceivedAudioBytes;
89
+ clientSummary.totalInboundVideoBytes = client.totalReceivedVideoBytes;
90
+ clientSummary.totalOutboundAudioBytes = client.totalSentAudioBytes;
91
+ clientSummary.totalOutboundVideoBytes = client.totalSentVideoBytes;
92
+ clientSummary.totalDataChannelBytesSent = client.totalDataChannelBytesSent;
93
+ clientSummary.totalDataChannelBytesReceived = client.totalDataChannelBytesReceived;
94
+ clientSummary.durationInMs = now - client.created;
95
+ clientSummary.left = now;
91
96
  client.off('update', updateClient);
92
97
  client.off('usingturn', onUsingTurn);
93
98
  client.off('issue', onIssue);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@observertc/observer-js",
3
- "version": "0.40.17",
3
+ "version": "0.40.19",
4
4
  "description": "Server Side NodeJS Library for processing ObserveRTC Samples",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -231,11 +231,11 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
231
231
  timestamp: issue.timestamp ?? Date.now(),
232
232
  attachments: issue.attachments ? JSON.stringify(issue.attachments): undefined,
233
233
  });
234
- this.emit('issue', issue);
235
234
  } catch (err) {
236
235
  logger.warn(`Error adding client issue: ${(err as Error)?.message}`);
237
236
  }
238
-
237
+
238
+ this.emit('issue', issue);
239
239
  }
240
240
 
241
241
  public accept(sample: ClientSample): void {
@@ -14,10 +14,12 @@ export interface ClientSummary extends Record<string, unknown> {
14
14
  joined: number;
15
15
  left?: number;
16
16
  durationInMs: number;
17
- avgOutboundAudioBitrate: number,
18
- avgOutboundVideoBitrate: number,
19
- avgInboundAudioBitrate: number,
20
- avgInboundVideoBitrate: number,
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[];
@@ -68,10 +68,12 @@ export class CallSummaryMonitor extends EventEmitter {
68
68
  clientId: client.clientId,
69
69
  mediaUnitId: client.mediaUnitId,
70
70
  durationInMs: 0,
71
- avgInboundAudioBitrate: 0,
72
- avgInboundVideoBitrate: 0,
73
- avgOutboundAudioBitrate: 0,
74
- avgOutboundVideoBitrate: 0,
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,
@@ -115,13 +117,17 @@ export class CallSummaryMonitor extends EventEmitter {
115
117
  client.on('usermediaerror', onUserMediaError);
116
118
  client.on('newpeerconnection', onNewPeerConnection);
117
119
  client.once('close', () => {
118
- const elapsedTimeInS = (Date.now() - client.created) / 1000;
119
-
120
- clientSummary.avgInboundAudioBitrate = (client.totalReceivedBytes * 8) / elapsedTimeInS;
121
- clientSummary.avgInboundVideoBitrate = (client.totalReceivedBytes * 8) / elapsedTimeInS;
122
- clientSummary.avgOutboundAudioBitrate = (client.totalSentBytes * 8) / elapsedTimeInS;
123
- clientSummary.avgOutboundVideoBitrate = (client.totalSentBytes * 8) / elapsedTimeInS;
124
- clientSummary.durationInMs = elapsedTimeInS * 1000;
120
+ const now = Date.now();
121
+
122
+ clientSummary.totalInboundAudioBytes = client.totalReceivedAudioBytes;
123
+ clientSummary.totalInboundVideoBytes = client.totalReceivedVideoBytes;
124
+ clientSummary.totalOutboundAudioBytes = client.totalSentAudioBytes;
125
+ clientSummary.totalOutboundVideoBytes = client.totalSentVideoBytes;
126
+ clientSummary.totalDataChannelBytesSent = client.totalDataChannelBytesSent;
127
+ clientSummary.totalDataChannelBytesReceived = client.totalDataChannelBytesReceived;
128
+ clientSummary.durationInMs = now - client.created;
129
+ clientSummary.left = now;
130
+
125
131
  client.off('update', updateClient);
126
132
  client.off('usingturn', onUsingTurn);
127
133
  client.off('issue', onIssue);