Liblinphone  4.5.0
Typedefs | Enumerations | Functions
Conferencing

Making an audio conference. More...

Typedefs

typedef struct _LinphoneConference LinphoneConference
 TODO.
 
typedef struct _LinphoneConferenceParams LinphoneConferenceParams
 TODO.
 
typedef struct _LinphoneConferenceCbs LinphoneConferenceCbs
 An object to handle the callbacks for the handling a LinphoneConference objects. More...
 
typedef enum _LinphoneConferenceState LinphoneConferenceState
 LinphoneConferenceState is used to indicate the current state of a conference.
 

Enumerations

enum  _LinphoneConferenceState {
  LinphoneConferenceStateNone,
  LinphoneConferenceStateInstantiated,
  LinphoneConferenceStateCreationPending,
  LinphoneConferenceStateCreated,
  LinphoneConferenceStateCreationFailed,
  LinphoneConferenceStateTerminationPending,
  LinphoneConferenceStateTerminated,
  LinphoneConferenceStateTerminationFailed,
  LinphoneConferenceStateDeleted
}
 LinphoneConferenceState is used to indicate the current state of a conference. More...
 

Functions

void linphone_conference_add_callbacks (LinphoneConference *conference, LinphoneConferenceCbs *cbs)
 Add a listener in order to be notified of LinphoneConference events. More...
 
void linphone_conference_remove_callbacks (LinphoneConference *conference, LinphoneConferenceCbs *cbs)
 Remove a listener from a LinphoneConference. More...
 
LinphoneConferenceCbslinphone_conference_get_current_callbacks (const LinphoneConference *conference)
 Gets the current LinphoneConferenceCbs. More...
 
LinphoneCorelinphone_conference_get_core (const LinphoneConference *conference)
 Returns core for a LinphoneConference. More...
 
const LinphoneAddresslinphone_conference_get_conference_address (const LinphoneConference *conference)
 Get the conference address of the conference. More...
 
char * linphone_conference_get_conference_address_as_string (const LinphoneConference *conference)
 
LinphoneConferenceCbslinphone_conference_cbs_ref (LinphoneConferenceCbs *cbs)
 Acquire a reference to the conference callbacks object. More...
 
void linphone_conference_cbs_unref (LinphoneConferenceCbs *cbs)
 Release reference to the conference callbacks object. More...
 
void * linphone_conference_cbs_get_user_data (const LinphoneConferenceCbs *cbs)
 Retrieve the user pointer associated with the conference callbacks object. More...
 
void linphone_conference_cbs_set_user_data (LinphoneConferenceCbs *cbs, void *ud)
 Assign a user pointer to the conference callbacks object. More...
 
LinphoneConferenceCbsParticipantAddedCb linphone_conference_cbs_get_participant_added (const LinphoneConferenceCbs *cbs)
 Get the participant added callback. More...
 
void linphone_conference_cbs_set_participant_added (LinphoneConferenceCbs *cbs, LinphoneConferenceCbsParticipantAddedCb cb)
 Set the participant added callback. More...
 
LinphoneConferenceCbsParticipantRemovedCb linphone_conference_cbs_get_participant_removed (const LinphoneConferenceCbs *cbs)
 Get the participant removed callback. More...
 
void linphone_conference_cbs_set_participant_removed (LinphoneConferenceCbs *cbs, LinphoneConferenceCbsParticipantRemovedCb cb)
 Set the participant removed callback. More...
 
LinphoneConferenceCbsParticipantDeviceAddedCb linphone_conference_cbs_get_participant_device_added (const LinphoneConferenceCbs *cbs)
 Get the participant device added callback. More...
 
void linphone_conference_cbs_set_participant_device_added (LinphoneConferenceCbs *cbs, LinphoneConferenceCbsParticipantDeviceAddedCb cb)
 Set the participant device added callback. More...
 
LinphoneConferenceCbsParticipantDeviceRemovedCb linphone_conference_cbs_get_participant_device_removed (const LinphoneConferenceCbs *cbs)
 Get the participant device removed callback. More...
 
void linphone_conference_cbs_set_participant_device_removed (LinphoneConferenceCbs *cbs, LinphoneConferenceCbsParticipantDeviceRemovedCb cb)
 Set the participant device removed callback. More...
 
LinphoneConferenceCbsParticipantAdminStatusChangedCb linphone_conference_cbs_get_participant_admin_status_changed (const LinphoneConferenceCbs *cbs)
 Get the participant admin status changed callback. More...
 
void linphone_conference_cbs_set_participant_admin_status_changed (LinphoneConferenceCbs *cbs, LinphoneConferenceCbsParticipantAdminStatusChangedCb cb)
 Set the participant admin status changed callback. More...
 
LinphoneConferenceCbsStateChangedCb linphone_conference_cbs_get_state_changed (const LinphoneConferenceCbs *cbs)
 Get the state changed callback. More...
 
