Liblinphone  5.4.0
Macros | Typedefs | Enumerations | Functions
Call misc

Obtaining information about a running call: sound volumes, quality indicators. More...

Macros

#define LINPHONE_VOLUME_DB_LOWEST   (-120) /* WARNING: keep this in sync with mediastreamer2/msvolume.h */
 Lowest volume measurement that can be returned by linphone_call_get_play_volume() or linphone_call_get_record_volume(), corresponding to pure silence.
 
#define LINPHONE_CALL_STATS_AUDIO   ((int)LinphoneStreamTypeAudio)
 
#define LINPHONE_CALL_STATS_VIDEO   ((int)LinphoneStreamTypeVideo)
 
#define LINPHONE_CALL_STATS_TEXT   ((int)LinphoneStreamTypeText)
 
#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.
 

Typedefs

typedef enum _LinphoneSupportLevel LinphoneSupportLevel
 
typedef struct _LinphoneCallStats LinphoneCallStats
 This object carry various statistic informations regarding the quality of an audio or video stream for a given LinphoneCall. More...
 

Enumerations

enum  _LinphoneSupportLevel {
  LinphoneSupportLevelNoSupport = 0,
  LinphoneSupportLevelOptional = 1,
  LinphoneSupportLevelMandatory = 2
}
 

Functions

LinphoneStreamType linphone_call_stats_get_type (const LinphoneCallStats *stats)
 Get the type of the stream the stats refer to. More...
 
float linphone_call_stats_get_sender_loss_rate (const LinphoneCallStats *stats)
 Get the local loss rate since last report, expressed as a percentage. More...
 
float linphone_call_stats_get_receiver_loss_rate (const LinphoneCallStats *stats)
 Gets the remote reported loss rate since last report, expressed as a percentage. More...
 
float linphone_call_stats_get_local_loss_rate (const LinphoneCallStats *stats)
 Get the local loss rate since last report, expressed as a percentage. More...
 
float linphone_call_stats_get_local_late_rate (const LinphoneCallStats *stats)
 Gets the local late rate since last report, expressed as a percentage. More...
 
float linphone_call_stats_get_sender_interarrival_jitter (const LinphoneCallStats *stats)
 Gets the local interarrival jitter, expressed in seconds. More...
 
float linphone_call_stats_get_receiver_interarrival_jitter (const LinphoneCallStats *stats)
 Gets the remote reported interarrival jitter, expressed in seconds. More...
 
const rtp_stats_t * linphone_call_stats_get_rtp_stats (const LinphoneCallStats *stats)
 
uint64_t linphone_call_stats_get_late_packets_cumulative_number (const LinphoneCallStats *stats)
 Gets the cumulative number of late packets. More...
 
uint64_t linphone_call_stats_get_fec_cumulative_lost_packets_number (const LinphoneCallStats *stats)
 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. More...
 
uint64_t linphone_call_stats_get_fec_repaired_packets_number (const LinphoneCallStats *stats)
 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. More...
 
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. More...
 
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. More...
 
float linphone_call_stats_get_fec_download_bandwidth (const LinphoneCallStats *stats)
 Get the bandwidth measurement of the part of the received stream dedicated to FEC, expressed in kbit/s, including IP/UDP/RTP headers. More...
 
float linphone_call_stats_get_fec_upload_bandwidth (const LinphoneCallStats *stats)
 Get the bandwidth measurement of the part of the sent stream dedicated to FEC, expressed in kbit/s, including IP/UDP/RTP headers. More...
 
float linphone_call_stats_get_rtcp_download_bandwidth (const LinphoneCallStats *stats)
 Get the bandwidth measurement of the received RTCP, expressed in kbit/s, including IP/UDP/RTP headers. More...
 
float linphone_call_stats_get_rtcp_upload_bandwidth (const LinphoneCallStats *stats)
 Get the bandwidth measurement of the sent RTCP, expressed in kbit/s, including IP/UDP/RTP headers. More...
 
LinphoneIceState linphone_call_stats_get_ice_state (const LinphoneCallStats *stats)
 Get the state of ICE processing. More...
 
LinphoneUpnpState linphone_call_stats_get_upnp_state (const LinphoneCallStats *stats)
 Get the state of uPnP processing. More...
 
LinphoneAddressFamily linphone_call_stats_get_ip_family_of_remote (const LinphoneCallStats *stats)
 Get the IP address family of the remote peer. More...
 
float linphone_call_stats_get_jitter_buffer_size_ms (const LinphoneCallStats *stats)
 Get the jitter buffer size in ms. More...
 
float linphone_call_stats_get_round_trip_delay (const LinphoneCallStats *stats)
 Get the round trip delay in s. More...
 
float linphone_call_stats_get_estimated_download_bandwidth (const LinphoneCallStats *stats)
 Get the estimated bandwidth measurement of the received stream, expressed in kbit/s, including IP/UDP/RTP headers. More...
 
void linphone_call_stats_set_estimated_download_bandwidth (LinphoneCallStats *stats, float estimated_value)
 
const char * linphone_call_stats_get_zrtp_cipher_algo (const LinphoneCallStats *stats)
 Get the ZRTP algorithm statistics details (cipher) More...
 
const char * linphone_call_stats_get_zrtp_key_agreement_algo (const LinphoneCallStats *stats)
 Get the ZRTP algorithm statistics details (key agreeement) More...
 
bool_t linphone_call_stats_is_zrtp_key_agreement_algo_post_quantum (const LinphoneCallStats *stats)
 Did ZRTP used a Post Quantum algorithm to perform a key exchange. More...
 
