Package com.avaya.clientservices.call

## Class AudioDetails

- java.lang.Object
- - com.avaya.clientservices.call.AudioDetails

-     public class AudioDetails
      extends java.lang.Object

  Represents details of transmitted and received audio stream properties.

- - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `getAverageJitterLocalMillis()` | Average jitter buffer size (in milliseconds) the local end is experiencing on received RTP stream.
    `int` | `getAverageJitterRemoteMillis()` | Average jitter buffer size (in milliseconds) that the far-end is experiencing.
    `int` | `getBytesReceived()` | Total number of RTP payload bytes received.
    `int` | `getBytesTransmitted()` | Total number of RTP payload bytes transmitted.
    `java.lang.String` | `getCodec()` | The name of the codec that is being used for the audio session.
    `int` | `getCurrentAccelerateRate()` | Fraction of data removed through acceleration.
    `int` | `getCurrentBufferSize()` | Current jitter buffer size in milliseconds.
    `int` | `getCurrentDiscardRate()` | Percentage packet loss rate because of late packets.
    `int` | `getCurrentExpandRate()` | Fraction of synthesized speech frames inserted through expansion in total frame count in buffer.
    `int` | `getCurrentPacketLossRate()` | Percentage packet loss rate (network + late).
    `int` | `getCurrentPreemptiveRate()` | Fraction of synthesized speech frames inserted through pre-emptive expansion in total frame count in buffer.
    `MediaEncryptionType` | `getEncryptionType()` | Encryption type used for the audio session.
    `int` | `getFractionLostLocal()` | Fractional loss seen locally.
    `int` | `getFractionLostRemote()` | Fractional loss seen remotely which far end sends to local end through RTCP.
    `java.lang.String` | `getLocalIPAddress()` | Local IP address used to receive audio packets from the far-end.
    `int` | `getLocalPort()` | Local (RTP) receive port for the audio session (as per SDP offer/answer exchange).
    `int` | `getPacketizationMillis()` | The packetization interval in milliseconds.
    `int` | `getPacketsReceived()` | Total number of RTP packets received.
    `int` | `getPacketsTransmitted()` | Total number of RTP packets transmitted.
    `int` | `getPreferredBufferSize()` | Preferred (optimal) jitter buffer size in milliseconds.
    `java.lang.String` | `getRemoteIPAddress()` | Remote IP address used to send audio packets to the far-end.
    `int` | `getRemotePort()` | Remote (RTP) receive port for the audio session (as per SDP offer/answer exchange).
    `int` | `getRFC2833PayloadType()` | Payload type negotiated for telephony events (DTMF tones).
    `int` | `getRoundTripTimeMillis()` | The round-trip audio delay (in milliseconds) calculated as per RFC 3550.
    `boolean` | `isMediaProxied()` |
    `boolean` | `isMediaTunneled()` |
    `boolean` | `isRTCPEncrypted()` | RTCP encryption status for the audio session.
    `java.lang.String` | `toString()` |

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### getCodec

          public java.lang.String getCodec()

      The name of the codec that is being used for the audio session.
      Returns:
        the name of the codec that is being used for the audio session.

    - #### getPacketizationMillis

          public int getPacketizationMillis()

      The packetization interval in milliseconds. This represents the time duration of the audio data contained in each packet. It is retrieved from the ptime attribute from the SDP audio codec config.
      Returns:
        the packetization interval in milliseconds.

    - #### getRFC2833PayloadType

          public int getRFC2833PayloadType()

      Payload type negotiated for telephony events (DTMF tones).
      Returns:
        payload type negotiated for telephony events.

    - #### getLocalIPAddress

          public java.lang.String getLocalIPAddress()

      Local IP address used to receive audio packets from the far-end.
      Returns:
        local IP address used to receive audio packets from the far-end.

    - #### getRemoteIPAddress

          public java.lang.String getRemoteIPAddress()

      Remote IP address used to send audio packets to the far-end.
      Returns:
        remote IP address used to send audio packets to the far-end.

    - #### getLocalPort

          public int getLocalPort()

      Local (RTP) receive port for the audio session (as per SDP offer/answer exchange).
      Returns:
        local (RTP) receive port for the audio session.

    - #### getRemotePort

          public int getRemotePort()

      Remote (RTP) receive port for the audio session (as per SDP offer/answer exchange).
      Returns:
        remote (RTP) receive port for the audio session.

    - #### getEncryptionType

          public MediaEncryptionType getEncryptionType()

      Encryption type used for the audio session.
      Returns:
        encryption type used for the audio session.
      See Also:
        `MediaEncryptionType`

    - #### isMediaTunneled

          public boolean isMediaTunneled()

      Returns:
        Status indication for whether Audio tunneled or not.

    - #### isMediaProxied

          public boolean isMediaProxied()

      Returns:
        Status indication for whether Audio proxied or not.

    - #### isRTCPEncrypted

          public boolean isRTCPEncrypted()

      RTCP encryption status for the audio session. True if feedback RTCP packets are encrypted false otherwise. If it is true RTCP packets should be decripted before reading audio stream details.
      Returns:
        RTCP encryption status for the audio session.

    - #### getRoundTripTimeMillis

          public int getRoundTripTimeMillis()

      The round-trip audio delay (in milliseconds) calculated as per RFC 3550. This is the time required for an RTP packet to go from sender to receiver and back.
      Returns:
        the round-trip audio delay in milliseconds.

    - #### getPacketsTransmitted

          public int getPacketsTransmitted()

      Total number of RTP packets transmitted.
      Returns:
        total number of RTP packets transmitted.

    - #### getPacketsReceived

          public int getPacketsReceived()

      Total number of RTP packets received.
      Returns:
        total number of RTP packets received.

    - #### getBytesTransmitted

          public int getBytesTransmitted()

      Total number of RTP payload bytes transmitted.
      Returns:
        total number of RTP payload bytes transmitted.

    - #### getBytesReceived

          public int getBytesReceived()

      Total number of RTP payload bytes received.
      Returns:
        total number of RTP payload bytes received.

    - #### getFractionLostLocal

          public int getFractionLostLocal()

      Fractional loss seen locally. This is 8-bits size value. The fraction of RTP data packets from source lost since the previous SR or RR packet was sent, expressed as a fixed point number with the binary point at the left edge of the field. (That is equivalent to taking the integer part after multiplying the loss fraction by 256.) This fraction is defined to be the number of packets lost divided by the number of packets expected. If the loss is negative due to duplicates, the fraction lost is set to zero.
      Returns:
        fractional loss seen locally.

    - #### getFractionLostRemote

          public int getFractionLostRemote()

      Fractional loss seen remotely which far end sends to local end through RTCP. This is 8-bits size value. The fraction of RTP data packets from source lost since the previous SR or RR packet was sent, expressed as a fixed point number with the binary point at the left edge of the field. (That is equivalent to taking the integer part after multiplying the loss fraction by 256.) This fraction is defined to be the number of packets lost divided by the number of packets expected. If the loss is negative due to duplicates, the fraction lost is set to zero.
      Returns:
        fractional loss seen remotely which far end sends to local end through RTCP.

    - #### getAverageJitterLocalMillis

          public int getAverageJitterLocalMillis()

      Average jitter buffer size (in milliseconds) the local end is experiencing on received RTP stream. In VoIP, a jitter buffer is a shared data area where voice packets can be collected, stored, and sent to the voice processor in evenly spaced intervals. Variations in packet arrival time, called jitter, can occur because of network congestion, timing drift, or route changes. The jitter buffer, which is located at the receiving end of the voice connection, intentionally delays the arriving packets so that the end user experiences a clear connection with very little sound distortion.
      Returns:
        average jitter buffer size (in milliseconds) the local end is experiencing on received RTP stream.

    - #### getAverageJitterRemoteMillis

          public int getAverageJitterRemoteMillis()

      Average jitter buffer size (in milliseconds) that the far-end is experiencing. In VoIP, a jitter buffer is a shared data area where voice packets can be collected, stored, and sent to the voice processor in evenly spaced intervals. Variations in packet arrival time, called jitter, can occur because of network congestion, timing drift, or route changes. The jitter buffer, which is located at the receiving end of the voice connection, intentionally delays the arriving packets so that the end user experiences a clear connection with very little sound distortion.
      Returns:
        average jitter buffer size (in milliseconds) that the far-end is experiencing.

    - #### getCurrentBufferSize

          public int getCurrentBufferSize()

      Current jitter buffer size in milliseconds. In VoIP, a jitter buffer is a shared data area where voice packets can be collected, stored, and sent to the voice processor in evenly spaced intervals. Variations in packet arrival time, called jitter, can occur because of network congestion, timing drift, or route changes. The jitter buffer, which is located at the receiving end of the voice connection, intentionally delays the arriving packets so that the end user experiences a clear connection with very little sound distortion.
      Returns:
        current jitter buffer size in milliseconds.

    - #### getPreferredBufferSize

          public int getPreferredBufferSize()

      Preferred (optimal) jitter buffer size in milliseconds. In VoIP, a jitter buffer is a shared data area where voice packets can be collected, stored, and sent to the voice processor in evenly spaced intervals. Variations in packet arrival time, called jitter, can occur because of network congestion, timing drift, or route changes. The jitter buffer, which is located at the receiving end of the voice connection, intentionally delays the arriving packets so that the end user experiences a clear connection with very little sound distortion.
      Returns:
        preferred jitter buffer size in milliseconds.

    - #### getCurrentPacketLossRate

          public int getCurrentPacketLossRate()

      Percentage packet loss rate (network + late).
      Returns:
        current packet loss rate in percents.

    - #### getCurrentDiscardRate

          public int getCurrentDiscardRate()

      Percentage packet loss rate because of late packets.
      Returns:
        current discard rate in percents.

    - #### getCurrentExpandRate

          public int getCurrentExpandRate()

      Fraction of synthesized speech frames inserted through expansion in total frame count in buffer. In case of a starved jitter buffer synthesized speech frames will be added. This process is called "expand".
      Returns:
        current expand rate.

    - #### getCurrentPreemptiveRate

          public int getCurrentPreemptiveRate()

      Fraction of synthesized speech frames inserted through pre-emptive expansion in total frame count in buffer. In case of a shallow jitter buffer synthesized speech frames will be added. This process is called "pre-emptive expand" and based on previous frames.
      Returns:
        current pre-emptive rate.

    - #### getCurrentAccelerateRate

          public int getCurrentAccelerateRate()

      Fraction of data removed through acceleration. In case of a full jitter buffer speech frames will be deleted. This process is called "acceleration".
      Returns:
        current accelerate rate.

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`