@observertc/observer-js 1.0.1-797e5af.0 → 1.0.1-7be4daa.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 +2 -0
- package/lib/ObservedCall.d.ts.map +1 -1
- package/lib/ObservedCall.js +4 -0
- package/lib/ObservedCallEventMonitor.d.ts +104 -0
- package/lib/ObservedCallEventMonitor.d.ts.map +1 -0
- package/lib/ObservedCallEventMonitor.js +314 -0
- package/lib/ObservedClient.d.ts +2 -2
- package/lib/ObservedClient.d.ts.map +1 -1
- package/lib/ObservedClient.js +2 -4
- package/lib/ObservedIceCandidatePair.d.ts +2 -1
- package/lib/ObservedIceCandidatePair.d.ts.map +1 -1
- package/lib/ObservedIceCandidatePair.js +17 -1
- package/lib/ObservedPeerConnection.d.ts.map +1 -1
- package/lib/ObservedPeerConnection.js +60 -15
- package/lib/Observer.d.ts +8 -4
- package/lib/Observer.d.ts.map +1 -1
- package/lib/Observer.js +14 -2
- 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 +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -1
- package/lib/schema/ClientEventTypes.d.ts +17 -0
- package/lib/schema/ClientEventTypes.d.ts.map +1 -1
- package/lib/schema/ClientSample.d.ts +1 -1
- package/lib/schema/ClientSample.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 +5 -0
- package/src/ObservedCallEventMonitor.ts +392 -0
- package/src/ObservedClient.ts +4 -7
- package/src/ObservedIceCandidatePair.ts +18 -2
- package/src/ObservedPeerConnection.ts +60 -30
- package/src/Observer.ts +21 -6
- package/src/ObserverEventMonitor.ts +398 -0
- package/src/index.ts +1 -0
- package/src/schema/ClientEventTypes.ts +18 -0
- package/src/schema/ClientSample.ts +1 -1
- package/src/updaters/{OnAllCallObserverUpdater_.ts → OnAllCallObserverUpdater.ts} +14 -1
- package/src/updaters/OnAllClientCallUpdater.ts +15 -0
- package/src/updaters/{OnAnyCallObserverUpdater_.ts → OnAnyCallObserverUpdater.ts} +12 -3
- 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
|
@@ -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,13 @@ 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
|
-
|
|
519
|
+
else {
|
|
520
|
+
observedCertificate.update(stats);
|
|
521
|
+
}
|
|
519
522
|
return observedCertificate;
|
|
520
523
|
}
|
|
521
524
|
_updateCodecStats(stats) {
|
|
@@ -525,10 +528,13 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
525
528
|
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
529
|
}
|
|
527
530
|
observedCodec = new ObservedCodec_1.ObservedCodec(stats.timestamp, stats.id, stats.mimeType, this);
|
|
531
|
+
observedCodec.update(stats);
|
|
528
532
|
this.observedCodecs.set(stats.id, observedCodec);
|
|
529
533
|
this.emit('added-codec', observedCodec);
|
|
530
534
|
}
|
|
531
|
-
|
|
535
|
+
else {
|
|
536
|
+
observedCodec.update(stats);
|
|
537
|
+
}
|
|
532
538
|
return observedCodec;
|
|
533
539
|
}
|
|
534
540
|
_updateDataChannelStats(stats) {
|
|
@@ -538,10 +544,13 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
538
544
|
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
545
|
}
|
|
540
546
|
observedDataChannel = new ObservedDataChannel_1.ObservedDataChannel(stats.timestamp, stats.id, this);
|
|
547
|
+
observedDataChannel.update(stats);
|
|
541
548
|
this.observedDataChannels.set(stats.id, observedDataChannel);
|
|
542
549
|
this.emit('added-data-channel', observedDataChannel);
|
|
543
550
|
}
|
|
544
|
-
|
|
551
|
+
else {
|
|
552
|
+
observedDataChannel.update(stats);
|
|
553
|
+
}
|
|
545
554
|
return observedDataChannel;
|
|
546
555
|
}
|
|
547
556
|
_updateIceCandidateStats(stats) {
|
|
@@ -551,10 +560,13 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
551
560
|
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
561
|
}
|
|
553
562
|
observedIceCandidate = new ObservedIceCandidate_1.ObservedIceCandidate(stats.timestamp, stats.id, this);
|
|
563
|
+
observedIceCandidate.update(stats);
|
|
554
564
|
this.observedIceCandidates.set(stats.id, observedIceCandidate);
|
|
555
565
|
this.emit('added-ice-candidate', observedIceCandidate);
|
|
556
566
|
}
|
|
557
|
-
|
|
567
|
+
else {
|
|
568
|
+
observedIceCandidate.update(stats);
|
|
569
|
+
}
|
|
558
570
|
return observedIceCandidate;
|
|
559
571
|
}
|
|
560
572
|
_updateIceCandidatePairStats(stats) {
|
|
@@ -564,10 +576,13 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
564
576
|
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
577
|
}
|
|
566
578
|
observedIceCandidatePair = new ObservedIceCandidatePair_1.ObservedIceCandidatePair(stats.timestamp, stats.id, this);
|
|
579
|
+
observedIceCandidatePair.update(stats);
|
|
567
580
|
this.observedIceCandidatesPair.set(stats.id, observedIceCandidatePair);
|
|
568
581
|
this.emit('added-ice-candidate-pair', observedIceCandidatePair);
|
|
569
582
|
}
|
|
570
|
-
|
|
583
|
+
else {
|
|
584
|
+
observedIceCandidatePair.update(stats);
|
|
585
|
+
}
|
|
571
586
|
return observedIceCandidatePair;
|
|
572
587
|
}
|
|
573
588
|
_updateIceTransportStats(stats) {
|
|
@@ -577,10 +592,13 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
577
592
|
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
593
|
}
|
|
579
594
|
observedIceTransport = new ObservedIceTransport_1.ObservedIceTransport(stats.timestamp, stats.id, this);
|
|
595
|
+
observedIceTransport.update(stats);
|
|
580
596
|
this.observedIceTransports.set(stats.id, observedIceTransport);
|
|
581
597
|
this.emit('added-ice-transport', observedIceTransport);
|
|
582
598
|
}
|
|
583
|
-
|
|
599
|
+
else {
|
|
600
|
+
observedIceTransport.update(stats);
|
|
601
|
+
}
|
|
584
602
|
return observedIceTransport;
|
|
585
603
|
}
|
|
586
604
|
_updateInboundRtpStats(stats) {
|
|
@@ -590,10 +608,13 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
590
608
|
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
609
|
}
|
|
592
610
|
observedInboundRtp = new ObservedInboundRtp_1.ObservedInboundRtp(stats.timestamp, stats.id, stats.ssrc, stats.kind, stats.trackIdentifier, this);
|
|
611
|
+
observedInboundRtp.update(stats);
|
|
593
612
|
this.observedInboundRtps.set(stats.ssrc, observedInboundRtp);
|
|
594
613
|
this.emit('added-inbound-rtp', observedInboundRtp);
|
|
595
614
|
}
|
|
596
|
-
|
|
615
|
+
else {
|
|
616
|
+
observedInboundRtp.update(stats);
|
|
617
|
+
}
|
|
597
618
|
return observedInboundRtp;
|
|
598
619
|
}
|
|
599
620
|
_updateInboundTrackSample(stats) {
|
|
@@ -606,10 +627,13 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
606
627
|
const mediaPlayout = inboundRtp ?
|
|
607
628
|
[...this.observedMediaPlayouts.values()].find((mp) => mp.id === inboundRtp.playoutId) : undefined;
|
|
608
629
|
observedInboundTrack = new ObservedInboundTrack_1.ObservedInboundTrack(stats.timestamp, stats.id, stats.kind, this, inboundRtp, mediaPlayout);
|
|
630
|
+
observedInboundTrack.update(stats);
|
|
609
631
|
this.observedInboundTracks.set(stats.id, observedInboundTrack);
|
|
610
632
|
this.emit('added-inbound-track', observedInboundTrack);
|
|
611
633
|
}
|
|
612
|
-
|
|
634
|
+
else {
|
|
635
|
+
observedInboundTrack.update(stats);
|
|
636
|
+
}
|
|
613
637
|
return observedInboundTrack;
|
|
614
638
|
}
|
|
615
639
|
_updateMediaPlayoutStats(stats) {
|
|
@@ -619,10 +643,13 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
619
643
|
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
644
|
}
|
|
621
645
|
observedMediaPlayout = new ObservedMediaPlayout_1.ObservedMediaPlayout(stats.timestamp, stats.id, stats.kind, this);
|
|
646
|
+
observedMediaPlayout.update(stats);
|
|
622
647
|
this.observedMediaPlayouts.set(stats.id, observedMediaPlayout);
|
|
623
648
|
this.emit('added-media-playout', observedMediaPlayout);
|
|
624
649
|
}
|
|
625
|
-
|
|
650
|
+
else {
|
|
651
|
+
observedMediaPlayout.update(stats);
|
|
652
|
+
}
|
|
626
653
|
return observedMediaPlayout;
|
|
627
654
|
}
|
|
628
655
|
_updateMediaSourceStats(stats) {
|
|
@@ -632,10 +659,13 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
632
659
|
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
660
|
}
|
|
634
661
|
observedMediaSource = new ObservedMediaSource_1.ObservedMediaSource(stats.timestamp, stats.id, stats.kind, this);
|
|
662
|
+
observedMediaSource.update(stats);
|
|
635
663
|
this.observedMediaSources.set(stats.id, observedMediaSource);
|
|
636
664
|
this.emit('added-media-source', observedMediaSource);
|
|
637
665
|
}
|
|
638
|
-
|
|
666
|
+
else {
|
|
667
|
+
observedMediaSource.update(stats);
|
|
668
|
+
}
|
|
639
669
|
return observedMediaSource;
|
|
640
670
|
}
|
|
641
671
|
_updateOutboundRtpStats(stats) {
|
|
@@ -645,10 +675,13 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
645
675
|
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
676
|
}
|
|
647
677
|
observedOutboundRtp = new ObservedOutboundRtp_1.ObservedOutboundRtp(stats.timestamp, stats.id, stats.ssrc, stats.kind, this);
|
|
678
|
+
observedOutboundRtp.update(stats);
|
|
648
679
|
this.observedOutboundRtps.set(stats.ssrc, observedOutboundRtp);
|
|
649
680
|
this.emit('added-outbound-rtp', observedOutboundRtp);
|
|
650
681
|
}
|
|
651
|
-
|
|
682
|
+
else {
|
|
683
|
+
observedOutboundRtp.update(stats);
|
|
684
|
+
}
|
|
652
685
|
return observedOutboundRtp;
|
|
653
686
|
}
|
|
654
687
|
_updateOutboundTrackSample(stats) {
|
|
@@ -661,10 +694,13 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
661
694
|
const outboundRtps = observedMediaSource
|
|
662
695
|
? [...this.observedOutboundRtps.values()].filter((outboundRtp) => outboundRtp.mediaSourceId === observedMediaSource?.id) : undefined;
|
|
663
696
|
observedOutboundTrack = new ObservedOutboundTrack_1.ObservedOutboundTrack(stats.timestamp, stats.id, stats.kind, this, outboundRtps, observedMediaSource);
|
|
697
|
+
observedOutboundTrack.update(stats);
|
|
664
698
|
this.observedOutboundTracks.set(stats.id, observedOutboundTrack);
|
|
665
699
|
this.emit('added-outbound-track', observedOutboundTrack);
|
|
666
700
|
}
|
|
667
|
-
|
|
701
|
+
else {
|
|
702
|
+
observedOutboundTrack.update(stats);
|
|
703
|
+
}
|
|
668
704
|
return observedOutboundTrack;
|
|
669
705
|
}
|
|
670
706
|
_updatePeerConnectionTransportStats(stats) {
|
|
@@ -674,10 +710,13 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
674
710
|
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
711
|
}
|
|
676
712
|
observedPeerConnectionTransport = new ObservedPeerConnectionTransport_1.ObservedPeerConnectionTransport(stats.timestamp, stats.id, this);
|
|
713
|
+
observedPeerConnectionTransport.update(stats);
|
|
677
714
|
this.observedPeerConnectionTransports.set(stats.id, observedPeerConnectionTransport);
|
|
678
715
|
this.emit('added-peer-connection-transport', observedPeerConnectionTransport);
|
|
679
716
|
}
|
|
680
|
-
|
|
717
|
+
else {
|
|
718
|
+
observedPeerConnectionTransport.update(stats);
|
|
719
|
+
}
|
|
681
720
|
return observedPeerConnectionTransport;
|
|
682
721
|
}
|
|
683
722
|
_updateRemoteInboundRtpStats(stats) {
|
|
@@ -687,10 +726,13 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
687
726
|
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
727
|
}
|
|
689
728
|
observedRemoteInboundRtp = new ObservedRemoteInboundRtp_1.ObservedRemoteInboundRtp(stats.timestamp, stats.id, stats.ssrc, stats.kind, this);
|
|
729
|
+
observedRemoteInboundRtp.update(stats);
|
|
690
730
|
this.observedRemoteInboundRtps.set(stats.ssrc, observedRemoteInboundRtp);
|
|
691
731
|
this.emit('added-remote-inbound-rtp', observedRemoteInboundRtp);
|
|
692
732
|
}
|
|
693
|
-
|
|
733
|
+
else {
|
|
734
|
+
observedRemoteInboundRtp.update(stats);
|
|
735
|
+
}
|
|
694
736
|
return observedRemoteInboundRtp;
|
|
695
737
|
}
|
|
696
738
|
_updateRemoteOutboundRtpStats(stats) {
|
|
@@ -700,10 +742,13 @@ class ObservedPeerConnection extends events_1.EventEmitter {
|
|
|
700
742
|
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
743
|
}
|
|
702
744
|
observedRemoteOutboundRtp = new ObservedRemoteOutboundRtp_1.ObservedRemoteOutboundRtp(stats.timestamp, stats.id, stats.ssrc, stats.kind, this);
|
|
745
|
+
observedRemoteOutboundRtp.update(stats);
|
|
703
746
|
this.observedRemoteOutboundRtps.set(stats.ssrc, observedRemoteOutboundRtp);
|
|
704
747
|
this.emit('added-remote-outbound-rtp', observedRemoteOutboundRtp);
|
|
705
748
|
}
|
|
706
|
-
|
|
749
|
+
else {
|
|
750
|
+
observedRemoteOutboundRtp.update(stats);
|
|
751
|
+
}
|
|
707
752
|
return observedRemoteOutboundRtp;
|
|
708
753
|
}
|
|
709
754
|
}
|
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
|
package/lib/Observer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Observer.d.ts","sourceRoot":"","sources":["../src/Observer.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC9G,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
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/
|
|
11
|
-
const OnAnyCallObserverUpdater_1 = require("./updaters/
|
|
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,106 @@
|
|
|
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
|
+
onInboundTrackAdded?: (inboundTrack: ObservedInboundTrack, ctx: Context) => void;
|
|
48
|
+
onInboundTrackRemoved?: (inboundTrack: ObservedInboundTrack, ctx: Context) => void;
|
|
49
|
+
onOutboundTrackAdded?: (outboundTrack: ObservedOutboundTrack, ctx: Context) => void;
|
|
50
|
+
onOutboundTrackRemoved?: (outboundTrack: ObservedOutboundTrack, ctx: Context) => void;
|
|
51
|
+
onInboundRtpAdded?: (inboundRtp: ObservedInboundRtp, ctx: Context) => void;
|
|
52
|
+
onInboundRtpRemoved?: (inboundRtp: ObservedInboundRtp, ctx: Context) => void;
|
|
53
|
+
onOutboundRtpAdded?: (outboundRtp: ObservedOutboundRtp, ctx: Context) => void;
|
|
54
|
+
onOutboundRtpRemoved?: (outboundRtp: ObservedOutboundRtp, ctx: Context) => void;
|
|
55
|
+
onDataChannelAdded?: (dataChannel: ObservedDataChannel, ctx: Context) => void;
|
|
56
|
+
onDataChannelRemoved?: (dataChannel: ObservedDataChannel, ctx: Context) => void;
|
|
57
|
+
onAddedIceTransport?: (iceTransport: ObservedIceTransport, ctx: Context) => void;
|
|
58
|
+
onRemovedIceTransport?: (iceTransport: ObservedIceTransport, ctx: Context) => void;
|
|
59
|
+
onIceCandidateAdded?: (iceCandidate: ObservedIceCandidate, ctx: Context) => void;
|
|
60
|
+
onIceCandidateRemoved?: (iceCandidate: ObservedIceCandidate, ctx: Context) => void;
|
|
61
|
+
onAddedIceCandidatePair?: (candidatePair: ObservedIceCandidatePair, ctx: Context) => void;
|
|
62
|
+
onRemovedIceCandidatePair?: (candidatePair: ObservedIceCandidatePair, ctx: Context) => void;
|
|
63
|
+
onAddedMediaCodec?: (codec: ObservedCodec, ctx: Context) => void;
|
|
64
|
+
onRemovedMediaCodec?: (codec: ObservedCodec, ctx: Context) => void;
|
|
65
|
+
onAddedMediaPlayout?: (mediaPlayout: ObservedMediaPlayout, ctx: Context) => void;
|
|
66
|
+
onRemovedMediaPlayout?: (mediaPlayout: ObservedMediaPlayout, ctx: Context) => void;
|
|
67
|
+
onMediaSourceAdded?: (mediaSource: ObservedMediaSource, ctx: Context) => void;
|
|
68
|
+
onMediaSourceRemoved?: (mediaSource: ObservedMediaSource, ctx: Context) => void;
|
|
69
|
+
private _onCallAdded;
|
|
70
|
+
private _onClientAdded;
|
|
71
|
+
private _onClientRejoined;
|
|
72
|
+
private _onPeerConnconnectionAdded;
|
|
73
|
+
private _onPeerConnectionRemoved;
|
|
74
|
+
private _onCertificateAdded;
|
|
75
|
+
private _onCertificateRemoved;
|
|
76
|
+
private _onInboundTrackAdded;
|
|
77
|
+
private _onInboundTrackRemoved;
|
|
78
|
+
private _onOutboundTrackAdded;
|
|
79
|
+
private _onOutboundTrackRemoved;
|
|
80
|
+
private _onInboundRtpAdded;
|
|
81
|
+
private _onInboundRtpRemoved;
|
|
82
|
+
private _onOutboundRtpAdded;
|
|
83
|
+
private _onOutboundRtpRemoved;
|
|
84
|
+
private _onDataChannelAdded;
|
|
85
|
+
private _onDataChannelRemoved;
|
|
86
|
+
private _onAddedIceTransport;
|
|
87
|
+
private _onRemovedIceTransport;
|
|
88
|
+
private _onIceCandidateAdded;
|
|
89
|
+
private _onIceCandidateRemoved;
|
|
90
|
+
private _onAddedIceCandidatePair;
|
|
91
|
+
private _onRemovedIceCandidatePair;
|
|
92
|
+
private _onAddedMediaCodec;
|
|
93
|
+
private _onRemovedMediaCodec;
|
|
94
|
+
private _onAddedMediaPlayout;
|
|
95
|
+
private _onRemovedMediaPlayout;
|
|
96
|
+
private _onMediaSourceAdded;
|
|
97
|
+
private _onMediaSourceRemoved;
|
|
98
|
+
private _onClientIssue;
|
|
99
|
+
private _onClientMetadata;
|
|
100
|
+
private _onClientExtensionStats;
|
|
101
|
+
private _onClientJoined;
|
|
102
|
+
private _onClientLeft;
|
|
103
|
+
private _onUserMediaError;
|
|
104
|
+
private _onUsingTurn;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=ObserverEventMonitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObserverEventMonitor.d.ts","sourceRoot":"","sources":["../src/ObserverEventMonitor.ts"],"names":[],"mappings":"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"}
|