const char * linphone_call_stats_get_zrtp_hash_algo (const LinphoneCallStats *stats)
 Get the ZRTP algorithm statistics details (hash function) More...
 
const char * linphone_call_stats_get_zrtp_auth_tag_algo (const LinphoneCallStats *stats)
 Get the ZRTP algorithm statistics details (authentication method) More...
 
const char * linphone_call_stats_get_zrtp_sas_algo (const LinphoneCallStats *stats)
 Get the ZRTP algorithm statistics details (SAS display) More...
 
LinphoneSrtpSuite linphone_call_stats_get_srtp_suite (const LinphoneCallStats *stats)
 Get the SRTP Cryto suite in use. More...
 
LinphoneMediaEncryption linphone_call_stats_get_srtp_source (const LinphoneCallStats *stats)
 Get the method used for SRTP key exchange. More...
 
uint64_t linphone_call_stats_get_rtp_packet_sent (const LinphoneCallStats *stats)
 Get the number of RTP outgoing packets. More...
 
uint64_t linphone_call_stats_get_rtp_packet_recv (const LinphoneCallStats *stats)
 Get the number of RTP received packets. More...
 
uint64_t linphone_call_stats_get_rtp_sent (const LinphoneCallStats *stats)
 Get the RTP outgoing sent_bytes (excluding IP header) More...
 
uint64_t linphone_call_stats_get_rtp_recv (const LinphoneCallStats *stats)
 Get the RTP incoming recv_bytes of payload and delivered in time to the application. More...
 
uint64_t linphone_call_stats_get_rtp_hw_recv (const LinphoneCallStats *stats)
 Get the number of received bytes excluding IPv4/IPv6/UDP headers and including late and duplicate packets. More...
 
int64_t linphone_call_stats_get_rtp_cum_packet_loss (const LinphoneCallStats *stats)
 Get the RTP cumulative number of incoming packet lost. More...
 
uint64_t linphone_call_stats_get_rtp_discarded (const LinphoneCallStats *stats)
 Get the RTP incoming packets discarded because the queue exceeds its max size. More...
 
LinphoneChatRoomlinphone_call_get_chat_room (LinphoneCall *call)
 Obtain a chat room for real time messaging from a call if not already existing, else return existing one. More...
 
float linphone_call_get_play_volume (const LinphoneCall *call)
 Gets the mesured playback volume level (received from remote) in dbm0. More...
 
float linphone_call_get_record_volume (const LinphoneCall *call)
 Gets the mesured record volume level (sent to remote) in dbm0. More...
 
float linphone_call_get_speaker_volume_gain (const LinphoneCall *call)
 Gets speaker volume gain. More...
 
void linphone_call_set_speaker_volume_gain (LinphoneCall *call, float volume)
 Sets speaker volume gain. More...
 
float linphone_call_get_microphone_volume_gain (const LinphoneCall *call)
 Gets microphone volume gain. More...
 
void linphone_call_set_microphone_volume_gain (LinphoneCall *call, float volume)
 Sets microphone volume gain. More...
 
bool_t linphone_call_get_speaker_muted (const LinphoneCall *call)
 Gets speaker muted state. More...
 
void linphone_call_set_speaker_muted (LinphoneCall *call, bool_t muted)
 Sets speaker muted state. More...
 
bool_t linphone_call_get_microphone_muted (const LinphoneCall *call)
 Gets microphone muted state. More...
 
void linphone_call_set_microphone_muted (LinphoneCall *call, bool_t muted)
 Sets microphone muted state. More...
 
float linphone_call_get_current_quality (const LinphoneCall *call)
 Obtains real-time quality rating of the call. More...
 
float linphone_call_get_average_quality (const LinphoneCall *call)
 Returns call quality averaged over all the duration of the call. More...
 
void linphone_call_start_recording (LinphoneCall *call)
 Starts call recording. More...
 
void linphone_call_stop_recording (LinphoneCall *call)
 Stops call recording. More...
 
LinphonePlayerlinphone_call_get_player (LinphoneCall *call)
 Gets a player associated with the call to play a local file and stream it to the remote peer. More...
 
bool_t linphone_call_media_in_progress (const LinphoneCall *call)
 Indicates whether an operation is in progress at the media side. More...
 
void linphone_call_ogl_render (const LinphoneCall *call)
 Calls generic OpenGL render for a given call. More...
 
const char * linphone_call_get_local_tag (const LinphoneCall *call)
 Returns the local tag of the LinphoneCall. More...
 
const char * linphone_call_get_remote_tag (const LinphoneCall *call)
 Returns the remote tag of the LinphoneCall. More...
 
LinphoneStatus linphone_call_send_info_message (LinphoneCall *call, const LinphoneInfoMessage *info)
 Sends an info message through an established call. More...
 
LinphoneCallStatslinphone_call_get_stats (LinphoneCall *call, LinphoneStreamType type)
 Returns a copy of the call statistics for a particular stream type. More...
 
LinphoneCallStatslinphone_call_get_audio_stats (LinphoneCall *call)
 Returns a copy of the call statistics for the audio stream. More...
 
LinphoneCallStatslinphone_call_get_video_stats (LinphoneCall *call)
 Returns a copy of the call statistics for the video stream. More...
 
LinphoneCallStatslinphone_call_get_text_stats (LinphoneCall *call)
 Returns a copy of the call statistics for the text stream. More...
 
void linphone_call_add_callbacks (LinphoneCall *call, LinphoneCallCbs *cbs)
 Adds a listener in order to be notified of LinphoneCall events. More...
 
void linphone_call_remove_callbacks (LinphoneCall *call, LinphoneCallCbs *cbs)
 Removes a listener from a LinphoneCall. More...
 
