@observertc/observer-js 0.30.0-e12fcb4.0 → 0.30.2-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.
Files changed (39) hide show
  1. package/lib/ObservedCall.d.ts +1 -1
  2. package/lib/ObservedCall.d.ts.map +1 -1
  3. package/lib/ObservedCall.js +0 -7
  4. package/lib/ObservedClient.d.ts +36 -6
  5. package/lib/ObservedClient.d.ts.map +1 -1
  6. package/lib/ObservedClient.js +129 -71
  7. package/lib/ObservedICE.d.ts +47 -0
  8. package/lib/ObservedICE.d.ts.map +1 -0
  9. package/lib/ObservedICE.js +105 -0
  10. package/lib/ObservedInboundTrack.d.ts +16 -0
  11. package/lib/ObservedInboundTrack.d.ts.map +1 -1
  12. package/lib/ObservedInboundTrack.js +39 -2
  13. package/lib/ObservedPeerConnection.d.ts +39 -1
  14. package/lib/ObservedPeerConnection.d.ts.map +1 -1
  15. package/lib/ObservedPeerConnection.js +61 -0
  16. package/lib/Observer.d.ts +1 -4
  17. package/lib/Observer.d.ts.map +1 -1
  18. package/lib/Observer.js +1 -0
  19. package/lib/common/CallEventType.d.ts +22 -0
  20. package/lib/common/CallEventType.d.ts.map +1 -0
  21. package/lib/common/CallEventType.js +26 -0
  22. package/lib/common/callEventReports.d.ts +0 -10
  23. package/lib/common/callEventReports.d.ts.map +1 -1
  24. package/lib/common/callEventReports.js +10 -21
  25. package/lib/models/Models.d.ts +3 -70
  26. package/lib/models/Models.d.ts.map +1 -1
  27. package/lib/models/Models.js +2 -72
  28. package/lib/models/samples_pb.js +1 -1
  29. package/package.json +1 -1
  30. package/src/ObservedCall.ts +3 -29
  31. package/src/ObservedClient.ts +168 -84
  32. package/src/ObservedICE.ts +176 -0
  33. package/src/ObservedInboundTrack.ts +50 -1
  34. package/src/ObservedPeerConnection.ts +79 -2
  35. package/src/Observer.ts +4 -5
  36. package/src/common/CallEventType.ts +23 -0
  37. package/src/common/callEventReports.ts +1 -11
  38. package/src/models/Models.ts +4 -113
  39. package/src/models/samples_pb.ts +1 -1
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObservedICE = void 0;
4
+ const events_1 = require("events");
5
+ const callMetaReports_1 = require("./common/callMetaReports");
6
+ class ObservedICE extends events_1.EventEmitter {
7
+ static create(peerConnection) {
8
+ return new ObservedICE(peerConnection);
9
+ }
10
+ constructor(peerConnection) {
11
+ super();
12
+ this.peerConnection = peerConnection;
13
+ this._localCandidates = new Map();
14
+ this._remoteCandidates = new Map();
15
+ this._updated = Date.now();
16
+ this._closed = false;
17
+ }
18
+ get reports() {
19
+ return this.peerConnection.reports;
20
+ }
21
+ get localCandidates() {
22
+ return this._localCandidates;
23
+ }
24
+ get remoteCandidates() {
25
+ return this._remoteCandidates;
26
+ }
27
+ get selectedLocalCandidate() {
28
+ var _a;
29
+ return this._localCandidates.get((_a = this._selectedLocalCandidateId) !== null && _a !== void 0 ? _a : '');
30
+ }
31
+ get selectedRemoteCandidate() {
32
+ var _a;
33
+ return this._remoteCandidates.get((_a = this._selectedRemoteCandidateId) !== null && _a !== void 0 ? _a : '');
34
+ }
35
+ get stats() {
36
+ return this._stats;
37
+ }
38
+ get updated() {
39
+ return this._updated;
40
+ }
41
+ get closed() {
42
+ return this._closed;
43
+ }
44
+ close() {
45
+ if (this._closed)
46
+ return;
47
+ this._closed = true;
48
+ this.emit('close');
49
+ }
50
+ addLocalCandidate(candidate) {
51
+ if (!candidate.id)
52
+ return;
53
+ const newCandidate = !this._localCandidates.has(candidate.id);
54
+ this._localCandidates.set(candidate.id, candidate);
55
+ if (newCandidate) {
56
+ 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, {
57
+ type: callMetaReports_1.CallMetaType.ICE_LOCAL_CANDIDATE,
58
+ payload: candidate,
59
+ }, this.peerConnection.client.userId);
60
+ this.reports.addCallMetaReport(callMetaReport);
61
+ this.emit('new-local-candidate', candidate);
62
+ }
63
+ }
64
+ addRemoteCandidate(candidate) {
65
+ if (!candidate.id)
66
+ return;
67
+ const newCandidate = !this._remoteCandidates.has(candidate.id);
68
+ this._remoteCandidates.set(candidate.id, candidate);
69
+ if (newCandidate) {
70
+ 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, {
71
+ type: callMetaReports_1.CallMetaType.ICE_REMOTE_CANDIDATE,
72
+ payload: candidate,
73
+ }, this.peerConnection.client.userId);
74
+ this.reports.addCallMetaReport(callMetaReport);
75
+ this.emit('new-remote-candidate', candidate);
76
+ }
77
+ }
78
+ update(candidatePair, timestamp) {
79
+ const report = Object.assign(Object.assign({ serviceId: this.peerConnection.client.serviceId, mediaUnitId: this.peerConnection.client.mediaUnitId, roomId: this.peerConnection.client.roomId, callId: this.peerConnection.client.callId, clientId: this.peerConnection.client.clientId, userId: this.peerConnection.client.userId, timestamp }, candidatePair), { sampleSeq: -1 });
80
+ this.reports.addIceCandidatePairReport(report);
81
+ if (!candidatePair.nominated)
82
+ return;
83
+ this._stats = candidatePair;
84
+ if (candidatePair.localCandidateId &&
85
+ candidatePair.localCandidateId !== this._selectedLocalCandidateId &&
86
+ this._localCandidates.has(candidatePair.localCandidateId) &&
87
+ candidatePair.remoteCandidateId &&
88
+ candidatePair.remoteCandidateId !== this._selectedRemoteCandidateId &&
89
+ this._remoteCandidates.has(candidatePair.remoteCandidateId)) {
90
+ this._selectedLocalCandidateId = candidatePair.localCandidateId;
91
+ this._selectedRemoteCandidateId = candidatePair.remoteCandidateId;
92
+ const localCandidate = this._localCandidates.get(candidatePair.localCandidateId);
93
+ const remoteCandidate = this._remoteCandidates.get(candidatePair.remoteCandidateId);
94
+ if (localCandidate && remoteCandidate) {
95
+ this.emit('new-selected-candidate-pair', {
96
+ localCandidate,
97
+ remoteCandidate,
98
+ });
99
+ }
100
+ }
101
+ this._updated = timestamp;
102
+ this.emit('update');
103
+ }
104
+ }
105
+ exports.ObservedICE = ObservedICE;
@@ -22,6 +22,14 @@ export type ObservedInboundTrackStats<K extends MediaKind> = ObservedInboundTrac
22
22
  bitrate: number;
