@observertc/observer-js 0.40.9-beta → 0.40.11-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.
- package/lib/ObservedClient.d.ts +1 -0
- package/lib/ObservedClient.d.ts.map +1 -1
- package/lib/ObservedClient.js +9 -8
- package/lib/ObservedICE.d.ts +2 -2
- package/lib/ObservedICE.d.ts.map +1 -1
- package/lib/ObservedICE.js +4 -4
- package/lib/ObservedSfu.d.ts.map +1 -1
- package/lib/ObservedSfu.js +1 -0
- package/lib/common/callMetaReports.d.ts +1 -1
- package/lib/common/callMetaReports.d.ts.map +1 -1
- package/lib/common/callMetaReports.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/monitors/TurnUsageMonitor.d.ts +5 -0
- package/lib/monitors/TurnUsageMonitor.d.ts.map +1 -1
- package/lib/monitors/TurnUsageMonitor.js +7 -2
- package/package.json +3 -3
- package/src/ObservedClient.ts +40 -10
- package/src/ObservedICE.ts +12 -4
- package/src/ObservedSfu.ts +2 -0
- package/src/common/callMetaReports.ts +1 -0
- package/src/index.ts +1 -0
- package/src/monitors/TurnUsageMonitor.ts +19 -3
package/lib/ObservedClient.d.ts
CHANGED
|
@@ -48,6 +48,7 @@ export type ObservedClientEvents = {
|
|
|
48
48
|
}
|
|
49
49
|
];
|
|
50
50
|
usingturn: [boolean];
|
|
51
|
+
usermediaerror: [string];
|
|
51
52
|
};
|
|
52
53
|
export declare interface ObservedClient<AppData extends Record<string, unknown> = Record<string, unknown>> {
|
|
53
54
|
on<U extends keyof ObservedClientEvents>(event: U, listener: (...args: ObservedClientEvents[U]) => void): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedClient.d.ts","sourceRoot":"","sources":["../src/ObservedClient.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAChJ,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAOlE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,MAAM,MAAM,mBAAmB,GAAE;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE;QAAC;YACR,eAAe,EAAE,MAAM,CAAC;SACxB;KAAC,CAAC;IACH,KAAK,EAAE,EAAE,CAAC;IACV,iBAAiB,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAC5C,wBAAwB,EAAE;QAAC;YAC1B,cAAc,EAAE,sBAAsB,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC;SACd;KAAC,CAAC;IACH,uBAAuB,EAAE;QAAC;YACzB,cAAc,EAAE,sBAAsB,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC;SACd;KAAC,CAAC;IACH,qBAAqB,EAAE;QAAC;YACvB,cAAc,EAAE,sBAAsB,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC;SACd;KAAC,CAAC;IACH,qBAAqB,EAAE;QAAC;YACvB,cAAc,EAAE,sBAAsB,CAAC;YACvC,cAAc,EAAE,iBAAiB,CAAC;YAClC,eAAe,EAAE,kBAAkB,CAAC;SACpC;KAAC,CAAC;IACH,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ObservedClient.d.ts","sourceRoot":"","sources":["../src/ObservedClient.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAChJ,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAOlE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,MAAM,MAAM,mBAAmB,GAAE;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE;QAAC;YACR,eAAe,EAAE,MAAM,CAAC;SACxB;KAAC,CAAC;IACH,KAAK,EAAE,EAAE,CAAC;IACV,iBAAiB,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAC5C,wBAAwB,EAAE;QAAC;YAC1B,cAAc,EAAE,sBAAsB,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC;SACd;KAAC,CAAC;IACH,uBAAuB,EAAE;QAAC;YACzB,cAAc,EAAE,sBAAsB,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC;SACd;KAAC,CAAC;IACH,qBAAqB,EAAE;QAAC;YACvB,cAAc,EAAE,sBAAsB,CAAC;YACvC,KAAK,EAAE,MAAM,CAAC;SACd;KAAC,CAAC;IACH,qBAAqB,EAAE;QAAC;YACvB,cAAc,EAAE,sBAAsB,CAAC;YACvC,cAAc,EAAE,iBAAiB,CAAC;YAClC,eAAe,EAAE,kBAAkB,CAAC;SACpC;KAAC,CAAC;IACH,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;IACrB,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,MAAM,CAAC,OAAO,WAAW,cAAc,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACxG,EAAE,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC/G,GAAG,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAChH,IAAI,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACjH,IAAI,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAChG,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,cAAc,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,YAAY;IAqDjH,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,IAAI,EAAE,YAAY;aAClB,OAAO,EAAE,OAAO;IArDjC,SAAgB,OAAO,SAAc;IAC9B,QAAQ,SAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6C;IAE9E,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,sBAAsB,CAAC,CAAS;IACxC,OAAO,CAAC,KAAK,CAAC,CAAS;IAEhB,SAAS,UAAS;IAClB,wBAAwB,SAAK;IAC7B,wBAAwB,SAAK;IAC7B,uBAAuB,SAAK;IAC5B,2BAA2B,SAAK;IAChC,wBAAwB,SAAK;IAC7B,yBAAyB,SAAK;IAC9B,6BAA6B,SAAK;IAClC,cAAc,SAAK;IACnB,kBAAkB,SAAK;IACvB,uBAAuB,SAAK;IAC5B,uBAAuB,SAAK;IAC5B,mBAAmB,SAAK;IACxB,mBAAmB,SAAK;IAExB,uBAAuB,SAAK;IAC5B,uBAAuB,SAAK;IAC5B,mBAAmB,SAAK;IACxB,mBAAmB,SAAK;IACxB,yBAAyB,SAAK;IAC9B,6BAA6B,SAAK;IAClC,uBAAuB,SAAK;IAC5B,2BAA2B,SAAK;IAChC,wBAAwB,SAAK;IAE7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAEpC,SAAgB,YAAY,EAAE,MAAM,EAAE,CAAM;IAC5C,SAAgB,MAAM,EAAE,MAAM,EAAE,CAAM;IACtC,SAAgB,eAAe,EAAE,MAAM,EAAE,CAAM;IAE/C,SAAgB,8BAA8B,sBAA6B;IAC3E,SAAgB,sCAAsC,sBAA6B;gBAGjE,MAAM,EAAE,mBAAmB,EAC5B,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,OAAO;IAMjC,IAAW,GAAG,IAAI,WAAW,GAAG,SAAS,CAIxC;IAED,IAAW,QAAQ,IAAI,MAAM,CAG5B;IAED,IAAW,MAAM,WAGhB;IAED,IAAW,SAAS,WAGnB;IAED,IAAW,MAAM,WAGhB;IAED,IAAW,WAAW,WAGrB;IAED,IAAW,OAAO,kDAEjB;IAED,IAAW,MAAM,uBAEhB;IAED,IAAW,qBAAqB,uBAE/B;IAED,IAAW,MAAM,uBAEhB;IAED,IAAW,OAAO,wBAEjB;IAED,IAAW,MAAM,uBAEhB;IAED,IAAW,eAAe,gCAEzB;IAED,IAAW,QAAQ,yBAElB;IAED,IAAW,cAAc,WAExB;IAED,IAAW,OAAO,WAEjB;IAED,IAAW,MAAM,YAEhB;IAED,IAAW,eAAe,IAAI,WAAW,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAExE;IAEM,KAAK;IAaL,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IA0kBzC,OAAO,CAAC,qBAAqB;IA0B7B,OAAO,CAAC,oBAAoB;CAe5B"}
|
package/lib/ObservedClient.js
CHANGED
|
@@ -164,7 +164,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
164
164
|
const callMetaReport = (0, callMetaReports_1.createCallMetaReport)(this.serviceId, this.mediaUnitId, this.roomId, this.callId, this.clientId, {
|
|
165
165
|
type: callMetaReports_1.CallMetaType.OPERATION_SYSTEM,
|
|
166
166
|
payload: sample.os,
|
|
167
|
-
}, this.userId);
|
|
167
|
+
}, this.userId, undefined, sample.timestamp);
|
|
168
168
|
this.reports.addCallMetaReport(callMetaReport);
|
|
169
169
|
}
|
|
170
170
|
if (sample.engine && (((_d = this._model.engine) === null || _d === void 0 ? void 0 : _d.name) !== sample.engine.name ||
|
|
@@ -173,7 +173,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
173
173
|
const callMetaReport = (0, callMetaReports_1.createCallMetaReport)(this.serviceId, this.mediaUnitId, this.roomId, this.callId, this.clientId, {
|
|
174
174
|
type: callMetaReports_1.CallMetaType.ENGINE,
|
|
175
175
|
payload: sample.engine,
|
|
176
|
-
}, this.userId);
|
|
176
|
+
}, this.userId, undefined, sample.timestamp);
|
|
177
177
|
this.reports.addCallMetaReport(callMetaReport);
|
|
178
178
|
}
|
|
179
179
|
if (sample.platform && (((_f = this._model.platform) === null || _f === void 0 ? void 0 : _f.model) !== sample.platform.model ||
|
|
@@ -183,7 +183,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
183
183
|
const callMetaReport = (0, callMetaReports_1.createCallMetaReport)(this.serviceId, this.mediaUnitId, this.roomId, this.callId, this.clientId, {
|
|
184
184
|
type: callMetaReports_1.CallMetaType.PLATFORM,
|
|
185
185
|
payload: sample.platform,
|
|
186
|
-
}, this.userId);
|
|
186
|
+
}, this.userId, undefined, sample.timestamp);
|
|
187
187
|
this.reports.addCallMetaReport(callMetaReport);
|
|
188
188
|
}
|
|
189
189
|
if (sample.browser && (((_j = this._model.browser) === null || _j === void 0 ? void 0 : _j.name) !== sample.browser.name ||
|
|
@@ -192,21 +192,21 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
192
192
|
const callMetaReport = (0, callMetaReports_1.createCallMetaReport)(this.serviceId, this.mediaUnitId, this.roomId, this.callId, this.clientId, {
|
|
193
193
|
type: callMetaReports_1.CallMetaType.BROWSER,
|
|
194
194
|
payload: sample.browser,
|
|
195
|
-
}, this.userId);
|
|
195
|
+
}, this.userId, undefined, sample.timestamp);
|
|
196
196
|
this.reports.addCallMetaReport(callMetaReport);
|
|
197
197
|
}
|
|
198
198
|
for (const mediaConstraint of (_l = sample.mediaConstraints) !== null && _l !== void 0 ? _l : []) {
|
|
199
199
|
const callMetaReport = (0, callMetaReports_1.createCallMetaReport)(this.serviceId, this.mediaUnitId, this.roomId, this.callId, this.clientId, {
|
|
200
200
|
type: callMetaReports_1.CallMetaType.MEDIA_CONSTRAINT,
|
|
201
201
|
payload: mediaConstraint,
|
|
202
|
-
}, this.userId);
|
|
202
|
+
}, this.userId, undefined, sample.timestamp);
|
|
203
203
|
this.reports.addCallMetaReport(callMetaReport);
|
|
204
204
|
}
|
|
205
205
|
for (const localSDP of (_m = sample.localSDPs) !== null && _m !== void 0 ? _m : []) {
|
|
206
206
|
const callMetaReport = (0, callMetaReports_1.createCallMetaReport)(this.serviceId, this.mediaUnitId, this.roomId, this.callId, this.clientId, {
|
|
207
207
|
type: callMetaReports_1.CallMetaType.LOCAL_SDP,
|
|
208
208
|
payload: localSDP,
|
|
209
|
-
}, this.userId);
|
|
209
|
+
}, this.userId, undefined, sample.timestamp);
|
|
210
210
|
this.reports.addCallMetaReport(callMetaReport);
|
|
211
211
|
}
|
|
212
212
|
for (const extensionStats of (_o = sample.extensionStats) !== null && _o !== void 0 ? _o : []) {
|
|
@@ -239,6 +239,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
239
239
|
}, this.userId);
|
|
240
240
|
this.reports.addCallMetaReport(callMetaReport);
|
|
241
241
|
this.userMediaErrors.push(userMediaError);
|
|
242
|
+
this.emit('usermediaerror', userMediaError);
|
|
242
243
|
}
|
|
243
244
|
for (const certificate of (_r = sample.certificates) !== null && _r !== void 0 ? _r : []) {
|
|
244
245
|
const callMetaReport = (0, callMetaReports_1.createCallMetaReport)(this.serviceId, this.mediaUnitId, this.roomId, this.callId, this.clientId, {
|
|
@@ -390,7 +391,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
390
391
|
logger.debug(`Peer connection ${iceLocalCandidate.peerConnectionId} not found for ice local candidate ${iceLocalCandidate.id}`);
|
|
391
392
|
continue;
|
|
392
393
|
}
|
|
393
|
-
peerConnection.ICE.addLocalCandidate(iceLocalCandidate);
|
|
394
|
+
peerConnection.ICE.addLocalCandidate(iceLocalCandidate, sample.timestamp);
|
|
394
395
|
}
|
|
395
396
|
for (const iceRemoteCandidate of (_13 = sample.iceRemoteCandidates) !== null && _13 !== void 0 ? _13 : []) {
|
|
396
397
|
if (!iceRemoteCandidate.peerConnectionId) {
|
|
@@ -402,7 +403,7 @@ class ObservedClient extends events_1.EventEmitter {
|
|
|
402
403
|
logger.debug(`Peer connection ${iceRemoteCandidate.peerConnectionId} not found for ice remote candidate ${iceRemoteCandidate.id}`);
|
|
403
404
|
continue;
|
|
404
405
|
}
|
|
405
|
-
peerConnection.ICE.addRemoteCandidate(iceRemoteCandidate);
|
|
406
|
+
peerConnection.ICE.addRemoteCandidate(iceRemoteCandidate, sample.timestamp);
|
|
406
407
|
}
|
|
407
408
|
for (const candidatePair of (_14 = sample.iceCandidatePairs) !== null && _14 !== void 0 ? _14 : []) {
|
|
408
409
|
const peerConnection = this._peerConnections.get(candidatePair.peerConnectionId);
|
package/lib/ObservedICE.d.ts
CHANGED
|
@@ -56,8 +56,8 @@ export declare class ObservedICE extends EventEmitter {
|
|
|
56
56
|
get updated(): number;
|
|
57
57
|
get closed(): boolean;
|
|
58
58
|
close(): void;
|
|
59
|
-
addLocalCandidate(candidate: IceLocalCandidate): void;
|
|
60
|
-
addRemoteCandidate(candidate: IceRemoteCandidate): void;
|
|
59
|
+
addLocalCandidate(candidate: IceLocalCandidate, sampleTimestamp?: number): void;
|
|
60
|
+
addRemoteCandidate(candidate: IceRemoteCandidate, sampleTimestamp?: number): void;
|
|
61
61
|
resetMetrics(): void;
|
|
62
62
|
update(candidatePair: IceCandidatePair, timestamp: number): void;
|
|
63
63
|
}
|
package/lib/ObservedICE.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedICE.d.ts","sourceRoot":"","sources":["../src/ObservedICE.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,MAAM,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE;QAAC;YACR,eAAe,EAAE,MAAM,CAAC;SACxB;KAAC,CAAC;IACH,qBAAqB,EAAE,CAAC,iBAAiB,CAAC,CAAC;IAC3C,sBAAsB,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAC7C,6BAA6B,EAAE;QAAC;YAC/B,cAAc,EAAE,iBAAiB,CAAC;YAClC,eAAe,EAAE,kBAAkB,CAAC;SACpC;KAAC,CAAC;IACH,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC;IAC5B,KAAK,EAAE,EAAE,CAAC;CACV,CAAC;AAEF,MAAM,CAAC,OAAO,WAAW,WAAW;IACnC,EAAE,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACzG,GAAG,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1G,IAAI,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3G,IAAI,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CAC1F;AAED,qBAAa,WAAY,SAAQ,YAAY;aA+B3B,cAAc,EAAE,sBAAsB;WA9BzC,MAAM,CAAC,cAAc,EAAE,sBAAsB;IAIpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAEvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwC;IACzE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwC;IAEnE,SAAS,UAAS;IAElB,kBAAkB,SAAK;IACvB,cAAc,SAAK;IACnB,oBAAoB,SAAK;IACzB,gBAAgB,SAAK;IAErB,kBAAkB,SAAK;IACvB,cAAc,SAAK;IACnB,oBAAoB,SAAK;IACzB,gBAAgB,SAAK;IAErB,cAAc,CAAC,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,yBAAyB,CAAC,CAAS;IAC3C,OAAO,CAAC,0BAA0B,CAAC,CAAS;IAC5C,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,MAAM,CAAC,CAAmB;IAClC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;IAOP,IAAW,OAAO,kDAEjB;IAED,IAAW,eAAe,IAAI,WAAW,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAEnE;IAED,IAAW,gBAAgB,IAAI,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAErE;IAED,IAAW,sBAAsB,kCAEhC;IAED,IAAW,uBAAuB,kCAEjC;IAED,IAAW,KAAK,iCAEf;IAED,IAAW,OAAO,WAEjB;IAED,IAAW,MAAM,YAEhB;IAEM,KAAK;IAML,iBAAiB,CAAC,SAAS,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"ObservedICE.d.ts","sourceRoot":"","sources":["../src/ObservedICE.ts"],"names":[],"mappings":"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"}
|
package/lib/ObservedICE.js
CHANGED
|
@@ -57,7 +57,7 @@ class ObservedICE extends events_1.EventEmitter {
|
|
|
57
57
|
this._closed = true;
|
|
58
58
|
this.emit('close');
|
|
59
59
|
}
|
|
60
|
-
addLocalCandidate(candidate) {
|
|
60
|
+
addLocalCandidate(candidate, sampleTimestamp) {
|
|
61
61
|
if (!candidate.id)
|
|
62
62
|
return;
|
|
63
63
|
const newCandidate = !this._localCandidates.has(candidate.id);
|
|
@@ -66,12 +66,12 @@ class ObservedICE extends events_1.EventEmitter {
|
|
|
66
66
|
const callMetaReport = (0, callMetaReports_1.createCallMetaReport)(this.peerConnection.client.serviceId, this.peerConnection.client.mediaUnitId, this.peerConnection.client.roomId, this.peerConnection.client.callId, this.peerConnection.client.clientId, {
|
|
67
67
|
type: callMetaReports_1.CallMetaType.ICE_LOCAL_CANDIDATE,
|
|
68
68
|
payload: candidate,
|
|
69
|
-
}, this.peerConnection.client.userId);
|
|
69
|
+
}, this.peerConnection.client.userId, this.peerConnection.peerConnectionId, sampleTimestamp);
|
|
70
70
|
this.reports.addCallMetaReport(callMetaReport);
|
|
71
71
|
this.emit('new-local-candidate', candidate);
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
addRemoteCandidate(candidate) {
|
|
74
|
+
addRemoteCandidate(candidate, sampleTimestamp) {
|
|
75
75
|
if (!candidate.id)
|
|
76
76
|
return;
|
|
77
77
|
const newCandidate = !this._remoteCandidates.has(candidate.id);
|
|
@@ -80,7 +80,7 @@ class ObservedICE extends events_1.EventEmitter {
|
|
|
80
80
|
const callMetaReport = (0, callMetaReports_1.createCallMetaReport)(this.peerConnection.client.serviceId, this.peerConnection.client.mediaUnitId, this.peerConnection.client.roomId, this.peerConnection.client.callId, this.peerConnection.client.clientId, {
|
|
81
81
|
type: callMetaReports_1.CallMetaType.ICE_REMOTE_CANDIDATE,
|
|
82
82
|
payload: candidate,
|
|
83
|
-
}, this.peerConnection.client.userId);
|
|
83
|
+
}, this.peerConnection.client.userId, this.peerConnection.peerConnectionId, sampleTimestamp);
|
|
84
84
|
this.reports.addCallMetaReport(callMetaReport);
|
|
85
85
|
this.emit('new-remote-candidate', candidate);
|
|
86
86
|
}
|
package/lib/ObservedSfu.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservedSfu.d.ts","sourceRoot":"","sources":["../src/ObservedSfu.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAA6B,MAAM,wBAAwB,CAAC;AAGzF,MAAM,MAAM,gBAAgB,GAAE;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE;QAAC;YACR,eAAe,EAAE,MAAM,CAAC;SACxB;KAAC,CAAC;IACH,KAAK,EAAE,EAAE,CAAC;IACV,YAAY,EAAE,CAAC,oBAAoB,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACrG,EAAE,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACzG,GAAG,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1G,IAAI,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3G,IAAI,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAE1F,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;CAChC;AAED,qBAAa,WAAW,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,YAAY;IAY9G,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,QAAQ,EAAE,QAAQ;aAClB,OAAO,EAAE,OAAO;IAbjC,SAAgB,OAAO,SAAc;IAErC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,sBAAsB,CAAC,CAAS;IACxC,OAAO,CAAC,KAAK,CAAC,CAAS;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2C;gBAGrD,MAAM,EAAE,gBAAgB,EACzB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO;IAMjC,IAAW,MAAM,uBAEhB;IAED,IAAW,OAAO,kDAEjB;IAED,IAAW,SAAS,WAGnB;IAED,IAAW,WAAW,WAErB;IAED,IAAW,KAAK,WAGf;IAED,IAAW,MAAM,WAGhB;IAED,IAAW,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAEjE;IAED,IAAW,OAAO,WAEjB;IAED,IAAW,MAAM,YAEhB;IAEM,KAAK;
|
|
1
|
+
{"version":3,"file":"ObservedSfu.d.ts","sourceRoot":"","sources":["../src/ObservedSfu.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAA6B,MAAM,wBAAwB,CAAC;AAGzF,MAAM,MAAM,gBAAgB,GAAE;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC/B,MAAM,EAAE;QAAC;YACR,eAAe,EAAE,MAAM,CAAC;SACxB;KAAC,CAAC;IACH,KAAK,EAAE,EAAE,CAAC;IACV,YAAY,EAAE,CAAC,oBAAoB,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACrG,EAAE,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACzG,GAAG,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1G,IAAI,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3G,IAAI,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAE1F,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;CAChC;AAED,qBAAa,WAAW,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,YAAY;IAY9G,OAAO,CAAC,QAAQ,CAAC,MAAM;aACP,QAAQ,EAAE,QAAQ;aAClB,OAAO,EAAE,OAAO;IAbjC,SAAgB,OAAO,SAAc;IAErC,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,sBAAsB,CAAC,CAAS;IACxC,OAAO,CAAC,KAAK,CAAC,CAAS;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2C;gBAGrD,MAAM,EAAE,gBAAgB,EACzB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO;IAMjC,IAAW,MAAM,uBAEhB;IAED,IAAW,OAAO,kDAEjB;IAED,IAAW,SAAS,WAGnB;IAED,IAAW,WAAW,WAErB;IAED,IAAW,KAAK,WAGf;IAED,IAAW,MAAM,WAGhB;IAED,IAAW,UAAU,IAAI,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAEjE;IAED,IAAW,OAAO,WAEjB;IAED,IAAW,MAAM,YAEhB;IAEM,KAAK;IAmGZ,OAAO,CAAC,gBAAgB;CAYxB"}
|
package/lib/ObservedSfu.js
CHANGED
|
@@ -61,6 +61,7 @@ class ObservedSfu extends events_1.EventEmitter {
|
|
|
61
61
|
if (!this._timeZoneOffsetInHours && sample.timeZoneOffsetInHours) {
|
|
62
62
|
this._timeZoneOffsetInHours = sample.timeZoneOffsetInHours;
|
|
63
63
|
}
|
|
64
|
+
this._marker = sample.marker;
|
|
64
65
|
const now = Date.now();
|
|
65
66
|
const elapsedTimeInMs = now - this._updated;
|
|
66
67
|
for (const customSfuEvents of (_a = sample.customSfuEvents) !== null && _a !== void 0 ? _a : []) {
|
|
@@ -59,5 +59,5 @@ export type CallMetaReportType = {
|
|
|
59
59
|
type: CallMetaType.BROWSER;
|
|
60
60
|
payload: Browser;
|
|
61
61
|
};
|
|
62
|
-
export declare function createCallMetaReport(serviceId: string, mediaUnitId: string, roomId: string, callId: string, clientId: string, reportType: CallMetaReportType, userId?: string, timestamp?: number): CallMetaReport;
|
|
62
|
+
export declare function createCallMetaReport(serviceId: string, mediaUnitId: string, roomId: string, callId: string, clientId: string, reportType: CallMetaReportType, userId?: string, peerConnectionId?: string, timestamp?: number): CallMetaReport;
|
|
63
63
|
//# sourceMappingURL=callMetaReports.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callMetaReports.d.ts","sourceRoot":"","sources":["../../src/common/callMetaReports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACN,OAAO,EACP,WAAW,EACX,MAAM,EACN,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,eAAe,EACf,eAAe,EACf,QAAQ,EACR,MAAM,+BAA+B,CAAC;AAGvC,oBAAY,YAAY;IACvB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,mBAAmB,wBAAwB;IAC3C,oBAAoB,yBAAyB;IAC7C,UAAU,eAAe;IACzB,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;IACrC,SAAS,cAAc;IAEvB,gBAAgB,qBAAqB;IACrC,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACnB;AAED,MAAM,MAAM,kBAAkB,GAC3B;IACD,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;CACrB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;IACzB,OAAO,EAAE,eAAe,CAAC;CACzB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,mBAAmB,CAAC;IACvC,OAAO,EAAE,iBAAiB,CAAC;CAC3B,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,oBAAoB,CAAC;IACxC,OAAO,EAAE,kBAAkB,CAAC;CAC5B,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CAChB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CAChB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC;IAChC,OAAO,EAAE,WAAW,CAAC;CACrB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC;IAChC,OAAO,EAAE,eAAe,CAAC;CACzB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CAChB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,eAAe,CAAC;CACzB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;IAC5B,OAAO,EAAE,QAAQ,CAAC;CAClB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CAChB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CAChB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEH,wBAAgB,oBAAoB,CACnC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,kBAAkB,EAC9B,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,kBAelB"}
|
|
1
|
+
{"version":3,"file":"callMetaReports.d.ts","sourceRoot":"","sources":["../../src/common/callMetaReports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EACN,OAAO,EACP,WAAW,EACX,MAAM,EACN,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,eAAe,EACf,eAAe,EACf,QAAQ,EACR,MAAM,+BAA+B,CAAC;AAGvC,oBAAY,YAAY;IACvB,WAAW,gBAAgB;IAC3B,KAAK,UAAU;IACf,mBAAmB,wBAAwB;IAC3C,oBAAoB,yBAAyB;IAC7C,UAAU,eAAe;IACzB,gBAAgB,qBAAqB;IACrC,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;IACrC,SAAS,cAAc;IAEvB,gBAAgB,qBAAqB;IACrC,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,OAAO,YAAY;CACnB;AAED,MAAM,MAAM,kBAAkB,GAC3B;IACD,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;CACrB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;IACzB,OAAO,EAAE,eAAe,CAAC;CACzB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,mBAAmB,CAAC;IACvC,OAAO,EAAE,iBAAiB,CAAC;CAC3B,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,oBAAoB,CAAC;IACxC,OAAO,EAAE,kBAAkB,CAAC;CAC5B,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CAChB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CAChB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC;IAChC,OAAO,EAAE,WAAW,CAAC;CACrB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC;IAChC,OAAO,EAAE,eAAe,CAAC;CACzB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CAChB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,eAAe,CAAC;CACzB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;IAC5B,OAAO,EAAE,QAAQ,CAAC;CAClB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CAChB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CAChB,GAAG;IACH,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CACjB,CAAC;AAEH,wBAAgB,oBAAoB,CACnC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,kBAAkB,EAC9B,MAAM,CAAC,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,EACzB,SAAS,CAAC,EAAE,MAAM,kBAelB"}
|
|
@@ -19,7 +19,7 @@ var CallMetaType;
|
|
|
19
19
|
CallMetaType["PLATFORM"] = "PLATFORM";
|
|
20
20
|
CallMetaType["BROWSER"] = "BROWSER";
|
|
21
21
|
})(CallMetaType = exports.CallMetaType || (exports.CallMetaType = {}));
|
|
22
|
-
function createCallMetaReport(serviceId, mediaUnitId, roomId, callId, clientId, reportType, userId, timestamp) {
|
|
22
|
+
function createCallMetaReport(serviceId, mediaUnitId, roomId, callId, clientId, reportType, userId, peerConnectionId, timestamp) {
|
|
23
23
|
const report = {
|
|
24
24
|
type: reportType.type,
|
|
25
25
|
serviceId,
|
package/lib/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export * as ReportSchema from '@observertc/report-schemas-js';
|
|
|
5
5
|
export type { LogLevel, Logger } from './common/logger';
|
|
6
6
|
export type { Samples, ClientSample, SfuSample, ExtensionStat, PeerConnectionTransport, IceCandidatePair, MediaSourceStat, MediaCodecStats, InboundAudioTrack, InboundVideoTrack, OutboundAudioTrack, OutboundVideoTrack, IceLocalCandidate, IceRemoteCandidate, CustomCallEvent, SfuTransport, SfuInboundRtpPad, SfuOutboundRtpPad, SfuSctpChannel, SfuExtensionStats, DataChannel, } from '@observertc/sample-schemas-js';
|
|
7
7
|
export type { CallEventReport, CallMetaReport, ClientDataChannelReport, ClientExtensionReport, IceCandidatePairReport, InboundAudioTrackReport, InboundVideoTrackReport, ObserverEventReport, OutboundAudioTrackReport, OutboundVideoTrackReport, PeerConnectionTransportReport, SfuEventReport, SfuExtensionReport, SfuInboundRtpPadReport, SfuMetaReport, SfuOutboundRtpPadReport, SfuSctpStreamReport, SFUTransportReport, } from '@observertc/report-schemas-js';
|
|
8
|
+
export type { ObservedCall, ObservedCallModel } from './ObservedCall';
|
|
8
9
|
export type { ObservedClient, ObservedClientModel } from './ObservedClient';
|
|
9
10
|
export type { ObservedPeerConnection, ObservedPeerConnectionModel, ObservedPeerConnectionEvents } from './ObservedPeerConnection';
|
|
10
11
|
export type { ObservedInboundTrack, ObservedInboundTrackModel, ObservedInboundTrackEvents } from './ObservedInboundTrack';
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAE9D,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAExD,YAAY,EACX,OAAO,EACP,YAAY,EACZ,SAAS,EACT,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,WAAW,GACX,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACX,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,EAC7B,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,YAAY,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAClI,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAC1H,YAAY,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAE9H,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACtD,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,YAE9D;AAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAA8B,MAAM,iBAAiB,CAAC;AAC/E,wBAAgB,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAG3D"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAE9D,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAExD,YAAY,EACX,OAAO,EACP,YAAY,EACZ,SAAS,EACT,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,WAAW,GACX,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACX,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,EAC7B,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,YAAY,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAClI,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAC1H,YAAY,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAE9H,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACtD,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,YAE9D;AAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAA8B,MAAM,iBAAiB,CAAC;AAC/E,wBAAgB,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAG3D"}
|
|
@@ -3,6 +3,10 @@ import { EventEmitter } from 'events';
|
|
|
3
3
|
import { ObservedPeerConnection } from '../ObservedPeerConnection';
|
|
4
4
|
export type TurnUsageMonitorEvents = {
|
|
5
5
|
close: [];
|
|
6
|
+
'newturnip': [string];
|
|
7
|
+
update: [TurnUsage];
|
|
8
|
+
addpeerconnection: [ObservedPeerConnection];
|
|
9
|
+
removepeerconnection: [ObservedPeerConnection];
|
|
6
10
|
};
|
|
7
11
|
export type TurnUsage = {
|
|
8
12
|
turnIp: string;
|
|
@@ -15,6 +19,7 @@ export declare interface TurnUsageMonitor {
|
|
|
15
19
|
on<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
|
|
16
20
|
off<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
|
|
17
21
|
once<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
|
|
22
|
+
emit<U extends keyof TurnUsageMonitorEvents>(event: U, ...args: TurnUsageMonitorEvents[U]): boolean;
|
|
18
23
|
}
|
|
19
24
|
export declare class TurnUsageMonitor extends EventEmitter {
|
|
20
25
|
private readonly _connections;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TurnUsageMonitor.d.ts","sourceRoot":"","sources":["../../src/monitors/TurnUsageMonitor.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,MAAM,MAAM,sBAAsB,GAAG;IACpC,KAAK,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"TurnUsageMonitor.d.ts","sourceRoot":"","sources":["../../src/monitors/TurnUsageMonitor.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGnE,MAAM,MAAM,sBAAsB,GAAG;IACpC,KAAK,EAAE,EAAE,CAAC;IACV,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;IACpB,iBAAiB,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAC5C,oBAAoB,EAAE,CAAC,sBAAsB,CAAC,CAAC;CAC/C,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;CAC7B,CAAA;AAQD,MAAM,CAAC,OAAO,WAAW,gBAAgB;IACxC,EAAE,CAAC,CAAC,SAAS,MAAM,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACnH,GAAG,CAAC,CAAC,SAAS,MAAM,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACpH,IAAI,CAAC,CAAC,SAAS,MAAM,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACrH,IAAI,CAAC,CAAC,SAAS,MAAM,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CACpG;AAED,qBAAa,gBAAiB,SAAQ,YAAY;IACjD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyC;IACtE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAE3D,OAAO,CAAC,OAAO,CAAS;;IAKjB,iBAAiB,CAAC,cAAc,EAAE,sBAAsB;IA4CxD,oBAAoB,CAAC,cAAc,EAAE,sBAAsB;IAelE,IAAW,OAAO,aAEjB;IAED,IAAW,eAAe,6BAEzB;IAEM,QAAQ,CAAC,MAAM,EAAE,MAAM;IAI9B,IAAW,MAAM,YAEhB;IAEM,KAAK;CAMZ"}
|
|
@@ -27,20 +27,23 @@ class TurnUsageMonitor extends events_1.EventEmitter {
|
|
|
27
27
|
totalBytesSent: 0,
|
|
28
28
|
totalBytesReceived: 0,
|
|
29
29
|
totalPacketsSent: 0,
|
|
30
|
-
totalPacketsReceived: 0
|
|
30
|
+
totalPacketsReceived: 0,
|
|
31
31
|
};
|
|
32
32
|
this._turnUsage.set(turnIp, usage);
|
|
33
|
+
this.emit('newturnip', turnIp);
|
|
33
34
|
}
|
|
34
35
|
usage.totalBytesSent += ice.deltaBytesSent;
|
|
35
36
|
usage.totalBytesReceived += ice.deltaBytesReceived;
|
|
36
37
|
usage.totalPacketsSent += ice.deltaPacketsSent;
|
|
37
38
|
usage.totalPacketsReceived += ice.deltaPacketsReceived;
|
|
39
|
+
this.emit('update', usage);
|
|
38
40
|
};
|
|
41
|
+
peerConnection.ICE.on('update', onUpdate);
|
|
39
42
|
this._connections.set(peerConnection.peerConnectionId, {
|
|
40
43
|
peerConnection,
|
|
41
44
|
onUpdate
|
|
42
45
|
});
|
|
43
|
-
|
|
46
|
+
this.emit('addpeerconnection', peerConnection);
|
|
44
47
|
}
|
|
45
48
|
removePeerConnection(peerConnection) {
|
|
46
49
|
var _a;
|
|
@@ -52,6 +55,8 @@ class TurnUsageMonitor extends events_1.EventEmitter {
|
|
|
52
55
|
if (!onUpdate)
|
|
53
56
|
return;
|
|
54
57
|
peerConnection.ICE.off('update', onUpdate);
|
|
58
|
+
this._connections.delete(peerConnection.peerConnectionId);
|
|
59
|
+
this.emit('removepeerconnection', peerConnection);
|
|
55
60
|
}
|
|
56
61
|
get turnIps() {
|
|
57
62
|
return Array.from(this._turnUsage.keys());
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@observertc/observer-js",
|
|
3
|
-
"version": "0.40.
|
|
3
|
+
"version": "0.40.11-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",
|
|
@@ -31,12 +31,12 @@
|
|
|
31
31
|
"uuid": "^8.3.2"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
+
"@types/events": "^3.0.0",
|
|
34
35
|
"@types/jest": "^27.5.2",
|
|
35
36
|
"@types/node": "^20.9.0",
|
|
37
|
+
"@types/uuid": "^8.3.4",
|
|
36
38
|
"@typescript-eslint/eslint-plugin": "^5.38.0",
|
|
37
39
|
"@typescript-eslint/parser": "^5.38.0",
|
|
38
|
-
"@types/events": "^3.0.0",
|
|
39
|
-
"@types/uuid": "^8.3.4",
|
|
40
40
|
"bufferutil": "^4.0.6",
|
|
41
41
|
"eslint": "^8.24.0",
|
|
42
42
|
"jest": "^27.5.0",
|
package/src/ObservedClient.ts
CHANGED
|
@@ -47,6 +47,7 @@ export type ObservedClientEvents = {
|
|
|
47
47
|
remoteCandidate: IceRemoteCandidate,
|
|
48
48
|
}],
|
|
49
49
|
usingturn: [boolean],
|
|
50
|
+
usermediaerror: [string],
|
|
50
51
|
};
|
|
51
52
|
|
|
52
53
|
export declare interface ObservedClient<AppData extends Record<string, unknown> = Record<string, unknown>> {
|
|
@@ -252,7 +253,11 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
|
|
|
252
253
|
{
|
|
253
254
|
type: CallMetaType.OPERATION_SYSTEM,
|
|
254
255
|
payload: sample.os,
|
|
255
|
-
},
|
|
256
|
+
},
|
|
257
|
+
this.userId,
|
|
258
|
+
undefined,
|
|
259
|
+
sample.timestamp
|
|
260
|
+
);
|
|
256
261
|
|
|
257
262
|
this.reports.addCallMetaReport(callMetaReport);
|
|
258
263
|
}
|
|
@@ -272,7 +277,11 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
|
|
|
272
277
|
{
|
|
273
278
|
type: CallMetaType.ENGINE,
|
|
274
279
|
payload: sample.engine,
|
|
275
|
-
},
|
|
280
|
+
},
|
|
281
|
+
this.userId,
|
|
282
|
+
undefined,
|
|
283
|
+
sample.timestamp
|
|
284
|
+
);
|
|
276
285
|
|
|
277
286
|
this.reports.addCallMetaReport(callMetaReport);
|
|
278
287
|
}
|
|
@@ -293,7 +302,11 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
|
|
|
293
302
|
{
|
|
294
303
|
type: CallMetaType.PLATFORM,
|
|
295
304
|
payload: sample.platform,
|
|
296
|
-
},
|
|
305
|
+
},
|
|
306
|
+
this.userId,
|
|
307
|
+
undefined,
|
|
308
|
+
sample.timestamp
|
|
309
|
+
);
|
|
297
310
|
|
|
298
311
|
this.reports.addCallMetaReport(callMetaReport);
|
|
299
312
|
}
|
|
@@ -313,7 +326,11 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
|
|
|
313
326
|
{
|
|
314
327
|
type: CallMetaType.BROWSER,
|
|
315
328
|
payload: sample.browser,
|
|
316
|
-
},
|
|
329
|
+
},
|
|
330
|
+
this.userId,
|
|
331
|
+
undefined,
|
|
332
|
+
sample.timestamp
|
|
333
|
+
);
|
|
317
334
|
|
|
318
335
|
this.reports.addCallMetaReport(callMetaReport);
|
|
319
336
|
}
|
|
@@ -328,7 +345,11 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
|
|
|
328
345
|
{
|
|
329
346
|
type: CallMetaType.MEDIA_CONSTRAINT,
|
|
330
347
|
payload: mediaConstraint,
|
|
331
|
-
},
|
|
348
|
+
},
|
|
349
|
+
this.userId,
|
|
350
|
+
undefined,
|
|
351
|
+
sample.timestamp
|
|
352
|
+
);
|
|
332
353
|
|
|
333
354
|
this.reports.addCallMetaReport(callMetaReport);
|
|
334
355
|
}
|
|
@@ -343,7 +364,11 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
|
|
|
343
364
|
{
|
|
344
365
|
type: CallMetaType.LOCAL_SDP,
|
|
345
366
|
payload: localSDP,
|
|
346
|
-
},
|
|
367
|
+
},
|
|
368
|
+
this.userId,
|
|
369
|
+
undefined,
|
|
370
|
+
sample.timestamp
|
|
371
|
+
);
|
|
347
372
|
|
|
348
373
|
this.reports.addCallMetaReport(callMetaReport);
|
|
349
374
|
}
|
|
@@ -390,10 +415,13 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
|
|
|
390
415
|
this.clientId, {
|
|
391
416
|
type: CallMetaType.USER_MEDIA_ERROR,
|
|
392
417
|
payload: userMediaError,
|
|
393
|
-
},
|
|
418
|
+
},
|
|
419
|
+
this.userId,
|
|
420
|
+
);
|
|
394
421
|
|
|
395
422
|
this.reports.addCallMetaReport(callMetaReport);
|
|
396
423
|
this.userMediaErrors.push(userMediaError);
|
|
424
|
+
this.emit('usermediaerror', userMediaError);
|
|
397
425
|
}
|
|
398
426
|
|
|
399
427
|
for (const certificate of sample.certificates ?? []) {
|
|
@@ -405,7 +433,9 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
|
|
|
405
433
|
this.clientId, {
|
|
406
434
|
type: CallMetaType.CERTIFICATE,
|
|
407
435
|
payload: certificate,
|
|
408
|
-
},
|
|
436
|
+
},
|
|
437
|
+
this.userId
|
|
438
|
+
);
|
|
409
439
|
|
|
410
440
|
this.reports.addCallMetaReport(callMetaReport);
|
|
411
441
|
}
|
|
@@ -606,7 +636,7 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
|
|
|
606
636
|
continue;
|
|
607
637
|
}
|
|
608
638
|
|
|
609
|
-
peerConnection.ICE.addLocalCandidate(iceLocalCandidate);
|
|
639
|
+
peerConnection.ICE.addLocalCandidate(iceLocalCandidate, sample.timestamp);
|
|
610
640
|
}
|
|
611
641
|
|
|
612
642
|
for (const iceRemoteCandidate of sample.iceRemoteCandidates ?? []) {
|
|
@@ -621,7 +651,7 @@ export class ObservedClient<AppData extends Record<string, unknown> = Record<str
|
|
|
621
651
|
continue;
|
|
622
652
|
}
|
|
623
653
|
|
|
624
|
-
peerConnection.ICE.addRemoteCandidate(iceRemoteCandidate);
|
|
654
|
+
peerConnection.ICE.addRemoteCandidate(iceRemoteCandidate, sample.timestamp);
|
|
625
655
|
}
|
|
626
656
|
|
|
627
657
|
for (const candidatePair of sample.iceCandidatePairs ?? []) {
|
package/src/ObservedICE.ts
CHANGED
|
@@ -100,7 +100,7 @@ export class ObservedICE extends EventEmitter {
|
|
|
100
100
|
this.emit('close');
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
public addLocalCandidate(candidate: IceLocalCandidate) {
|
|
103
|
+
public addLocalCandidate(candidate: IceLocalCandidate, sampleTimestamp?: number) {
|
|
104
104
|
if (!candidate.id) return;
|
|
105
105
|
|
|
106
106
|
const newCandidate = !this._localCandidates.has(candidate.id);
|
|
@@ -116,7 +116,11 @@ export class ObservedICE extends EventEmitter {
|
|
|
116
116
|
this.peerConnection.client.clientId, {
|
|
117
117
|
type: CallMetaType.ICE_LOCAL_CANDIDATE,
|
|
118
118
|
payload: candidate,
|
|
119
|
-
},
|
|
119
|
+
},
|
|
120
|
+
this.peerConnection.client.userId,
|
|
121
|
+
this.peerConnection.peerConnectionId,
|
|
122
|
+
sampleTimestamp,
|
|
123
|
+
);
|
|
120
124
|
|
|
121
125
|
this.reports.addCallMetaReport(callMetaReport);
|
|
122
126
|
|
|
@@ -124,7 +128,7 @@ export class ObservedICE extends EventEmitter {
|
|
|
124
128
|
}
|
|
125
129
|
}
|
|
126
130
|
|
|
127
|
-
public addRemoteCandidate(candidate: IceRemoteCandidate) {
|
|
131
|
+
public addRemoteCandidate(candidate: IceRemoteCandidate, sampleTimestamp?: number) {
|
|
128
132
|
if (!candidate.id) return;
|
|
129
133
|
|
|
130
134
|
const newCandidate = !this._remoteCandidates.has(candidate.id);
|
|
@@ -140,7 +144,11 @@ export class ObservedICE extends EventEmitter {
|
|
|
140
144
|
this.peerConnection.client.clientId, {
|
|
141
145
|
type: CallMetaType.ICE_REMOTE_CANDIDATE,
|
|
142
146
|
payload: candidate,
|
|
143
|
-
},
|
|
147
|
+
},
|
|
148
|
+
this.peerConnection.client.userId,
|
|
149
|
+
this.peerConnection.peerConnectionId,
|
|
150
|
+
sampleTimestamp
|
|
151
|
+
);
|
|
144
152
|
|
|
145
153
|
this.reports.addCallMetaReport(callMetaReport);
|
|
146
154
|
|
package/src/ObservedSfu.ts
CHANGED
|
@@ -105,6 +105,8 @@ export class ObservedSfu<AppData extends Record<string, unknown> = Record<string
|
|
|
105
105
|
this._timeZoneOffsetInHours = sample.timeZoneOffsetInHours;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
+
this._marker = sample.marker;
|
|
109
|
+
|
|
108
110
|
const now = Date.now();
|
|
109
111
|
const elapsedTimeInMs = now - this._updated;
|
|
110
112
|
|
package/src/index.ts
CHANGED
|
@@ -52,6 +52,7 @@ export type {
|
|
|
52
52
|
SFUTransportReport,
|
|
53
53
|
} from '@observertc/report-schemas-js';
|
|
54
54
|
|
|
55
|
+
export type { ObservedCall, ObservedCallModel } from './ObservedCall';
|
|
55
56
|
export type { ObservedClient, ObservedClientModel } from './ObservedClient';
|
|
56
57
|
export type { ObservedPeerConnection, ObservedPeerConnectionModel, ObservedPeerConnectionEvents } from './ObservedPeerConnection';
|
|
57
58
|
export type { ObservedInboundTrack, ObservedInboundTrackModel, ObservedInboundTrackEvents } from './ObservedInboundTrack';
|
|
@@ -4,6 +4,10 @@ import { ObservedICEEvents } from '../ObservedICE';
|
|
|
4
4
|
|
|
5
5
|
export type TurnUsageMonitorEvents = {
|
|
6
6
|
close: [],
|
|
7
|
+
'newturnip': [string],
|
|
8
|
+
update: [TurnUsage],
|
|
9
|
+
addpeerconnection: [ObservedPeerConnection],
|
|
10
|
+
removepeerconnection: [ObservedPeerConnection],
|
|
7
11
|
}
|
|
8
12
|
|
|
9
13
|
export type TurnUsage = {
|
|
@@ -24,6 +28,7 @@ export declare interface TurnUsageMonitor {
|
|
|
24
28
|
on<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
|
|
25
29
|
off<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
|
|
26
30
|
once<U extends keyof TurnUsageMonitorEvents>(event: U, listener: (...args: TurnUsageMonitorEvents[U]) => void): this;
|
|
31
|
+
emit<U extends keyof TurnUsageMonitorEvents>(event: U, ...args: TurnUsageMonitorEvents[U]): boolean;
|
|
27
32
|
}
|
|
28
33
|
|
|
29
34
|
export class TurnUsageMonitor extends EventEmitter {
|
|
@@ -40,6 +45,7 @@ export class TurnUsageMonitor extends EventEmitter {
|
|
|
40
45
|
if (this._connections.has(peerConnection.peerConnectionId)) return;
|
|
41
46
|
|
|
42
47
|
const ice = peerConnection.ICE;
|
|
48
|
+
|
|
43
49
|
const onUpdate = () => {
|
|
44
50
|
const turnIp = ice?.selectedRemoteCandidate?.address;
|
|
45
51
|
|
|
@@ -53,34 +59,44 @@ export class TurnUsageMonitor extends EventEmitter {
|
|
|
53
59
|
totalBytesSent: 0,
|
|
54
60
|
totalBytesReceived: 0,
|
|
55
61
|
totalPacketsSent: 0,
|
|
56
|
-
totalPacketsReceived: 0
|
|
62
|
+
totalPacketsReceived: 0,
|
|
57
63
|
};
|
|
58
64
|
this._turnUsage.set(turnIp, usage);
|
|
65
|
+
|
|
66
|
+
this.emit('newturnip', turnIp);
|
|
59
67
|
}
|
|
60
68
|
|
|
61
69
|
usage.totalBytesSent += ice.deltaBytesSent;
|
|
62
70
|
usage.totalBytesReceived += ice.deltaBytesReceived;
|
|
63
71
|
usage.totalPacketsSent += ice.deltaPacketsSent;
|
|
64
72
|
usage.totalPacketsReceived += ice.deltaPacketsReceived;
|
|
73
|
+
|
|
74
|
+
this.emit('update', usage);
|
|
65
75
|
};
|
|
66
76
|
|
|
77
|
+
peerConnection.ICE.on('update', onUpdate);
|
|
78
|
+
|
|
67
79
|
this._connections.set(peerConnection.peerConnectionId, {
|
|
68
80
|
peerConnection,
|
|
69
81
|
onUpdate
|
|
70
82
|
});
|
|
71
83
|
|
|
72
|
-
|
|
84
|
+
this.emit('addpeerconnection', peerConnection);
|
|
73
85
|
}
|
|
74
86
|
|
|
75
87
|
public removePeerConnection(peerConnection: ObservedPeerConnection) {
|
|
76
88
|
if (this.closed) return;
|
|
77
89
|
if (!this._connections.has(peerConnection.peerConnectionId)) return;
|
|
78
|
-
|
|
90
|
+
|
|
79
91
|
const { onUpdate } = this._connections.get(peerConnection.peerConnectionId) ?? {};
|
|
80
92
|
|
|
81
93
|
if (!onUpdate) return;
|
|
82
94
|
|
|
83
95
|
peerConnection.ICE.off('update', onUpdate);
|
|
96
|
+
|
|
97
|
+
this._connections.delete(peerConnection.peerConnectionId);
|
|
98
|
+
|
|
99
|
+
this.emit('removepeerconnection', peerConnection);
|
|
84
100
|
}
|
|
85
101
|
|
|
86
102
|
public get turnIps() {
|