@observertc/observer-js 0.9.10-beta → 0.9.12-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/Evaluator.d.ts +2 -0
- package/lib/Evaluator.d.ts.map +1 -1
- package/lib/Evaluator.js +2 -4
- package/lib/Observer.d.ts.map +1 -1
- package/lib/Observer.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 +2 -1
- package/lib/common/utils.d.ts +1 -0
- package/lib/common/utils.d.ts.map +1 -1
- package/lib/common/utils.js +12 -0
- package/lib/middlewares/DeleteOutdatedCallEntries.d.ts +6 -0
- package/lib/middlewares/DeleteOutdatedCallEntries.d.ts.map +1 -0
- package/lib/middlewares/DeleteOutdatedCallEntries.js +112 -0
- package/lib/middlewares/DeleteOutdatedSfuEntries.d.ts +6 -0
- package/lib/middlewares/DeleteOutdatedSfuEntries.d.ts.map +1 -0
- package/lib/middlewares/DeleteOutdatedSfuEntries.js +118 -0
- package/lib/middlewares/TransactionContext.d.ts.map +1 -1
- package/lib/middlewares/TransactionContext.js +42 -26
- package/lib/middlewares/TransactoinProcessor.d.ts +1 -1
- package/lib/middlewares/TransactoinProcessor.d.ts.map +1 -1
- package/lib/middlewares/TransactoinProcessor.js +4 -2
- package/lib/middlewares/VisitObservedCallsMiddleware.d.ts +2 -1
- package/lib/middlewares/VisitObservedCallsMiddleware.d.ts.map +1 -1
- package/lib/middlewares/VisitObservedCallsMiddleware.js +20 -90
- package/lib/middlewares/visitors/visitClient.d.ts.map +1 -1
- package/lib/middlewares/visitors/visitClient.js +26 -17
- package/lib/middlewares/visitors/visitInboundAudioTrack.d.ts +1 -1
- package/lib/middlewares/visitors/visitInboundAudioTrack.d.ts.map +1 -1
- package/lib/middlewares/visitors/visitInboundAudioTrack.js +10 -2
- package/lib/middlewares/visitors/visitInboundVideoTrack.d.ts +1 -1
- package/lib/middlewares/visitors/visitInboundVideoTrack.d.ts.map +1 -1
- package/lib/middlewares/visitors/visitInboundVideoTrack.js +10 -2
- package/lib/middlewares/visitors/visitOutboundAudioTrack.d.ts.map +1 -1
- package/lib/middlewares/visitors/visitOutboundAudioTrack.js +5 -1
- package/lib/middlewares/visitors/visitOutboundVideoTarck.d.ts.map +1 -1
- package/lib/middlewares/visitors/visitOutboundVideoTarck.js +5 -1
- package/lib/middlewares/visitors/visitPeerConnection.d.ts.map +1 -1
- package/lib/middlewares/visitors/visitPeerConnection.js +15 -0
- package/lib/models/Models.d.ts +26 -22
- package/lib/models/Models.d.ts.map +1 -1
- package/lib/models/Models.js +16 -11
- package/lib/processes/findRemoteMatches.d.ts +9 -0
- package/lib/processes/findRemoteMatches.d.ts.map +1 -0
- package/lib/processes/findRemoteMatches.js +83 -0
- package/lib/processes/joinClientProcess.d.ts.map +1 -1
- package/lib/processes/joinClientProcess.js +1 -2
- package/lib/samples/ObservedCalls.d.ts.map +1 -1
- package/lib/samples/ObservedCalls.js +16 -7
- package/lib/samples/ObservedInboundAudioTrack.d.ts +2 -0
- package/lib/samples/ObservedInboundAudioTrack.d.ts.map +1 -1
- package/lib/samples/ObservedInboundVideoTrack.d.ts +2 -0
- package/lib/samples/ObservedInboundVideoTrack.d.ts.map +1 -1
- package/lib/samples/ObservedOutboundAudioTrack.d.ts +1 -0
- package/lib/samples/ObservedOutboundAudioTrack.d.ts.map +1 -1
- package/lib/samples/ObservedOutboundVideoTrack.d.ts +1 -0
- package/lib/samples/ObservedOutboundVideoTrack.d.ts.map +1 -1
- package/lib/samples/ObservedPeerConnection.d.ts.map +1 -1
- package/lib/samples/ObservedPeerConnection.js +15 -8
- package/lib/samples/ObservedSfus.d.ts.map +1 -1
- package/lib/samples/ObservedSfus.js +10 -4
- package/lib/storages/ObserverStorage.d.ts +4 -0
- package/lib/storages/ObserverStorage.d.ts.map +1 -1
- package/lib/storages/SimpleStorage.d.ts +1 -0
- package/lib/storages/SimpleStorage.d.ts.map +1 -1
- package/lib/storages/SimpleStorage.js +3 -0
- package/package.json +1 -1
- package/src/Evaluator.ts +7 -6
- package/src/Observer.ts +1 -0
- package/src/common/callMetaReports.ts +2 -0
- package/src/common/utils.ts +11 -0
- package/src/middlewares/DeleteOutdatedCallEntries.ts +151 -0
- package/src/middlewares/DeleteOutdatedSfuEntries.ts +159 -0
- package/src/middlewares/TransactionContext.ts +61 -29
- package/src/middlewares/TransactoinProcessor.ts +8 -2
- package/src/middlewares/VisitObservedCallsMiddleware.ts +42 -128
- package/src/middlewares/visitors/visitClient.ts +34 -18
- package/src/middlewares/visitors/visitInboundAudioTrack.ts +15 -5
- package/src/middlewares/visitors/visitInboundVideoTrack.ts +14 -2
- package/src/middlewares/visitors/visitOutboundAudioTrack.ts +6 -2
- package/src/middlewares/visitors/visitOutboundVideoTarck.ts +5 -1
- package/src/middlewares/visitors/visitPeerConnection.ts +17 -1
- package/src/models/Models.ts +40 -34
- package/src/processes/findRemoteMatches.ts +94 -0
- package/src/processes/joinClientProcess.ts +1 -3
- package/src/samples/ObservedCalls.ts +17 -7
- package/src/samples/ObservedInboundAudioTrack.ts +2 -0
- package/src/samples/ObservedInboundVideoTrack.ts +3 -1
- package/src/samples/ObservedOutboundAudioTrack.ts +2 -1
- package/src/samples/ObservedOutboundVideoTrack.ts +2 -1
- package/src/samples/ObservedPeerConnection.ts +29 -8
- package/src/samples/ObservedSfus.ts +10 -5
- package/src/storages/ObserverStorage.ts +5 -0
- package/src/storages/SimpleStorage.ts +4 -0
package/lib/Evaluator.d.ts
CHANGED
|
@@ -9,6 +9,8 @@ export type EvaluatorEvents = {
|
|
|
9
9
|
};
|
|
10
10
|
export type EvaluatorConfig = {
|
|
11
11
|
fetchSamples: boolean;
|
|
12
|
+
maxIdleTimeInMs?: number;
|
|
13
|
+
findRemoteMatches?: boolean;
|
|
12
14
|
};
|
|
13
15
|
export type EvaluatorProcess = (evaluatorContext: EvaluatorContext) => Promise<void>;
|
|
14
16
|
export declare class Evaluator {
|
package/lib/Evaluator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Evaluator.d.ts","sourceRoot":"","sources":["../src/Evaluator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAuB,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAW7D,MAAM,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,YAAY,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Evaluator.d.ts","sourceRoot":"","sources":["../src/Evaluator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAuB,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAW7D,MAAM,MAAM,eAAe,GAAG;IAC7B,KAAK,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAErF,qBAAa,SAAS;aAeJ,MAAM,EAAE,eAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAjBnC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,YAAY,CAAoC;IAExD,OAAO,CAAC,iBAAiB,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAsB;IAEtC,OAAO,CAAC,mBAAmB,CAA6D;IACxF,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,qBAAqB,CAAgC;IAC7D,OAAO,CAAC,gBAAgB,CAA8B;gBAKrC,MAAM,EAAE,eAAe,EACtB,cAAc,EAAE,SAAS,EACzB,gBAAgB,EAAE,eAAe,EACjC,iBAAiB,EAAE,gBAAgB;IAe9C,UAAU,CAAC,OAAO,EAAE,gBAAgB;IASpC,aAAa,CAAC,OAAO,EAAE,gBAAgB;IASvC,qBAAqB,CAAC,YAAY,EAAE,0BAA0B;IAQ9D,sBAAsB,CAAC,YAAY,EAAE,0BAA0B;IAO/D,EAAE,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAKjG,GAAG,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAKzG,OAAO,CAAC,KAAK;IAIN,kBAAkB,CAAC,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,GAAG,IAAI;YAoD7D,KAAK;IAuBnB,IAAW,cAAc,IAAI,MAAM,CAElC;YAEa,QAAQ;CAqBtB"}
|
package/lib/Evaluator.js
CHANGED
|
@@ -11,6 +11,7 @@ const events_1 = require("events");
|
|
|
11
11
|
const logger = (0, logger_1.createLogger)('Evaluator');
|
|
12
12
|
class Evaluator {
|
|
13
13
|
constructor(config, _callSemaphore, _storageProvider, _reportsCollector) {
|
|
14
|
+
var _a;
|
|
14
15
|
this.config = config;
|
|
15
16
|
this._callSemaphore = _callSemaphore;
|
|
16
17
|
this._storageProvider = _storageProvider;
|
|
@@ -21,7 +22,7 @@ class Evaluator {
|
|
|
21
22
|
this._emitter = new events_1.EventEmitter();
|
|
22
23
|
this._evaluatorProcesses = new Map();
|
|
23
24
|
this._callProcessor = (0, CallProcessor_1.createCallProcessor)(_storageProvider, _reportsCollector);
|
|
24
|
-
this._transactionProcessor = (0, TransactoinProcessor_1.createTransactionProcessor)(_storageProvider, _reportsCollector, this.config.fetchSamples);
|
|
25
|
+
this._transactionProcessor = (0, TransactoinProcessor_1.createTransactionProcessor)(_storageProvider, _reportsCollector, this.config.fetchSamples, BigInt((_a = this.config.maxIdleTimeInMs) !== null && _a !== void 0 ? _a : 10000), this.config.findRemoteMatches);
|
|
25
26
|
this._customProcessor = (0, Processor_1.createProcessor)();
|
|
26
27
|
}
|
|
27
28
|
addProcess(process) {
|
|
@@ -110,9 +111,6 @@ class Evaluator {
|
|
|
110
111
|
})
|
|
111
112
|
.catch((err) => {
|
|
112
113
|
logger.warn(`Error occurred while evaluating`, err);
|
|
113
|
-
})
|
|
114
|
-
.finally(() => {
|
|
115
|
-
this._emit('ready', undefined);
|
|
116
114
|
});
|
|
117
115
|
}
|
|
118
116
|
async _eval(callOperationsContext, evaluatorContext) {
|
package/lib/Observer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Observer.d.ts","sourceRoot":"","sources":["../src/Observer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,UAAU,EAAY,MAAM,sBAAsB,CAAC;AACzG,OAAO,EAAW,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAA+B,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAa,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAiC,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAgB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAIzF,MAAM,MAAM,cAAc,GAAG;IAC5B;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,eAAe,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAE/B,QAAQ,EAAE,QAAQ,CAAC;CACnB,CAAC;AAEF,qBAAa,QAAQ;
|
|
1
|
+
{"version":3,"file":"Observer.d.ts","sourceRoot":"","sources":["../src/Observer.ts"],"names":[],"mappings":"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"}
|
package/lib/Observer.js
CHANGED
|
@@ -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, timestamp?: number): CallMetaReport;
|
|
62
|
+
export declare function createCallMetaReport(serviceId: string, mediaUnitId: string, roomId: string, callId: string, clientId: string, reportType: CallMetaReportType, userId?: 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;AAEvC,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;IACA,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;CACtB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;IACzB,OAAO,EAAE,eAAe,CAAC;CAC1B,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,mBAAmB,CAAC;IACvC,OAAO,EAAE,iBAAiB,CAAC;CAC5B,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,oBAAoB,CAAC;IACxC,OAAO,EAAE,kBAAkB,CAAC;CAC7B,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC;IAChC,OAAO,EAAE,WAAW,CAAC;CACtB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC;IAChC,OAAO,EAAE,eAAe,CAAC;CAC1B,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,eAAe,CAAC;CAC1B,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;IAC5B,OAAO,EAAE,QAAQ,CAAC;CACnB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB,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,SAAS,CAAC,EAAE,MAAM,
|
|
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;AAEvC,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;IACA,IAAI,EAAE,YAAY,CAAC,WAAW,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;CACtB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;IACzB,OAAO,EAAE,eAAe,CAAC;CAC1B,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,mBAAmB,CAAC;IACvC,OAAO,EAAE,iBAAiB,CAAC;CAC5B,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,oBAAoB,CAAC;IACxC,OAAO,EAAE,kBAAkB,CAAC;CAC7B,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC;IAChC,OAAO,EAAE,WAAW,CAAC;CACtB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,YAAY,CAAC;IAChC,OAAO,EAAE,eAAe,CAAC;CAC1B,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,gBAAgB,CAAC;IACpC,OAAO,EAAE,eAAe,CAAC;CAC1B,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC;IAC5B,OAAO,EAAE,QAAQ,CAAC;CACnB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG;IACF,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB,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,kBAclB"}
|
|
@@ -18,7 +18,7 @@ var CallMetaType;
|
|
|
18
18
|
CallMetaType["PLATFORM"] = "PLATFORM";
|
|
19
19
|
CallMetaType["BROWSER"] = "BROWSER";
|
|
20
20
|
})(CallMetaType = exports.CallMetaType || (exports.CallMetaType = {}));
|
|
21
|
-
function createCallMetaReport(serviceId, mediaUnitId, roomId, callId, clientId, reportType, timestamp) {
|
|
21
|
+
function createCallMetaReport(serviceId, mediaUnitId, roomId, callId, clientId, reportType, userId, timestamp) {
|
|
22
22
|
const report = {
|
|
23
23
|
type: reportType.type,
|
|
24
24
|
serviceId,
|
|
@@ -26,6 +26,7 @@ function createCallMetaReport(serviceId, mediaUnitId, roomId, callId, clientId,
|
|
|
26
26
|
roomId,
|
|
27
27
|
callId,
|
|
28
28
|
clientId,
|
|
29
|
+
userId,
|
|
29
30
|
payload: JSON.stringify(reportType.payload),
|
|
30
31
|
timestamp: timestamp !== null && timestamp !== void 0 ? timestamp : Date.now(),
|
|
31
32
|
};
|
package/lib/common/utils.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ export type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
|
2
2
|
export type Writable<T> = T extends object ? {
|
|
3
3
|
-readonly [K in keyof T]: Writable<T[K]>;
|
|
4
4
|
} : T;
|
|
5
|
+
export declare function iteratorConverter<T>(generator: Generator<T, void, undefined>): IterableIterator<T>;
|
|
5
6
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/E,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/common/utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE/E,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,CAAC,CAAC;AAE9F,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CASlG"}
|
package/lib/common/utils.js
CHANGED
|
@@ -1,2 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.iteratorConverter = void 0;
|
|
4
|
+
function iteratorConverter(generator) {
|
|
5
|
+
return {
|
|
6
|
+
[Symbol.iterator]() {
|
|
7
|
+
return this;
|
|
8
|
+
},
|
|
9
|
+
next() {
|
|
10
|
+
return generator.next();
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
exports.iteratorConverter = iteratorConverter;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Middleware } from './Middleware';
|
|
2
|
+
import { TransactionContext } from './TransactionContext';
|
|
3
|
+
import { StorageProvider } from '..';
|
|
4
|
+
export declare const logger: import("../common/logger").WrappedLogger;
|
|
5
|
+
export declare function createDeleteOutdatedCallEntries(storages: StorageProvider, maxIdleTimeInMs: BigInt): Middleware<TransactionContext>;
|
|
6
|
+
//# sourceMappingURL=DeleteOutdatedCallEntries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeleteOutdatedCallEntries.d.ts","sourceRoot":"","sources":["../../src/middlewares/DeleteOutdatedCallEntries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAErC,eAAO,MAAM,MAAM,0CAA4C,CAAC;AAEhE,wBAAgB,+BAA+B,CAC9C,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,MAAM,GACrB,UAAU,CAAC,kBAAkB,CAAC,CA4IhC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createDeleteOutdatedCallEntries = exports.logger = void 0;
|
|
4
|
+
const logger_1 = require("../common/logger");
|
|
5
|
+
exports.logger = (0, logger_1.createLogger)('DeleteOutdatedCallEntries');
|
|
6
|
+
function createDeleteOutdatedCallEntries(storages, maxIdleTimeInMs) {
|
|
7
|
+
const process = async (transaction) => {
|
|
8
|
+
const { clients, evaluatorContext, updatedPeerConnections, deletedPeerConnections, updatedInboundAudioTracks, deletedInboundAudioTracks, updatedInboundVideoTracks, deletedInboundVideoTracks, updatedOutboundAudioTracks, deletedOutboundAudioTracks, updatedOutboundVideoTracks, deletedOutboundVideoTracks, } = transaction;
|
|
9
|
+
const now = BigInt(Date.now());
|
|
10
|
+
const deletedCallIds = new Set(evaluatorContext.endedCalls.map(c => c.callId).filter(id => !!id));
|
|
11
|
+
const deletedClientIds = new Set(evaluatorContext.detachedClients.map(c => c.clientId).filter(id => !!id));
|
|
12
|
+
for (const [peerConnectionId, peerConnection] of storages.peerConnectionStorage.localEntries()) {
|
|
13
|
+
if (updatedPeerConnections.has(peerConnectionId)) {
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
const { touched, clientId, callId } = peerConnection;
|
|
17
|
+
if (touched && now - touched < maxIdleTimeInMs) {
|
|
18
|
+
if (!deletedCallIds.has(callId !== null && callId !== void 0 ? callId : "not exists") &&
|
|
19
|
+
!deletedClientIds.has(clientId !== null && clientId !== void 0 ? clientId : "not exists")) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
deletedPeerConnections.add(peerConnectionId);
|
|
24
|
+
if (clientId) {
|
|
25
|
+
let storedClient = clients.get(clientId);
|
|
26
|
+
if (storedClient) {
|
|
27
|
+
storedClient.peerConnectionIds = storedClient.peerConnectionIds.filter((pcId) => pcId !== peerConnectionId);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
storedClient = await storages.clientStorage.get(clientId);
|
|
31
|
+
if (storedClient) {
|
|
32
|
+
storedClient.peerConnectionIds = storedClient.peerConnectionIds.filter((pcId) => pcId !== peerConnectionId);
|
|
33
|
+
await storages.clientStorage.set(clientId, storedClient);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
for (const [trackId, inboundTrack] of storages.inboundTrackStorage.localEntries()) {
|
|
39
|
+
if (updatedInboundAudioTracks.has(trackId) || updatedInboundVideoTracks.has(trackId)) {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const { touched, clientId, callId, peerConnectionId } = inboundTrack;
|
|
43
|
+
if (touched && now - touched < maxIdleTimeInMs) {
|
|
44
|
+
if (!deletedCallIds.has(callId !== null && callId !== void 0 ? callId : "not exists") &&
|
|
45
|
+
!deletedClientIds.has(clientId !== null && clientId !== void 0 ? clientId : "not exists") &&
|
|
46
|
+
!deletedPeerConnections.has(peerConnectionId !== null && peerConnectionId !== void 0 ? peerConnectionId : "not exists")) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
switch (inboundTrack.kind) {
|
|
51
|
+
case 'audio':
|
|
52
|
+
deletedInboundAudioTracks.add(trackId);
|
|
53
|
+
break;
|
|
54
|
+
case 'video':
|
|
55
|
+
deletedInboundVideoTracks.add(trackId);
|
|
56
|
+
}
|
|
57
|
+
if (peerConnectionId) {
|
|
58
|
+
let storedPeerConnection = updatedPeerConnections.get(peerConnectionId);
|
|
59
|
+
if (!storedPeerConnection) {
|
|
60
|
+
storedPeerConnection = await storages.peerConnectionStorage.get(peerConnectionId);
|
|
61
|
+
if (storedPeerConnection) {
|
|
62
|
+
updatedPeerConnections.set(peerConnectionId, storedPeerConnection);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (storedPeerConnection) {
|
|
66
|
+
storedPeerConnection.inboundTrackIds = storedPeerConnection.inboundTrackIds.filter((tId) => tId !== trackId);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// console.warn("auodiaussdoi", updatedOutboundAudioTracks, updatedOutboundVideoTracks);
|
|
71
|
+
for (const [trackId, outboundTrack] of storages.outboundTrackStorage.localEntries()) {
|
|
72
|
+
if (updatedOutboundAudioTracks.has(trackId) || updatedOutboundVideoTracks.has(trackId)) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const { touched, clientId, callId, peerConnectionId } = outboundTrack;
|
|
76
|
+
// console.warn("deprecated outb tracks", outboundTrack, now, touched, maxIdleTimeInMs, touched && now - touched < maxIdleTimeInMs, callId)
|
|
77
|
+
if (touched && now - touched < maxIdleTimeInMs) {
|
|
78
|
+
if (!deletedCallIds.has(callId !== null && callId !== void 0 ? callId : "not exists") &&
|
|
79
|
+
!deletedClientIds.has(clientId !== null && clientId !== void 0 ? clientId : "not exists") &&
|
|
80
|
+
!deletedPeerConnections.has(peerConnectionId !== null && peerConnectionId !== void 0 ? peerConnectionId : "not exists")) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
switch (outboundTrack.kind) {
|
|
85
|
+
case 'audio':
|
|
86
|
+
deletedOutboundAudioTracks.add(trackId);
|
|
87
|
+
break;
|
|
88
|
+
case 'video':
|
|
89
|
+
deletedOutboundVideoTracks.add(trackId);
|
|
90
|
+
}
|
|
91
|
+
if (peerConnectionId) {
|
|
92
|
+
let storedPeerConnection = updatedPeerConnections.get(peerConnectionId);
|
|
93
|
+
if (!storedPeerConnection) {
|
|
94
|
+
storedPeerConnection = await storages.peerConnectionStorage.get(peerConnectionId);
|
|
95
|
+
if (storedPeerConnection) {
|
|
96
|
+
updatedPeerConnections.set(peerConnectionId, storedPeerConnection);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (storedPeerConnection) {
|
|
100
|
+
storedPeerConnection.outboundTrackIds = storedPeerConnection.outboundTrackIds.filter((tId) => tId !== trackId);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
const result = async (context, next) => {
|
|
106
|
+
await process(context);
|
|
107
|
+
if (next)
|
|
108
|
+
await next(context);
|
|
109
|
+
};
|
|
110
|
+
return result;
|
|
111
|
+
}
|
|
112
|
+
exports.createDeleteOutdatedCallEntries = createDeleteOutdatedCallEntries;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Middleware } from './Middleware';
|
|
2
|
+
import { TransactionContext } from './TransactionContext';
|
|
3
|
+
import { StorageProvider } from '..';
|
|
4
|
+
export declare const logger: import("../common/logger").WrappedLogger;
|
|
5
|
+
export declare function createDeleteOutdatedSfuEntries(storages: StorageProvider, maxIdleTimeInMs: BigInt): Middleware<TransactionContext>;
|
|
6
|
+
//# sourceMappingURL=DeleteOutdatedSfuEntries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeleteOutdatedSfuEntries.d.ts","sourceRoot":"","sources":["../../src/middlewares/DeleteOutdatedSfuEntries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAErC,eAAO,MAAM,MAAM,0CAA2C,CAAC;AAE/D,wBAAgB,8BAA8B,CAC7C,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,MAAM,GACrB,UAAU,CAAC,kBAAkB,CAAC,CAoJhC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createDeleteOutdatedSfuEntries = exports.logger = void 0;
|
|
4
|
+
const logger_1 = require("../common/logger");
|
|
5
|
+
exports.logger = (0, logger_1.createLogger)('DeleteOutdatedSfuEntries');
|
|
6
|
+
function createDeleteOutdatedSfuEntries(storages, maxIdleTimeInMs) {
|
|
7
|
+
const process = async (transaction) => {
|
|
8
|
+
const { updatedSfus, deletedSfus, updatedSfuTransports, deletedSfuTransports, updatedSfuInboundRtpPads, deletedSfuInboundRtpPads, updatedSfuOutboundRtpPads, deletedSfuOutboundRtpPads, updatedSfuSctpChannels, deletedSfuSctpChannels } = transaction;
|
|
9
|
+
const now = BigInt(Date.now());
|
|
10
|
+
for (const [sfuTransportId, sfuTransport] of storages.sfuTransportStorage.localEntries()) {
|
|
11
|
+
if (updatedSfuTransports.has(sfuTransportId)) {
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
const { touched, sfuId } = sfuTransport;
|
|
15
|
+
if (touched && now - touched < maxIdleTimeInMs) {
|
|
16
|
+
if (!deletedSfus.has(sfuId !== null && sfuId !== void 0 ? sfuId : "not exists")) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
deletedSfuTransports.add(sfuTransportId);
|
|
21
|
+
if (sfuId) {
|
|
22
|
+
let storedSfu = updatedSfus.get(sfuId);
|
|
23
|
+
if (storedSfu) {
|
|
24
|
+
storedSfu.sfuTransportIds = storedSfu.sfuTransportIds.filter((transportId) => transportId !== sfuTransportId);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
storedSfu = await storages.sfuStorage.get(sfuId);
|
|
28
|
+
if (storedSfu) {
|
|
29
|
+
storedSfu.sfuTransportIds = storedSfu.sfuTransportIds.filter((transportId) => transportId !== sfuTransportId);
|
|
30
|
+
await storages.sfuStorage.set(sfuId, storedSfu);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
for (const [sfuInboundPadId, sfuInboundPad] of storages.sfuInboundRtpPadStorage.localEntries()) {
|
|
36
|
+
if (updatedSfuInboundRtpPads.has(sfuInboundPadId)) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const { touched, sfuTransportId, sfuId } = sfuInboundPad;
|
|
40
|
+
if (touched && now - touched < maxIdleTimeInMs) {
|
|
41
|
+
if (!deletedSfuTransports.has(sfuTransportId !== null && sfuTransportId !== void 0 ? sfuTransportId : "not exists") &&
|
|
42
|
+
!deletedSfus.has(sfuId !== null && sfuId !== void 0 ? sfuId : "not exists")) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
deletedSfuInboundRtpPads.add(sfuInboundPadId);
|
|
47
|
+
if (sfuTransportId) {
|
|
48
|
+
let storedSfuTransport = updatedSfuTransports.get(sfuTransportId);
|
|
49
|
+
if (!storedSfuTransport) {
|
|
50
|
+
storedSfuTransport = await storages.sfuTransportStorage.get(sfuTransportId);
|
|
51
|
+
if (storedSfuTransport) {
|
|
52
|
+
updatedSfuTransports.set(sfuTransportId, storedSfuTransport);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (storedSfuTransport) {
|
|
56
|
+
storedSfuTransport.inboundRtpPadIds = storedSfuTransport.inboundRtpPadIds.filter((tId) => tId !== sfuInboundPadId);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
for (const [sfuOutboundPadId, sfuOutboundPad] of storages.sfuOutboundRtpPadStorage.localEntries()) {
|
|
61
|
+
if (updatedSfuOutboundRtpPads.has(sfuOutboundPadId)) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const { touched, sfuTransportId, sfuId } = sfuOutboundPad;
|
|
65
|
+
if (touched && now - touched < maxIdleTimeInMs) {
|
|
66
|
+
if (!deletedSfuTransports.has(sfuTransportId !== null && sfuTransportId !== void 0 ? sfuTransportId : "not exists") &&
|
|
67
|
+
!deletedSfus.has(sfuId !== null && sfuId !== void 0 ? sfuId : "not exists")) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
deletedSfuOutboundRtpPads.add(sfuOutboundPadId);
|
|
72
|
+
if (sfuTransportId) {
|
|
73
|
+
let storedSfuTransport = updatedSfuTransports.get(sfuTransportId);
|
|
74
|
+
if (!storedSfuTransport) {
|
|
75
|
+
storedSfuTransport = await storages.sfuTransportStorage.get(sfuTransportId);
|
|
76
|
+
if (storedSfuTransport) {
|
|
77
|
+
updatedSfuTransports.set(sfuTransportId, storedSfuTransport);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (storedSfuTransport) {
|
|
81
|
+
storedSfuTransport.outboundRtpPadIds = storedSfuTransport.outboundRtpPadIds.filter((tId) => tId !== sfuOutboundPadId);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
for (const [sctpChannelId, sctpChannel] of storages.sfuSctpChannelStorage.localEntries()) {
|
|
86
|
+
if (updatedSfuSctpChannels.has(sctpChannelId)) {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
const { touched, sfuTransportId, sfuId } = sctpChannel;
|
|
90
|
+
if (touched && now - touched < maxIdleTimeInMs) {
|
|
91
|
+
if (!deletedSfuTransports.has(sfuTransportId !== null && sfuTransportId !== void 0 ? sfuTransportId : "not exists") &&
|
|
92
|
+
!deletedSfus.has(sfuId !== null && sfuId !== void 0 ? sfuId : "not exists")) {
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
deletedSfuSctpChannels.add(sctpChannelId);
|
|
97
|
+
if (sfuTransportId) {
|
|
98
|
+
let storedSfuTransport = updatedSfuTransports.get(sfuTransportId);
|
|
99
|
+
if (!storedSfuTransport) {
|
|
100
|
+
storedSfuTransport = await storages.sfuTransportStorage.get(sfuTransportId);
|
|
101
|
+
if (storedSfuTransport) {
|
|
102
|
+
updatedSfuTransports.set(sfuTransportId, storedSfuTransport);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (storedSfuTransport) {
|
|
106
|
+
storedSfuTransport.sctpChannelIds = storedSfuTransport.sctpChannelIds.filter((tId) => tId !== sctpChannelId);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
const result = async (context, next) => {
|
|
112
|
+
await process(context);
|
|
113
|
+
if (next)
|
|
114
|
+
await next(context);
|
|
115
|
+
};
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
exports.createDeleteOutdatedSfuEntries = createDeleteOutdatedSfuEntries;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionContext.d.ts","sourceRoot":"","sources":["../../src/middlewares/TransactionContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;IAE3B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE5C,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IAC3D,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEpC,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5D,yBAAyB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEvC,0BAA0B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9D,0BAA0B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAExC,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5D,yBAAyB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEvC,0BAA0B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9D,0BAA0B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAExC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACrC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEzB,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IACvD,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAElC,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC/D,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtC,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACjE,yBAAyB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEvC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IAC3D,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAGpC,gBAAgB,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC;CACrF,CAAC;AAEF,wBAAsB,wBAAwB,CAC7C,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,GACxB,OAAO,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"TransactionContext.d.ts","sourceRoot":"","sources":["../../src/middlewares/TransactionContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;IAE3B,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE5C,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IAC3D,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEpC,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5D,yBAAyB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEvC,0BAA0B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9D,0BAA0B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAExC,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAC5D,yBAAyB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEvC,0BAA0B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAC9D,0BAA0B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAExC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACrC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEzB,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IACvD,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAElC,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC/D,wBAAwB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEtC,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACjE,yBAAyB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEvC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IAC3D,sBAAsB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAGpC,gBAAgB,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC;CACrF,CAAC;AAEF,wBAAsB,wBAAwB,CAC7C,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAwH7B"}
|
|
@@ -4,33 +4,49 @@ exports.createTransactionContext = void 0;
|
|
|
4
4
|
const uuid_1 = require("uuid");
|
|
5
5
|
async function createTransactionContext(evaluatorContext, storageProvider, observedCalls, observedSfus) {
|
|
6
6
|
const { clientStorage, peerConnectionStorage, inboundTrackStorage, outboundTrackStorage, sfuStorage, sfuTransportStorage, sfuInboundRtpPadStorage, sfuOutboundRtpPadStorage, sfuSctpChannelStorage, } = storageProvider;
|
|
7
|
-
const [clients, sfus] = await Promise.all([
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
const [[clients, peerConnections, inboundAudioTrackEntries, inboundVideoTrackEntries, outboundAudioTrackEntries, outboundVideoTrackEntries,], [sfus, sfuTransports, sfuInboundRtpPads, sfuOutboundRtpPads, sfuSctpChannels]] = await Promise.all([
|
|
8
|
+
Promise.all([
|
|
9
|
+
clientStorage.getAll(observedCalls.clientIds()),
|
|
10
|
+
peerConnectionStorage.getAll(observedCalls.peerConnectionIds()),
|
|
11
|
+
inboundTrackStorage.getAll(observedCalls.inboundAudioTrackIds()),
|
|
12
|
+
inboundTrackStorage.getAll(observedCalls.inboundVideoTrackIds()),
|
|
13
|
+
outboundTrackStorage.getAll(observedCalls.outboundAudioTrackIds()),
|
|
14
|
+
outboundTrackStorage.getAll(observedCalls.outboundVideoTrackIds()),
|
|
15
|
+
]),
|
|
16
|
+
Promise.all([
|
|
17
|
+
sfuStorage.getAll(observedSfus.sfuIds()),
|
|
18
|
+
sfuTransportStorage.getAll(observedSfus.sfuTransportIds()),
|
|
19
|
+
sfuInboundRtpPadStorage.getAll(observedCalls.peerConnectionIds()),
|
|
20
|
+
sfuOutboundRtpPadStorage.getAll(observedCalls.peerConnectionIds()),
|
|
21
|
+
sfuSctpChannelStorage.getAll(observedCalls.peerConnectionIds()),
|
|
22
|
+
])
|
|
13
23
|
]);
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
]
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
// const peerConnectionIds = Array.from(clients.values()).flatMap((client) => client.peerConnectionIds);
|
|
25
|
+
// const sfuTransportIds = Array.from(sfus.values()).flatMap((sfu) => sfu.sfuTransportIds);
|
|
26
|
+
// const [peerConnections, sfuTransports] = await Promise.all([
|
|
27
|
+
// peerConnectionStorage.getAll(peerConnectionIds),
|
|
28
|
+
// sfuTransportStorage.getAll(sfuTransportIds),
|
|
29
|
+
// ]);
|
|
30
|
+
// const peerConnectionValues = Array.from(peerConnections.values());
|
|
31
|
+
// const inboundTrackIds = peerConnectionValues.flatMap((pc) => pc.inboundTrackIds);
|
|
32
|
+
// const outboundTrackIds = peerConnectionValues.flatMap((pc) => pc.outboundTrackIds);
|
|
33
|
+
// const sfuTransportValues = Array.from(sfuTransports.values());
|
|
34
|
+
// const sfuInboundRtpPadIds = sfuTransportValues.flatMap((sfuTransport) => sfuTransport.inboundRtpPadIds);
|
|
35
|
+
// const sfuOutboundRtpPadIds = sfuTransportValues.flatMap((sfuTransport) => sfuTransport.outboundRtpPadIds);
|
|
36
|
+
// const sfuSctpChannelIds = sfuTransportValues.flatMap((sfuTransport) => sfuTransport.sctpChannelIds);
|
|
37
|
+
// const [inboundTracks, outboundTracks, sfuInboundRtpPads, sfuOutboundRtpPads, sfuSctpChannels] = await Promise.all([
|
|
38
|
+
// inboundTrackStorage.getAll(inboundTrackIds),
|
|
39
|
+
// outboundTrackStorage.getAll(outboundTrackIds),
|
|
40
|
+
// sfuInboundRtpPadStorage.getAll(sfuInboundRtpPadIds),
|
|
41
|
+
// sfuOutboundRtpPadStorage.getAll(sfuOutboundRtpPadIds),
|
|
42
|
+
// sfuSctpChannelStorage.getAll(sfuSctpChannelIds),
|
|
43
|
+
// ]);
|
|
44
|
+
// const inboundTrackEntries = Array.from(inboundTracks);
|
|
45
|
+
// const outboundTrackEntries = Array.from(outboundTracks);
|
|
46
|
+
// const inboundAudioTrackEntries = inboundTrackEntries.filter((e) => e[1].kind === 'audio');
|
|
47
|
+
// const inboundVideoTrackEntries = inboundTrackEntries.filter((e) => e[1].kind === 'video');
|
|
48
|
+
// const outboundAudioTrackEntries = outboundTrackEntries.filter((e) => e[1].kind === 'audio');
|
|
49
|
+
// const outboundVideoTrackEntries = outboundTrackEntries.filter((e) => e[1].kind === 'video');
|
|
34
50
|
const transactionContext = {
|
|
35
51
|
id: (0, uuid_1.v4)(),
|
|
36
52
|
observedCalls,
|
|
@@ -2,5 +2,5 @@ import { ReportsCollector } from '../common/ReportsCollector';
|
|
|
2
2
|
import { StorageProvider } from '../storages/StorageProvider';
|
|
3
3
|
import { Processor } from './Processor';
|
|
4
4
|
import { TransactionContext } from './TransactionContext';
|
|
5
|
-
export declare function createTransactionProcessor(storageProvider: StorageProvider, reportsCollector: ReportsCollector, fetchSamples: boolean): Processor<TransactionContext>;
|
|
5
|
+
export declare function createTransactionProcessor(storageProvider: StorageProvider, reportsCollector: ReportsCollector, fetchSamples: boolean, maxIdleTimeInMs: BigInt, findRemoteMatches?: boolean): Processor<TransactionContext>;
|
|
6
6
|
//# sourceMappingURL=TransactoinProcessor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactoinProcessor.d.ts","sourceRoot":"","sources":["../../src/middlewares/TransactoinProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"TransactoinProcessor.d.ts","sourceRoot":"","sources":["../../src/middlewares/TransactoinProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAI9D,OAAO,EAAE,SAAS,EAAmB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,wBAAgB,0BAA0B,CACzC,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,YAAY,EAAE,OAAO,EACrB,eAAe,EAAE,MAAM,EACvB,iBAAiB,CAAC,EAAE,OAAO,GACzB,SAAS,CAAC,kBAAkB,CAAC,CAW/B"}
|
|
@@ -2,13 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createTransactionProcessor = void 0;
|
|
4
4
|
const CommitTransactionMiddleware_1 = require("./CommitTransactionMiddleware");
|
|
5
|
+
const DeleteOutdatedCallEntries_1 = require("./DeleteOutdatedCallEntries");
|
|
6
|
+
const DeleteOutdatedSfuEntries_1 = require("./DeleteOutdatedSfuEntries");
|
|
5
7
|
const Processor_1 = require("./Processor");
|
|
6
8
|
const VisitObservedCallsMiddleware_1 = require("./VisitObservedCallsMiddleware");
|
|
7
9
|
const VisitObservedSfusMiddleware_1 = require("./VisitObservedSfusMiddleware");
|
|
8
|
-
function createTransactionProcessor(storageProvider, reportsCollector, fetchSamples) {
|
|
10
|
+
function createTransactionProcessor(storageProvider, reportsCollector, fetchSamples, maxIdleTimeInMs, findRemoteMatches) {
|
|
9
11
|
return (0, Processor_1.createProcessor)(
|
|
10
12
|
// all of these middlewares must execute sequentially!
|
|
11
|
-
(0, VisitObservedCallsMiddleware_1.createVisitObservedCallsMiddleware)(reportsCollector, fetchSamples), (0, VisitObservedSfusMiddleware_1.createVisitObservedSfusMiddleware)(reportsCollector, fetchSamples),
|
|
13
|
+
(0, VisitObservedCallsMiddleware_1.createVisitObservedCallsMiddleware)(storageProvider, reportsCollector, fetchSamples, findRemoteMatches), (0, VisitObservedSfusMiddleware_1.createVisitObservedSfusMiddleware)(reportsCollector, fetchSamples), (0, DeleteOutdatedCallEntries_1.createDeleteOutdatedCallEntries)(storageProvider, maxIdleTimeInMs), (0, DeleteOutdatedSfuEntries_1.createDeleteOutdatedSfuEntries)(storageProvider, maxIdleTimeInMs),
|
|
12
14
|
// must be the last one!
|
|
13
15
|
(0, CommitTransactionMiddleware_1.createCommitTransactionMiddleware)(storageProvider, reportsCollector));
|
|
14
16
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Middleware } from './Middleware';
|
|
2
2
|
import { TransactionContext } from './TransactionContext';
|
|
3
3
|
import { ReportsCollector } from '../common/ReportsCollector';
|
|
4
|
+
import { StorageProvider } from '../storages/StorageProvider';
|
|
4
5
|
export declare const logger: import("../common/logger").WrappedLogger;
|
|
5
|
-
export declare function createVisitObservedCallsMiddleware(reports: ReportsCollector, fetchSamples: boolean): Middleware<TransactionContext>;
|
|
6
|
+
export declare function createVisitObservedCallsMiddleware(storages: StorageProvider, reports: ReportsCollector, fetchSamples: boolean, findRemoteMatches?: boolean): Middleware<TransactionContext>;
|
|
6
7
|
//# sourceMappingURL=VisitObservedCallsMiddleware.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisitObservedCallsMiddleware.d.ts","sourceRoot":"","sources":["../../src/middlewares/VisitObservedCallsMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAS9D,eAAO,MAAM,MAAM,0CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"VisitObservedCallsMiddleware.d.ts","sourceRoot":"","sources":["../../src/middlewares/VisitObservedCallsMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAS9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,eAAO,MAAM,MAAM,0CAA+C,CAAC;AAInE,wBAAgB,kCAAkC,CACjD,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,gBAAgB,EACzB,YAAY,EAAE,OAAO,EACrB,iBAAiB,CAAC,EAAE,OAAO,GACzB,UAAU,CAAC,kBAAkB,CAAC,CAiJhC"}
|