liblinphone
3.6.1
|
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) |
bool_t | linphone_call_is_in_conference (const LinphoneCall *call) |
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_call_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.
float linphone_core_get_conference_local_input_volume | ( | LinphoneCore * | lc | ) |
Returns the sound volume (mic input) of the local participant of the conference.
lc | the linphone core |
int linphone_core_add_to_conference | ( | LinphoneCore * | lc, |
LinphoneCall * | call | ||
) |
Merge a call into a conference.
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.
int linphone_core_remove_from_conference | ( | LinphoneCore * | lc, |
LinphoneCall * | call | ||
) |
Remove a call from the conference.
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.
bool_t linphone_core_is_in_conference | ( | const LinphoneCore * | lc | ) |
Indicates whether the local participant is part of the conference.
lc | the linphone core |
int linphone_core_leave_conference | ( | LinphoneCore * | lc | ) |
Moves the local participant out of the conference.
lc | the linphone core When the local participant is out of the conference, the remote participants can continue to talk normally. |
int linphone_core_enter_conference | ( | LinphoneCore * | lc | ) |
Moves the local participant inside the conference.
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.
int linphone_core_add_all_to_conference | ( | LinphoneCore * | lc | ) |
Add all calls into a conference.
lc | the linphone core |
Merge all established calls (either in LinphoneCallStreamsRunning or LinphoneCallPaused) into a conference.
int linphone_core_terminate_conference | ( | LinphoneCore * | lc | ) |
Terminates the conference and the calls associated with it.
lc | the linphone core |
All the calls that were merged to the conference are terminated, and the conference resources are destroyed.
int linphone_core_get_conference_size | ( | LinphoneCore * | lc | ) |
Returns the number of participants to the conference, including the local participant.
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.
bool_t linphone_call_is_in_conference | ( | const LinphoneCall * | call | ) |
Returns true if the call is part of the conference.