liblinphone 3.8.1

- Main Page
- Related Pages
- Modules
- Data Structures

Functions
Making an audio conference.

## Functions
float | linphone_core_get_conference_local_input_volume (LinphoneCore *lc)
int | linphone_core_add_to_conference (LinphoneCore *lc, LinphoneCall *call)
int | linphone_core_remove_from_conference (LinphoneCore *lc, LinphoneCall *call)
bool_t | linphone_core_is_in_conference (const LinphoneCore *lc)
int | linphone_core_leave_conference (LinphoneCore *lc)
int | linphone_core_enter_conference (LinphoneCore *lc)
int | linphone_core_add_all_to_conference (LinphoneCore *lc)
int | linphone_core_terminate_conference (LinphoneCore *lc)
int | linphone_core_get_conference_size (LinphoneCore *lc)

## Detailed Description

This API allows to create a conference entirely managed by the client. No server capabilities are required. The way such conference is created is by doing the following:
The application shall makes "normal" calls to several destinations (using linphone_core_invite() ), one after another. While initiating the second call, the first one is automatically paused. Then, once the second call is established, the application has the possibility to merge the two calls to form a conference where each participant (the local participant, the remote destination of the first call, the remote destination of the second call) can talk together. This must be done by adding the two calls to the conference using linphone_core_add_to_conference()

Once merged into a conference the LinphoneCall objects representing the calls that were established remain unchanged, except that they are tagged as part of the conference (see linphone_call_is_in_conference() ). The calls in a conference are in the LinphoneCallStreamsRunning state.

Only a single conference can be created: the purpose of this feature is to allow the local user to create, take part and manage the conference. This API is not designed to create a conference server application.

Up to 10 calls can be merged into the conference, however depending on the CPU usage required for doing the encoding/decoding of the streams of each participants, the effective limit can be lower.

## Function Documentation

float linphone_core_get_conference_local_input_volume | ( | LinphoneCore * | lc | ) |

Returns the sound volume (mic input) of the local participant of the conference.

Parameters

  lc | the linphone core

Returns
  the measured input volume expressed in dbm0.

int linphone_core_add_to_conference | ( | LinphoneCore * | lc,
|  | LinphoneCall * | call
| ) |  |

Merge a call into a conference.

Parameters

  lc | the linphone core
  call | an established call, either in LinphoneCallStreamsRunning or LinphoneCallPaused state.

If this is the first call that enters the conference, the virtual conference will be created automatically. If the local user was actively part of the call (ie not in paused state), then the local user is automatically entered into the conference. If the call was in paused state, then it is automatically resumed when entering into the conference.

Returns
  0 if successful, -1 otherwise.

int linphone_core_remove_from_conference | ( | LinphoneCore * | lc,
|  | LinphoneCall * | call
| ) |  |

Remove a call from the conference.

Parameters

  lc | the linphone core
  call | a call that has been previously merged into the conference.

After removing the remote participant belonging to the supplied call, the call becomes a normal call in paused state. If one single remote participant is left alone together with the local user in the conference after the removal, then the conference is automatically transformed into a simple call in StreamsRunning state. The conference's resources are then automatically destroyed.

In other words, unless linphone_core_leave_conference() is explicitely called, the last remote participant of a conference is automatically put in a simple call in running state.

Returns
  0 if successful, -1 otherwise.

bool_t linphone_core_is_in_conference | ( | const LinphoneCore * | lc | ) |

Indicates whether the local participant is part of the conference.

Parameters

  lc | the linphone core

Returns
  TRUE if the local participant is in the conference, FALSE otherwise.

int linphone_core_leave_conference | ( | LinphoneCore * | lc | ) |

Moves the local participant out of the conference.

Parameters

  lc | the linphone core When the local participant is out of the conference, the remote participants can continue to talk normally.

Returns
  0 if successful, -1 otherwise.

int linphone_core_enter_conference | ( | LinphoneCore * | lc | ) |

Moves the local participant inside the conference.

Parameters

  lc | the linphone core

Makes the local participant to join the conference. Typically, the local participant is by default always part of the conference when joining an active call into a conference. However, by calling linphone_core_leave_conference() and linphone_core_enter_conference() the application can decide to temporarily move out and in the local participant from the conference.

Returns
  0 if successful, -1 otherwise

int linphone_core_add_all_to_conference | ( | LinphoneCore * | lc | ) |

Add all calls into a conference.

Parameters

  lc | the linphone core

Merge all established calls (either in LinphoneCallStreamsRunning or LinphoneCallPaused) into a conference.

Returns
  0 if successful, -1 otherwise

int linphone_core_terminate_conference | ( | LinphoneCore * | lc | ) |

Terminates the conference and the calls associated with it.

Parameters

  lc | the linphone core

All the calls that were merged to the conference are terminated, and the conference resources are destroyed.

Returns
  0 if successful, -1 otherwise

int linphone_core_get_conference_size | ( | LinphoneCore * | lc | ) |

Returns the number of participants to the conference, including the local participant.

Parameters

  lc | the linphone core

Typically, after merging two calls into the conference, there is total of 3 participants: the local participant (or local user), and two remote participants that were the destinations of the two previously establised calls.

Returns
  the number of participants to the conference