23
23
  fractionLost: number;
24
24
  rttInMs?: number;
25
+ lostPackets?: number;
26
+ receivedPackets?: number;
27
+ receivedFrames?: number;
28
+ decodedFrames?: number;
29
+ droppedFrames?: number;
30
+ receivedSamples?: number;
31
+ silentConcealedSamples?: number;
32
+ fractionLoss?: number;
25
33
  };
26
34
  export declare interface ObservedInboundTrack<Kind extends MediaKind> {
27
35
  on<U extends keyof ObservedInboundTrackEvents<Kind>>(event: U, listener: (...args: ObservedInboundTrackEvents<Kind>[U]) => void): this;
@@ -42,6 +50,14 @@ export declare class ObservedInboundTrack<Kind extends MediaKind> extends EventE
42
50
  private _remoteOutboundTrack?;
43
51
  bitrate: number;
44
52
  rttInMs: number;
53
+ lostPackets: number;
54
+ receivedPackets: number;
55
+ receivedFrames: number;
56
+ decodedFrames: number;
57
+ droppedFrames: number;
58
+ receivedSamples: number;
59
+ silentConcealedSamples: number;
60
+ fractionLoss: number;
45
61
  private constructor();
46
62
  get serviceId(): string;
47
63
  get roomId(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"ObservedInboundTrack.d.ts","sourceRoot":"","sources":["../src/ObservedInboundTrack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ObservedInboundTrack.d.ts","sourceRoot":"","sources":["../src/ObservedInboundTrack.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,14 @@ class ObservedInboundTrack extends events_1.EventEmitter {
68
68
  this._updated = Date.now();
69
69
  this.bitrate = -1;
70
70
  this.rttInMs = -1;
71
+ this.lostPackets = 0;
72
+ this.receivedPackets = 0;
73
+ this.receivedFrames = 0;
74
+ this.decodedFrames = 0;
75
+ this.droppedFrames = 0;
76
+ this.receivedSamples = 0;
77
+ this.silentConcealedSamples = 0;
78
+ this.fractionLoss = 0;
71
79
  }
72
80
  get serviceId() {
73
81
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -144,7 +152,7 @@ class ObservedInboundTrack extends events_1.EventEmitter {
144
152
  .finally(() => this.emit('close'));
145
153
  }
146
154
  update(sample, timestamp) {
147
- var _a, _b, _c, _d, _e, _f;
155
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
148
156
  return __awaiter(this, void 0, void 0, function* () {
149
157
  if (this._closed)
150
158
  return;
@@ -169,12 +177,41 @@ class ObservedInboundTrack extends events_1.EventEmitter {
169
177
  const lostPackets = ((_c = sample.packetsLost) !== null && _c !== void 0 ? _c : 0) - ((_d = lastStat === null || lastStat === void 0 ? void 0 : lastStat.packetsLost) !== null && _d !== void 0 ? _d : 0);
170
178
  const receivedPackets = ((_e = sample.packetsReceived) !== null && _e !== void 0 ? _e : 0) - ((_f = lastStat === null || lastStat === void 0 ? void 0 : lastStat.packetsReceived) !== null && _f !== void 0 ? _f : 0);
171
179
  const fractionLost = 0 < receivedPackets && 0 < lostPackets ? (lostPackets / (receivedPackets + lostPackets)) : 0;
180
+ let decodedFrames;
181
+ let droppedFrames;
182
+ let receivedFrames;
183
+ let silentConcealedSamples;
184
+ if (this.kind === 'video') {
185
+ const videoSample = sample;
186
+ const lastVideoStat = lastStat;
187
+ decodedFrames = ((_g = videoSample.framesDecoded) !== null && _g !== void 0 ? _g : 0) - ((_h = lastVideoStat === null || lastVideoStat === void 0 ? void 0 : lastVideoStat.framesDecoded) !== null && _h !== void 0 ? _h : 0);
188
+ droppedFrames = ((_j = videoSample.framesDropped) !== null && _j !== void 0 ? _j : 0) - ((_k = lastVideoStat === null || lastVideoStat === void 0 ? void 0 : lastVideoStat.framesDropped) !== null && _k !== void 0 ? _k : 0);
189
+ receivedFrames = ((_l = videoSample.framesReceived) !== null && _l !== void 0 ? _l : 0) - ((_m = lastVideoStat === null || lastVideoStat === void 0 ? void 0 : lastVideoStat.framesReceived) !== null && _m !== void 0 ? _m : 0);
190
+ }
191
+ else if (this.kind === 'audio') {
192
+ const audioSample = sample;
193
+ const lastAudioStat = lastStat;
194
+ silentConcealedSamples = ((_o = audioSample.silentConcealedSamples) !== null && _o !== void 0 ? _o : 0) - ((_p = lastAudioStat === null || lastAudioStat === void 0 ? void 0 : lastAudioStat.silentConcealedSamples) !== null && _p !== void 0 ? _p : 0);
195
+ }
172
196
  const stats = Object.assign(Object.assign({}, sample), { fractionLost,
173
197
  rttInMs,
174
- bitrate, ssrc: sample.ssrc });
198
+ bitrate, ssrc: sample.ssrc, lostPackets,
199
+ receivedPackets,
200
+ receivedFrames,
201
+ decodedFrames,
202
+ droppedFrames,
203
+ silentConcealedSamples });
175
204
  this._stats.set(sample.ssrc, stats);
176
205
  this.bitrate = [...this._stats.values()].reduce((acc, stat) => acc + stat.bitrate, 0);
177
206
  this.rttInMs = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.rttInMs) !== null && _a !== void 0 ? _a : 0); }, 0) / (this._stats.size || 1);
207
+ this.lostPackets = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.lostPackets) !== null && _a !== void 0 ? _a : 0); }, 0);
208
+ this.receivedPackets = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.receivedPackets) !== null && _a !== void 0 ? _a : 0); }, 0);
209
+ this.receivedFrames = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.receivedFrames) !== null && _a !== void 0 ? _a : 0); }, 0);
210
+ this.decodedFrames = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.decodedFrames) !== null && _a !== void 0 ? _a : 0); }, 0);
211
+ this.droppedFrames = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.droppedFrames) !== null && _a !== void 0 ? _a : 0); }, 0);
212
+ this.receivedSamples = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.receivedSamples) !== null && _a !== void 0 ? _a : 0); }, 0);
213
+ this.silentConcealedSamples = [...this._stats.values()].reduce((acc, stat) => { var _a; return acc + ((_a = stat.silentConcealedSamples) !== null && _a !== void 0 ? _a : 0); }, 0);
214
+ this.fractionLoss = 0 < this.receivedPackets && 0 < this.lostPackets ? (this.lostPackets / (this.receivedPackets + this.lostPackets)) : 0;
178
215
  if (executeSave)
