liblinphone 3.8.1

- Main Page
- Related Pages
- Modules
- Data Structures

Data Structures | Macros | Typedefs | Functions
Obtaining information about a running call: sound volumes, quality indicators

## Data Structures
struct | _LinphoneCallStats

## Macros
#define | LINPHONE_CALL_STATS_RECEIVED_RTCP_UPDATE (1 << 0)
#define | LINPHONE_CALL_STATS_SENT_RTCP_UPDATE (1 << 1)
#define | LINPHONE_CALL_STATS_PERIODICAL_UPDATE (1 << 2)
#define | LINPHONE_VOLUME_DB_LOWEST (-120)

## Typedefs
typedef struct _LinphoneCallStats | LinphoneCallStats

## Functions
float | linphone_call_get_play_volume (LinphoneCall *call)
float | linphone_call_get_record_volume (LinphoneCall *call)
float | linphone_call_get_current_quality (LinphoneCall *call)
float | linphone_call_get_average_quality (LinphoneCall *call)
const LinphoneCallStats * | linphone_call_get_audio_stats (LinphoneCall *call)
const LinphoneCallStats * | linphone_call_get_video_stats (LinphoneCall *call)
bool_t | linphone_call_media_in_progress (LinphoneCall *call)
float | linphone_call_stats_get_sender_loss_rate (const LinphoneCallStats *stats)
float | linphone_call_stats_get_receiver_loss_rate (const LinphoneCallStats *stats)
float | linphone_call_stats_get_sender_interarrival_jitter (const LinphoneCallStats *stats, LinphoneCall *call)
float | linphone_call_stats_get_receiver_interarrival_jitter (const LinphoneCallStats *stats, LinphoneCall *call)
uint64_t | linphone_call_stats_get_late_packets_cumulative_number (const LinphoneCallStats *stats, LinphoneCall *call)
float | linphone_call_stats_get_download_bandwidth (const LinphoneCallStats *stats)
float | linphone_call_stats_get_upload_bandwidth (const LinphoneCallStats *stats)
LinphoneIceState | linphone_call_stats_get_ice_state (const LinphoneCallStats *stats)
LinphoneUpnpState | linphone_call_stats_get_upnp_state (const LinphoneCallStats *stats)
void | linphone_call_start_recording (LinphoneCall *call)
void | linphone_call_stop_recording (LinphoneCall *call)

## Detailed Description

When a call is running, it is possible to retrieve in real time current measured volumes and quality indicator.

## Macro Definition Documentation

#define LINPHONE_CALL_STATS_RECEIVED_RTCP_UPDATE (1 << 0)

received_rtcp field of LinphoneCallStats object has been updated

#define LINPHONE_CALL_STATS_SENT_RTCP_UPDATE (1 << 1)

sent_rtcp field of LinphoneCallStats object has been updated

#define LINPHONE_CALL_STATS_PERIODICAL_UPDATE (1 << 2)

Every seconds LinphoneCallStats object has been updated

#define LINPHONE_VOLUME_DB_LOWEST (-120)

Lowest volume measurement that can be returned by linphone_call_get_play_volume() or linphone_call_get_record_volume(), corresponding to pure silence.

## Typedef Documentation

typedef struct _LinphoneCallStats LinphoneCallStats

The LinphoneCallStats objects carries various statistic informations regarding quality of audio or video streams.

To receive these informations periodically and as soon as they are computed, the application is invited to place a LinphoneCoreCallStatsUpdatedCb callback in the LinphoneCoreVTable structure it passes for instanciating the LinphoneCore object (see linphone_core_new() ).

At any time, the application can access last computed statistics using linphone_call_get_audio_stats() or linphone_call_get_video_stats().

## Function Documentation

float linphone_call_get_play_volume | ( | LinphoneCall * | call | ) |

Returns the measured sound volume played locally (received from remote). It is expressed in dbm0.

float linphone_call_get_record_volume | ( | LinphoneCall * | call | ) |

