@observertc/observer-js 1.0.1-b52220e.0 → 1.0.1-c2558cc.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.
Files changed (66) hide show
  1. package/lib/ObservedCall.d.ts +2 -0
  2. package/lib/ObservedCall.d.ts.map +1 -1
  3. package/lib/ObservedCall.js +4 -0
  4. package/lib/ObservedCallEventMonitor.d.ts +104 -0
  5. package/lib/ObservedCallEventMonitor.d.ts.map +1 -0
  6. package/lib/ObservedCallEventMonitor.js +314 -0
  7. package/lib/ObservedClient.d.ts +2 -2
  8. package/lib/ObservedClient.d.ts.map +1 -1
  9. package/lib/ObservedClient.js +52 -4
  10. package/lib/ObservedIceCandidatePair.d.ts +2 -1
  11. package/lib/ObservedIceCandidatePair.d.ts.map +1 -1
  12. package/lib/ObservedIceCandidatePair.js +17 -1
  13. package/lib/ObservedInboundTrack.d.ts +1 -0
  14. package/lib/ObservedInboundTrack.d.ts.map +1 -1
  15. package/lib/ObservedInboundTrack.js +1 -0
  16. package/lib/ObservedOutboundTrack.d.ts +1 -0
  17. package/lib/ObservedOutboundTrack.d.ts.map +1 -1
  18. package/lib/ObservedOutboundTrack.js +1 -0
  19. package/lib/ObservedPeerConnection.d.ts +19 -0
  20. package/lib/ObservedPeerConnection.d.ts.map +1 -1
  21. package/lib/ObservedPeerConnection.js +75 -15
  22. package/lib/Observer.d.ts +8 -4
  23. package/lib/Observer.d.ts.map +1 -1
  24. package/lib/Observer.js +14 -2
  25. package/lib/ObserverEventMonitor.d.ts +138 -0
  26. package/lib/ObserverEventMonitor.d.ts.map +1 -0
  27. package/lib/ObserverEventMonitor.js +433 -0
  28. package/lib/index.d.ts +2 -1
  29. package/lib/index.d.ts.map +1 -1
  30. package/lib/index.js +3 -1
  31. package/lib/schema/ClientSample.d.ts +1 -1
  32. package/lib/schema/ClientSample.d.ts.map +1 -1
  33. package/lib/updaters/{OnAllCallObserverUpdater_.d.ts → OnAllCallObserverUpdater.d.ts} +3 -1
  34. package/lib/updaters/OnAllCallObserverUpdater.d.ts.map +1 -0
  35. package/lib/updaters/{OnAllCallObserverUpdater_.js → OnAllCallObserverUpdater.js} +13 -1
  36. package/lib/updaters/OnAllClientCallUpdater.d.ts +2 -0
  37. package/lib/updaters/OnAllClientCallUpdater.d.ts.map +1 -1
  38. package/lib/updaters/OnAllClientCallUpdater.js +16 -0
  39. package/lib/updaters/{OnAnyCallObserverUpdater_.d.ts → OnAnyCallObserverUpdater.d.ts} +2 -1
  40. package/lib/updaters/OnAnyCallObserverUpdater.d.ts.map +1 -0
  41. package/lib/updaters/{OnAnyCallObserverUpdater_.js → OnAnyCallObserverUpdater.js} +11 -1
  42. package/lib/updaters/OnAnyClientCallUpdater.d.ts +1 -0
  43. package/lib/updaters/OnAnyClientCallUpdater.d.ts.map +1 -1
  44. package/lib/updaters/OnAnyClientCallUpdater.js +11 -2
  45. package/lib/utils/MediasoupRemoteTrackResolver.d.ts +25 -0
  46. package/lib/utils/MediasoupRemoteTrackResolver.d.ts.map +1 -0
  47. package/lib/utils/MediasoupRemoteTrackResolver.js +110 -0
  48. package/package.json +1 -1
  49. package/src/ObservedCall.ts +5 -0
  50. package/src/ObservedCallEventMonitor.ts +392 -0
  51. package/src/ObservedClient.ts +53 -7
  52. package/src/ObservedIceCandidatePair.ts +18 -2
  53. package/src/ObservedInboundTrack.ts +2 -0
  54. package/src/ObservedOutboundTrack.ts +2 -0
  55. package/src/ObservedPeerConnection.ts +95 -30
  56. package/src/Observer.ts +21 -6
  57. package/src/ObserverEventMonitor.ts +551 -0
  58. package/src/index.ts +2 -2
  59. package/src/schema/ClientSample.ts +1 -1
  60. package/src/updaters/{OnAllCallObserverUpdater_.ts → OnAllCallObserverUpdater.ts} +14 -1
  61. package/src/updaters/OnAllClientCallUpdater.ts +15 -0
  62. package/src/updaters/{OnAnyCallObserverUpdater_.ts → OnAnyCallObserverUpdater.ts} +12 -3
  63. package/src/updaters/OnAnyClientCallUpdater.ts +9 -2
  64. package/src/utils/MediasoupRemoteTrackResolver.ts +155 -0
  65. package/lib/updaters/OnAllCallObserverUpdater_.d.ts.map +0 -1
  66. package/lib/updaters/OnAnyCallObserverUpdater_.d.ts.map +0 -1
@@ -86,7 +86,7 @@ class ObservedIceCandidatePair {
86
86
  this.transportId = stats.transportId;
87
87
  this.localCandidateId = stats.localCandidateId;
88
88
  this.remoteCandidateId = stats.remoteCandidateId;
89
- this.state = stats.state;
89
+ this.state = this._convertState(stats.state);
90
90
  this.nominated = stats.nominated;
91
91
  this.packetsSent = stats.packetsSent;
92
92
  this.packetsReceived = stats.packetsReceived;
@@ -107,5 +107,21 @@ class ObservedIceCandidatePair {
107
107
  this.bytesDiscardedOnSend = stats.bytesDiscardedOnSend;
108
108
  this.attachments = stats.attachments;
109
109
  }
110
+ _convertState(state) {
111
+ switch (state) {
112
+ case 'new':
113
+ case 'in-progress':
114
+ case 'waiting':
115
+ case 'failed':
116
+ case 'succeeded':
117
+ return state;
118
+ case 'cancelled':
119
+ return 'failed';
120
+ case 'inprogress':
121
+ return 'in-progress';
122
+ default:
123
+ return undefined;
124
+ }
125
+ }
110
126
  }