void linphone_conference_cbs_set_state_changed (LinphoneConferenceCbs *cbs, LinphoneConferenceCbsStateChangedCb cb)
 Set the state changed callback. More...
 
LinphoneConferenceCbsSubjectChangedCb linphone_conference_cbs_get_subject_changed (const LinphoneConferenceCbs *cbs)
 Get the subject changed callback. More...
 
void linphone_conference_cbs_set_subject_changed (LinphoneConferenceCbs *cbs, LinphoneConferenceCbsSubjectChangedCb cb)
 Set the subject changed callback. More...
 

Detailed Description

Making an audio conference.

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.

Typedef Documentation

◆ LinphoneConferenceCbs

typedef struct _LinphoneConferenceCbs LinphoneConferenceCbs

An object to handle the callbacks for the handling a LinphoneConference objects.

Use linphone_factory_create_conference_cbs() to create an instance. Then pass the object to a LinphoneConference instance through linphone_conference_add_callbacks().

Enumeration Type Documentation

◆ _LinphoneConferenceState

LinphoneConferenceState is used to indicate the current state of a conference.

Enumerator
LinphoneConferenceStateNone 

Initial state.

LinphoneConferenceStateInstantiated 

Conference is now instantiated on local.

LinphoneConferenceStateCreationPending 

One creation request was sent to the server.

LinphoneConferenceStateCreated 

Conference was created on the server.

LinphoneConferenceStateCreationFailed 

Conference creation failed.

LinphoneConferenceStateTerminationPending 

Wait for conference termination.

LinphoneConferenceStateTerminated 

Conference exists on server but not in local.

LinphoneConferenceStateTerminationFailed 

Conference termination failed.

LinphoneConferenceStateDeleted 

Conference was deleted on the server.

Function Documentation

◆ linphone_conference_add_callbacks()

void linphone_conference_add_callbacks ( LinphoneConference conference,
LinphoneConferenceCbs cbs 
)

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

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

Parameters
conferenceLinphoneConference object.
cbsA LinphoneConferenceCbs object holding the callbacks you need. A reference is taken by the LinphoneConference until you invoke linphone_conference_remove_callbacks().

◆ linphone_conference_cbs_get_participant_added()

LinphoneConferenceCbsParticipantAddedCb linphone_conference_cbs_get_participant_added ( const LinphoneConferenceCbs cbs)

Get the participant added callback.

Parameters
[in]cbsLinphoneConferenceCbs object.
Returns
The current participant added callback.

◆ linphone_conference_cbs_get_participant_admin_status_changed()

LinphoneConferenceCbsParticipantAdminStatusChangedCb linphone_conference_cbs_get_participant_admin_status_changed ( const LinphoneConferenceCbs cbs)

Get the participant admin status changed callback.

Parameters
[in]cbsLinphoneConferenceCbs object.
Returns
The current participant admin status changed callback.

◆ linphone_conference_cbs_get_participant_device_added()

LinphoneConferenceCbsParticipantDeviceAddedCb linphone_conference_cbs_get_participant_device_added ( const LinphoneConferenceCbs cbs)

Get the participant device added callback.

Parameters
[in]cbsLinphoneConferenceCbs object.
Returns
The current participant device added callback.

◆ linphone_conference_cbs_get_participant_device_removed()

LinphoneConferenceCbsParticipantDeviceRemovedCb linphone_conference_cbs_get_participant_device_removed ( const LinphoneConferenceCbs cbs)

Get the participant device removed callback.

Parameters
[in]cbsLinphoneConferenceCbs object.
Returns
The current participant device removed callback.

◆ linphone_conference_cbs_get_participant_removed()

LinphoneConferenceCbsParticipantRemovedCb linphone_conference_cbs_get_participant_removed ( const LinphoneConferenceCbs cbs)

Get the participant removed callback.

Parameters
[in]cbsLinphoneConferenceCbs object.
Returns
The current participant removed callback.

◆ linphone_conference_cbs_get_state_changed()

LinphoneConferenceCbsStateChangedCb linphone_conference_cbs_get_state_changed ( const LinphoneConferenceCbs cbs)

Get the state changed callback.

Parameters
[in]cbsLinphoneConferenceCbs object.
Returns
The current state changed callback.

◆ linphone_conference_cbs_get_subject_changed()

LinphoneConferenceCbsSubjectChangedCb linphone_conference_cbs_get_subject_changed ( const LinphoneConferenceCbs cbs)

Get the subject changed callback.

Parameters
[in]cbsLinphoneConferenceCbs object.
Returns
The current subject changed callback.

◆ linphone_conference_cbs_get_user_data()

void* linphone_conference_cbs_get_user_data ( const LinphoneConferenceCbs cbs)