Returns the measured sound volume recorded locally (sent to remote). It is expressed in dbm0.

float linphone_call_get_current_quality | ( | LinphoneCall * | call | ) |

Obtain real-time quality rating of the call

Based on local RTP statistics and RTCP feedback, a quality rating is computed and updated during all the duration of the call. This function returns its value at the time of the function call. It is expected that the rating is updated at least every 5 seconds or so. The rating is a floating point number comprised between 0 and 5.

4-5 = good quality
3-4 = average quality
2-3 = poor quality
1-2 = very poor quality
0-1 = can't be worse, mostly unusable

Returns
  The function returns -1 if no quality measurement is available, for example if no active audio stream exist. Otherwise it returns the quality rating.

float linphone_call_get_average_quality | ( | LinphoneCall * | call | ) |

Returns call quality averaged over all the duration of the call.

See linphone_call_get_current_quality() for more details about quality measurement.

const LinphoneCallStats* linphone_call_get_audio_stats | ( | LinphoneCall * | call | ) |

Access last known statistics for audio stream, for a given call.

const LinphoneCallStats* linphone_call_get_video_stats | ( | LinphoneCall * | call | ) |

Access last known statistics for video stream, for a given call.

bool_t linphone_call_media_in_progress | ( | LinphoneCall * | call | ) |

Indicates whether an operation is in progress at the media side. It can a bad idea to initiate signaling operations (adding video, pausing the call, removing video, changing video parameters) while the media is busy in establishing the connection (typically ICE connectivity checks). It can result in failures generating loss of time in future operations in the call. Applications are invited to check this function after each call state change to decide whether certain operations are permitted or not.

Parameters

  call | the call

Returns
  TRUE if media is busy in establishing the connection, FALSE otherwise.

float linphone_call_stats_get_sender_loss_rate | ( | const LinphoneCallStats * | stats | ) |

Get the local loss rate since last report

Returns
  The sender loss rate

float linphone_call_stats_get_receiver_loss_rate | ( | const LinphoneCallStats * | stats | ) |

Gets the remote reported loss rate since last report

Returns
  The receiver loss rate

float linphone_call_stats_get_sender_interarrival_jitter | ( | const LinphoneCallStats * | stats,
|  | LinphoneCall * | call
| ) |  |

Gets the local interarrival jitter

Returns
  The interarrival jitter at last emitted sender report

float linphone_call_stats_get_receiver_interarrival_jitter | ( | const LinphoneCallStats * | stats,
|  | LinphoneCall * | call
| ) |  |

Gets the remote reported interarrival jitter

Returns
  The interarrival jitter at last received receiver report

uint64_t linphone_call_stats_get_late_packets_cumulative_number | ( | const LinphoneCallStats * | stats,
|  | LinphoneCall * | call
| ) |  |

Gets the cumulative number of late packets

Returns
  The cumulative number of late packets

float linphone_call_stats_get_download_bandwidth | ( | const LinphoneCallStats * | stats | ) |

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

Parameters

  [in] | stats | LinphoneCallStats object

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

float linphone_call_stats_get_upload_bandwidth | ( | const LinphoneCallStats * | stats | ) |

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

Parameters

  [in] | stats | LinphoneCallStats object

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

LinphoneIceState linphone_call_stats_get_ice_state | ( | const LinphoneCallStats * | stats | ) |

Get the state of ICE processing.

Parameters

  [in] | stats | LinphoneCallStats object

Returns
  The state of ICE processing.

LinphoneUpnpState linphone_call_stats_get_upnp_state | ( | const LinphoneCallStats * | stats | ) |

Get the state of uPnP processing.

Parameters

  [in] | stats | LinphoneCallStats object

Returns
  The state of uPnP processing.

void linphone_call_start_recording | ( | LinphoneCall * | call | ) |

Start call recording. The output file where audio is recorded must be previously specified with linphone_call_params_set_record_file().

void linphone_call_stop_recording | ( | LinphoneCall * | call | ) |

Stop call recording.