228 lines
7.4 KiB
Dart
228 lines
7.4 KiB
Dart
class CallStats {
|
|
/// Remote adress, duh
|
|
final String remoteAddress;
|
|
|
|
/// Bandwidth measurement of the received stream, expressed in kbit/s, including IP/UDP/RTP headers
|
|
final double downloadBandwidth;
|
|
|
|
/// Estimated bandwidth measurement of the received stream, expressed in kbit/s, including IP/UDP/RTP headers
|
|
final double estimatedDownloadBandwidth;
|
|
|
|
/// If the FEC is enabled, gets the cumulative number of lost source packets of the RTP session that have not been repaired by the current FEC stream
|
|
final int fecCumulativeLostPacketsNumber;
|
|
|
|
/// Bandwidth measurement of the part of the received stream dedicated to FEC, expressed in kbit/s, including IP/UDP/RTP headers
|
|
final double fecDownloadBandwidth;
|
|
|
|
/// If the FEC is enabled, gets the cumulative number of source packets of the RTP session that have been repaired by the current FEC stream
|
|
final int fecRepairedPacketsNumber;
|
|
|
|
/// Bandwidth measurement of the part of the sent stream dedicated to FEC, expressed in kbit/s, including IP/UDP/RTP headers
|
|
final double fecUploadBandwidth;
|
|
|
|
/// State of ICE processing
|
|
final String iceState;
|
|
|
|
/// Jitter buffer size in ms
|
|
final double jitterBufferSizeMs;
|
|
|
|
/// Cumulative number of late packets
|
|
final int latePacketsCumulativeNumber;
|
|
|
|
/// Local late rate since last report, expressed as a percentage
|
|
final double localLateRate;
|
|
|
|
/// Local loss rate since last report, expressed as a percentage
|
|
final double localLossRate;
|
|
|
|
/// Remote reported interarrival jitter, expressed in seconds
|
|
final double receiverInterarrivalJitter;
|
|
|
|
/// Remote reported loss rate since last report, expressed as a percentage
|
|
final double receiverLossRate;
|
|
|
|
/// Round trip delay in s
|
|
final double roundTripDelay;
|
|
|
|
/// Bandwidth measurement of the received RTCP, expressed in kbit/s, including IP/UDP/RTP headers
|
|
final double rtcpDownloadBandwidth;
|
|
|
|
/// Bandwidth measurement of the sent RTCP, expressed in kbit/s, including IP/UDP/RTP headers
|
|
final double rtcpUploadBandwidth;
|
|
|
|
/// RTP cumulative number of incoming packet lost
|
|
final int rtpCumPacketLoss;
|
|
|
|
/// RTP incoming packets discarded because the queue exceeds its max size
|
|
final int rtpDiscarded;
|
|
|
|
/// Number of received bytes excluding IPv4/IPv6/UDP headers and including late and duplicate packets
|
|
final int rtpHwRecv;
|
|
|
|
/// Number of RTP received packets
|
|
final int rtpPacketRecv;
|
|
|
|
/// Number of RTP outgoing packets
|
|
final int rtpPacketSent;
|
|
|
|
/// RTP incoming recv_bytes of payload and delivered in time to the application
|
|
final int rtpRecv;
|
|
|
|
/// RTP outgoing sent_bytes (excluding IP header)
|
|
final int rtpSent;
|
|
|
|
/// Local interarrival jitter, expressed in seconds
|
|
final double senderInterarrivalJitter;
|
|
|
|
/// Local loss rate since last report, expressed as a percentage
|
|
final double senderLossRate;
|
|
|
|
/// Method used for SRTP key exchange
|
|
final String srtpSource;
|
|
|
|
/// SRTP Cryto suite in use
|
|
final String srtpSuite;
|
|
|
|
/// Bandwidth measurement of the sent stream, expressed in kbit/s, including IP/UDP/RTP headers
|
|
final double uploadBandwidth;
|
|
|
|
/// State of uPnP processing
|
|
final String upnpState;
|
|
|
|
/// ZRTP algorithm statistics details (authentication method)
|
|
final String zrtpAuthTagAlgo;
|
|
|
|
/// ZRTP algorithm statistics details (cipher)
|
|
final String zrtpCipherAlgo;
|
|
|
|
/// ZRTP algorithm statistics details (hash function)
|
|
final String zrtpHashAlgo;
|
|
|
|
/// ZRTP algorithm statistics details (key agreeement)
|
|
final String zrtpKeyAgreementAlgo;
|
|
|
|
/// ZRTP algorithm statistics details (SAS display)
|
|
final String zrtpSasAlgo;
|
|
|
|
/// Did ZRTP used a Post Quantum algorithm to perform a key exchange
|
|
final bool isZrtpKeyAgreementAlgoPostQuantum;
|
|
|
|
const CallStats(
|
|
this.remoteAddress,
|
|
this.downloadBandwidth,
|
|
this.estimatedDownloadBandwidth,
|
|
this.fecCumulativeLostPacketsNumber,
|
|
this.fecDownloadBandwidth,
|
|
this.fecRepairedPacketsNumber,
|
|
this.fecUploadBandwidth,
|
|
this.iceState,
|
|
this.jitterBufferSizeMs,
|
|
this.latePacketsCumulativeNumber,
|
|
this.localLateRate,
|
|
this.localLossRate,
|
|
this.receiverInterarrivalJitter,
|
|
this.receiverLossRate,
|
|
this.roundTripDelay,
|
|
this.rtcpDownloadBandwidth,
|
|
this.rtcpUploadBandwidth,
|
|
this.rtpCumPacketLoss,
|
|
this.rtpDiscarded,
|
|
this.rtpHwRecv,
|
|
this.rtpPacketRecv,
|
|
this.rtpPacketSent,
|
|
this.rtpRecv,
|
|
this.rtpSent,
|
|
this.senderInterarrivalJitter,
|
|
this.senderLossRate,
|
|
this.srtpSource,
|
|
this.srtpSuite,
|
|
this.uploadBandwidth,
|
|
this.upnpState,
|
|
this.zrtpAuthTagAlgo,
|
|
this.zrtpCipherAlgo,
|
|
this.zrtpHashAlgo,
|
|
this.zrtpKeyAgreementAlgo,
|
|
this.zrtpSasAlgo,
|
|
this.isZrtpKeyAgreementAlgoPostQuantum,
|
|
);
|
|
|
|
factory CallStats.fromJson(Map<dynamic, dynamic> json) => CallStats(
|
|
json["remoteAddress"],
|
|
json["downloadBandwidth"],
|
|
json["estimatedDownloadBandwidth"],
|
|
json["fecCumulativeLostPacketsNumber"],
|
|
json["fecDownloadBandwidth"],
|
|
json["fecRepairedPacketsNumber"],
|
|
json["fecUploadBandwidth"],
|
|
json["iceState"],
|
|
json["jitterBufferSizeMs"],
|
|
json["latePacketsCumulativeNumber"],
|
|
json["localLateRate"],
|
|
json["localLossRate"],
|
|
json["receiverInterarrivalJitter"],
|
|
json["receiverLossRate"],
|
|
json["roundTripDelay"],
|
|
json["rtcpDownloadBandwidth"],
|
|
json["rtcpUploadBandwidth"],
|
|
json["rtpCumPacketLoss"],
|
|
json["rtpDiscarded"],
|
|
json["rtpHwRecv"],
|
|
json["rtpPacketRecv"],
|
|
json["rtpPacketSent"],
|
|
json["rtpRecv"],
|
|
json["rtpSent"],
|
|
json["senderInterarrivalJitter"],
|
|
json["senderLossRate"],
|
|
json["srtpSource"],
|
|
json["srtpSuite"],
|
|
json["uploadBandwidth"],
|
|
json["upnpState"],
|
|
json["zrtpAuthTagAlgo"],
|
|
json["zrtpCipherAlgo"],
|
|
json["zrtpHashAlgo"],
|
|
json["zrtpKeyAgreementAlgo"],
|
|
json["zrtpSasAlgo"],
|
|
json["isZrtpKeyAgreementAlgoPostQuantum"],
|
|
);
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
"remoteAddress": remoteAddress,
|
|
"downloadBandwidth": downloadBandwidth,
|
|
"estimatedDownloadBandwidth": estimatedDownloadBandwidth,
|
|
"fecCumulativeLostPacketsNumber": fecCumulativeLostPacketsNumber,
|
|
"fecDownloadBandwidth": fecDownloadBandwidth,
|
|
"fecRepairedPacketsNumber": fecRepairedPacketsNumber,
|
|
"fecUploadBandwidth": fecUploadBandwidth,
|
|
"iceState": iceState,
|
|
"jitterBufferSizeMs": jitterBufferSizeMs,
|
|
"latePacketsCumulativeNumber": latePacketsCumulativeNumber,
|
|
"localLateRate": localLateRate,
|
|
"localLossRate": localLossRate,
|
|
"receiverInterarrivalJitter": receiverInterarrivalJitter,
|
|
"receiverLossRate": receiverLossRate,
|
|
"roundTripDelay": roundTripDelay,
|
|
"rtcpDownloadBandwidth": rtcpDownloadBandwidth,
|
|
"rtcpUploadBandwidth": rtcpUploadBandwidth,
|
|
"rtpCumPacketLoss": rtpCumPacketLoss,
|
|
"rtpDiscarded": rtpDiscarded,
|
|
"rtpHwRecv": rtpHwRecv,
|
|
"rtpPacketRecv": rtpPacketRecv,
|
|
"rtpPacketSent": rtpPacketSent,
|
|
"rtpRecv": rtpRecv,
|
|
"rtpSent": rtpSent,
|
|
"senderInterarrivalJitter": senderInterarrivalJitter,
|
|
"senderLossRate": senderLossRate,
|
|
"srtpSource": srtpSource,
|
|
"srtpSuite": srtpSuite,
|
|
"uploadBandwidth": uploadBandwidth,
|
|
"upnpState": upnpState,
|
|
"zrtpAuthTagAlgo": zrtpAuthTagAlgo,
|
|
"zrtpCipherAlgo": zrtpCipherAlgo,
|
|
"zrtpHashAlgo": zrtpHashAlgo,
|
|
"zrtpKeyAgreementAlgo": zrtpKeyAgreementAlgo,
|
|
"zrtpSasAlgo": zrtpSasAlgo,
|
|
"isZrtpKeyAgreementAlgoPostQuantum": isZrtpKeyAgreementAlgoPostQuantum,
|
|
};
|
|
}
|
|
}
|