Liblinphone: Call misc

Liblinphone 5.2.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 struct _LinphoneCallStats | LinphoneCallStats
| This object carry various statistic informations regarding the quality of an audio or video stream for a given LinphoneCall.
typedef enum _LinphoneSupportLevel | LinphoneSupportLevel

## 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.
float | linphone_call_stats_get_sender_loss_rate (const LinphoneCallStats *stats)
| Get the local loss rate since last report.
float | linphone_call_stats_get_receiver_loss_rate (const LinphoneCallStats *stats)
| Gets the remote reported loss rate since last report.
float | linphone_call_stats_get_local_loss_rate (const LinphoneCallStats *stats)
| Get the local loss rate since last report.
float | linphone_call_stats_get_local_late_rate (const LinphoneCallStats *stats)
| Gets the local late rate since last report.
float | linphone_call_stats_get_sender_interarrival_jitter (const LinphoneCallStats *stats)
| Gets the local interarrival jitter.
float | linphone_call_stats_get_receiver_interarrival_jitter (const LinphoneCallStats *stats)
| Gets the remote reported interarrival jitter.
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.
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.
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.
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.
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.
LinphoneIceState | linphone_call_stats_get_ice_state (const LinphoneCallStats *stats)
| Get the state of ICE processing.
LinphoneUpnpState | linphone_call_stats_get_upnp_state (const LinphoneCallStats *stats)
| Get the state of uPnP processing.
LinphoneAddressFamily | linphone_call_stats_get_ip_family_of_remote (const LinphoneCallStats *stats)
| Get the IP address family of the remote peer.
float | linphone_call_stats_get_jitter_buffer_size_ms (const LinphoneCallStats *stats)
| Get the jitter buffer size in ms.
float | linphone_call_stats_get_round_trip_delay (const LinphoneCallStats *stats)
| Get the round trip delay in s.
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.
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)
const char * | linphone_call_stats_get_zrtp_key_agreement_algo (const LinphoneCallStats *stats)
| Get the ZRTP algorithm statistics details (cipher)
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.
const char * | linphone_call_stats_get_zrtp_hash_algo (const LinphoneCallStats *stats)
| Get the ZRTP algorithm statistics details (cipher)
const char * | linphone_call_stats_get_zrtp_auth_tag_algo (const LinphoneCallStats *stats)
| Get the ZRTP algorithm statistics details (cipher)
const char * | linphone_call_stats_get_zrtp_sas_algo (const LinphoneCallStats *stats)
| Get the ZRTP algorithm statistics details (cipher)
LinphoneChatRoom * | linphone_call_get_chat_room (LinphoneCall *call)
| Create a new chat room for real time messaging from a call if not already existing, else return existing one.
float | linphone_call_get_play_volume (const LinphoneCall *call)
| Get the mesured playback volume level (received from remote) in dbm0.
float | linphone_call_get_record_volume (const LinphoneCall *call)
| Get the mesured record volume level (sent to remote) in dbm0.
float | linphone_call_get_speaker_volume_gain (const LinphoneCall *call)
| Get speaker volume gain.
void | linphone_call_set_speaker_volume_gain (LinphoneCall *call, float volume)
| Set speaker volume gain.
float | linphone_call_get_microphone_volume_gain (const LinphoneCall *call)
| Get microphone volume gain.
void | linphone_call_set_microphone_volume_gain (LinphoneCall *call, float volume)
| Set microphone volume gain.
bool_t | linphone_call_get_speaker_muted (const LinphoneCall *call)
| Get speaker muted state.
void | linphone_call_set_speaker_muted (LinphoneCall *call, bool_t muted)
| Set speaker muted state.
bool_t | linphone_call_get_microphone_muted (const LinphoneCall *call)
| Get microphone muted state.
void | linphone_call_set_microphone_muted (LinphoneCall *call, bool_t muted)
| Set microphone muted state.
float | linphone_call_get_current_quality (const LinphoneCall *call)
| Obtain real-time quality rating of the call.
float | linphone_call_get_average_quality (const LinphoneCall *call)
| Returns call quality averaged over all the duration of the call.
void | linphone_call_start_recording (LinphoneCall *call)
| Starts call recording.
void | linphone_call_stop_recording (LinphoneCall *call)
| Stops call recording.
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.
bool_t | linphone_call_media_in_progress (const LinphoneCall *call)
| Indicates whether an operation is in progress at the media side.
void | linphone_call_ogl_render (const LinphoneCall *call)
| Calls generic OpenGL render for a given call.
LinphoneStatus | linphone_call_send_info_message (LinphoneCall *call, const LinphoneInfoMessage *info)
| Sends an info message through an established call.
LinphoneCallStats * | linphone_call_get_stats (LinphoneCall *call, LinphoneStreamType type)
| Returns a copy of the call statistics for a particular stream type.
LinphoneCallStats * | linphone_call_get_audio_stats (LinphoneCall *call)
| Returns a copy of the call statistics for the audio stream.
LinphoneCallStats * | linphone_call_get_video_stats (LinphoneCall *call)
| Returns a copy of the call statistics for the video stream.
LinphoneCallStats * | linphone_call_get_text_stats (LinphoneCall *call)
| Returns a copy of the call statistics for the text stream.
void | linphone_call_add_callbacks (LinphoneCall *call, LinphoneCallCbs *cbs)
| Add a listener in order to be notified of LinphoneCall events.
void | linphone_call_remove_callbacks (LinphoneCall *call, LinphoneCallCbs *cbs)
| Remove a listener from a LinphoneCall.
LinphoneCallCbs * | linphone_call_get_current_callbacks (const LinphoneCall *call)
| Gets the current LinphoneCallCbs.
void | linphone_call_set_params (LinphoneCall *call, const LinphoneCallParams *params)
| Set call parameters - advanced and not recommended feature - use with caution.
const LinphoneCallParams * | linphone_call_get_params (const LinphoneCall *call)
| Returns local parameters associated with the call.
void | linphone_call_set_input_audio_device (LinphoneCall *call, LinphoneAudioDevice *audio_device)
| Sets the given LinphoneAudioDevice as input for this call only.
void | linphone_call_set_output_audio_device (LinphoneCall *call, LinphoneAudioDevice *audio_device)
| Sets the given LinphoneAudioDevice as output for this call only.
const LinphoneAudioDevice * | linphone_call_get_input_audio_device (const LinphoneCall *call)
| Gets the current input device for this call.
const LinphoneAudioDevice * | linphone_call_get_output_audio_device (const LinphoneCall *call)
| Gets the current output device for this call.
void | linphone_call_notify_ringing (LinphoneCall *call)
| Starts the process of replying 180 Ringing.
void | linphone_call_set_video_source (LinphoneCall *call, const LinphoneVideoSourceDescriptor *descriptor)
| Sets the video source of a call.
const LinphoneVideoSourceDescriptor * | linphone_call_get_video_source (const LinphoneCall *call)
| Gets the video source of a call.
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.
LinphoneStatus | linphone_call_redirect (LinphoneCall *call, const char *redirect_uri)
| Redirect the specified call to the given redirect URI.
LinphoneStatus | linphone_call_transfer (LinphoneCall *call, const char *refer_to)
| Performs a simple call transfer to the specified destination.
MS2_DEPRECATED char * | linphone_call_get_remote_address_as_string (const LinphoneCall *call)
| Returns the remote address associated to this call as a string.
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.
MS2_DEPRECATED bool_t | linphone_call_is_in_conference (const LinphoneCall *call)
| Return TRUE if this call is currently part of a conference.
MS2_DEPRECATED bool_t | linphone_call_is_recording (LinphoneCall *call)
| Returns whether or not the call is currently being recorded.