179
216
  yield this._save();
180
217
  this._updated = timestamp;
@@ -1,10 +1,11 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
3
  import { StorageProvider } from './storages/StorageProvider';
4
- import { PeerConnectionTransport } from '@observertc/sample-schemas-js';
4
+ import { IceLocalCandidate, IceRemoteCandidate, PeerConnectionTransport } from '@observertc/sample-schemas-js';
5
5
  import { ObservedClient } from './ObservedClient';
6
6
  import { ObservedInboundTrack, ObservedInboundTrackConfig } from './ObservedInboundTrack';
7
7
  import { ObservedOutboundTrack, ObservedOutboundTrackConfig } from './ObservedOutboundTrack';
8
+ import { ObservedICE } from './ObservedICE';
8
9
  export type ObservedPeerConnectionEvents = {
9
10
  update: [];
10
11
  close: [];
@@ -12,6 +13,9 @@ export type ObservedPeerConnectionEvents = {
12
13
  newinboudvideotrack: [ObservedInboundTrack<'video'>];
13
14
  newoutboundaudiotrack: [ObservedOutboundTrack<'audio'>];
14
15
  newoutboundvideotrack: [ObservedOutboundTrack<'video'>];
16
+ iceconnectionstatechange: [string];
17
+ icegatheringstatechange: [string];
18
+ connectionstatechange: [string];
15
19
  };
16
20
  export type ObservedPeerConnectionConfig = {
17
21
  peerConnectionId: string;
@@ -28,9 +32,39 @@ export declare class ObservedPeerConnection extends EventEmitter {
28
32
  readonly client: ObservedClient;
29
33
  private readonly _storageProvider;
30
34
  static create(config: ObservedPeerConnectionConfig, client: ObservedClient, storageProvider: StorageProvider): Promise<ObservedPeerConnection>;
35
+ totalInboundPacketsLost: number;
36
+ totalInboundPacketsReceived: number;
37
+ totalOutboundPacketsLost: number;
38
+ totalOutboundPacketsReceived: number;
39
+ totalOutboundPacketsSent: number;
40
+ totalDataChannelBytesSent: number;
41
+ totalDataChannelBytesReceived: number;
42
+ totalSentAudioBytes: number;
43
+ totalSentVideoBytes: number;
44
+ totalReceivedAudioBytes: number;
45
+ totalReceivedVideoBytes: number;
46
+ deltaInboundPacketsLost: number;
47
+ deltaInboundPacketsReceived: number;
48
+ deltaOutboundPacketsLost: number;
49
+ deltaOutboundPacketsReceived: number;
50
+ deltaOutboundPacketsSent: number;
51
+ deltaDataChannelBytesSent: number;
52
+ deltaDataChannelBytesReceived: number;
53
+ deltaReceivedAudioBytes: number;
54
+ deltaReceivedVideoBytes: number;
55
+ deltaSentAudioBytes: number;
56
+ deltaSentVideoBytes: number;
57
+ sendingAudioBitrate: number;
58
+ sendingVideoBitrate: number;
59
+ receivingAudioBitrate: number;
60
+ receivingVideoBitrate: number;
61
+ avgRttInS?: number;
31
62
  private _closed;
32
63
  private _updated;
33
64
  private _sample?;
65
+ private _selectedLocalIceCandidate?;
66
+ private _selectedRemoteIceCandidate?;
67
+ readonly ICE: ObservedICE;
34
68
  private readonly _inboundAudioTracks;
35
69
  private readonly _inboundVideoTracks;
36
70
  private readonly _outboundAudioTracks;
@@ -41,13 +75,17 @@ export declare class ObservedPeerConnection extends EventEmitter {
41
75
  get reports(): import("./ReportsCollector").ReportsCollector;
42
76
  get stats(): ObservedPeerConnectionStats | undefined;
43
77
  get updated(): number;
78
+ get selectedLocalIceCandidate(): IceLocalCandidate | undefined;
79
+ get selectedRemoteIceCandidate(): IceRemoteCandidate | undefined;
44
80
  get inboundAudioTracks(): ReadonlyMap<string, ObservedInboundTrack<'audio'>>;
45
81
  get inboundVideoTracks(): ReadonlyMap<string, ObservedInboundTrack<'video'>>;
46
82
  get outboundAudioTracks(): ReadonlyMap<string, ObservedOutboundTrack<'audio'>>;
47
83
  get outboundVideoTracks(): ReadonlyMap<string, ObservedOutboundTrack<'video'>>;
48
84
  get closed(): boolean;
49
85
  close(): void;
86
+ updateMetrics(): void;
50
87
  update(sample: PeerConnectionTransport, timestamp: number): void;
88
+ updateSelectedCandidate(localCandidate: IceLocalCandidate, remoteCandidate: IceRemoteCandidate): void;
51
89
  createInboundAudioTrack(config: Omit<ObservedInboundTrackConfig<'audio'>, 'kind'>): Promise<ObservedInboundTrack<'audio'>>;
52
90
  createInboundVideoTrack(config: Omit<ObservedInboundTrackConfig<'video'>, 'kind'>): Promise<ObservedInboundTrack<'video'>>;
53
91
  createOutboundAudioTrack(config: Omit<ObservedOutboundTrackConfig<'audio'>, 'kind'>): Promise<ObservedOutboundTrack<'audio'>>;
@@ -1 +1 @@
1
- {"version":3,"file":"ObservedPeerConnection.d.ts","sourceRoot":"","sources":["../src/ObservedPeerConnection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ObservedPeerConnection.d.ts","sourceRoot":"","sources":["../src/ObservedPeerConnection.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@ const Models = __importStar(require("./models/Models"));
38
38
  const ObservedInboundTrack_1 = require("./ObservedInboundTrack");
39
39
  const ObservedOutboundTrack_1 = require("./ObservedOutboundTrack");
40
40
  const SingleExecutor_1 = require("./common/SingleExecutor");
41
+ const ObservedICE_1 = require("./ObservedICE");
41
42
  class ObservedPeerConnection extends events_1.EventEmitter {
42
43
  static create(config, client, storageProvider) {
43
44
  return __awaiter(this, void 0, void 0, function* () {
@@ -59,8 +60,35 @@ class ObservedPeerConnection extends events_1.EventEmitter {
59
60
  this._model = _model;
60
61
  this.client = client;
61
62
  this._storageProvider = _storageProvider;
63
+ this.totalInboundPacketsLost = 0;
64
+ this.totalInboundPacketsReceived = 0;
65
+ this.totalOutboundPacketsLost = 0;
66
+ this.totalOutboundPacketsReceived = 0;
67
+ this.totalOutboundPacketsSent = 0;
68
+ this.totalDataChannelBytesSent = 0;
69
+ this.totalDataChannelBytesReceived = 0;
70
+ this.totalSentAudioBytes = 0;
71
+ this.totalSentVideoBytes = 0;
72
+ this.totalReceivedAudioBytes = 0;
73
+ this.totalReceivedVideoBytes = 0;
74
+ this.deltaInboundPacketsLost = 0;
75
+ this.deltaInboundPacketsReceived = 0;
76
+ this.deltaOutboundPacketsLost = 0;
77
+ this.deltaOutboundPacketsReceived = 0;
78
+ this.deltaOutboundPacketsSent = 0;
79
+ this.deltaDataChannelBytesSent = 0;
80
+ this.deltaDataChannelBytesReceived = 0;
81
+ this.deltaReceivedAudioBytes = 0;
82
+ this.deltaReceivedVideoBytes = 0;
83
+ this.deltaSentAudioBytes = 0;
84
+ this.deltaSentVideoBytes = 0;
85
+ this.sendingAudioBitrate = 0;
86
+ this.sendingVideoBitrate = 0;
87
+ this.receivingAudioBitrate = 0;
88
+ this.receivingVideoBitrate = 0;
62
89
  this._closed = false;
63
90
  this._updated = Date.now();
91
+ this.ICE = ObservedICE_1.ObservedICE.create(this);
64
92
  this._inboundAudioTracks = new Map();
65
93
  this._inboundVideoTracks = new Map();
66
94
  this._outboundAudioTracks = new Map();
@@ -80,6 +108,12 @@ class ObservedPeerConnection extends events_1.EventEmitter {
80
108
  get updated() {
81
109
  return this._updated;
82
110
  }
111
+ get selectedLocalIceCandidate() {
112
+ return this._selectedLocalIceCandidate;
113
+ }
114
+ get selectedRemoteIceCandidate() {
115
+ return this._selectedRemoteIceCandidate;
116
+ }
83
117
  get inboundAudioTracks() {
84
118
  return this._inboundAudioTracks;
85
119
  }
@@ -107,6 +141,29 @@ class ObservedPeerConnection extends events_1.EventEmitter {
107
141
  .catch(() => void 0)
108
142
  .finally(() => this.emit('close'));
109
143
  }
144
+ updateMetrics() {
145
+ this.deltaInboundPacketsLost = 0;
146
+ this.deltaInboundPacketsReceived = 0;
147
+ this.deltaOutboundPacketsLost = 0;
148
+ this.deltaOutboundPacketsReceived = 0;
149
+ this.deltaOutboundPacketsSent = 0;
150
+ this.sendingAudioBitrate = 0;
151
+ this.sendingVideoBitrate = 0;
152
+ this.receivingAudioBitrate = 0;
153
+ this.receivingVideoBitrate = 0;
154
+ this.deltaDataChannelBytesSent = 0;
155
+ this.deltaDataChannelBytesReceived = 0;
156
+ this.deltaReceivedAudioBytes = 0;
157
+ this.deltaReceivedVideoBytes = 0;
158
+ this.deltaSentAudioBytes = 0;
159
+ this.deltaSentVideoBytes = 0;
160
+ this._inboundAudioTracks.forEach((track) => {
161
+ this.deltaReceivedAudioBytes += track.receivedPackets;
162
+ });
163
+ this._inboundVideoTracks.forEach((track) => {
164
+ this.deltaReceivedVideoBytes += track.receivedPackets;
165
+ });
166
+ }
110
167
  update(sample, timestamp) {
111
168
  if (this._closed)
112
169
  return;
@@ -118,6 +175,10 @@ class ObservedPeerConnection extends events_1.EventEmitter {
118
175
  this._updated = timestamp;
119
176
  this.emit('update');
120
177
  }
178
+ updateSelectedCandidate(localCandidate, remoteCandidate) {
179
+ this._selectedLocalIceCandidate = localCandidate;
180
+ this._selectedRemoteIceCandidate = remoteCandidate;
181
+ }
121
182
  createInboundAudioTrack(config) {
122
183
  return __awaiter(this, void 0, void 0, function* () {
123
184
  if (this._closed)
package/lib/Observer.d.ts CHANGED
@@ -25,11 +25,8 @@ export type ObserverConfig = {
25
25
  defaultMediaUnitId: string;
26
26
  maxReports?: number | undefined;
27
27
  maxCollectingTimeInMs?: number | undefined;
28
+ maxEntryIdleTimeInMs?: number | undefined;
28
29
  storages?: StorageProvider;
29
- /**
30
- * before client-monitor-js 3.4.0 the client joined event was generated by the observer, this flag is to keep the compatibility with the old behavior
31
- */
32
- addJoinAndDetachClientEvent?: boolean;
33
30
  };
34
31
  export declare interface Observer {
35
32
  on<U extends keyof ObserverEvents>(event: U, listener: (...args: ObserverEvents[U]) => void): this;
@@ -1 +1 @@
1
- {"version":3,"file":"Observer.d.ts","sourceRoot":"","sources":["../src/Observer.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAA+B,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK3C,MAAM,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC;IAE1B,OAAO,EAAE,EAAE,CAAC;CACZ,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAE5B;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE3C,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B;;OAEG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,MAAM,CAAC,OAAO,WAAW,QAAQ;IAChC,EAAE,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACnG,GAAG,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACpG,IAAI,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACrG,IAAI,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CACpF;AAED,qBAAa,QAAS,SAAQ,YAAY;aA0BxB,MAAM,EAAE,cAAc;aACtB,OAAO,EAAE,eAAe;WA1B3B,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,QAAQ;IAoBvE,SAAgB,OAAO,mBAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmC;IAClE,OAAO,CAAC,YAAY,CAAC,CAAgC;IACrD,OAAO,CAAC,OAAO,CAAS;gBAEP,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,eAAe;IAe5B,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1F,MAAM,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,GAC/D,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAqC3B,IAAW,aAAa,IAAI,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAE5D;IAED,IAAW,MAAM,YAEhB;IAEM,KAAK;IASZ,OAAO,CAAC,YAAY;CAepB"}
1
+ {"version":3,"file":"Observer.d.ts","sourceRoot":"","sources":["../src/Observer.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAA+B,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK3C,MAAM,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC;IAE1B,OAAO,EAAE,EAAE,CAAC;CACZ,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAE5B;;;;;;OAMG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE3C,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1C,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC3B,CAAC;AAEF,MAAM,CAAC,OAAO,WAAW,QAAQ;IAChC,EAAE,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACnG,GAAG,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACpG,IAAI,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACrG,IAAI,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CACpF;AAED,qBAAa,QAAS,SAAQ,YAAY;aA0BxB,MAAM,EAAE,cAAc;aACtB,OAAO,EAAE,eAAe;WA1B3B,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,QAAQ;IAoBvE,SAAgB,OAAO,mBAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmC;IAClE,OAAO,CAAC,YAAY,CAAC,CAAgC;IACrD,OAAO,CAAC,OAAO,CAAS;gBAEP,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,eAAe;IAiB5B,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC1F,MAAM,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,GAC/D,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAqC3B,IAAW,aAAa,IAAI,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAE5D;IAED,IAAW,MAAM,YAEhB;IAEM,KAAK;IASZ,OAAO,CAAC,YAAY;CAepB"}
package/lib/Observer.js CHANGED
@@ -48,6 +48,7 @@ class Observer extends events_1.EventEmitter {
48
48
  this._emitReports();
49
49
  }
50
50
  };
51
+ this._emitReports();
51
52
  this.once('close', () => this.reports.off('newreport', onNewReport));
52
53
  this.reports.on('newreport', onNewReport);
53
54
  }
@@ -0,0 +1,22 @@
1
+ export declare enum CallEventType {
2
+ CALL_STARTED = "CALL_STARTED",
3
+ CALL_ENDED = "CALL_ENDED",
4
+ CLIENT_JOINED = "CLIENT_JOINED",
5
+ CLIENT_LEFT = "CLIENT_LEFT",
6
+ PEER_CONNECTION_OPENED = "PEER_CONNECTION_OPENED",
7
+ PEER_CONNECTION_CLOSED = "PEER_CONNECTION_CLOSED",
8
+ MEDIA_TRACK_ADDED = "MEDIA_TRACK_ADDED",
9
+ MEDIA_TRACK_REMOVED = "MEDIA_TRACK_REMOVED",
10
+ MEDIA_TRACK_RESUMED = "MEDIA_TRACK_RESUMED",
11
+ MEDIA_TRACK_MUTED = "MEDIA_TRACK_MUTED",
12
+ MEDIA_TRACK_UNMUTED = "MEDIA_TRACK_UNMUTED",
13
+ ICE_GATHERING_STATE_CHANGED = "ICE_GATHERING_STATE_CHANGED",
14
+ PEER_CONNECTION_STATE_CHANGED = "PEER_CONNECTION_STATE_CHANGED",
15
+ ICE_CONNECTION_STATE_CHANGED = "ICE_CONNECTION_STATE_CHANGED",
16
+ DATA_CHANNEL_OPEN = "DATA_CHANNEL_OPEN",
17
+ DATA_CHANNEL_CLOSED = "DATA_CHANNEL_CLOSED",
18
+ DATA_CHANNEL_ERROR = "DATA_CHANNEL_ERROR",
19
+ NEGOTIATION_NEEDED = "NEGOTIATION_NEEDED",
20
+ SIGNALING_STATE_CHANGE = "SIGNALING_STATE_CHANGE"
21
+ }
22
+ //# sourceMappingURL=CallEventType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CallEventType.d.ts","sourceRoot":"","sources":["../../src/common/CallEventType.ts"],"names":[],"mappings":"AAEA,oBAAY,aAAa;IACxB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,sBAAsB,2BAA2B;IACjD,sBAAsB,2BAA2B;IACjD,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;IAC3C,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,2BAA2B,gCAAgC;IAC3D,6BAA6B,kCAAkC;IAC/D,4BAA4B,iCAAiC;IAC7D,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,sBAAsB,2BAA2B;CACjD"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ // eslint-disable-next-line no-shadow
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.CallEventType = void 0;
5
+ var CallEventType;
6
+ (function (CallEventType) {
7
+ CallEventType["CALL_STARTED"] = "CALL_STARTED";
8
+ CallEventType["CALL_ENDED"] = "CALL_ENDED";
9
+ CallEventType["CLIENT_JOINED"] = "CLIENT_JOINED";
10
+ CallEventType["CLIENT_LEFT"] = "CLIENT_LEFT";
11
+ CallEventType["PEER_CONNECTION_OPENED"] = "PEER_CONNECTION_OPENED";
12
+ CallEventType["PEER_CONNECTION_CLOSED"] = "PEER_CONNECTION_CLOSED";
13
+ CallEventType["MEDIA_TRACK_ADDED"] = "MEDIA_TRACK_ADDED";
14
+ CallEventType["MEDIA_TRACK_REMOVED"] = "MEDIA_TRACK_REMOVED";
15
+ CallEventType["MEDIA_TRACK_RESUMED"] = "MEDIA_TRACK_RESUMED";
16
+ CallEventType["MEDIA_TRACK_MUTED"] = "MEDIA_TRACK_MUTED";
17
+ CallEventType["MEDIA_TRACK_UNMUTED"] = "MEDIA_TRACK_UNMUTED";
18
+ CallEventType["ICE_GATHERING_STATE_CHANGED"] = "ICE_GATHERING_STATE_CHANGED";
19
+ CallEventType["PEER_CONNECTION_STATE_CHANGED"] = "PEER_CONNECTION_STATE_CHANGED";
20
+ CallEventType["ICE_CONNECTION_STATE_CHANGED"] = "ICE_CONNECTION_STATE_CHANGED";
21
+ CallEventType["DATA_CHANNEL_OPEN"] = "DATA_CHANNEL_OPEN";
22
+ CallEventType["DATA_CHANNEL_CLOSED"] = "DATA_CHANNEL_CLOSED";
23
+ CallEventType["DATA_CHANNEL_ERROR"] = "DATA_CHANNEL_ERROR";
24
+ CallEventType["NEGOTIATION_NEEDED"] = "NEGOTIATION_NEEDED";
25
+ CallEventType["SIGNALING_STATE_CHANGE"] = "SIGNALING_STATE_CHANGE";
26
+ })(CallEventType = exports.CallEventType || (exports.CallEventType = {}));
@@ -1,14 +1,4 @@
1
1
  import { CallEventReport } from '@observertc/report-schemas-js';
2
- export declare enum CallEventType {
3
- CALL_STARTED = "CALL_STARTED",
4
- CALL_ENDED = "CALL_ENDED",
5
- CLIENT_JOINED = "CLIENT_JOINED",
6
- CLIENT_LEFT = "CLIENT_LEFT",
7
- PEER_CONNECTION_OPENED = "PEER_CONNECTION_OPENED",
8
- PEER_CONNECTION_CLOSED = "PEER_CONNECTION_CLOSED",
9
- MEDIA_TRACK_ADDED = "MEDIA_TRACK_ADDED",
10
- MEDIA_TRACK_REMOVED = "MEDIA_TRACK_REMOVED"
11
- }
12
2
  export declare function createCallStartedEventReport(serviceId: string, roomId: string, callId: string, timestamp: number, marker?: string): CallEventReport;
13
3
  export declare function createCallEndedEventReport(serviceId: string, roomId: string, callId: string, timestamp: number, marker?: string): CallEventReport;
14
4
  export declare function createClientJoinedEventReport(serviceId: string, mediaUnitId: string, roomId: string, callId: string, clientId: string, timestamp: number, userId?: string, marker?: string): CallEventReport;
@@ -1 +1 @@
1
- {"version":3,"file":"callEventReports.d.ts","sourceRoot":"","sources":["../../src/common/callEventReports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,oBAAY,aAAa;IACxB,YAAY,iBAAiB;IAC7B,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;IAC3B,sBAAsB,2BAA2B;IACjD,sBAAsB,2BAA2B;IACjD,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;CAC3C;AACD,wBAAgB,4BAA4B,CAC3C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CASjB;AAED,wBAAgB,0BAA0B,CACzC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CASjB;AAED,wBAAgB,6BAA6B,CAC5C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CAYjB;AAED,wBAAgB,2BAA2B,CAC1C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CAYjB;AAED,wBAAgB,qCAAqC,CACpD,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CAYjB;AAED,wBAAgB,qCAAqC,CACpD,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CAYjB;AAED,wBAAgB,gCAAgC,CAC/C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CAajB;AAED,wBAAgB,kCAAkC,CACjD,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CAajB"}
1
+ {"version":3,"file":"callEventReports.d.ts","sourceRoot":"","sources":["../../src/common/callEventReports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGhE,wBAAgB,4BAA4B,CAC3C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CASjB;AAED,wBAAgB,0BAA0B,CACzC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CASjB;AAED,wBAAgB,6BAA6B,CAC5C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CAYjB;AAED,wBAAgB,2BAA2B,CAC1C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CAYjB;AAED,wBAAgB,qCAAqC,CACpD,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CAYjB;AAED,wBAAgB,qCAAqC,CACpD,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CAYjB;AAED,wBAAgB,gCAAgC,CAC/C,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CAajB;AAED,wBAAgB,kCAAkC,CACjD,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACb,eAAe,CAajB"}
@@ -1,21 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMediaTrackRemovedEventReport = exports.createMediaTrackAddedEventReport = exports.createPeerConnectionClosedEventReport = exports.createPeerConnectionOpenedEventReport = exports.createClientLeftEventReport = exports.createClientJoinedEventReport = exports.createCallEndedEventReport = exports.createCallStartedEventReport = exports.CallEventType = void 0;
4
- // eslint-disable-next-line no-shadow
5
- var CallEventType;
6
- (function (CallEventType) {
7
- CallEventType["CALL_STARTED"] = "CALL_STARTED";
8
- CallEventType["CALL_ENDED"] = "CALL_ENDED";
9
- CallEventType["CLIENT_JOINED"] = "CLIENT_JOINED";
10
- CallEventType["CLIENT_LEFT"] = "CLIENT_LEFT";
11
- CallEventType["PEER_CONNECTION_OPENED"] = "PEER_CONNECTION_OPENED";
12
- CallEventType["PEER_CONNECTION_CLOSED"] = "PEER_CONNECTION_CLOSED";
13
- CallEventType["MEDIA_TRACK_ADDED"] = "MEDIA_TRACK_ADDED";
14
- CallEventType["MEDIA_TRACK_REMOVED"] = "MEDIA_TRACK_REMOVED";
15
- })(CallEventType = exports.CallEventType || (exports.CallEventType = {}));
3
+ exports.createMediaTrackRemovedEventReport = exports.createMediaTrackAddedEventReport = exports.createPeerConnectionClosedEventReport = exports.createPeerConnectionOpenedEventReport = exports.createClientLeftEventReport = exports.createClientJoinedEventReport = exports.createCallEndedEventReport = exports.createCallStartedEventReport = void 0;
4
+ const CallEventType_1 = require("./CallEventType");
16
5
  function createCallStartedEventReport(serviceId, roomId, callId, timestamp, marker) {
17
6
  return {
18
- name: CallEventType.CALL_STARTED,
7
+ name: CallEventType_1.CallEventType.CALL_STARTED,
19
8
  serviceId,
20
9
  roomId,
21
10
  callId,
@@ -26,7 +15,7 @@ function createCallStartedEventReport(serviceId, roomId, callId, timestamp, mark
26
15
  exports.createCallStartedEventReport = createCallStartedEventReport;
27
16
  function createCallEndedEventReport(serviceId, roomId, callId, timestamp, marker) {
28
17
  return {
29
- name: CallEventType.CALL_ENDED,
18
+ name: CallEventType_1.CallEventType.CALL_ENDED,
30
19
  serviceId,
31
20
  roomId,
32
21
  callId,
@@ -37,7 +26,7 @@ function createCallEndedEventReport(serviceId, roomId, callId, timestamp, marker
37
26
  exports.createCallEndedEventReport = createCallEndedEventReport;
38
27
  function createClientJoinedEventReport(serviceId, mediaUnitId, roomId, callId, clientId, timestamp, userId, marker) {
39
28
  return {
40
- name: CallEventType.CLIENT_JOINED,
29
+ name: CallEventType_1.CallEventType.CLIENT_JOINED,
41
30
  serviceId,
42
31
  mediaUnitId,
43
32
  roomId,
@@ -51,7 +40,7 @@ function createClientJoinedEventReport(serviceId, mediaUnitId, roomId, callId, c
51
40
  exports.createClientJoinedEventReport = createClientJoinedEventReport;
52
41
  function createClientLeftEventReport(serviceId, mediaUnitId, roomId, callId, clientId, timestamp, userId, marker) {
53
42
  return {
54
- name: CallEventType.CLIENT_LEFT,
43
+ name: CallEventType_1.CallEventType.CLIENT_LEFT,
55
44
  serviceId,
56
45
  mediaUnitId,
57
46
  roomId,
@@ -65,7 +54,7 @@ function createClientLeftEventReport(serviceId, mediaUnitId, roomId, callId, cli
65
54
  exports.createClientLeftEventReport = createClientLeftEventReport;
66
55
  function createPeerConnectionOpenedEventReport(serviceId, mediaUnitId, roomId, callId, clientId, peerConnectionId, timestamp, marker) {
67
56
  return {
68
- name: CallEventType.PEER_CONNECTION_OPENED,
57
+ name: CallEventType_1.CallEventType.PEER_CONNECTION_OPENED,
69
58
  serviceId,
70
59
  mediaUnitId,
71
60
  roomId,
@@ -79,7 +68,7 @@ function createPeerConnectionOpenedEventReport(serviceId, mediaUnitId, roomId, c
79
68
  exports.createPeerConnectionOpenedEventReport = createPeerConnectionOpenedEventReport;
80
69
  function createPeerConnectionClosedEventReport(serviceId, mediaUnitId, roomId, callId, clientId, peerConnectionId, timestamp, marker) {
81
70
  return {
82
- name: CallEventType.PEER_CONNECTION_CLOSED,
71
+ name: CallEventType_1.CallEventType.PEER_CONNECTION_CLOSED,
83
72
  serviceId,
84
73
  mediaUnitId,
85
74
  roomId,
@@ -93,7 +82,7 @@ function createPeerConnectionClosedEventReport(serviceId, mediaUnitId, roomId, c
93
82
  exports.createPeerConnectionClosedEventReport = createPeerConnectionClosedEventReport;
94
83
  function createMediaTrackAddedEventReport(serviceId, mediaUnitId, roomId, callId, clientId, peerConnectionId, mediaTrackId, timestamp, marker) {
95
84
  return {
96
- name: CallEventType.MEDIA_TRACK_ADDED,
85
+ name: CallEventType_1.CallEventType.MEDIA_TRACK_ADDED,
97
86
  serviceId,
98
87
  mediaUnitId,
99
88
  roomId,
@@ -108,7 +97,7 @@ function createMediaTrackAddedEventReport(serviceId, mediaUnitId, roomId, callId
108
97
  exports.createMediaTrackAddedEventReport = createMediaTrackAddedEventReport;
109
98
  function createMediaTrackRemovedEventReport(serviceId, mediaUnitId, roomId, callId, clientId, peerConnectionId, mediaTrackId, timestamp, marker) {
110
99
  return {
111
- name: CallEventType.MEDIA_TRACK_REMOVED,
100
+ name: CallEventType_1.CallEventType.MEDIA_TRACK_REMOVED,
112
101
  serviceId,
113
102
  mediaUnitId,
114
103
  roomId,