@observertc/observer-js 1.0.1-9d3744d.0 → 1.0.1-a98466e.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/ObservedCall.d.ts +4 -5
- package/lib/ObservedCall.d.ts.map +1 -1
- package/lib/ObservedCall.js +8 -30
- package/lib/ObservedCallEventMonitor.d.ts +103 -0
- package/lib/ObservedCallEventMonitor.d.ts.map +1 -0
- package/lib/ObservedCallEventMonitor.js +312 -0
- package/lib/ObservedClient.d.ts +11 -1
- package/lib/ObservedClient.d.ts.map +1 -1
- package/lib/ObservedClient.js +183 -4
- package/lib/ObservedClientEventMonitor.d.ts +89 -0
- package/lib/ObservedClientEventMonitor.d.ts.map +1 -0
- package/lib/ObservedClientEventMonitor.js +247 -0
- package/lib/ObservedDataChannel.d.ts +2 -0
- package/lib/ObservedDataChannel.d.ts.map +1 -1
- package/lib/ObservedDataChannel.js +2 -0
- package/lib/ObservedInboundTrack.d.ts +2 -0
- package/lib/ObservedInboundTrack.d.ts.map +1 -1
- package/lib/ObservedInboundTrack.js +2 -0
- package/lib/ObservedOutboundTrack.d.ts +2 -0
- package/lib/ObservedOutboundTrack.d.ts.map +1 -1
- package/lib/ObservedOutboundTrack.js +2 -0
- package/lib/ObservedPeerConnection.d.ts.map +1 -1
- package/lib/ObservedPeerConnection.js +2 -0
- package/lib/Observer.d.ts +9 -5
- package/lib/Observer.d.ts.map +1 -1
- package/lib/Observer.js +17 -5
- package/lib/ObserverEventMonitor.d.ts +106 -0
- package/lib/ObserverEventMonitor.d.ts.map +1 -0
- package/lib/ObserverEventMonitor.js +320 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -1
- package/lib/schema/ClientEventTypes.d.ts +60 -0
- package/lib/schema/ClientEventTypes.d.ts.map +1 -1
- package/lib/updaters/{OnAllCallObserverUpdater_.d.ts → OnAllCallObserverUpdater.d.ts} +3 -1
- package/lib/updaters/OnAllCallObserverUpdater.d.ts.map +1 -0
- package/lib/updaters/{OnAllCallObserverUpdater_.js → OnAllCallObserverUpdater.js} +13 -1
- package/lib/updaters/OnAllClientCallUpdater.d.ts +2 -0
- package/lib/updaters/OnAllClientCallUpdater.d.ts.map +1 -1
- package/lib/updaters/OnAllClientCallUpdater.js +16 -0
- package/lib/updaters/{OnAnyCallObserverUpdater_.d.ts → OnAnyCallObserverUpdater.d.ts} +2 -1
- package/lib/updaters/OnAnyCallObserverUpdater.d.ts.map +1 -0
- package/lib/updaters/{OnAnyCallObserverUpdater_.js → OnAnyCallObserverUpdater.js} +11 -1
- package/lib/updaters/OnAnyClientCallUpdater.d.ts +1 -0
- package/lib/updaters/OnAnyClientCallUpdater.d.ts.map +1 -1
- package/lib/updaters/OnAnyClientCallUpdater.js +11 -2
- package/lib/utils/MediasoupRemoteTrackResolver.d.ts +25 -0
- package/lib/utils/MediasoupRemoteTrackResolver.d.ts.map +1 -0
- package/lib/utils/MediasoupRemoteTrackResolver.js +110 -0
- package/package.json +1 -1
- package/src/ObservedCall.ts +9 -35
- package/src/ObservedCallEventMonitor.ts +389 -0
- package/src/ObservedClient.ts +203 -6
- package/src/ObservedClientEventMonitor.ts +301 -0
- package/src/ObservedDataChannel.ts +3 -0
- package/src/ObservedInboundTrack.ts +3 -0
- package/src/ObservedOutboundTrack.ts +3 -0
- package/src/ObservedPeerConnection.ts +2 -0
- package/src/Observer.ts +24 -9
- package/src/ObserverEventMonitor.ts +398 -0
- package/src/index.ts +2 -0
- package/src/schema/ClientEventTypes.ts +64 -0
- package/src/updaters/{OnAllCallObserverUpdater_.ts → OnAllCallObserverUpdater.ts} +14 -1
- package/src/updaters/OnAllClientCallUpdater.ts +15 -0
- package/src/updaters/{OnAnyCallObserverUpdater_.ts → OnAnyCallObserverUpdater.ts} +11 -2
- package/src/updaters/OnAnyClientCallUpdater.ts +9 -2
- package/src/utils/MediasoupRemoteTrackResolver.ts +155 -0
- package/lib/updaters/OnAllCallObserverUpdater_.d.ts.map +0 -1
- package/lib/updaters/OnAnyCallObserverUpdater_.d.ts.map +0 -1
package/lib/index.d.ts
CHANGED
|
@@ -22,5 +22,7 @@ export { ClientEventTypes } from './schema/ClientEventTypes';
|
|
|
22
22
|
export { ClientMetaTypes } from './schema/ClientMetaTypes';
|
|
23
23
|
export { ClientSample } from './schema/ClientSample';
|
|
24
24
|
export { ScoreCalculator } from './scores/ScoreCalculator';
|
|
25
|
+
export { ObservedClientEventMonitor } from './ObservedClientEventMonitor';
|
|
26
|
+
export { ObserverEventMonitor } from './ObserverEventMonitor';
|
|
25
27
|
export { Middleware } from './common/Middleware';
|
|
26
28
|
//# sourceMappingURL=index.d.ts.map
|
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,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ClientMetaTypes = exports.ClientEventTypes = exports.ObservedPeerConnectionTransport = exports.ObservedIceTransport = exports.ObservedIceCandidate = exports.ObservedIceCandidatePair = exports.ObservedRemoteOutboundRtp = exports.ObservedRemoteInboundRtp = exports.ObservedOutboundRtp = exports.ObservedInboundRtp = exports.ObservedDataChannel = exports.ObservedCertificate = exports.ObservedCodec = exports.ObservedMediaPlayout = exports.ObservedMediaSource = exports.ObservedPeerConnection = exports.ObservedClient = exports.ObservedOutboundTrack = exports.ObservedInboundTrack = exports.ObservedCall = exports.Observer = void 0;
|
|
3
|
+
exports.ObserverEventMonitor = exports.ObservedClientEventMonitor = exports.ClientMetaTypes = exports.ClientEventTypes = exports.ObservedPeerConnectionTransport = exports.ObservedIceTransport = exports.ObservedIceCandidate = exports.ObservedIceCandidatePair = exports.ObservedRemoteOutboundRtp = exports.ObservedRemoteInboundRtp = exports.ObservedOutboundRtp = exports.ObservedInboundRtp = exports.ObservedDataChannel = exports.ObservedCertificate = exports.ObservedCodec = exports.ObservedMediaPlayout = exports.ObservedMediaSource = exports.ObservedPeerConnection = exports.ObservedClient = exports.ObservedOutboundTrack = exports.ObservedInboundTrack = exports.ObservedCall = exports.Observer = void 0;
|
|
4
4
|
var Observer_1 = require("./Observer");
|
|
5
5
|
Object.defineProperty(exports, "Observer", { enumerable: true, get: function () { return Observer_1.Observer; } });
|
|
6
6
|
var ObservedCall_1 = require("./ObservedCall");
|
|
@@ -43,3 +43,7 @@ var ClientEventTypes_1 = require("./schema/ClientEventTypes");
|
|
|
43
43
|
Object.defineProperty(exports, "ClientEventTypes", { enumerable: true, get: function () { return ClientEventTypes_1.ClientEventTypes; } });
|
|
44
44
|
var ClientMetaTypes_1 = require("./schema/ClientMetaTypes");
|
|
45
45
|
Object.defineProperty(exports, "ClientMetaTypes", { enumerable: true, get: function () { return ClientMetaTypes_1.ClientMetaTypes; } });
|
|
46
|
+
var ObservedClientEventMonitor_1 = require("./ObservedClientEventMonitor");
|
|
47
|
+
Object.defineProperty(exports, "ObservedClientEventMonitor", { enumerable: true, get: function () { return ObservedClientEventMonitor_1.ObservedClientEventMonitor; } });
|
|
48
|
+
var ObserverEventMonitor_1 = require("./ObserverEventMonitor");
|
|
49
|
+
Object.defineProperty(exports, "ObserverEventMonitor", { enumerable: true, get: function () { return ObserverEventMonitor_1.ObserverEventMonitor; } });
|
|
@@ -1,3 +1,62 @@
|
|
|
1
|
+
interface DoubleRange {
|
|
2
|
+
max?: number;
|
|
3
|
+
min?: number;
|
|
4
|
+
}
|
|
5
|
+
interface ULongRange {
|
|
6
|
+
max?: number;
|
|
7
|
+
min?: number;
|
|
8
|
+
}
|
|
9
|
+
interface MediaTrackConstraints {
|
|
10
|
+
aspectRatio?: DoubleRange;
|
|
11
|
+
autoGainControl?: boolean[];
|
|
12
|
+
backgroundBlur?: boolean[];
|
|
13
|
+
channelCount?: ULongRange;
|
|
14
|
+
deviceId?: string;
|
|
15
|
+
displaySurface?: string;
|
|
16
|
+
echoCancellation?: boolean[];
|
|
17
|
+
facingMode?: string[];
|
|
18
|
+
frameRate?: DoubleRange;
|
|
19
|
+
groupId?: string;
|
|
20
|
+
height?: ULongRange;
|
|
21
|
+
noiseSuppression?: boolean[];
|
|
22
|
+
sampleRate?: ULongRange;
|
|
23
|
+
sampleSize?: ULongRange;
|
|
24
|
+
width?: ULongRange;
|
|
25
|
+
}
|
|
26
|
+
interface MediaTrackCapabilities {
|
|
27
|
+
aspectRatio?: DoubleRange;
|
|
28
|
+
autoGainControl?: boolean[];
|
|
29
|
+
backgroundBlur?: boolean[];
|
|
30
|
+
channelCount?: ULongRange;
|
|
31
|
+
deviceId?: string;
|
|
32
|
+
displaySurface?: string;
|
|
33
|
+
echoCancellation?: boolean[];
|
|
34
|
+
facingMode?: string[];
|
|
35
|
+
frameRate?: DoubleRange;
|
|
36
|
+
groupId?: string;
|
|
37
|
+
height?: ULongRange;
|
|
38
|
+
noiseSuppression?: boolean[];
|
|
39
|
+
sampleRate?: ULongRange;
|
|
40
|
+
sampleSize?: ULongRange;
|
|
41
|
+
width?: ULongRange;
|
|
42
|
+
}
|
|
43
|
+
interface MediaTrackSettings {
|
|
44
|
+
aspectRatio?: number;
|
|
45
|
+
autoGainControl?: boolean;
|
|
46
|
+
backgroundBlur?: boolean;
|
|
47
|
+
channelCount?: number;
|
|
48
|
+
deviceId?: string;
|
|
49
|
+
displaySurface?: string;
|
|
50
|
+
echoCancellation?: boolean;
|
|
51
|
+
facingMode?: string;
|
|
52
|
+
frameRate?: number;
|
|
53
|
+
groupId?: string;
|
|
54
|
+
height?: number;
|
|
55
|
+
noiseSuppression?: boolean;
|
|
56
|
+
sampleRate?: number;
|
|
57
|
+
sampleSize?: number;
|
|
58
|
+
width?: number;
|
|
59
|
+
}
|
|
1
60
|
export declare enum ClientEventTypes {
|
|
2
61
|
CLIENT_JOINED = "CLIENT_JOINED",
|
|
3
62
|
CLIENT_LEFT = "CLIENT_LEFT",
|
|
@@ -97,4 +156,5 @@ export interface DataChannelClosedEventPayload extends Record<string, unknown> {
|
|
|
97
156
|
readyState: string;
|
|
98
157
|
dataChannelId: string;
|
|
99
158
|
}
|
|
159
|
+
export {};
|
|
100
160
|
//# sourceMappingURL=ClientEventTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientEventTypes.d.ts","sourceRoot":"","sources":["../../src/schema/ClientEventTypes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ClientEventTypes.d.ts","sourceRoot":"","sources":["../../src/schema/ClientEventTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,9 +5,11 @@ export declare class OnAllCallObserverUpdater implements Updater {
|
|
|
5
5
|
readonly name = "OnAllCallObserverUpdater";
|
|
6
6
|
readonly description = "Call Observer's update() method when all of the ObservedCalls are updated";
|
|
7
7
|
private readonly _updatedCalls;
|
|
8
|
+
closed: boolean;
|
|
8
9
|
constructor(observer: Observer);
|
|
9
10
|
close(): void;
|
|
10
11
|
private _onNewObservedCall;
|
|
11
12
|
private _onObservedCallUpdated;
|
|
13
|
+
private _updateIfEveryCallUpdated;
|
|
12
14
|
}
|
|
13
|
-
//# sourceMappingURL=
|
|
15
|
+
//# sourceMappingURL=OnAllCallObserverUpdater.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OnAllCallObserverUpdater.d.ts","sourceRoot":"","sources":["../../src/updaters/OnAllCallObserverUpdater.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,wBAAyB,YAAW,OAAO;IAQtD,OAAO,CAAC,QAAQ;IAPjB,SAAgB,IAAI,8BAA8B;IAClD,SAAgB,WAAW,+EAAgF;IAE3G,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAC5C,MAAM,UAAS;gBAGb,QAAQ,EAAE,QAAQ;IAU3B,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,yBAAyB;CAOjC"}
|
|
@@ -6,6 +6,7 @@ class OnAllCallObserverUpdater {
|
|
|
6
6
|
name = 'OnAllCallObserverUpdater';
|
|
7
7
|
description = 'Call Observer\'s update() method when all of the ObservedCalls are updated';
|
|
8
8
|
_updatedCalls = new Set();
|
|
9
|
+
closed = false;
|
|
9
10
|
constructor(observer) {
|
|
10
11
|
this.observer = observer;
|
|
11
12
|
this._onNewObservedCall = this._onNewObservedCall.bind(this);
|
|
@@ -15,13 +16,19 @@ class OnAllCallObserverUpdater {
|
|
|
15
16
|
this.observer.on('newcall', this._onNewObservedCall);
|
|
16
17
|
}
|
|
17
18
|
close() {
|
|
18
|
-
|
|
19
|
+
if (this.closed)
|
|
20
|
+
return;
|
|
21
|
+
this.closed = true;
|
|
22
|
+
this._updatedCalls.clear();
|
|
19
23
|
}
|
|
20
24
|
_onNewObservedCall(observedCall) {
|
|
25
|
+
if (this.closed)
|
|
26
|
+
return;
|
|
21
27
|
const onUpdate = () => this._onObservedCallUpdated(observedCall);
|
|
22
28
|
observedCall.once('close', () => {
|
|
23
29
|
observedCall.off('update', onUpdate);
|
|
24
30
|
this._updatedCalls.delete(observedCall.callId);
|
|
31
|
+
this._updateIfEveryCallUpdated();
|
|
25
32
|
});
|
|
26
33
|
observedCall.on('update', onUpdate);
|
|
27
34
|
}
|
|
@@ -29,8 +36,13 @@ class OnAllCallObserverUpdater {
|
|
|
29
36
|
if (observedCall.closed)
|
|
30
37
|
return;
|
|
31
38
|
this._updatedCalls.add(observedCall.callId);
|
|
39
|
+
this._updateIfEveryCallUpdated();
|
|
40
|
+
}
|
|
41
|
+
_updateIfEveryCallUpdated() {
|
|
32
42
|
if (this._updatedCalls.size < this.observer.observedCalls.size)
|
|
33
43
|
return;
|
|
44
|
+
else if (this.closed)
|
|
45
|
+
return;
|
|
34
46
|
this._updatedCalls.clear();
|
|
35
47
|
this.observer.update();
|
|
36
48
|
}
|
|
@@ -5,9 +5,11 @@ export declare class OnAllClientCallUpdater implements Updater {
|
|
|
5
5
|
readonly name = "OnAllClientCallUpdater";
|
|
6
6
|
readonly description = "Call the update() method of the ObservedCall once all client has been updated";
|
|
7
7
|
private readonly _updatedClients;
|
|
8
|
+
closed: boolean;
|
|
8
9
|
constructor(_observedCall: ObservedCall);
|
|
9
10
|
close(): void;
|
|
10
11
|
private _onNewObservedClient;
|
|
11
12
|
private _onClientUpdate;
|
|
13
|
+
private _updateIfEveryClientUpdated;
|
|
12
14
|
}
|
|
13
15
|
//# sourceMappingURL=OnAllClientCallUpdater.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnAllClientCallUpdater.d.ts","sourceRoot":"","sources":["../../src/updaters/OnAllClientCallUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,sBAAuB,YAAW,OAAO;
|
|
1
|
+
{"version":3,"file":"OnAllClientCallUpdater.d.ts","sourceRoot":"","sources":["../../src/updaters/OnAllClientCallUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,sBAAuB,YAAW,OAAO;IAQpD,OAAO,CAAC,aAAa;IAPtB,QAAQ,CAAC,IAAI,4BAA4B;IACzC,QAAQ,CAAC,WAAW,mFAAmF;IAEvG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IAC9C,MAAM,UAAS;gBAGb,aAAa,EAAE,YAAY;IAU7B,KAAK,IAAI,IAAI;IAOpB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,2BAA2B;CAWnC"}
|
|
@@ -6,6 +6,7 @@ class OnAllClientCallUpdater {
|
|
|
6
6
|
name = 'OnAllClientCallUpdater';
|
|
7
7
|
description = 'Call the update() method of the ObservedCall once all client has been updated';
|
|
8
8
|
_updatedClients = new Set();
|
|
9
|
+
closed = false;
|
|
9
10
|
constructor(_observedCall) {
|
|
10
11
|
this._observedCall = _observedCall;
|
|
11
12
|
this._onNewObservedClient = this._onNewObservedClient.bind(this);
|
|
@@ -15,21 +16,36 @@ class OnAllClientCallUpdater {
|
|
|
15
16
|
this._observedCall.on('newclient', this._onNewObservedClient);
|
|
16
17
|
}
|
|
17
18
|
close() {
|
|
19
|
+
if (this.closed)
|
|
20
|
+
return;
|
|
21
|
+
this.closed = true;
|
|
18
22
|
// do nothing, as close once emitted unsubscription happened
|
|
23
|
+
this._updatedClients.clear();
|
|
19
24
|
}
|
|
20
25
|
_onNewObservedClient(observedClient) {
|
|
26
|
+
if (this.closed)
|
|
27
|
+
return;
|
|
21
28
|
const onUpdate = () => this._onClientUpdate(observedClient);
|
|
22
29
|
observedClient.once('close', () => {
|
|
23
30
|
observedClient.off('update', onUpdate);
|
|
24
31
|
this._updatedClients.delete(observedClient.clientId);
|
|
32
|
+
this._updateIfEveryClientUpdated();
|
|
25
33
|
});
|
|
26
34
|
observedClient.on('update', onUpdate);
|
|
27
35
|
}
|
|
28
36
|
_onClientUpdate(observedClient) {
|
|
37
|
+
if (observedClient.closed)
|
|
38
|
+
return;
|
|
29
39
|
this._updatedClients.add(observedClient.clientId);
|
|
40
|
+
this._updateIfEveryClientUpdated();
|
|
41
|
+
}
|
|
42
|
+
_updateIfEveryClientUpdated() {
|
|
30
43
|
if (this._updatedClients.size < this._observedCall.observedClients.size) {
|
|
31
44
|
return;
|
|
32
45
|
}
|
|
46
|
+
else if (this.closed) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
33
49
|
this._updatedClients.clear();
|
|
34
50
|
this._observedCall.update();
|
|
35
51
|
}
|
|
@@ -4,8 +4,9 @@ export declare class OnAnyCallObserverUpdater implements Updater {
|
|
|
4
4
|
private observver;
|
|
5
5
|
readonly name = "OnAnyCallObserverUpdater";
|
|
6
6
|
readonly description = "Call Observer's update() method on any of the ObservedCall is updated";
|
|
7
|
+
closed: boolean;
|
|
7
8
|
constructor(observver: Observer);
|
|
8
9
|
close(): void;
|
|
9
10
|
private _onNewObservedCall;
|
|
10
11
|
}
|
|
11
|
-
//# sourceMappingURL=
|
|
12
|
+
//# sourceMappingURL=OnAnyCallObserverUpdater.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OnAnyCallObserverUpdater.d.ts","sourceRoot":"","sources":["../../src/updaters/OnAnyCallObserverUpdater.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,wBAAyB,YAAW,OAAO;IAMtD,OAAO,CAAC,SAAS;IALlB,SAAgB,IAAI,8BAA8B;IAClD,SAAgB,WAAW,2EAA4E;IAChG,MAAM,UAAS;gBAGb,SAAS,EAAE,QAAQ;IAU5B,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,kBAAkB;CAc1B"}
|
|
@@ -5,6 +5,7 @@ class OnAnyCallObserverUpdater {
|
|
|
5
5
|
observver;
|
|
6
6
|
name = 'OnAnyCallObserverUpdater';
|
|
7
7
|
description = 'Call Observer\'s update() method on any of the ObservedCall is updated';
|
|
8
|
+
closed = false;
|
|
8
9
|
constructor(observver) {
|
|
9
10
|
this.observver = observver;
|
|
10
11
|
this._onNewObservedCall = this._onNewObservedCall.bind(this);
|
|
@@ -14,10 +15,19 @@ class OnAnyCallObserverUpdater {
|
|
|
14
15
|
this.observver.on('newcall', this._onNewObservedCall);
|
|
15
16
|
}
|
|
16
17
|
close() {
|
|
18
|
+
if (this.closed)
|
|
19
|
+
return;
|
|
20
|
+
this.closed = true;
|
|
17
21
|
// do nothing, because we unsubscribe once close is emitted from observer
|
|
18
22
|
}
|
|
19
23
|
_onNewObservedCall(observedCall) {
|
|
20
|
-
|
|
24
|
+
if (this.closed)
|
|
25
|
+
return;
|
|
26
|
+
const onUpdate = () => {
|
|
27
|
+
if (this.closed)
|
|
28
|
+
return;
|
|
29
|
+
this.observver.update();
|
|
30
|
+
};
|
|
21
31
|
observedCall.once('close', () => {
|
|
22
32
|
observedCall.off('update', onUpdate);
|
|
23
33
|
});
|
|
@@ -4,6 +4,7 @@ export declare class OnAnyClientCallUpdater implements Updater {
|
|
|
4
4
|
private _observedCall;
|
|
5
5
|
readonly name = "OnAnyClientCallUpdater";
|
|
6
6
|
readonly description = "Call the update() method of the ObservedCall when any of the client has been updated";
|
|
7
|
+
closed: boolean;
|
|
7
8
|
constructor(_observedCall: ObservedCall);
|
|
8
9
|
close(): void;
|
|
9
10
|
private _onNewObservedClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnAnyClientCallUpdater.d.ts","sourceRoot":"","sources":["../../src/updaters/OnAnyClientCallUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,sBAAuB,YAAW,OAAO;
|
|
1
|
+
{"version":3,"file":"OnAnyClientCallUpdater.d.ts","sourceRoot":"","sources":["../../src/updaters/OnAnyClientCallUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,sBAAuB,YAAW,OAAO;IAMpD,OAAO,CAAC,aAAa;IALtB,QAAQ,CAAC,IAAI,4BAA4B;IACzC,QAAQ,CAAC,WAAW,0FAA0F;IACvG,MAAM,UAAS;gBAGb,aAAa,EAAE,YAAY;IAU7B,KAAK,IAAI,IAAI;IAKpB,OAAO,CAAC,oBAAoB;CAa5B"}
|
|
@@ -5,6 +5,7 @@ class OnAnyClientCallUpdater {
|
|
|
5
5
|
_observedCall;
|
|
6
6
|
name = 'OnAnyClientCallUpdater';
|
|
7
7
|
description = 'Call the update() method of the ObservedCall when any of the client has been updated';
|
|
8
|
+
closed = false;
|
|
8
9
|
constructor(_observedCall) {
|
|
9
10
|
this._observedCall = _observedCall;
|
|
10
11
|
this._onNewObservedClient = this._onNewObservedClient.bind(this);
|
|
@@ -14,10 +15,18 @@ class OnAnyClientCallUpdater {
|
|
|
14
15
|
this._observedCall.on('newclient', this._onNewObservedClient);
|
|
15
16
|
}
|
|
16
17
|
close() {
|
|
17
|
-
|
|
18
|
+
if (this.closed)
|
|
19
|
+
return;
|
|
20
|
+
this.closed = true;
|
|
18
21
|
}
|
|
19
22
|
_onNewObservedClient(observedClient) {
|
|
20
|
-
|
|
23
|
+
if (this.closed)
|
|
24
|
+
return;
|
|
25
|
+
const onUpdate = () => {
|
|
26
|
+
if (this.closed)
|
|
27
|
+
return;
|
|
28
|
+
this._observedCall.update();
|
|
29
|
+
};
|
|
21
30
|
observedClient.once('close', () => {
|
|
22
31
|
observedClient.off('update', onUpdate);
|
|
23
32
|
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ObservedCall } from '../ObservedCall';
|
|
2
|
+
import { ObservedCallEventMonitor } from '../ObservedCallEventMonitor';
|
|
3
|
+
import { ObservedInboundTrack } from '../ObservedInboundTrack';
|
|
4
|
+
import { ObservedOutboundTrack } from '../ObservedOutboundTrack';
|
|
5
|
+
import { RemoteTrackResolver } from './RemoteTrackResolver';
|
|
6
|
+
export declare class MediasoupRemoteTrackResolver implements RemoteTrackResolver {
|
|
7
|
+
readonly observedCall: ObservedCall;
|
|
8
|
+
readonly eventMonitor: ObservedCallEventMonitor<{}>;
|
|
9
|
+
private _consumerIdToProducerId;
|
|
10
|
+
private _producerIdToOutboundTrack;
|
|
11
|
+
private _consumerIdToInboundTrack;
|
|
12
|
+
private _inboundTrackToConsumerId;
|
|
13
|
+
private _producerIdToConsumerIds;
|
|
14
|
+
private _outboundTrackToProducerId;
|
|
15
|
+
constructor(observedCall: ObservedCall);
|
|
16
|
+
resolveRemoteOutboundTrack(inboundTrack: ObservedInboundTrack): ObservedOutboundTrack | undefined;
|
|
17
|
+
resolveRemoteInboundTracks(outboundTrack: ObservedOutboundTrack): ObservedInboundTrack[] | undefined;
|
|
18
|
+
private _addInboundTrack;
|
|
19
|
+
private _removeInboundTrack;
|
|
20
|
+
private _addOutboundTrack;
|
|
21
|
+
private _removeOutboundTrack;
|
|
22
|
+
private _getInboundTrackAttachments;
|
|
23
|
+
private _getOutboundTrackAttachments;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=MediasoupRemoteTrackResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediasoupRemoteTrackResolver.d.ts","sourceRoot":"","sources":["../../src/utils/MediasoupRemoteTrackResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,4BAA6B,YAAW,mBAAmB;aAetD,YAAY,EAAE,YAAY;IAd3C,SAAgB,YAAY,EAAE,wBAAwB,CAAC,EAEtD,CAAC,CAAC;IAEH,OAAO,CAAC,uBAAuB,CAA6B;IAC5D,OAAO,CAAC,0BAA0B,CAA4C;IAC9E,OAAO,CAAC,yBAAyB,CAA2C;IAG5E,OAAO,CAAC,yBAAyB,CAA6B;IAC9D,OAAO,CAAC,wBAAwB,CAA+B;IAC/D,OAAO,CAAC,0BAA0B,CAA6B;gBAG9C,YAAY,EAAE,YAAY;IAcpC,0BAA0B,CAAC,YAAY,EAAE,oBAAoB,GAAG,qBAAqB,GAAG,SAAS;IAYjG,0BAA0B,CAAC,aAAa,EAAE,qBAAqB,GAAG,oBAAoB,EAAE,GAAG,SAAS;IAe3G,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,2BAA2B;IAcnC,OAAO,CAAC,4BAA4B;CAWpC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MediasoupRemoteTrackResolver = void 0;
|
|
4
|
+
class MediasoupRemoteTrackResolver {
|
|
5
|
+
observedCall;
|
|
6
|
+
eventMonitor;
|
|
7
|
+
_consumerIdToProducerId = new Map();
|
|
8
|
+
_producerIdToOutboundTrack = new Map();
|
|
9
|
+
_consumerIdToInboundTrack = new Map();
|
|
10
|
+
// private _producerIdToOutboundTrack = new Map<string, ObservedOutboundTrack>();
|
|
11
|
+
_inboundTrackToConsumerId = new Map();
|
|
12
|
+
_producerIdToConsumerIds = new Map();
|
|
13
|
+
_outboundTrackToProducerId = new Map();
|
|
14
|
+
constructor(observedCall) {
|
|
15
|
+
this.observedCall = observedCall;
|
|
16
|
+
this.eventMonitor = this.observedCall.createEventMonitor({});
|
|
17
|
+
this.eventMonitor.onInboundTrackAdded = this._addInboundTrack.bind(this);
|
|
18
|
+
this.eventMonitor.onInboundTrackRemoved = this._removeInboundTrack.bind(this);
|
|
19
|
+
this.eventMonitor.onOutboundTrackAdded = this._addOutboundTrack.bind(this);
|
|
20
|
+
this.eventMonitor.onOutboundTrackRemoved = this._removeOutboundTrack.bind(this);
|
|
21
|
+
// this.eventMonitor.onClientEvent = (client, event) => {
|
|
22
|
+
// };
|
|
23
|
+
}
|
|
24
|
+
resolveRemoteOutboundTrack(inboundTrack) {
|
|
25
|
+
const consumerId = this._inboundTrackToConsumerId.get(inboundTrack.id);
|
|
26
|
+
if (!consumerId)
|
|
27
|
+
return;
|
|
28
|
+
const producerId = this._consumerIdToProducerId.get(consumerId);
|
|
29
|
+
if (!producerId)
|
|
30
|
+
return;
|
|
31
|
+
return this._producerIdToOutboundTrack.get(producerId);
|
|
32
|
+
}
|
|
33
|
+
resolveRemoteInboundTracks(outboundTrack) {
|
|
34
|
+
const producerId = this._outboundTrackToProducerId.get(outboundTrack.id);
|
|
35
|
+
if (!producerId)
|
|
36
|
+
return;
|
|
37
|
+
const consumerIds = this._producerIdToConsumerIds.get(producerId);
|
|
38
|
+
if (!consumerIds)
|
|
39
|
+
return;
|
|
40
|
+
return consumerIds
|
|
41
|
+
.map((consumerId) => this._consumerIdToInboundTrack.get(consumerId))
|
|
42
|
+
.filter((inboundTrack) => Boolean(inboundTrack));
|
|
43
|
+
}
|
|
44
|
+
_addInboundTrack(inboundTrack) {
|
|
45
|
+
const attachments = this._getInboundTrackAttachments(inboundTrack);
|
|
46
|
+
if (!attachments)
|
|
47
|
+
return;
|
|
48
|
+
const { producerId, consumerId } = attachments;
|
|
49
|
+
this._inboundTrackToConsumerId.set(inboundTrack.id, consumerId);
|
|
50
|
+
this._consumerIdToProducerId.set(consumerId, producerId);
|
|
51
|
+
this._consumerIdToInboundTrack.set(consumerId, inboundTrack);
|
|
52
|
+
let producerConsumers = this._producerIdToConsumerIds.get(producerId);
|
|
53
|
+
if (!producerConsumers) {
|
|
54
|
+
producerConsumers = [];
|
|
55
|
+
this._producerIdToConsumerIds.set(producerId, producerConsumers);
|
|
56
|
+
}
|
|
57
|
+
producerConsumers.push(consumerId);
|
|
58
|
+
}
|
|
59
|
+
_removeInboundTrack(inboundTrack) {
|
|
60
|
+
const consumerId = this._inboundTrackToConsumerId.get(inboundTrack.id);
|
|
61
|
+
if (!consumerId)
|
|
62
|
+
return;
|
|
63
|
+
this._inboundTrackToConsumerId.delete(inboundTrack.id);
|
|
64
|
+
this._consumerIdToProducerId.delete(consumerId);
|
|
65
|
+
this._consumerIdToInboundTrack.delete(consumerId);
|
|
66
|
+
const producerConsumers = this._producerIdToConsumerIds.get(consumerId);
|
|
67
|
+
if (!producerConsumers)
|
|
68
|
+
return;
|
|
69
|
+
const filteredProducerConsumers = producerConsumers.filter((id) => id !== consumerId);
|
|
70
|
+
if (filteredProducerConsumers.length === 0) {
|
|
71
|
+
this._producerIdToConsumerIds.delete(consumerId);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this._producerIdToConsumerIds.set(consumerId, filteredProducerConsumers);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
_addOutboundTrack(outboundTrack) {
|
|
78
|
+
const attachments = this._getOutboundTrackAttachments(outboundTrack);
|
|
79
|
+
if (!attachments)
|
|
80
|
+
return;
|
|
81
|
+
const { producerId, } = attachments;
|
|
82
|
+
this._producerIdToOutboundTrack.set(producerId, outboundTrack);
|
|
83
|
+
this._outboundTrackToProducerId.set(outboundTrack.id, producerId);
|
|
84
|
+
}
|
|
85
|
+
_removeOutboundTrack(outboundTrack) {
|
|
86
|
+
const producerId = this._outboundTrackToProducerId.get(outboundTrack.id);
|
|
87
|
+
if (!producerId)
|
|
88
|
+
return;
|
|
89
|
+
this._producerIdToOutboundTrack.delete(producerId);
|
|
90
|
+
this._outboundTrackToProducerId.delete(outboundTrack.id);
|
|
91
|
+
}
|
|
92
|
+
_getInboundTrackAttachments(inboundTrack) {
|
|
93
|
+
const { producerId, consumerId } = inboundTrack.attachments ?? {};
|
|
94
|
+
if (!producerId || !consumerId || typeof producerId !== 'string' || typeof consumerId !== 'string')
|
|
95
|
+
return;
|
|
96
|
+
return {
|
|
97
|
+
producerId,
|
|
98
|
+
consumerId
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
_getOutboundTrackAttachments(outboundTrack) {
|
|
102
|
+
const { producerId, } = outboundTrack.attachments ?? {};
|
|
103
|
+
if (!producerId || typeof producerId !== 'string')
|
|
104
|
+
return;
|
|
105
|
+
return {
|
|
106
|
+
producerId,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.MediasoupRemoteTrackResolver = MediasoupRemoteTrackResolver;
|
package/package.json
CHANGED
package/src/ObservedCall.ts
CHANGED
|
@@ -10,6 +10,7 @@ import { OnAllClientCallUpdater } from './updaters/OnAllClientCallUpdater';
|
|
|
10
10
|
import { Updater } from './updaters/Updater';
|
|
11
11
|
import { OnIntervalUpdater } from './updaters/OnIntervalUpdater';
|
|
12
12
|
import { OnAnyClientCallUpdater } from './updaters/OnAnyClientCallUpdater';
|
|
13
|
+
import { ObservedCallEventMonitor } from './ObservedCallEventMonitor';
|
|
13
14
|
|
|
14
15
|
export type ObservedCallSettings<AppData extends Record<string, unknown> = Record<string, unknown>> = {
|
|
15
16
|
callId: string;
|
|
@@ -25,8 +26,6 @@ export type ObservedCallEvents = {
|
|
|
25
26
|
empty: [],
|
|
26
27
|
'not-empty': [],
|
|
27
28
|
close: [],
|
|
28
|
-
started: [],
|
|
29
|
-
ended: [],
|
|
30
29
|
}
|
|
31
30
|
|
|
32
31
|
export declare interface ObservedCall {
|
|
@@ -84,7 +83,8 @@ export class ObservedCall<AppData extends Record<string, unknown> = Record<strin
|
|
|
84
83
|
public appData: AppData;
|
|
85
84
|
public closed = false;
|
|
86
85
|
public startedAt?: number;
|
|
87
|
-
public
|
|
86
|
+
public endedAt?: number;
|
|
87
|
+
public closedAt?: number;
|
|
88
88
|
|
|
89
89
|
private _callStartedEvent: {
|
|
90
90
|
emitted: boolean,
|
|
@@ -158,10 +158,8 @@ export class ObservedCall<AppData extends Record<string, unknown> = Record<strin
|
|
|
158
158
|
this.updater?.close();
|
|
159
159
|
|
|
160
160
|
[ ...this.observedClients.values() ].forEach((client) => client.close());
|
|
161
|
-
// make sure to emit the events
|
|
162
|
-
this.emitCallStartedEvent();
|
|
163
|
-
this.emitCallEndedEvent();
|
|
164
161
|
|
|
162
|
+
this.closedAt = Date.now();
|
|
165
163
|
this.emit('close');
|
|
166
164
|
}
|
|
167
165
|
|
|
@@ -209,6 +207,10 @@ export class ObservedCall<AppData extends Record<string, unknown> = Record<strin
|
|
|
209
207
|
return result;
|
|
210
208
|
}
|
|
211
209
|
|
|
210
|
+
public createEventMonitor<CTX>(context: CTX): ObservedCallEventMonitor<CTX> {
|
|
211
|
+
return new ObservedCallEventMonitor(this, context);
|
|
212
|
+
}
|
|
213
|
+
|
|
212
214
|
public update() {
|
|
213
215
|
if (this.closed) return;
|
|
214
216
|
|
|
@@ -268,40 +270,12 @@ export class ObservedCall<AppData extends Record<string, unknown> = Record<strin
|
|
|
268
270
|
if (!client.joinedAt) return;
|
|
269
271
|
|
|
270
272
|
this.startedAt = Math.min(this.startedAt ?? client.joinedAt, client.joinedAt);
|
|
271
|
-
|
|
272
|
-
if (this._callStartedEvent.emitted) return;
|
|
273
|
-
if (this._callStartedEvent.timer) {
|
|
274
|
-
if (1 < this.observedClients.size) {
|
|
275
|
-
this.emitCallStartedEvent();
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
this._callStartedEvent.timer = setTimeout(() => {
|
|
281
|
-
this.emitCallStartedEvent();
|
|
282
|
-
}, 5000);
|
|
283
273
|
}
|
|
284
274
|
|
|
285
275
|
private _clientLeft(client: ObservedClient) {
|
|
286
276
|
if (!client.leftAt) return;
|
|
287
277
|
|
|
288
|
-
this.
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
public emitCallStartedEvent() {
|
|
292
|
-
if (this._callStartedEvent.emitted) return;
|
|
293
|
-
this._callStartedEvent.emitted = true;
|
|
294
|
-
clearTimeout(this._callStartedEvent.timer);
|
|
295
|
-
this._callStartedEvent.timer = undefined;
|
|
296
|
-
|
|
297
|
-
this.emit('started');
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
public emitCallEndedEvent() {
|
|
301
|
-
if (this._callEndedEvent.emitted) return;
|
|
302
|
-
this._callEndedEvent.emitted = true;
|
|
303
|
-
|
|
304
|
-
this.emit('ended');
|
|
278
|
+
this.endedAt = Math.max(this.endedAt ?? client.leftAt, client.leftAt);
|
|
305
279
|
}
|
|
306
280
|
|
|
307
281
|
// public resetSummaryMetrics() {
|