111
127
  exports.ObservedIceCandidatePair = ObservedIceCandidatePair;
@@ -18,6 +18,7 @@ export declare class ObservedInboundTrack implements InboundTrackSample {
18
18
  private _visited;
19
19
  addedAt?: number | undefined;
20
20
  removedAt?: number | undefined;
21
+ muted?: boolean;
21
22
  attachments?: Record<string, unknown> | undefined;
22
23
  constructor(timestamp: number, id: string, kind: MediaKind, _peerConnection: ObservedPeerConnection, _inboundRtp?: ObservedInboundRtp | undefined, _mediaPlayout?: ObservedMediaPlayout | undefined);
23
24
  get score(): number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ObservedInboundTrack.d.ts","sourceRoot":"","sources":["../src/ObservedInboundTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,qBAAa,oBAAqB,YAAW,kBAAkB;IAgBtD,SAAS,EAAE,MAAM;aACR,EAAE,EAAE,MAAM;aACV,IAAI,EAAE,SAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IApBhC,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,eAAe,EAAE,eAAe,CAG9C;IACK,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEzC,OAAO,CAAC,QAAQ,CAAS;IAElB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;gBAG1C,SAAS,EAAE,MAAM,EACR,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,SAAS,EACd,eAAe,EAAE,sBAAsB,EACvC,WAAW,CAAC,gCAAoB,EAChC,aAAa,CAAC,kCAAsB;IAKtD,IAAW,KAAK,uBAEf;IAED,IAAW,OAAO,YAMjB;IAEM,iBAAiB;IAIjB,aAAa;IAIb,eAAe;IAIf,sBAAsB;IAItB,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;CAU9C"}
1
+ {"version":3,"file":"ObservedInboundTrack.d.ts","sourceRoot":"","sources":["../src/ObservedInboundTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,qBAAa,oBAAqB,YAAW,kBAAkB;IAkBtD,SAAS,EAAE,MAAM;aACR,EAAE,EAAE,MAAM;aACV,IAAI,EAAE,SAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAtBhC,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,eAAe,EAAE,eAAe,CAG9C;IACK,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEzC,OAAO,CAAC,QAAQ,CAAS;IAElB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAEvB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;gBAG1C,SAAS,EAAE,MAAM,EACR,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,SAAS,EACd,eAAe,EAAE,sBAAsB,EACvC,WAAW,CAAC,gCAAoB,EAChC,aAAa,CAAC,kCAAsB;IAKtD,IAAW,KAAK,uBAEf;IAED,IAAW,OAAO,YAMjB;IAEM,iBAAiB;IAIjB,aAAa;IAIb,eAAe;IAIf,sBAAsB;IAItB,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI;CAU9C"}
@@ -18,6 +18,7 @@ class ObservedInboundTrack {
18
18
  _visited = false;
19
19
  addedAt;
20
20
  removedAt;
21
+ muted;
21
22
  attachments;
22
23
  constructor(timestamp, id, kind, _peerConnection, _inboundRtp, _mediaPlayout) {
23
24
  this.timestamp = timestamp;
@@ -18,6 +18,7 @@ export declare class ObservedOutboundTrack implements OutboundTrackSample {
18
18
  readonly calculatedScore: CalculatedScore;
19
19
  addedAt?: number | undefined;
20
20
  removedAt?: number | undefined;
21
+ muted?: boolean;
21
22
  attachments?: Record<string, unknown> | undefined;
22
23
  constructor(timestamp: number, id: string, kind: MediaKind, _peerConnection: ObservedPeerConnection, _outboundRtps?: ObservedOutboundRtp[] | undefined, _mediaSource?: ObservedMediaSource | undefined);
23
24
  get score(): number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ObservedOutboundTrack.d.ts","sourceRoot":"","sources":["../src/ObservedOutboundTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,qBAAsB,YAAW,mBAAmB;IAexD,SAAS,EAAE,MAAM;aACR,EAAE,EAAE,MAAM;aACV,IAAI,EAAE,SAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAnB/B,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAS;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,SAAgB,eAAe,EAAE,eAAe,CAG9C;IAEK,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;gBAG1C,SAAS,EAAE,MAAM,EACR,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,SAAS,EACd,eAAe,EAAE,sBAAsB,EACvC,aAAa,CAAC,mCAAuB,EACrC,YAAY,CAAC,iCAAqB;IAKpD,IAAW,KAAK,uBAEf;IAED,IAAW,OAAO,YAMjB;IAEM,iBAAiB;IAIjB,eAAe;IAIf,cAAc;IAId,sBAAsB;IAItB,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;CAU/C"}
1
+ {"version":3,"file":"ObservedOutboundTrack.d.ts","sourceRoot":"","sources":["../src/ObservedOutboundTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,qBAAa,qBAAsB,YAAW,mBAAmB;IAiBxD,SAAS,EAAE,MAAM;aACR,EAAE,EAAE,MAAM;aACV,IAAI,EAAE,SAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IArB/B,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAS;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,SAAgB,eAAe,EAAE,eAAe,CAG9C;IAEK,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAEvB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;gBAG1C,SAAS,EAAE,MAAM,EACR,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,SAAS,EACd,eAAe,EAAE,sBAAsB,EACvC,aAAa,CAAC,mCAAuB,EACrC,YAAY,CAAC,iCAAqB;IAKpD,IAAW,KAAK,uBAEf;IAED,IAAW,OAAO,YAMjB;IAEM,iBAAiB;IAIjB,eAAe;IAIf,cAAc;IAId,sBAAsB;IAItB,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;CAU/C"}
@@ -18,6 +18,7 @@ class ObservedOutboundTrack {
18
18
  };
19
19
  addedAt;
20
20
  removedAt;
21
+ muted;
21
22
  attachments;
22
23
  constructor(timestamp, id, kind, _peerConnection, _outboundRtps, _mediaSource) {
23
24
  this.timestamp = timestamp;
@@ -66,6 +66,25 @@ export type ObservedPeerConnectionEvents = {
66
66
  'removed-peer-connection-transport': [ObservedPeerConnectionTransport];
67
67
  'removed-remote-inbound-rtp': [ObservedRemoteInboundRtp];
68
68
  'removed-remote-outbound-rtp': [ObservedRemoteOutboundRtp];
69
+ 'updated-inbound-rtp': [ObservedInboundRtp];
70
+ 'updated-outbound-rtp': [ObservedOutboundRtp];
71
+ 'updated-inbound-track': [ObservedInboundTrack];
72
+ 'updated-outbound-track': [ObservedOutboundTrack];
73
+ 'updated-ice-candidate-pair': [ObservedIceCandidatePair];
74
+ 'updated-ice-transport': [ObservedIceTransport];
75
+ 'updated-peer-connection-transport': [ObservedPeerConnectionTransport];
76
+ 'updated-media-source': [ObservedMediaSource];
77
+ 'updated-media-playout': [ObservedMediaPlayout];
78
+ 'updated-data-channel': [ObservedDataChannel];
79
+ 'updated-ice-candidate': [ObservedIceCandidate];
80
+ 'updated-certificate': [ObservedCertificate];
81
+ 'updated-codec': [ObservedCodec];
82
+ 'updated-remote-inbound-rtp': [ObservedRemoteInboundRtp];
83
+ 'updated-remote-outbound-rtp': [ObservedRemoteOutboundRtp];
84
+ 'muted-inbound-track': [ObservedInboundTrack];
85
+ 'muted-outbound-track': [ObservedOutboundTrack];
86
+ 'unmuted-inbound-track': [ObservedInboundTrack];
87
+ 'unmuted-outbound-track': [ObservedOutboundTrack];
69
88
  'update': [];
70
89
  close: [];
71
90
  };
@@ -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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"}
@@ -512,10 +512,14 @@ class ObservedPeerConnection extends events_1.EventEmitter {
512
512
  return logger.warn(`ObservedPeerConnection received an invalid CertificateStats (missing timestamp OR id OR fingerprint field). PeerConnectionId: ${this.peerConnectionId} ClientId: ${this.client.clientId}, CallId: ${this.client.call.callId}`, stats);
513
513
  }
514
514
  observedCertificate = new ObservedCertificate_1.ObservedCertificate(stats.timestamp, stats.id, this);
515
+ observedCertificate.update(stats);
515
516
  this.observedCertificates.set(stats.id, observedCertificate);
516
517
  this.emit('added-certificate', observedCertificate);
517
518
  }
518
- observedCertificate.update(stats);
519
+ else {
520
+ observedCertificate.update(stats);
521
+ this.emit('updated-certificate', observedCertificate);
522
+ }
519
523
  return observedCertificate;
520
524
  }
521
525
  _updateCodecStats(stats) {
@@ -525,10 +529,14 @@ class ObservedPeerConnection extends events_1.EventEmitter {
525
529
  return logger.warn(`ObservedPeerConnection received an invalid CodecStats (missing timestamp OR id OR mimeType field). PeerConnectionId: ${this.peerConnectionId} ClientId: ${this.client.clientId}, CallId: ${this.client.call.callId}`, stats);
526
530
  }
527
531
  observedCodec = new ObservedCodec_1.ObservedCodec(stats.timestamp, stats.id, stats.mimeType, this);
532
+ observedCodec.update(stats);
528
533
  this.observedCodecs.set(stats.id, observedCodec);
529
534
  this.emit('added-codec', observedCodec);
530
535
  }
531
- observedCodec.update(stats);
536
+ else {
537
+ observedCodec.update(stats);
538
+ }
539
+ this.emit('updated-codec', observedCodec);
532
540
  return observedCodec;
533
541
  }
534
542
  _updateDataChannelStats(stats) {
@@ -538,10 +546,14 @@ class ObservedPeerConnection extends events_1.EventEmitter {
538
546
  return logger.warn(`ObservedPeerConnection received an invalid DataChannelStats (missing timestamp OR id field). PeerConnectionId: ${this.peerConnectionId} ClientId: ${this.client.clientId}, CallId: ${this.client.call.callId}`, stats);
539
547
  }
540
548
  observedDataChannel = new ObservedDataChannel_1.ObservedDataChannel(stats.timestamp, stats.id, this);
549
+ observedDataChannel.update(stats);
541
550
  this.observedDataChannels.set(stats.id, observedDataChannel);
542
551
  this.emit('added-data-channel', observedDataChannel);
543
552
  }
544
- observedDataChannel.update(stats);
553
+ else {
554
+ observedDataChannel.update(stats);
555
+ }
556
+ this.emit('updated-data-channel', observedDataChannel);
545
557
  return observedDataChannel;
546
558
  }
547
559
  _updateIceCandidateStats(stats) {
@@ -551,10 +563,14 @@ class ObservedPeerConnection extends events_1.EventEmitter {
551
563
  return logger.warn(`ObservedPeerConnection received an invalid IceCandidateStats (missing timestamp OR id field). PeerConnectionId: ${this.peerConnectionId} ClientId: ${this.client.clientId}, CallId: ${this.client.call.callId}`, stats);
552
564
  }
553
565
  observedIceCandidate = new ObservedIceCandidate_1.ObservedIceCandidate(stats.timestamp, stats.id, this);
566
+ observedIceCandidate.update(stats);
554
567
  this.observedIceCandidates.set(stats.id, observedIceCandidate);
555
568
  this.emit('added-ice-candidate', observedIceCandidate);
556
569
  }
557
- observedIceCandidate.update(stats);
570
+ else {
571
+ observedIceCandidate.update(stats);
572
+ }
573
+ this.emit('updated-ice-candidate', observedIceCandidate);
558
574
  return observedIceCandidate;
559
575
  }
560
576
  _updateIceCandidatePairStats(stats) {
@@ -564,10 +580,14 @@ class ObservedPeerConnection extends events_1.EventEmitter {
564
580
  return logger.warn(`ObservedPeerConnection received an invalid IceCandidateStats (missing timestamp OR id field). PeerConnectionId: ${this.peerConnectionId} ClientId: ${this.client.clientId}, CallId: ${this.client.call.callId}`, stats);
565
581
  }
566
582
  observedIceCandidatePair = new ObservedIceCandidatePair_1.ObservedIceCandidatePair(stats.timestamp, stats.id, this);
583
+ observedIceCandidatePair.update(stats);
567
584
  this.observedIceCandidatesPair.set(stats.id, observedIceCandidatePair);
568
585
  this.emit('added-ice-candidate-pair', observedIceCandidatePair);
569
586
  }
570
- observedIceCandidatePair.update(stats);
587
+ else {
588
+ observedIceCandidatePair.update(stats);
589
+ }
590
+ this.emit('updated-ice-candidate-pair', observedIceCandidatePair);
571
591
  return observedIceCandidatePair;
572
592
  }
573
593
  _updateIceTransportStats(stats) {
@@ -577,10 +597,14 @@ class ObservedPeerConnection extends events_1.EventEmitter {
577
597
  return logger.warn(`ObservedPeerConnection received an invalid IceCandidateStats (missing timestamp OR id field). PeerConnectionId: ${this.peerConnectionId} ClientId: ${this.client.clientId}, CallId: ${this.client.call.callId}`, stats);
578
598
  }
579
599
  observedIceTransport = new ObservedIceTransport_1.ObservedIceTransport(stats.timestamp, stats.id, this);
600
+ observedIceTransport.update(stats);
580
601
  this.observedIceTransports.set(stats.id, observedIceTransport);
581
602
  this.emit('added-ice-transport', observedIceTransport);
582
603
  }
583
- observedIceTransport.update(stats);
604
+ else {
605
+ observedIceTransport.update(stats);
606
+ }
607
+ this.emit('updated-ice-transport', observedIceTransport);
584
608
  return observedIceTransport;
585
609
  }