Retrieve the user pointer associated with the conference callbacks object.

Parameters
[in]crThe conference callbacks object
Returns
The user pointer associated with the conference callbacks object

◆ linphone_conference_cbs_ref()

LinphoneConferenceCbs* linphone_conference_cbs_ref ( LinphoneConferenceCbs cbs)

Acquire a reference to the conference callbacks object.

Parameters
[in]cbsThe conference callbacks object
Returns
The same conference callbacks object

◆ linphone_conference_cbs_set_participant_added()

void linphone_conference_cbs_set_participant_added ( LinphoneConferenceCbs cbs,
LinphoneConferenceCbsParticipantAddedCb  cb 
)

Set the participant added callback.

Parameters
[in]cbsLinphoneConferenceCbs object.
[in]cbThe participant added callback to be used.

◆ linphone_conference_cbs_set_participant_admin_status_changed()

void linphone_conference_cbs_set_participant_admin_status_changed ( LinphoneConferenceCbs cbs,
LinphoneConferenceCbsParticipantAdminStatusChangedCb  cb 
)

Set the participant admin status changed callback.

Parameters
[in]cbsLinphoneConferenceCbs object.
[in]cbThe participant admin status changed callback to be used.

◆ linphone_conference_cbs_set_participant_device_added()

void linphone_conference_cbs_set_participant_device_added ( LinphoneConferenceCbs cbs,
LinphoneConferenceCbsParticipantDeviceAddedCb  cb 
)

Set the participant device added callback.

Parameters
[in]cbsLinphoneConferenceCbs object.
[in]cbThe participant device added callback to be used.

◆ linphone_conference_cbs_set_participant_device_removed()

void linphone_conference_cbs_set_participant_device_removed ( LinphoneConferenceCbs cbs,
LinphoneConferenceCbsParticipantDeviceRemovedCb  cb 
)

Set the participant device removed callback.

Parameters
[in]cbsLinphoneConferenceCbs object.
[in]cbThe participant device removed callback to be used.

◆ linphone_conference_cbs_set_participant_removed()

void linphone_conference_cbs_set_participant_removed ( LinphoneConferenceCbs cbs,
LinphoneConferenceCbsParticipantRemovedCb  cb 
)

Set the participant removed callback.

Parameters
[in]cbsLinphoneConferenceCbs object.
[in]cbThe participant removed callback to be used.

◆ linphone_conference_cbs_set_state_changed()

void linphone_conference_cbs_set_state_changed ( LinphoneConferenceCbs cbs,
LinphoneConferenceCbsStateChangedCb  cb 
)

Set the state changed callback.

Parameters
[in]cbsLinphoneConferenceCbs object.
[in]cbThe state changed callback to be used.

◆ linphone_conference_cbs_set_subject_changed()

void linphone_conference_cbs_set_subject_changed ( LinphoneConferenceCbs cbs,
LinphoneConferenceCbsSubjectChangedCb  cb 
)

Set the subject changed callback.

Parameters
[in]cbsLinphoneConferenceCbs object.
[in]cbThe subject changed callback to be used.

◆ linphone_conference_cbs_set_user_data()

void linphone_conference_cbs_set_user_data ( LinphoneConferenceCbs cbs,
void *  ud 
)

Assign a user pointer to the conference callbacks object.

Parameters
[in]crThe conference callbacks object
[in]udThe user pointer to associate with the conference callbacks object

◆ linphone_conference_cbs_unref()

void linphone_conference_cbs_unref ( LinphoneConferenceCbs cbs)

Release reference to the conference callbacks object.

Parameters
[in]crThe conference callbacks object

◆ linphone_conference_get_conference_address()

const LinphoneAddress* linphone_conference_get_conference_address ( const LinphoneConference conference)

Get the conference address of the conference.

Parameters
conferenceA LinphoneConference object.
Returns
The conference address of the conference or NULL if it is unknown.

◆ linphone_conference_get_core()

LinphoneCore* linphone_conference_get_core ( const LinphoneConference conference)

Returns core for a LinphoneConference.

Parameters
conferenceLinphoneConference object.
Returns
back pointer to LinphoneCore object. Returns back pointer to LinphoneCore object.

◆ linphone_conference_get_current_callbacks()

LinphoneConferenceCbs* linphone_conference_get_current_callbacks ( const LinphoneConference conference)

Gets the current LinphoneConferenceCbs.

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

Parameters
conferenceLinphoneConference object.
Returns
The LinphoneConferenceCbs that has called the last callback.

◆ linphone_conference_remove_callbacks()

void linphone_conference_remove_callbacks ( LinphoneConference conference,
LinphoneConferenceCbs cbs 
)

Remove a listener from a LinphoneConference.

Parameters
conferenceLinphoneConference object.
cbsLinphoneConferenceCbs object to remove.