## 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

enum _LinphoneSupportLevel

Enumerator
LinphoneSupportLevelNoSupport | No support for the feature.
LinphoneSupportLevelOptional | Optional support for the feature.
LinphoneSupportLevelMandatory | Mandatory support for the feature.

## Function Documentation

## ◆ linphone_call_add_callbacks()

void linphone_call_add_callbacks | ( | LinphoneCall * | call,
|  | LinphoneCallCbs * | cbs
| ) |  |

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

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

Parameters

  call | LinphoneCall object. to monitor.
  cbs | A 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

  call | The LinphoneCall

## ◆ 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

  call | the 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

  call | The 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 | ) |

Create a new 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.

Parameters

  call | LinphoneCall 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 current LinphoneCallCbs.

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

  call | LinphoneCall object.

Returns
  The LinphoneCallCbs that has called the last callback

## ◆ linphone_call_get_current_quality()

float linphone_call_get_current_quality | ( | const 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

Parameters

  call | The 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

  call | The 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_microphone_muted()

bool_t linphone_call_get_microphone_muted | ( | const LinphoneCall * | call | ) |

Get microphone muted state.

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

Parameters

  call | The LinphoneCall object.

Returns
  The microphone muted state.

## ◆ linphone_call_get_microphone_volume_gain()

float linphone_call_get_microphone_volume_gain | ( | const LinphoneCall * | call | ) |

Get microphone volume gain.

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

Parameters

  call | The 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

  call | The 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 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

  call | the LinphoneCall object

Returns
  the call's local parameters.

## ◆ linphone_call_get_play_volume()

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

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

Parameters

  call | The 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

  call | LinphoneCall object.

Returns
  A LinphonePlayer object

## ◆ linphone_call_get_record_volume()

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

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

Parameters

  call | The 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

  call | LinphoneCall object.

Returns
  the remote address as a string.

Deprecated:
  06/07/2020 use linphone_call_get_remote_address() instead.

## ◆ linphone_call_get_speaker_muted()

bool_t linphone_call_get_speaker_muted | ( | const LinphoneCall * | call | ) |

Get speaker muted state.

Parameters

  call | The LinphoneCall object.

Returns
  The speaker muted state.

## ◆ linphone_call_get_speaker_volume_gain()

float linphone_call_get_speaker_volume_gain | ( | const LinphoneCall * | call | ) |

Get speaker volume gain.

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

Parameters

  call | The 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

  call | the LinphoneCall
  type | the 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

  call | the 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

  call | The 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

  call | the 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

  call | The 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

  call | LinphoneCall 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

  call | the 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

  call | The LinphoneCall

## ◆ linphone_call_ogl_render()

void linphone_call_ogl_render | ( | const LinphoneCall * | call | ) |

Calls generic OpenGL render for a given call.

Parameters

  call | The LinphoneCall.

## ◆ linphone_call_redirect()

LinphoneStatus linphone_call_redirect | ( | LinphoneCall * | call,
|  | const char * | redirect_uri
| ) |  |

Redirect the specified call to the given redirect URI.

Parameters

  call | The LinphoneCall object
  redirect_uri | The 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
| ) |  |