586
610
  _updateInboundRtpStats(stats) {
@@ -590,10 +614,14 @@ class ObservedPeerConnection extends events_1.EventEmitter {
590
614
  return logger.warn(`ObservedPeerConnection received an invalid InboundRtpStats (missing timestamp OR id OR ssrc OR kind OR trackIdentifier field). PeerConnectionId: ${this.peerConnectionId} ClientId: ${this.client.clientId}, CallId: ${this.client.call.callId}`, stats);
591
615
  }
592
616
  observedInboundRtp = new ObservedInboundRtp_1.ObservedInboundRtp(stats.timestamp, stats.id, stats.ssrc, stats.kind, stats.trackIdentifier, this);
617
+ observedInboundRtp.update(stats);
593
618
  this.observedInboundRtps.set(stats.ssrc, observedInboundRtp);
594
619
  this.emit('added-inbound-rtp', observedInboundRtp);
595
620
  }
596
- observedInboundRtp.update(stats);
621
+ else {
622
+ observedInboundRtp.update(stats);
623
+ }
624
+ this.emit('updated-inbound-rtp', observedInboundRtp);
597
625
  return observedInboundRtp;
598
626
  }
599
627
  _updateInboundTrackSample(stats) {
@@ -606,10 +634,14 @@ class ObservedPeerConnection extends events_1.EventEmitter {
606
634
  const mediaPlayout = inboundRtp ?
607
635
  [...this.observedMediaPlayouts.values()].find((mp) => mp.id === inboundRtp.playoutId) : undefined;
608
636
  observedInboundTrack = new ObservedInboundTrack_1.ObservedInboundTrack(stats.timestamp, stats.id, stats.kind, this, inboundRtp, mediaPlayout);
637
+ observedInboundTrack.update(stats);
609
638
  this.observedInboundTracks.set(stats.id, observedInboundTrack);
610
639
  this.emit('added-inbound-track', observedInboundTrack);
611
640
  }
612
- observedInboundTrack.update(stats);
641
+ else {
642
+ observedInboundTrack.update(stats);
643
+ }
644
+ this.emit('updated-inbound-track', observedInboundTrack);
613
645
  return observedInboundTrack;
614
646
  }