LinphoneCallCbslinphone_call_get_current_callbacks (const LinphoneCall *call)
 Gets the currently invoked LinphoneCallCbs if any. More...
 
void linphone_call_set_params (LinphoneCall *call, const LinphoneCallParams *params)
 Sets call parameters - advanced and not recommended feature - use with caution. More...
 
const LinphoneCallParamslinphone_call_get_params (const LinphoneCall *call)
 Returns read-only local parameters associated with the call. More...
 
void linphone_call_set_input_audio_device (LinphoneCall *call, LinphoneAudioDevice *audio_device)
 Sets the given LinphoneAudioDevice as input for this call only. More...
 
void linphone_call_set_output_audio_device (LinphoneCall *call, LinphoneAudioDevice *audio_device)
 Sets the given LinphoneAudioDevice as output for this call only. More...
 
const LinphoneAudioDevicelinphone_call_get_input_audio_device (const LinphoneCall *call)
 Gets the current input device for this call. More...
 
const LinphoneAudioDevicelinphone_call_get_output_audio_device (const LinphoneCall *call)
 Gets the current output device for this call. More...
 
void linphone_call_notify_ringing (LinphoneCall *call)
 Starts the process of replying 180 Ringing. More...
 
void linphone_call_set_video_source (LinphoneCall *call, const LinphoneVideoSourceDescriptor *descriptor)
 Sets the video source of a call. More...
 
const LinphoneVideoSourceDescriptorlinphone_call_get_video_source (const LinphoneCall *call)
 Gets the video source of a call. More...
 
void linphone_call_confirm_go_clear (const LinphoneCall *call)
 Method to be called after the user confirm that he/she is notifed of the on going Go Clear procedure. More...
 
void linphone_call_accept_transfer (LinphoneCall *call)
 Accepts and execute a transfer (ie an incoming REFER request), to use when [sip] 'auto_accept_refer' property is false. More...
 
LinphoneEventlinphone_call_create_notify (LinphoneCall *call, const char *event)
 Create a LinphoneEvent in order to send NOTIFY requests through the SIP dialog created by the call. More...
 
void linphone_call_enable_baudot_detection (LinphoneCall *call, bool_t enabled)
 Indicates whether received Baudot tones should be detected. More...
 
void linphone_call_set_baudot_mode (LinphoneCall *call, LinphoneBaudotMode mode)
 Defines the Baudot mode for the call. More...
 
void linphone_call_set_baudot_sending_standard (LinphoneCall *call, LinphoneBaudotStandard standard)
 Defines the Baudot standard to use for sending Baudot tones in the call. More...
 
void linphone_call_set_baudot_pause_timeout (LinphoneCall *call, uint8_t seconds)
 Set the Baudot significant pause timeout after which a LETTERS tone is retransmitted before resuming transmission (in seconds). More...
 
LinphoneStatus linphone_call_redirect (LinphoneCall *call, const char *redirect_uri)
 Redirect the specified call to the given redirect URI. More...
 
LinphoneStatus linphone_call_transfer (LinphoneCall *call, const char *refer_to)
 Performs a simple call transfer to the specified destination. More...
 
MS2_DEPRECATED char * linphone_call_get_remote_address_as_string (const LinphoneCall *call)
 Returns the remote address associated to this call as a string. More...
 
MS2_DEPRECATED void linphone_call_set_next_video_frame_decoded_callback (LinphoneCall *call, LinphoneCallCbFunc cb, void *user_data)
 
MS2_DEPRECATED void linphone_call_zoom_video (LinphoneCall *call, float zoom_factor, float *cx, float *cy)
 Perform a zoom of the video displayed during a call. More...
 
MS2_DEPRECATED bool_t linphone_call_is_in_conference (const LinphoneCall *call)
 Return TRUE if this call is currently part of a conference. More...
 
MS2_DEPRECATED bool_t linphone_call_is_recording (LinphoneCall *call)
 Returns whether or not the call is currently being recorded. More...
 

Detailed Description

Obtaining information about a running call: sound volumes, quality indicators.

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

Typedef Documentation

◆ LinphoneCallStats

typedef struct _LinphoneCallStats LinphoneCallStats

This object carry various statistic informations regarding the quality of an audio or video stream for a given LinphoneCall.

To receive these informations periodically and as soon as they are computed, implement the call_stats_updated() callback inside a LinphoneCoreCbs.

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

Enumeration Type Documentation

◆ _LinphoneSupportLevel

Enumerator
LinphoneSupportLevelNoSupport 

No support for the feature.

LinphoneSupportLevelOptional 

Optional support for the feature.

LinphoneSupportLevelMandatory 

Mandatory support for the feature.

Function Documentation

◆ linphone_call_accept_transfer()

void linphone_call_accept_transfer ( LinphoneCall call)

Accepts and execute a transfer (ie an incoming REFER request), to use when [sip] 'auto_accept_refer' property is false.

Default behaviour is to accept and execute the transfer automatically.

Parameters
callThe LinphoneCall to be transferred

◆ linphone_call_add_callbacks()

void linphone_call_add_callbacks ( LinphoneCall call,
LinphoneCallCbs cbs 
)

Adds a listener in order to be notified of LinphoneCall events.

Once an event is received, registred LinphoneCallCbs are invoked sequencially.

Parameters
callLinphoneCall object. to monitor.
cbsA LinphoneCallCbs object holding the callbacks you need. A reference is taken by the LinphoneCall until you invoke linphone_call_remove_callbacks().

◆ linphone_call_confirm_go_clear()

void linphone_call_confirm_go_clear ( const LinphoneCall call)

Method to be called after the user confirm that he/she is notifed of the on going Go Clear procedure.