Remove a listener from a LinphoneCall.

Parameters

  call | LinphoneCall object.
  cbs | LinphoneCallCbs 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

  call | the LinphoneCall
  info | the LinphoneInfoMessage to send

## ◆ 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

  call | The LinphoneCall
  audio_device | The LinphoneAudioDevice. NULL does nothing.

## ◆ linphone_call_set_microphone_muted()

void linphone_call_set_microphone_muted | ( | LinphoneCall * | call,
|  | bool_t | muted
| ) |  |

Set microphone muted state.

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

Parameters

  call | The LinphoneCall object.
  muted | The microphone muted state.

## ◆ linphone_call_set_microphone_volume_gain()

void linphone_call_set_microphone_volume_gain | ( | LinphoneCall * | call,
|  | float | volume
| ) |  |

Set microphone volume gain.

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

Parameters

  call | The LinphoneCall object.
  volume | Percentage 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

  call | The LinphoneCall
  audio_device | The LinphoneAudioDevice. NULL does nothing.

## ◆ linphone_call_set_params()

void linphone_call_set_params | ( | LinphoneCall * | call,
|  | const LinphoneCallParams * | params
| ) |  |

Set 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 LinphoneCallOutgoingInit and LinphoneCallIncomingReceived states.

Parameters

  call | the LinphoneCall object
  params | the LinphoneCallParams object

## ◆ linphone_call_set_speaker_muted()

void linphone_call_set_speaker_muted | ( | LinphoneCall * | call,
|  | bool_t | muted
| ) |  |

Set speaker muted state.

Parameters

  call | The LinphoneCall object.
  muted | The speaker muted state.

## ◆ linphone_call_set_speaker_volume_gain()

void linphone_call_set_speaker_volume_gain | ( | LinphoneCall * | call,
|  | float | volume
| ) |  |

Set speaker volume gain.

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

Parameters

  call | The call.
  volume | Percentage 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

  call | The LinphoneCall
  descriptor | The 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

  call | The 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

  stats | LinphoneCallStats 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

  stats | LinphoneCallStats object

Returns
  The estimated bandwidth measurement of the received 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

  stats | LinphoneCallStats 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

  stats | LinphoneCallStats 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

  stats | LinphoneCallStats 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

  stats | LinphoneCallStats 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.

Parameters

  stats | LinphoneCallStats 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.

Parameters

  stats | LinphoneCallStats 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.

Parameters

  stats | LinphoneCallStats 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.

Parameters

  stats | LinphoneCallStats 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

  stats | LinphoneCallStats 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

  stats | LinphoneCallStats 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

  stats | LinphoneCallStats object

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

## ◆ linphone_call_stats_get_sender_interarrival_jitter()

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

Gets the local interarrival jitter.

Parameters

  stats | LinphoneCallStats 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.

Parameters

  stats | LinphoneCallStats object

Returns
  The sender loss rate

## ◆ 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

  stats | LinphoneCallStats 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

  stats | LinphoneCallStats 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

  stats | LinphoneCallStats 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 (cipher)

Parameters

  stats | LinphoneCallStats 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

  stats | LinphoneCallStats 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 (cipher)

Parameters

  stats | LinphoneCallStats 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 (cipher)

Parameters

  stats | LinphoneCallStats 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 (cipher)

Parameters

  stats | LinphoneCallStats 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

  stats | LinphoneCallStats 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

  call | The 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

  call | The call to be transfered
  refer_to | The destination the call is to be refered 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

  call | The LinphoneCall object
  zoom_factor | a floating point number describing the zoom factor. A value 1.0 corresponds to no zoom applied.
  cx | a floating point number pointing the horizontal center of the zoom to be applied. This value should be between 0.0 and 1.0.
  cy | a 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.