615
647
  _updateMediaPlayoutStats(stats) {
@@ -619,10 +651,14 @@ class ObservedPeerConnection extends events_1.EventEmitter {
619
651
  return logger.warn(`ObservedPeerConnection received an invalid InboundRtpStats (missing timestamp OR id OR kind OR trackIdentifier field). PeerConnectionId: ${this.peerConnectionId} ClientId: ${this.client.clientId}, CallId: ${this.client.call.callId}`, stats);
620
652
  }
621
653
  observedMediaPlayout = new ObservedMediaPlayout_1.ObservedMediaPlayout(stats.timestamp, stats.id, stats.kind, this);
654
+ observedMediaPlayout.update(stats);
622
655
  this.observedMediaPlayouts.set(stats.id, observedMediaPlayout);
623
656
  this.emit('added-media-playout', observedMediaPlayout);
624
657
  }
625
- observedMediaPlayout.update(stats);
658
+ else {
659
+ observedMediaPlayout.update(stats);
660
+ }
661
+ this.emit('updated-media-playout', observedMediaPlayout);
626
662
  return observedMediaPlayout;
627
663
  }
628
664
  _updateMediaSourceStats(stats) {
@@ -632,10 +668,14 @@ class ObservedPeerConnection extends events_1.EventEmitter {
632
668
  return logger.warn(`ObservedPeerConnection received an invalid InboundRtpStats (missing timestamp OR id OR kind field). PeerConnectionId: ${this.peerConnectionId} ClientId: ${this.client.clientId}, CallId: ${this.client.call.callId}`, stats);
633
669
  }
634
670
  observedMediaSource = new ObservedMediaSource_1.ObservedMediaSource(stats.timestamp, stats.id, stats.kind, this);
671
+ observedMediaSource.update(stats);
635
672
  this.observedMediaSources.set(stats.id, observedMediaSource);
636
673
  this.emit('added-media-source', observedMediaSource);
637
674
  }