Warning
this operation must be imperatevely initiate by a user action on sending of the GoClear ACK
Parameters
callThe LinphoneCall

◆ linphone_call_create_notify()

LinphoneEvent* linphone_call_create_notify ( LinphoneCall call,
const char *  event 
)

Create a LinphoneEvent in order to send NOTIFY requests through the SIP dialog created by the call.

The call state must have passed through LinphoneCallStateConnected.

Parameters
callThe LinphoneCall object
eventThe event type to be notified.
Returns
a new LinphoneEvent

◆ linphone_call_enable_baudot_detection()

void linphone_call_enable_baudot_detection ( LinphoneCall call,
bool_t  enabled 
)

Indicates whether received Baudot tones should be detected.

The Baudot functionality is to be enabled first by calling linphone_core_enable_baudot().

Parameters
callLinphoneCall object.
enabledwether or not to detect received Baudot tones.

◆ linphone_call_get_audio_stats()

LinphoneCallStats* linphone_call_get_audio_stats ( LinphoneCall call)

Returns a copy of the call statistics for the audio stream.

Parameters
callthe LinphoneCall
Returns
a LinphoneCallStats object for the audio stream or NULL if it isn't available.

◆ linphone_call_get_average_quality()

float linphone_call_get_average_quality ( const 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.

Parameters
callThe LinphoneCall object.
Returns
the call average quality since tbe beginning of the call.

◆ linphone_call_get_chat_room()

LinphoneChatRoom* linphone_call_get_chat_room ( LinphoneCall call)

Obtain a chat room for real time messaging from a call if not already existing, else return existing one.

No reference is given to the caller: the chat room will be deleted when the call is ended. The call must have been accepted with a real time text stream (see linphone_call_params_enable_realtime_text()).

Parameters
callLinphoneCall object
Returns
LinphoneChatRoom where real time messaging can take place or NULL if chat room couldn't be created.

◆ linphone_call_get_current_callbacks()

LinphoneCallCbs* linphone_call_get_current_callbacks ( const LinphoneCall call)

Gets the currently invoked LinphoneCallCbs if any.

This is meant only to be called from a callback to be able to get the user_data associated with the LinphoneCallCbs that is calling the callback.

Parameters
callLinphoneCall object.
Returns
The LinphoneCallCbs that has called the last callback

◆ linphone_call_get_current_quality()

float linphone_call_get_current_quality ( const LinphoneCall call)

Obtains 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

Parameters
callThe LinphoneCall object.
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.

◆ linphone_call_get_input_audio_device()

const LinphoneAudioDevice* linphone_call_get_input_audio_device ( const LinphoneCall call)

Gets the current input device for this call.

Parameters
callThe LinphoneCall
Returns
the LinphoneAudioDevice used by this call as input or NULL if there is currently no soundcard configured (depending on the state of the call)

◆ linphone_call_get_local_tag()

const char* linphone_call_get_local_tag ( const LinphoneCall call)

Returns the local tag of the LinphoneCall.

Parameters
callThe LinphoneCall object
Returns
the local tag.

◆ linphone_call_get_microphone_muted()

bool_t linphone_call_get_microphone_muted ( const LinphoneCall call)

Gets microphone muted state.

Note that the microphone may be disabled globally if FALSE was given to linphone_core_enable_mic().

Parameters
callThe LinphoneCall object.
Returns
The microphone muted state.
Warning
This method returns state of the mute capability of the call passed as argument. If this call is part of a conference, it is strongly recommended to call linphone_conference_get_microphone_muted() to know whether this device is muted or not.

◆ linphone_call_get_microphone_volume_gain()

float linphone_call_get_microphone_volume_gain ( const LinphoneCall call)

Gets microphone volume gain.

If the sound backend supports it, the returned gain is equal to the gain set with the system mixer.

Parameters
callThe LinphoneCall object.
Returns
double Percentage of the max supported volume gain. Valid values are in [ 0.0 : 1.0 ]. In case of failure, a negative value is returned

◆ linphone_call_get_output_audio_device()

const LinphoneAudioDevice* linphone_call_get_output_audio_device ( const LinphoneCall call)

Gets the current output device for this call.

Parameters
callThe LinphoneCall
Returns
the LinphoneAudioDevice used by this call as output or NULL if there is currently no soundcard configured (depending on the state of the call)

◆ linphone_call_get_params()

const LinphoneCallParams* linphone_call_get_params ( const LinphoneCall call)

Returns read-only local parameters associated with the call.

This is typically the parameters passed at call initiation to linphone_core_invite_address_with_params() or linphone_call_accept_with_params(), or some default parameters if no LinphoneCallParams was explicitely passed during call initiation.

Parameters
callthe LinphoneCall object
Returns
the call's local parameters.

◆ linphone_call_get_play_volume()

float linphone_call_get_play_volume ( const LinphoneCall call)

Gets the mesured playback volume level (received from remote) in dbm0.

Parameters
callThe call.
Returns
float Volume level in percentage.

◆ linphone_call_get_player()

LinphonePlayer* linphone_call_get_player ( LinphoneCall call)

Gets a player associated with the call to play a local file and stream it to the remote peer.

Parameters
callLinphoneCall object.
Returns
A LinphonePlayer object.

◆ linphone_call_get_record_volume()

float linphone_call_get_record_volume ( const LinphoneCall call)

Gets the mesured record volume level (sent to remote) in dbm0.

Parameters
callThe call.
Returns
float Volume level in percentage.

◆ linphone_call_get_remote_address_as_string()

MS2_DEPRECATED char* linphone_call_get_remote_address_as_string ( const LinphoneCall call)

Returns the remote address associated to this call as a string.

The result string must be freed by user using ms_free().

Parameters
callLinphoneCall object.
Returns
the remote address as a string.
Deprecated:
06/07/2020 use linphone_call_get_remote_address() instead.

◆ linphone_call_get_remote_tag()

const char* linphone_call_get_remote_tag ( const LinphoneCall call)

Returns the remote tag of the LinphoneCall.

Parameters
callThe LinphoneCall object
Returns
the remote tag.

◆ linphone_call_get_speaker_muted()

bool_t linphone_call_get_speaker_muted ( const LinphoneCall call)

Gets speaker muted state.

Parameters
callThe LinphoneCall object.
Returns
The speaker muted state.

◆ linphone_call_get_speaker_volume_gain()

float linphone_call_get_speaker_volume_gain ( const LinphoneCall call)

Gets speaker volume gain.

If the sound backend supports it, the returned gain is equal to the gain set with the system mixer.

Parameters
callThe call.
Returns
Percentage of the max supported volume gain. Valid values are in [ 0.0 : 1.0 ]. In case of failure, a negative value is returned

◆ linphone_call_get_stats()

LinphoneCallStats* linphone_call_get_stats ( LinphoneCall call,
LinphoneStreamType  type 
)

Returns a copy of the call statistics for a particular stream type.

Parameters
callthe LinphoneCall
typethe LinphoneStreamType
Returns
a LinphoneCallStats object for the given stream or NULL if stream isn't available.

◆ linphone_call_get_text_stats()

LinphoneCallStats* linphone_call_get_text_stats ( LinphoneCall call)

Returns a copy of the call statistics for the text stream.

Parameters
callthe LinphoneCall
Returns
a LinphoneCallStats object for the text stream or NULL if it isn't available.

◆ linphone_call_get_video_source()

const LinphoneVideoSourceDescriptor* linphone_call_get_video_source ( const LinphoneCall call)

Gets the video source of a call.

Parameters
callThe LinphoneCall
Returns
The LinphoneVideoSourceDescriptor describing the video source that is set

◆ linphone_call_get_video_stats()

LinphoneCallStats* linphone_call_get_video_stats ( LinphoneCall call)

Returns a copy of the call statistics for the video stream.

Parameters
callthe LinphoneCall
Returns
a LinphoneCallStats object for the video stream or NULL if it isn't available.

◆ linphone_call_is_in_conference()

MS2_DEPRECATED bool_t linphone_call_is_in_conference ( const LinphoneCall call)

Return TRUE if this call is currently part of a conference.

Parameters
callThe LinphoneCall object
Returns
TRUE if part of a conference.
Deprecated:
21/09/2017 Use linphone_call_get_conference() instead.

◆ linphone_call_is_recording()

MS2_DEPRECATED bool_t linphone_call_is_recording ( LinphoneCall call)

Returns whether or not the call is currently being recorded.

Parameters
callLinphoneCall for which we can to know the recording state
Returns
TRUE if recording is in progress, FALSE otherwise
Deprecated:
15/09/2021 Use linphone_call_params_is_recording() instead.

◆ linphone_call_media_in_progress()

bool_t linphone_call_media_in_progress ( const LinphoneCall call)

Indicates whether an operation is in progress at the media side.

It can be 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
callthe LinphoneCall
Returns
TRUE if media is busy in establishing the connection, FALSE otherwise.

◆ linphone_call_notify_ringing()

void linphone_call_notify_ringing ( LinphoneCall call)

Starts the process of replying 180 Ringing.

This function is used in conjonction with linphone_core_enable_auto_send_ringing(). If the automatic sending of the 180 Ringing is disabled, this function needs to be called manually before the call timeouts.

Parameters
callThe LinphoneCall

◆ linphone_call_ogl_render()

void linphone_call_ogl_render ( const LinphoneCall call)

Calls generic OpenGL render for a given call.

Parameters
callThe LinphoneCall.

◆ linphone_call_redirect()

LinphoneStatus linphone_call_redirect ( LinphoneCall call,
const char *  redirect_uri 
)

Redirect the specified call to the given redirect URI.

Parameters
callThe LinphoneCall object
redirect_uriThe URI to redirect the call to
Returns
0 if successful, -1 on error.
Deprecated:
27/10/2020. Use linphone_call_redirect_to() instead.

◆ linphone_call_remove_callbacks()

void linphone_call_remove_callbacks ( LinphoneCall call,
LinphoneCallCbs cbs 
)

Removes a listener from a LinphoneCall.

Parameters
callLinphoneCall object.
cbsLinphoneCallCbs object to remove.

◆ linphone_call_send_info_message()

LinphoneStatus linphone_call_send_info_message ( LinphoneCall call,
const LinphoneInfoMessage info 
)

Sends an info message through an established call.

Parameters
callthe LinphoneCall
infothe LinphoneInfoMessage to send

◆ linphone_call_set_baudot_mode()

void linphone_call_set_baudot_mode ( LinphoneCall call,
LinphoneBaudotMode  mode 
)

Defines the Baudot mode for the call.

The Baudot functionality is to be enabled first by calling linphone_core_enable_baudot().

Parameters
callLinphoneCall object.
modeThe Baudot mode to use for the call.

◆ linphone_call_set_baudot_pause_timeout()

void linphone_call_set_baudot_pause_timeout ( LinphoneCall call,
uint8_t  seconds 
)

Set the Baudot significant pause timeout after which a LETTERS tone is retransmitted before resuming transmission (in seconds).

Default is 5s. The Baudot functionality is to be enabled first by calling linphone_core_enable_baudot().

Parameters
[in]callLinphoneCall object.
[in]secondsThe significant pause timeout in seconds.

◆ linphone_call_set_baudot_sending_standard()

void linphone_call_set_baudot_sending_standard ( LinphoneCall call,
LinphoneBaudotStandard  standard 
)

Defines the Baudot standard to use for sending Baudot tones in the call.

The Baudot functionality is to be enabled first by calling linphone_core_enable_baudot().

Parameters
callLinphoneCall object.
standardThe Baudot standard to use for sending Baudot tones.

◆ linphone_call_set_input_audio_device()

void linphone_call_set_input_audio_device ( LinphoneCall call,
LinphoneAudioDevice audio_device 
)

Sets the given LinphoneAudioDevice as input for this call only.

Parameters
callThe LinphoneCall
audio_deviceThe LinphoneAudioDevice. NULL does nothing.

◆ linphone_call_set_microphone_muted()

void linphone_call_set_microphone_muted ( LinphoneCall call,
bool_t  muted 
)

Sets microphone muted state.

The boolean value given is applied logical-and with the value given to linphone_core_enable_mic().

Parameters
callThe LinphoneCall object.
mutedThe microphone muted state.
Warning
This method only mutes the call passed as argument. If this call is part of a conference, it is strongly recommended to call linphone_conference_set_microphone_muted() to ensure that the setting is correctly apply across all participants and the conference callbacks are called.

◆ linphone_call_set_microphone_volume_gain()

void linphone_call_set_microphone_volume_gain ( LinphoneCall call,
float  volume 
)

Sets microphone volume gain.

If the sound backend supports it, the new gain will synchronized with the system mixer.

Parameters
callThe LinphoneCall object.
volumePercentage of the max supported gain. Valid values are in [ 0.0 : 1.0 ].

◆ linphone_call_set_next_video_frame_decoded_callback()

MS2_DEPRECATED void linphone_call_set_next_video_frame_decoded_callback ( LinphoneCall call,
LinphoneCallCbFunc  cb,
void *  user_data 
)
Deprecated:
23/05/2018

◆ linphone_call_set_output_audio_device()

void linphone_call_set_output_audio_device ( LinphoneCall call,
LinphoneAudioDevice audio_device 
)

Sets the given LinphoneAudioDevice as output for this call only.

Parameters
callThe LinphoneCall
audio_deviceThe LinphoneAudioDevice. NULL does nothing.

◆ linphone_call_set_params()

void linphone_call_set_params ( LinphoneCall call,
const LinphoneCallParams params 
)

Sets call parameters - advanced and not recommended feature - use with caution.

Local call parameters applicable to an outgoing or incoming shall usually be passed to linphone_core_invite_address_with_params() or linphone_call_accept_with_params(). However, in some cases it might be desirable from a software design standpoint to modify local parameters outside of the application layer, typically in the purpose of implementing a custom logic including special headers in INVITE or 200Ok requests, driven by a call_state_changed listener method. This function accepts to assign a new LinphoneCallParams only in LinphoneCallStateOutgoingInit and LinphoneCallStateIncomingReceived states.

Parameters
callthe LinphoneCall object
paramsthe LinphoneCallParams object

◆ linphone_call_set_speaker_muted()

void linphone_call_set_speaker_muted ( LinphoneCall call,
bool_t  muted 
)

Sets speaker muted state.

Parameters
callThe LinphoneCall object.
mutedThe speaker muted state.

◆ linphone_call_set_speaker_volume_gain()

void linphone_call_set_speaker_volume_gain ( LinphoneCall call,
float  volume 
)

Sets speaker volume gain.

If the sound backend supports it, the new gain will synchronized with the system mixer.

Parameters
callThe call.
volumePercentage of the max supported gain. Valid values are in [ 0.0 : 1.0 ].

◆ linphone_call_set_video_source()

void linphone_call_set_video_source ( LinphoneCall call,
const LinphoneVideoSourceDescriptor descriptor 
)

Sets the video source of a call.

Parameters
callThe LinphoneCall
descriptorThe LinphoneVideoSourceDescriptor describing the video source to set

◆ linphone_call_start_recording()

void linphone_call_start_recording ( LinphoneCall call)

Starts call recording.

Video record is only available if this function is called in state StreamRunning. The output file where audio is recorded must be previously specified with linphone_call_params_set_record_file().

Parameters
callThe LinphoneCall object.

◆ linphone_call_stats_get_download_bandwidth()

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
statsLinphoneCallStats object
Returns
The bandwidth measurement of the received stream in kbit/s.

◆ linphone_call_stats_get_estimated_download_bandwidth()

float linphone_call_stats_get_estimated_download_bandwidth ( const LinphoneCallStats stats)

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

Parameters
statsLinphoneCallStats object
Returns
The estimated bandwidth measurement of the received stream in kbit/s.

◆ linphone_call_stats_get_fec_cumulative_lost_packets_number()

uint64_t linphone_call_stats_get_fec_cumulative_lost_packets_number ( const LinphoneCallStats stats)

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.

Parameters
statsLinphoneCallStats object
Returns
The cumulative number of lost packets

◆ linphone_call_stats_get_fec_download_bandwidth()

float linphone_call_stats_get_fec_download_bandwidth ( const LinphoneCallStats stats)

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

Parameters
statsLinphoneCallStats object
Returns
The bandwidth measurement of the received FEC stream in kbit/s.

◆ linphone_call_stats_get_fec_repaired_packets_number()

uint64_t linphone_call_stats_get_fec_repaired_packets_number ( const LinphoneCallStats stats)

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.

Parameters
statsLinphoneCallStats object
Returns
The cumulative number of repaired packets

◆ linphone_call_stats_get_fec_upload_bandwidth()

float linphone_call_stats_get_fec_upload_bandwidth ( const LinphoneCallStats stats)

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

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

◆ linphone_call_stats_get_ice_state()

LinphoneIceState linphone_call_stats_get_ice_state ( const LinphoneCallStats stats)

Get the state of ICE processing.

Parameters
statsLinphoneCallStats object
Returns
The LinphoneIceState of ICE processing

◆ linphone_call_stats_get_ip_family_of_remote()

LinphoneAddressFamily linphone_call_stats_get_ip_family_of_remote ( const LinphoneCallStats stats)

Get the IP address family of the remote peer.

Parameters
statsLinphoneCallStats object
Returns
The IP address family LinphoneAddressFamily of the remote peer.

◆ linphone_call_stats_get_jitter_buffer_size_ms()

float linphone_call_stats_get_jitter_buffer_size_ms ( const LinphoneCallStats stats)

Get the jitter buffer size in ms.

Parameters
statsLinphoneCallStats object
Returns
The jitter buffer size in ms.

◆ linphone_call_stats_get_late_packets_cumulative_number()

uint64_t linphone_call_stats_get_late_packets_cumulative_number ( const LinphoneCallStats stats)

Gets the cumulative number of late packets.

Parameters
statsLinphoneCallStats object
Returns
The cumulative number of late packets

◆ linphone_call_stats_get_local_late_rate()

float linphone_call_stats_get_local_late_rate ( const LinphoneCallStats stats)

Gets the local late rate since last report, expressed as a percentage.

Parameters
statsLinphoneCallStats object
Returns
The local late rate

◆ linphone_call_stats_get_local_loss_rate()

float linphone_call_stats_get_local_loss_rate ( const LinphoneCallStats stats)

Get the local loss rate since last report, expressed as a percentage.

Parameters
statsLinphoneCallStats object
Returns
The local loss rate

◆ linphone_call_stats_get_receiver_interarrival_jitter()

float linphone_call_stats_get_receiver_interarrival_jitter ( const LinphoneCallStats stats)

Gets the remote reported interarrival jitter, expressed in seconds.

Parameters
statsLinphoneCallStats object
Returns
The interarrival jitter at last received receiver report

◆ linphone_call_stats_get_receiver_loss_rate()

float linphone_call_stats_get_receiver_loss_rate ( const LinphoneCallStats stats)

Gets the remote reported loss rate since last report, expressed as a percentage.

Parameters
statsLinphoneCallStats object
Returns
The receiver loss rate

◆ linphone_call_stats_get_round_trip_delay()

float linphone_call_stats_get_round_trip_delay ( const LinphoneCallStats stats)

Get the round trip delay in s.

Parameters
statsLinphoneCallStats object
Returns
The round trip delay in s.

◆ linphone_call_stats_get_rtcp_download_bandwidth()

float linphone_call_stats_get_rtcp_download_bandwidth ( const LinphoneCallStats stats)

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

Parameters
statsLinphoneCallStats object
Returns
The bandwidth measurement of the received RTCP in kbit/s.

◆ linphone_call_stats_get_rtcp_upload_bandwidth()

float linphone_call_stats_get_rtcp_upload_bandwidth ( const LinphoneCallStats stats)

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

Parameters
statsLinphoneCallStats object
Returns
The bandwidth measurement of the sent RTCP in kbit/s.

◆ linphone_call_stats_get_rtp_cum_packet_loss()

int64_t linphone_call_stats_get_rtp_cum_packet_loss ( const LinphoneCallStats stats)

Get the RTP cumulative number of incoming packet lost.

Parameters
statsLinphoneCallStats object
Returns
The number of RTP cumulative number of incoming packet lost

◆ linphone_call_stats_get_rtp_discarded()

uint64_t linphone_call_stats_get_rtp_discarded ( const LinphoneCallStats stats)

Get the RTP incoming packets discarded because the queue exceeds its max size.

Parameters
statsLinphoneCallStats object
Returns
The RTP incoming packets discarded because the queue exceeds its max size

◆ linphone_call_stats_get_rtp_hw_recv()

uint64_t linphone_call_stats_get_rtp_hw_recv ( const LinphoneCallStats stats)

Get the number of received bytes excluding IPv4/IPv6/UDP headers and including late and duplicate packets.

Parameters
statsLinphoneCallStats object
Returns
the number of received bytes excluding IPv4/IPv6/UDP headers and including late and duplicate packets

◆ linphone_call_stats_get_rtp_packet_recv()

uint64_t linphone_call_stats_get_rtp_packet_recv ( const LinphoneCallStats stats)

Get the number of RTP received packets.

Parameters
statsLinphoneCallStats object
Returns
The number of RTP received packets

◆ linphone_call_stats_get_rtp_packet_sent()

uint64_t linphone_call_stats_get_rtp_packet_sent ( const LinphoneCallStats stats)

Get the number of RTP outgoing packets.

Parameters
statsLinphoneCallStats object
Returns
The number of RTP outgoing packets

◆ linphone_call_stats_get_rtp_recv()

uint64_t linphone_call_stats_get_rtp_recv ( const LinphoneCallStats stats)

Get the RTP incoming recv_bytes of payload and delivered in time to the application.

Parameters
statsLinphoneCallStats object
Returns
The number of recv_bytes of payload and delivered in time to the application

◆ linphone_call_stats_get_rtp_sent()

uint64_t linphone_call_stats_get_rtp_sent ( const LinphoneCallStats stats)

Get the RTP outgoing sent_bytes (excluding IP header)

Parameters
statsLinphoneCallStats object
Returns
The number of outgoing sent_bytes (excluding IP header)

◆ linphone_call_stats_get_sender_interarrival_jitter()

float linphone_call_stats_get_sender_interarrival_jitter ( const LinphoneCallStats stats)

Gets the local interarrival jitter, expressed in seconds.

Parameters
statsLinphoneCallStats object
Returns
The interarrival jitter at last emitted sender report

◆ linphone_call_stats_get_sender_loss_rate()

float linphone_call_stats_get_sender_loss_rate ( const LinphoneCallStats stats)

Get the local loss rate since last report, expressed as a percentage.

Parameters
statsLinphoneCallStats object
Returns
The sender loss rate

◆ linphone_call_stats_get_srtp_source()

LinphoneMediaEncryption linphone_call_stats_get_srtp_source ( const LinphoneCallStats stats)

Get the method used for SRTP key exchange.

Parameters
statsLinphoneCallStats object
Returns
The LinphoneMediaEncryption method used to exchange the SRTP keys

◆ linphone_call_stats_get_srtp_suite()

LinphoneSrtpSuite linphone_call_stats_get_srtp_suite ( const LinphoneCallStats stats)

Get the SRTP Cryto suite in use.

Parameters
statsLinphoneCallStats object
Returns
The SRTP crypto suite currently in use LinphoneSrtpSuite

◆ linphone_call_stats_get_type()

LinphoneStreamType linphone_call_stats_get_type ( const LinphoneCallStats stats)

Get the type of the stream the stats refer to.

Parameters
statsLinphoneCallStats object
Returns
The LinphoneStreamType the stats refer to

◆ linphone_call_stats_get_upload_bandwidth()

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
statsLinphoneCallStats object
Returns
The bandwidth measurement of the sent stream in kbit/s.

◆ linphone_call_stats_get_upnp_state()

LinphoneUpnpState linphone_call_stats_get_upnp_state ( const LinphoneCallStats stats)

Get the state of uPnP processing.

Parameters
statsLinphoneCallStats object
Returns
The LinphoneUpnpState of uPnP processing.

◆ linphone_call_stats_get_zrtp_auth_tag_algo()

const char* linphone_call_stats_get_zrtp_auth_tag_algo ( const LinphoneCallStats stats)

Get the ZRTP algorithm statistics details (authentication method)

Parameters
statsLinphoneCallStats object
Returns
The auth tag algo

◆ linphone_call_stats_get_zrtp_cipher_algo()

const char* linphone_call_stats_get_zrtp_cipher_algo ( const LinphoneCallStats stats)

Get the ZRTP algorithm statistics details (cipher)

Parameters
statsLinphoneCallStats object
Returns
The cipher algo

◆ linphone_call_stats_get_zrtp_hash_algo()

const char* linphone_call_stats_get_zrtp_hash_algo ( const LinphoneCallStats stats)

Get the ZRTP algorithm statistics details (hash function)

Parameters
statsLinphoneCallStats object
Returns
The hash algo

◆ linphone_call_stats_get_zrtp_key_agreement_algo()

const char* linphone_call_stats_get_zrtp_key_agreement_algo ( const LinphoneCallStats stats)

Get the ZRTP algorithm statistics details (key agreeement)

Parameters
statsLinphoneCallStats object
Returns
The key agreement algo

◆ linphone_call_stats_get_zrtp_sas_algo()

const char* linphone_call_stats_get_zrtp_sas_algo ( const LinphoneCallStats stats)

Get the ZRTP algorithm statistics details (SAS display)

Parameters
statsLinphoneCallStats object
Returns
The sas algo

◆ linphone_call_stats_is_zrtp_key_agreement_algo_post_quantum()

bool_t linphone_call_stats_is_zrtp_key_agreement_algo_post_quantum ( const LinphoneCallStats stats)

Did ZRTP used a Post Quantum algorithm to perform a key exchange.

Parameters
statsLinphoneCallStats object
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

◆ linphone_call_stop_recording()

void linphone_call_stop_recording ( LinphoneCall call)

Stops call recording.

Parameters
callThe LinphoneCall object.

◆ linphone_call_transfer()

LinphoneStatus linphone_call_transfer ( LinphoneCall call,
const char *  refer_to 
)

Performs a simple call transfer to the specified destination.

The remote endpoint is expected to issue a new call to the specified destination. The current call remains active and thus can be later paused or terminated. It is possible to follow the progress of the transfer provided that transferee sends notification about it. In this case, the transfer_state_changed callback of the LinphoneCoreVTable is invoked to notify of the state of the new call at the other party. The notified states are #LinphoneCallOutgoingInit , #LinphoneCallOutgoingProgress, #LinphoneCallOutgoingRinging and #LinphoneCallConnected.

Parameters
callThe call to be transferred
refer_toThe destination the call is to be referred to.
Returns
0 on success, -1 on failure
Deprecated:
27/10/2020. Use linphone_call_transfer_to() instead.

◆ linphone_call_zoom_video()

MS2_DEPRECATED void linphone_call_zoom_video ( LinphoneCall call,
float  zoom_factor,
float *  cx,
float *  cy 
)

Perform a zoom of the video displayed during a call.

Parameters
callThe LinphoneCall object
zoom_factora floating point number describing the zoom factor. A value 1.0 corresponds to no zoom applied.
cxa floating point number pointing the horizontal center of the zoom to be applied. This value should be between 0.0 and 1.0.
cya floating point number pointing the vertical center of the zoom to be applied. This value should be between 0.0 and 1.0.
Deprecated:
16/10/2017 use linphone_call_zoom instead cx and cy are updated in return in case their coordinates were too excentrated for the requested zoom factor. The zoom ensures that all the screen is fullfilled with the video.