Package org.linphone.core

# Interface CallStats

public interface CallStats
This object carry various statistic informations regarding the quality of an
audio or video stream for a given `Call`.
To receive these informations periodically and as soon as they are computed,
implement the call_stats_updated() callback inside a `CoreListener`.
At any time, the application can access latest computed statistics using `Call.getAudioStats()`
and `Call.getVideoStats()`.

## Method Summary

Modifier and Type
Method
Description
`float`
`getDownloadBandwidth()`
Get the bandwidth measurement of the received stream, expressed in kbit/s,
including IP/UDP/RTP headers.
`float`
`getEstimatedDownloadBandwidth()`
Get the estimated bandwidth measurement of the received stream, expressed in
kbit/s, including IP/UDP/RTP headers.
`int`
`getFecCumulativeLostPacketsNumber()`
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.
`float`
`getFecDownloadBandwidth()`
Get the bandwidth measurement of the part of the received stream dedicated to
FEC, expressed in kbit/s, including IP/UDP/RTP headers.
`int`
`getFecRepairedPacketsNumber()`
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.
`float`
`getFecUploadBandwidth()`
Get the bandwidth measurement of the part of the sent stream dedicated to FEC,
expressed in kbit/s, including IP/UDP/RTP headers.
`IceState`
`getIceState()`
Get the state of ICE processing.
`Address.Family`
`getIpFamilyOfRemote()`
Get the IP address family of the remote peer.
`float`
`getJitterBufferSizeMs()`
Get the jitter buffer size in ms.
`int`
`getLatePacketsCumulativeNumber()`
Gets the cumulative number of late packets.
`float`
`getLocalLateRate()`
Gets the local late rate since last report, expressed as a percentage.
`float`
`getLocalLossRate()`
Get the local loss rate since last report, expressed as a percentage.
`long`
`getNativePointer()`
Gets the native pointer used by this class to make native method calls.
`float`
`getReceiverInterarrivalJitter()`
Gets the remote reported interarrival jitter, expressed in seconds.
`float`
`getReceiverLossRate()`
Gets the remote reported loss rate since last report, expressed as a
percentage.
`float`
`getRoundTripDelay()`
Get the round trip delay in s.
`float`
`getRtcpDownloadBandwidth()`
Get the bandwidth measurement of the received RTCP, expressed in kbit/s,
including IP/UDP/RTP headers.
`float`
`getRtcpUploadBandwidth()`
Get the bandwidth measurement of the sent RTCP, expressed in kbit/s, including
IP/UDP/RTP headers.
`float`
`getSenderInterarrivalJitter()`
Gets the local interarrival jitter, expressed in seconds.
`float`
`getSenderLossRate()`
Get the local loss rate since last report, expressed as a percentage.
`MediaEncryption`
`getSrtpSource()`
Get the method used for SRTP key exchange.
`SrtpSuite`
`getSrtpSuite()`
Get the SRTP Cryto suite in use.
`StreamType`
`getType()`
Get the type of the stream the stats refer to.
`float`
`getUploadBandwidth()`
Get the bandwidth measurement of the sent stream, expressed in kbit/s,
including IP/UDP/RTP headers.
`UpnpState`
`getUpnpState()`
Get the state of uPnP processing.
`Object`
`getUserData()`
Gets the object stored in this object user's data
`String`
`getZrtpAuthTagAlgo()`
Get the ZRTP algorithm statistics details (authentication method)
`String`
`getZrtpCipherAlgo()`
Get the ZRTP algorithm statistics details (cipher)
`String`
`getZrtpHashAlgo()`
Get the ZRTP algorithm statistics details (hash function)
`String`
`getZrtpKeyAgreementAlgo()`
Get the ZRTP algorithm statistics details (key agreeement)
`String`
`getZrtpSasAlgo()`
Get the ZRTP algorithm statistics details (SAS display)
`boolean`
`isZrtpKeyAgreementAlgoPostQuantum()`
Did ZRTP used a Post Quantum algorithm to perform a key exchange.
`void`
`setUserData(Object data)`
Sets the object to store in this object user's data
`String`
`toString()`

## Method Details

### getDownloadBandwidth

float getDownloadBandwidth()
Get the bandwidth measurement of the received stream, expressed in kbit/s,
including IP/UDP/RTP headers.

Returns:
  The bandwidth measurement of the received stream in kbit/s.

### getEstimatedDownloadBandwidth

float getEstimatedDownloadBandwidth()
Get the estimated bandwidth measurement of the received stream, expressed in
kbit/s, including IP/UDP/RTP headers.

Returns:
  The estimated bandwidth measurement of the received stream in kbit/s.

### getFecCumulativeLostPacketsNumber

int getFecCumulativeLostPacketsNumber()
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.

Returns:
  The cumulative number of lost packets

### getFecDownloadBandwidth

float getFecDownloadBandwidth()
Get the bandwidth measurement of the part of the received stream dedicated to
FEC, expressed in kbit/s, including IP/UDP/RTP headers.

Returns:
  The bandwidth measurement of the received FEC stream in kbit/s.

### getFecRepairedPacketsNumber

int getFecRepairedPacketsNumber()
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.

