import VideoEncodingConcurrentSendersHealthPolicy from './VideoEncodingConcurrentSendersHealthPolicy'; import VideoEncodingCpuConnectionHealthPolicy from './VideoEncodingCpuConnectionHealthPolicy'; import VideoEncodingFramerateConnectionHealthPolicy from './VideoEncodingFramerateConnectionHealthPolicy'; export default class ConnectionHealthPolicyConfiguration { minHealth: number; maxHealth: number; initialHealth: number; connectionUnhealthyThreshold: number; noSignalThresholdTimeMs: number; connectionWaitTimeMs: number; zeroBarsNoSignalTimeMs: number; oneBarWeakSignalTimeMs: number; twoBarsTimeMs: number; threeBarsTimeMs: number; fourBarsTimeMs: number; fiveBarsTimeMs: number; cooldownTimeMs: number; pastSamplesToConsider: number; goodSignalTimeMs: number; fractionalLoss: number; packetsExpected: number; maximumTimesToWarn: number; missedPongsLowerThreshold: number; missedPongsUpperThreshold: number; maximumAudioDelayMs: number; maximumAudioDelayDataPoints: number; /** * The number of samples required to consider sending-audio to be unhealthy * * The default value is derived from the median for time taken for receiving an attendee presence message from the * server after joining. Attendee presence is only received when the client sends audio packets to the server, so * this metric is used as a proxy. */ sendingAudioFailureSamplesToConsider: number; /** * The purpose of this field is to add a wait time/delay to our evaluation of sending audio health * as the microphone may sometimes cause a delay in sending audio packets during the initial stages of a connection. */ sendingAudioFailureInitialWaitTimeMs: number; /** * Policies and parameters related to video encoding health montoring */ videoEncodingHealthPolicies: (typeof VideoEncodingConcurrentSendersHealthPolicy | typeof VideoEncodingCpuConnectionHealthPolicy | typeof VideoEncodingFramerateConnectionHealthPolicy)[]; /** * Consecutive seconds of high encode CPU to trigger video codec degradation in video encoding health monitoring. * Increasing the value results in less sensitive video codec degradaion and vice versa. */ consecutiveHighEncodeCpuThreshold: number; /** * Encode time threshold to determine high CPU usage of software encoders in video encoding health monitoring. * Recuding the value results in video codec degradation due to high CPU usage software encoder to be triggered * at a lower CPU usage. */ highEncodeCpuMsThreshold: number; /** * Encode time per frame threshold to determine high CPU usage of software encoders in video encoding health * monitoring. Recuding the value results in video codec degradation due to high CPU usage software encoder to * be triggered at a lower CPU usage. Note that encoder counts each SVC spatial layer of a frame as an encoded * frame. The magnification in framerate should be considered when configuring this parameter with SVC enabled. */ highEncodeCpuMsPerFrameThreshold: number; /** * Consecutive seconds of zero encoded framerate to trigger video codec degradation in video encoding health monitoring. * Increasing the value results in less sensitive video codec degradaion and vice versa. */ consecutiveVideoEncodingFailureThreshold: number; /** * Number of concurrent video senders to trigger video codec degradation from VP9/AV1 in video encoding health monitoring. */ concurrentVideoSendersThreshold: number; }