638
- observedMediaSource.update(stats);
675
+ else {
676
+ observedMediaSource.update(stats);
677
+ }
678
+ this.emit('updated-media-source', observedMediaSource);
639
679
  return observedMediaSource;
640
680
  }
641
681
  _updateOutboundRtpStats(stats) {
@@ -645,10 +685,14 @@ class ObservedPeerConnection extends events_1.EventEmitter {
645
685
  return logger.warn(`ObservedPeerConnection received an invalid OutboundRtpStats (missing timestamp OR id OR ssrc OR kind field). PeerConnectionId: ${this.peerConnectionId} ClientId: ${this.client.clientId}, CallId: ${this.client.call.callId}`, stats);
646
686
  }
647
687
  observedOutboundRtp = new ObservedOutboundRtp_1.ObservedOutboundRtp(stats.timestamp, stats.id, stats.ssrc, stats.kind, this);
688
+ observedOutboundRtp.update(stats);
648
689
  this.observedOutboundRtps.set(stats.ssrc, observedOutboundRtp);
649
690
  this.emit('added-outbound-rtp', observedOutboundRtp);
650
691
  }
651
- observedOutboundRtp.update(stats);
692
+ else {
693
+ observedOutboundRtp.update(stats);
694
+ }
695
+ this.emit('updated-outbound-rtp', observedOutboundRtp);
652
696
  return observedOutboundRtp;
653
697
  }
654
698
  _updateOutboundTrackSample(stats) {
@@ -661,10 +705,14 @@ class ObservedPeerConnection extends events_1.EventEmitter {
661
705
  const outboundRtps = observedMediaSource
662
706
  ? [...this.observedOutboundRtps.values()].filter((outboundRtp) => outboundRtp.mediaSourceId === observedMediaSource?.id) : undefined;
663
707
  observedOutboundTrack = new ObservedOutboundTrack_1.ObservedOutboundTrack(stats.timestamp, stats.id, stats.kind, this, outboundRtps, observedMediaSource);
708
+ observedOutboundTrack.update(stats);
664
709
  this.observedOutboundTracks.set(stats.id, observedOutboundTrack);
665
710
  this.emit('added-outbound-track', observedOutboundTrack);
666
711
  }
667
- observedOutboundTrack.update(stats);
712
+ else {
713
+ observedOutboundTrack.update(stats);
714
+ }
715
+ this.emit('updated-outbound-track', observedOutboundTrack);
668
716
  return observedOutboundTrack;
669
717
  }
670
718
  _updatePeerConnectionTransportStats(stats) {
@@ -674,10 +722,14 @@ class ObservedPeerConnection extends events_1.EventEmitter {
674
722
  return logger.warn(`ObservedPeerConnection received an invalid PeerConnectionTransportStats (missing timestamp OR id field). PeerConnectionId: ${this.peerConnectionId} ClientId: ${this.client.clientId}, CallId: ${this.client.call.callId}`, stats);
675
723
  }
676
724
  observedPeerConnectionTransport = new ObservedPeerConnectionTransport_1.ObservedPeerConnectionTransport(stats.timestamp, stats.id, this);
725
+ observedPeerConnectionTransport.update(stats);
677
726
  this.observedPeerConnectionTransports.set(stats.id, observedPeerConnectionTransport);
678
727
  this.emit('added-peer-connection-transport', observedPeerConnectionTransport);
679
728
  }
680
- observedPeerConnectionTransport.update(stats);
729
+ else {
730
+ observedPeerConnectionTransport.update(stats);
731
+ }
732
+ this.emit('updated-peer-connection-transport', observedPeerConnectionTransport);
681
733
  return observedPeerConnectionTransport;
682
734
  }
683
735
  _updateRemoteInboundRtpStats(stats) {
@@ -687,10 +739,14 @@ class ObservedPeerConnection extends events_1.EventEmitter {
687
739
  return logger.warn(`ObservedPeerConnection received an invalid RemoteInboundRtpStats (missing timestamp OR id OR ssrc OR kind field). PeerConnectionId: ${this.peerConnectionId} ClientId: ${this.client.clientId}, CallId: ${this.client.call.callId}`, stats);
688
740
  }
689
741
  observedRemoteInboundRtp = new ObservedRemoteInboundRtp_1.ObservedRemoteInboundRtp(stats.timestamp, stats.id, stats.ssrc, stats.kind, this);
742
+ observedRemoteInboundRtp.update(stats);
690
743
  this.observedRemoteInboundRtps.set(stats.ssrc, observedRemoteInboundRtp);
691
744
  this.emit('added-remote-inbound-rtp', observedRemoteInboundRtp);
692
745
  }
693
- observedRemoteInboundRtp.update(stats);
746
+ else {
747
+ observedRemoteInboundRtp.update(stats);
748
+ }
749
+ this.emit('updated-remote-inbound-rtp', observedRemoteInboundRtp);
694
750
  return observedRemoteInboundRtp;
695
751
  }
696
752
  _updateRemoteOutboundRtpStats(stats) {
@@ -700,10 +756,14 @@ class ObservedPeerConnection extends events_1.EventEmitter {
700
756
  return logger.warn(`ObservedPeerConnection received an invalid RemoteOutboundRtpStats (missing timestamp OR id OR ssrc OR kind field). PeerConnectionId: ${this.peerConnectionId} ClientId: ${this.client.clientId}, CallId: ${this.client.call.callId}`, stats);
701
757
  }
702
758
  observedRemoteOutboundRtp = new ObservedRemoteOutboundRtp_1.ObservedRemoteOutboundRtp(stats.timestamp, stats.id, stats.ssrc, stats.kind, this);
759
+ observedRemoteOutboundRtp.update(stats);
703
760
  this.observedRemoteOutboundRtps.set(stats.ssrc, observedRemoteOutboundRtp);
704
761
  this.emit('added-remote-outbound-rtp', observedRemoteOutboundRtp);
705
762
  }