Returns:
  The cumulative number of repaired packets

### getFecUploadBandwidth

float getFecUploadBandwidth()
Get the bandwidth measurement of the part of the sent stream dedicated to FEC,
expressed in kbit/s, including IP/UDP/RTP headers.

Returns:
  The bandwidth measurement of the sent stream in kbit/s.

### getIceState

IceState getIceState()
Get the state of ICE processing.

Returns:
  The `IceState` of ICE processing

### getIpFamilyOfRemote

Address.Family getIpFamilyOfRemote()
Get the IP address family of the remote peer.

Returns:
  The IP address family
  invalid reference

      Address#Family

  of the remote peer.

### isZrtpKeyAgreementAlgoPostQuantum

boolean isZrtpKeyAgreementAlgoPostQuantum()
Did ZRTP used a Post Quantum algorithm to perform a key exchange.

Returns:
  true if the ZRTP key exchange was performed using a PQ algo false
  otherwise: ZRTP exchange not completed or not using a PQ algo

### getJitterBufferSizeMs

float getJitterBufferSizeMs()
Get the jitter buffer size in ms.

Returns:
  The jitter buffer size in ms.

### getLatePacketsCumulativeNumber

int getLatePacketsCumulativeNumber()
Gets the cumulative number of late packets.

Returns:
  The cumulative number of late packets

### getLocalLateRate

float getLocalLateRate()
Gets the local late rate since last report, expressed as a percentage.

Returns:
  The local late rate

### getLocalLossRate

float getLocalLossRate()
Get the local loss rate since last report, expressed as a percentage.

Returns:
  The local loss rate

### getReceiverInterarrivalJitter

float getReceiverInterarrivalJitter()
Gets the remote reported interarrival jitter, expressed in seconds.

Returns:
  The interarrival jitter at last received receiver report

### getReceiverLossRate

float getReceiverLossRate()
Gets the remote reported loss rate since last report, expressed as a
percentage.

Returns:
  The receiver loss rate

### getRoundTripDelay

float getRoundTripDelay()
Get the round trip delay in s.

Returns:
  The round trip delay in s.

### getRtcpDownloadBandwidth

float getRtcpDownloadBandwidth()
Get the bandwidth measurement of the received RTCP, expressed in kbit/s,
including IP/UDP/RTP headers.

Returns:
  The bandwidth measurement of the received RTCP in kbit/s.

### getRtcpUploadBandwidth

float getRtcpUploadBandwidth()
Get the bandwidth measurement of the sent RTCP, expressed in kbit/s, including
IP/UDP/RTP headers.

Returns:
  The bandwidth measurement of the sent RTCP in kbit/s.

### getSenderInterarrivalJitter

float getSenderInterarrivalJitter()
Gets the local interarrival jitter, expressed in seconds.

Returns:
  The interarrival jitter at last emitted sender report

### getSenderLossRate

float getSenderLossRate()
Get the local loss rate since last report, expressed as a percentage.

Returns:
  The sender loss rate

### getSrtpSource

MediaEncryption getSrtpSource()
Get the method used for SRTP key exchange.

Returns:
  The `MediaEncryption` method used to exchange the SRTP keys

### getSrtpSuite

SrtpSuite getSrtpSuite()
Get the SRTP Cryto suite in use.

Returns:
  The SRTP crypto suite currently in use `SrtpSuite`

### getType

StreamType getType()
Get the type of the stream the stats refer to.

Returns:
  The `StreamType` the stats refer to

### getUploadBandwidth

float getUploadBandwidth()
Get the bandwidth measurement of the sent stream, expressed in kbit/s,
including IP/UDP/RTP headers.

Returns:
  The bandwidth measurement of the sent stream in kbit/s.

### getUpnpState

UpnpState getUpnpState()
Get the state of uPnP processing.

Returns:
  The `UpnpState` of uPnP processing.

### getZrtpAuthTagAlgo

String getZrtpAuthTagAlgo()
Get the ZRTP algorithm statistics details (authentication method)

Returns:
  The auth tag algo

### getZrtpCipherAlgo

String getZrtpCipherAlgo()
Get the ZRTP algorithm statistics details (cipher)

Returns:
  The cipher algo

### getZrtpHashAlgo

String getZrtpHashAlgo()
Get the ZRTP algorithm statistics details (hash function)

Returns:
  The hash algo

### getZrtpKeyAgreementAlgo

String getZrtpKeyAgreementAlgo()
Get the ZRTP algorithm statistics details (key agreeement)

Returns:
  The key agreement algo

### getZrtpSasAlgo

String getZrtpSasAlgo()
Get the ZRTP algorithm statistics details (SAS display)

Returns:
  The sas algo

### setUserData

void setUserData(Object data)
Sets the object to store in this object user's data

Parameters:
  `data` - the object to store

### getUserData

Object getUserData()
Gets the object stored in this object user's data

Returns:
  the object store if any, null otherwise

### getNativePointer

long getNativePointer()
Gets the native pointer used by this class to make native method calls.

Returns:
  the nativer pointer, as long

### toString

String toString()

Overrides:
  `toString` in class `Object`