706
- observedRemoteOutboundRtp.update(stats);
763
+ else {
764
+ observedRemoteOutboundRtp.update(stats);
765
+ }
766
+ this.emit('updated-remote-outbound-rtp', observedRemoteOutboundRtp);
707
767
  return observedRemoteOutboundRtp;
708
768
  }
709
769
  }
package/lib/Observer.d.ts CHANGED
@@ -6,6 +6,7 @@ import { ObservedClient } from './ObservedClient';
6
6
  import { ObservedTURN } from './ObservedTURN';
7
7
  import { Detectors } from './detectors/Detectors';
8
8
  import { Updater } from './updaters/Updater';
9
+ import { ObserverEventMonitor } from './ObserverEventMonitor';
9
10
  export type ObserverEvents = {
10
11
  'client-event': [ObservedClient, ClientEvent];
11
12
  'call-updated': [ObservedCall];
@@ -16,11 +17,12 @@ export type ObserverEvents = {
16
17
  'update': [];
17
18
  'close': [];
18
19
  };
19
- export type ObserverConfig = {
20
+ export type ObserverConfig<AppData extends Record<string, unknown> = Record<string, unknown>> = {
20
21
  updatePolicy?: 'update-on-any-call-updated' | 'update-when-all-call-updated' | 'update-on-interval';
21
22
  updateIntervalInMs?: number;
22
23
  defaultCallUpdatePolicy?: ObservedCallSettings['updatePolicy'];
23
24
  defaultCallUpdateIntervalInMs?: number;
25
+ appData?: AppData;
24
26
  };
25
27
  export declare interface Observer {
26
28
  on<U extends keyof ObserverEvents>(event: U, listener: (...args: ObserverEvents[U]) => void): this;
@@ -28,8 +30,8 @@ export declare interface Observer {
28
30
  once<U extends keyof ObserverEvents>(event: U, listener: (...args: ObserverEvents[U]) => void): this;
29
31
  emit<U extends keyof ObserverEvents>(event: U, ...args: ObserverEvents[U]): boolean;
30
32
  }
31
- export declare class Observer extends EventEmitter {
32
- readonly config: ObserverConfig;
33
+ export declare class Observer<AppData extends Record<string, unknown> = Record<string, unknown>> extends EventEmitter {
34
+ readonly config: ObserverConfig<AppData>;
33
35
  readonly detectors: Detectors;
34
36
  readonly observedTURN: ObservedTURN;
35
37
  readonly observedCalls: Map<string, ObservedCall<Record<string, unknown>>>;
@@ -50,12 +52,14 @@ export declare class Observer extends EventEmitter {
50
52
  numberOfPeerConnections: number;
51
53
  get numberOfCalls(): number;
52
54
  private _timer?;
53
- constructor(config?: ObserverConfig);
55
+ constructor(config?: ObserverConfig<AppData>);
56
+ get appData(): AppData | undefined;
54
57
  getObservedCall<T extends Record<string, unknown> = Record<string, unknown>>(callId: string): ObservedCall<T> | undefined;
55
58
  createObservedCall<T extends Record<string, unknown> = Record<string, unknown>>(settings: ObservedCallSettings<T>): ObservedCall<T>;
56
59
  close(): void;
57
60
  accept(sample: ClientSample): void;
58
61
  update(): void;
59
62
  private _onObservedCallUpdated;
63
+ createEventMonitor<CTX = unknown>(ctx?: CTX): ObserverEventMonitor<CTX>;
60
64
  }
61
65
  //# sourceMappingURL=Observer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Observer.d.ts","sourceRoot":"","sources":["../src/Observer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Observer.d.ts","sourceRoot":"","sources":["../src/Observer.ts"],"names":[],"mappings":"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"}
package/lib/Observer.js CHANGED
@@ -7,8 +7,10 @@ const events_1 = require("events");
7
7
  const ObservedTURN_1 = require("./ObservedTURN");
8
8
  const Detectors_1 = require("./detectors/Detectors");
9
9
  const OnIntervalUpdater_1 = require("./updaters/OnIntervalUpdater");
10
- const OnAllCallObserverUpdater_1 = require("./updaters/OnAllCallObserverUpdater_");
11
- const OnAnyCallObserverUpdater_1 = require("./updaters/OnAnyCallObserverUpdater_");
10
+ const OnAllCallObserverUpdater_1 = require("./updaters/OnAllCallObserverUpdater");
11
+ const OnAnyCallObserverUpdater_1 = require("./updaters/OnAnyCallObserverUpdater");
12
+ const ObserverEventMonitor_1 = require("./ObserverEventMonitor");
13
+ const MediasoupRemoteTrackResolver_1 = require("./utils/MediasoupRemoteTrackResolver");
12
14
  const logger = (0, logger_1.createLogger)('Observer');
13
15
  class Observer extends events_1.EventEmitter {
14
16
  config;
@@ -37,6 +39,7 @@ class Observer extends events_1.EventEmitter {
37
39
  constructor(config = {
38
40
  updatePolicy: 'update-when-all-call-updated',
39
41
  updateIntervalInMs: undefined,
42
+ appData: {},
40
43
  }) {
41
44
  super();
42
45
  this.config = config;
@@ -69,6 +72,9 @@ class Observer extends events_1.EventEmitter {
69
72
  }
70
73
  this.detectors = new Detectors_1.Detectors();
71
74
  }
75
+ get appData() {
76
+ return this.config.appData;
77
+ }
72
78
  getObservedCall(callId) {
73
79
  if (this.closed || !this.observedCalls.has(callId))
74
80
  return;
@@ -86,6 +92,9 @@ class Observer extends events_1.EventEmitter {
86
92
  const onCallUpdated = () => this._onObservedCallUpdated(observedCall);
87
93
  if (this.observedCalls.has(observedCall.callId))
88
94
  throw new Error(`Observed Call with id ${observedCall.callId} already exists`);
95
+ if (settings.remoteTrackResolvePolicy === 'mediasoup-sfu') {
96
+ observedCall.remoteTrackResolver = new MediasoupRemoteTrackResolver_1.MediasoupRemoteTrackResolver(observedCall);
97
+ }
89
98
  observedCall.once('close', () => {
90
99
  this.observedCalls.delete(observedCall.callId);
91
100
  observedCall.off('update', onCallUpdated);
@@ -152,5 +161,8 @@ class Observer extends events_1.EventEmitter {
152
161
  this.totalRttGtOrEq300Measurements += call.deltaRttGtOrEq300Measurements;
153
162
  this.totalClientIssues += call.deltaNumberOfIssues;
154
163
  }
164
+ createEventMonitor(ctx) {
165
+ return new ObserverEventMonitor_1.ObserverEventMonitor(this, ctx ?? {});
166
+ }
155
167
  }
156
168
  exports.Observer = Observer;
@@ -0,0 +1,138 @@
1
+ import { ObservedCall } from './ObservedCall';
2
+ import { ObservedCertificate } from './ObservedCertificate';
3
+ import { ObservedClient } from './ObservedClient';
4
+ import { ObservedCodec } from './ObservedCodec';
5
+ import { ObservedDataChannel } from './ObservedDataChannel';
6
+ import { ObservedIceCandidate } from './ObservedIceCandidate';
7
+ import { ObservedIceCandidatePair } from './ObservedIceCandidatePair';
8
+ import { ObservedIceTransport } from './ObservedIceTransport';
9
+ import { ObservedInboundRtp } from './ObservedInboundRtp';
10
+ import { ObservedInboundTrack } from './ObservedInboundTrack';
11
+ import { ObservedMediaPlayout } from './ObservedMediaPlayout';
12
+ import { ObservedMediaSource } from './ObservedMediaSource';
13
+ import { ObservedOutboundRtp } from './ObservedOutboundRtp';
14
+ import { ObservedOutboundTrack } from './ObservedOutboundTrack';
15
+ import { ObservedPeerConnection } from './ObservedPeerConnection';
16
+ import { Observer } from './Observer';
17
+ import { ClientEvent, ClientIssue, ClientMetaData, ClientSample, ExtensionStat } from './schema/ClientSample';
18
+ export declare class ObserverEventMonitor<Context> {
19
+ readonly observer: Observer;
20
+ readonly context: Context;
21
+ constructor(observer: Observer, context: Context);
22
+ onCallAdded?: (call: ObservedCall, ctx: Context) => void;
23
+ onCallRemoved?: (call: ObservedCall, ctx: Context) => void;
24
+ onCallEmpty?: (call: ObservedCall, ctx: Context) => void;
25
+ onCallNotEmpty?: (call: ObservedCall, ctx: Context) => void;
26
+ onCallUpdated?: (call: ObservedCall, ctx: Context) => void;
27
+ onClientAdded?: (client: ObservedClient, ctx: Context) => void;
28
+ onClientClosed?: (client: ObservedClient, ctx: Context) => void;
29
+ onClientRejoined?: (client: ObservedClient, ctx: Context) => void;
30
+ onClientIssue?: (observedClent: ObservedClient, issue: ClientIssue, ctx: Context) => void;
31
+ onClientMetadata?: (observedClient: ObservedClient, metadata: ClientMetaData, ctx: Context) => void;
32
+ onClientExtensionStats?: (observedClient: ObservedClient, extensionStats: ExtensionStat, ctx: Context) => void;
33
+ onClientJoined?: (client: ObservedClient, ctx: Context) => void;
34
+ onClientLeft?: (client: ObservedClient, ctx: Context) => void;
35
+ onClientUserMediaError?: (observedClient: ObservedClient, error: string, ctx: Context) => void;
36
+ onClientUsingTurn?: (client: ObservedClient, usingTurn: boolean, ctx: Context) => void;
37
+ onClientUpdated?: (client: ObservedClient, sample: ClientSample, ctx: Context) => void;
38
+ onClientEvent?: (client: ObservedClient, event: ClientEvent, ctx: Context) => void;
39
+ onPeerConnectionAdded?: (peerConnection: ObservedPeerConnection, ctx: Context) => void;
40
+ onPeerConnectionRemoved?: (peerConnection: ObservedPeerConnection, ctx: Context) => void;
41
+ onSelectedCandidatePairChanged?: (peerConnection: ObservedPeerConnection, ctx: Context) => void;
42
+ onIceGatheringStateChange?: (peerConnection: ObservedPeerConnection, ctx: Context) => void;
43
+ onIceConnectionStateChange?: (peerConnection: ObservedPeerConnection, ctx: Context) => void;
44
+ onConnectionStateChange?: (peerConnection: ObservedPeerConnection, ctx: Context) => void;
45
+ onCertificateAdded?: (certificate: ObservedCertificate, ctx: Context) => void;
46
+ onCertificateRemoved?: (certificate: ObservedCertificate, ctx: Context) => void;
47
+ onCertificateUpdated?: (certificate: ObservedCertificate, ctx: Context) => void;
48
+ onInboundTrackAdded?: (inboundTrack: ObservedInboundTrack, ctx: Context) => void;
49
+ onInboundTrackRemoved?: (inboundTrack: ObservedInboundTrack, ctx: Context) => void;
50
+ onInboundTrackUpdated?: (inboundTrack: ObservedInboundTrack, ctx: Context) => void;
51
+ onInboundTrackMuted?: (inboundTrack: ObservedInboundTrack, ctx: Context) => void;
52
+ onInboundTrackUnmuted?: (inboundTrack: ObservedInboundTrack, ctx: Context) => void;
53
+ onOutboundTrackAdded?: (outboundTrack: ObservedOutboundTrack, ctx: Context) => void;
54
+ onOutboundTrackRemoved?: (outboundTrack: ObservedOutboundTrack, ctx: Context) => void;
55
+ onOutboundTrackUpdated?: (outboundTrack: ObservedOutboundTrack, ctx: Context) => void;
56
+ onOutboundTrackMuted?: (outboundTrack: ObservedOutboundTrack, ctx: Context) => void;
57
+ onOutboundTrackUnmuted?: (outboundTrack: ObservedOutboundTrack, ctx: Context) => void;
58
+ onInboundRtpAdded?: (inboundRtp: ObservedInboundRtp, ctx: Context) => void;
59
+ onInboundRtpRemoved?: (inboundRtp: ObservedInboundRtp, ctx: Context) => void;
60
+ onInboundRtpUpdated?: (inboundRtp: ObservedInboundRtp, ctx: Context) => void;
61
+ onOutboundRtpAdded?: (outboundRtp: ObservedOutboundRtp, ctx: Context) => void;
62
+ onOutboundRtpRemoved?: (outboundRtp: ObservedOutboundRtp, ctx: Context) => void;
63
+ onOutboundRtpUpdated?: (outboundRtp: ObservedOutboundRtp, ctx: Context) => void;
64
+ onDataChannelAdded?: (dataChannel: ObservedDataChannel, ctx: Context) => void;
65
+ onDataChannelRemoved?: (dataChannel: ObservedDataChannel, ctx: Context) => void;
66
+ onDataChannelUpdated?: (dataChannel: ObservedDataChannel, ctx: Context) => void;
67
+ onAddedIceTransport?: (iceTransport: ObservedIceTransport, ctx: Context) => void;
68
+ onRemovedIceTransport?: (iceTransport: ObservedIceTransport, ctx: Context) => void;
69
+ onIceTransportUpdated?: (iceTransport: ObservedIceTransport, ctx: Context) => void;
70
+ onIceCandidateAdded?: (iceCandidate: ObservedIceCandidate, ctx: Context) => void;
71
+ onIceCandidateRemoved?: (iceCandidate: ObservedIceCandidate, ctx: Context) => void;
72
+ onIceCandidateUpdated?: (iceCandidate: ObservedIceCandidate, ctx: Context) => void;
73
+ onAddedIceCandidatePair?: (candidatePair: ObservedIceCandidatePair, ctx: Context) => void;
74
+ onRemovedIceCandidatePair?: (candidatePair: ObservedIceCandidatePair, ctx: Context) => void;
75
+ onIceCandidatePairUpdated?: (candidatePair: ObservedIceCandidatePair, ctx: Context) => void;
76
+ onAddedMediaCodec?: (codec: ObservedCodec, ctx: Context) => void;
77
+ onRemovedMediaCodec?: (codec: ObservedCodec, ctx: Context) => void;
78
+ onMediaCodecUpdated?: (codec: ObservedCodec, ctx: Context) => void;
79
+ onAddedMediaPlayout?: (mediaPlayout: ObservedMediaPlayout, ctx: Context) => void;
80
+ onRemovedMediaPlayout?: (mediaPlayout: ObservedMediaPlayout, ctx: Context) => void;
81
+ onMediaPlayoutUpdated?: (mediaPlayout: ObservedMediaPlayout, ctx: Context) => void;
82
+ onMediaSourceAdded?: (mediaSource: ObservedMediaSource, ctx: Context) => void;
83
+ onMediaSourceRemoved?: (mediaSource: ObservedMediaSource, ctx: Context) => void;
84
+ onMediaSourceUpdated?: (mediaSource: ObservedMediaSource, ctx: Context) => void;
85
+ private _onCallAdded;
86
+ private _onClientAdded;
87
+ private _onClientRejoined;
88
+ private _onPeerConnconnectionAdded;
89
+ private _onPeerConnectionRemoved;
90
+ private _onCertificateAdded;
91
+ private _onCertificateRemoved;
92
+ private _onCertificateUpdated;
93
+ private _onInboundTrackAdded;
94
+ private _onInboundTrackRemoved;
95
+ private _onInboundTrackUpdated;
96
+ private _onOutboundTrackMuted;
97
+ private _onOutboundTrackUnmuted;
98
+ private _onOutboundTrackAdded;
99
+ private _onOutboundTrackRemoved;
100
+ private _onOutboundTrackUpdated;
101
+ private _onInboundTrackMuted;
102
+ private _onInboundTrackUnmuted;
103
+ private _onInboundRtpAdded;
104
+ private _onInboundRtpRemoved;
105
+ private _onInboundRtpUpdated;
106
+ private _onOutboundRtpAdded;
107
+ private _onOutboundRtpRemoved;
108
+ private _onOutboundRtpUpdated;
109
+ private _onDataChannelAdded;
110
+ private _onDataChannelRemoved;
111
+ private _onDataChannelUpdated;
112
+ private _onAddedIceTransport;
113
+ private _onRemovedIceTransport;
114
+ private _onIceTransportUpdated;
115
+ private _onIceCandidateAdded;
116
+ private _onIceCandidateRemoved;
117
+ private _onIceCandidateUpdated;
118
+ private _onAddedIceCandidatePair;
119
+ private _onRemovedIceCandidatePair;
120
+ private _onIceCandidatePairUpdated;
121
+ private _onAddedMediaCodec;
122
+ private _onRemovedMediaCodec;
123
+ private _onMediaCodecUpdated;
124
+ private _onAddedMediaPlayout;
125
+ private _onRemovedMediaPlayout;
126
+ private _onMediaPlayoutUpdated;
127
+ private _onMediaSourceAdded;
128
+ private _onMediaSourceRemoved;
129
+ private _onMediaSourceUpdated;
130
+ private _onClientIssue;
131
+ private _onClientMetadata;
132
+ private _onClientExtensionStats;
133
+ private _onClientJoined;
134
+ private _onClientLeft;
135
+ private _onUserMediaError;
136
+ private _onUsingTurn;
137
+ }
138
+ //# sourceMappingURL=ObserverEventMonitor.d.ts.map