Ring Daemon 16.0.0
|
#include <conference.h>
Public Types | |
enum class | State { ACTIVE_ATTACHED , ACTIVE_DETACHED , HOLD } |
Public Member Functions | |
void | addSubCall (const std::string &callId) |
Add a new subcall to the conference. | |
void | attachHost (const std::vector< libjami::MediaMap > &mediaList={}) |
Attach host. | |
Conference (const std::shared_ptr< Account > &, const std::string &confId="") | |
Constructor for this class, increment static counter. | |
std::vector< libjami::MediaMap > | currentMediaList () const |
Retrieve current medias list. | |
void | detachHost () |
Detach local audio/video from the conference. | |
std::shared_ptr< Account > | getAccount () const |
std::string | getAccountId () const |
std::shared_ptr< Call > | getCallFromPeerID (std::string_view peerId) |
std::vector< std::map< std::string, std::string > > | getConferenceInfos () const |
const std::string & | getConfId () const |
Return the conference id. | |
std::chrono::milliseconds | getDuration () const |
State | getState () const |
Return the current conference state. | |
const char * | getStateStr () const |
CallIdSet | getSubCalls () const |
Get the participant list for this conference. | |
void | handleMediaChangeRequest (const std::shared_ptr< Call > &call, const std::vector< libjami::MediaMap > &remoteMediaList) |
Process incoming media change request. | |
void | hangupParticipant (const std::string &accountUri, const std::string &deviceId="") |
bool | isMediaSourceMuted (MediaType type) const |
Get the mute state of the local host. | |
bool | isRemoteParticipant (const std::string &uri) |
bool | isVideoEnabled () const |
void | mergeConfInfo (ConfInfo &newInfo, const std::string &peerURI) |
void | muteLocalHost (bool is_muted, const std::string &mediaType) |
void | muteParticipant (const std::string &uri, const bool &state) |
void | muteStream (const std::string &accountUri, const std::string &deviceId, const std::string &streamId, const bool &state) |
The client shows one tile per stream (video/audio related to a media) | |
void | onConfOrder (const std::string &callId, const std::string &order) |
void | onShutdown (std::function< void(int)> cb) |
Set a callback that will be called when the conference will be destroyed. | |
void | removeSubCall (const std::string &callId) |
Remove a subcall from the conference. | |
void | reportMediaNegotiationStatus () |
Announce to the client that medias are successfully negotiated. | |
bool | requestMediaChange (const std::vector< libjami::MediaMap > &mediaList) |
Process a media change request. | |
void | setActiveParticipant (const std::string &participant_id) |
void | setActiveStream (const std::string &streamId, bool state) |
void | setHandRaised (const std::string &uri, const bool &state) |
void | setLayout (int layout) |
void | setLocalHostMuteState (MediaType type, bool muted) |
Set the mute state of the local host. | |
void | setModerator (const std::string &uri, const bool &state) |
void | setState (State state) |
Set conference state. | |
void | setVoiceActivity (const std::string &streamId, const bool &newState) |
bool | startRecording (const std::string &path) override |
Start recording. | |
void | stopRecording () override |
Stop recording. | |
void | switchInput (const std::string &input) |
bool | toggleRecording () override |
Start/stop recording toggle. | |
void | updateConferenceInfo (ConfInfo confInfo) |
void | updateMuted () |
void | updateRecording () |
void | updateVoiceActivity () |
~Conference () | |
Destructor for this class, decrement static counter. | |
![]() | |
virtual std::string | getPath () const |
Return the file path for this recording. | |
bool | isAudioOnly () const |
bool | isRecording () const |
Return recording state (true/false) | |
Recordable () | |
virtual | ~Recordable () |
Static Public Member Functions | |
static constexpr const char * | getStateStr (State state) |
Return a string description of the conference state. | |
Additional Inherited Members | |
![]() | |
std::mutex | apiMutex_ |
bool | isAudioOnly_ {false} |
std::shared_ptr< MediaRecorder > | recorder_ |
bool | recording_ {false} |
Definition at line 188 of file conference.h.
|
strong |
Enumerator | |
---|---|
ACTIVE_ATTACHED | |
ACTIVE_DETACHED | |
HOLD |
Definition at line 191 of file conference.h.
|
explicit |
Constructor for this class, increment static counter.
Definition at line 54 of file conference.cpp.
References jami::ParticipantInfo::audioLocalMuted, jami::sip_utils::DEFAULT_VIDEO_STREAMID, jami::emitSignal(), getCallFromPeerID(), hangupParticipant(), jami::Manager::instance(), jami::ParticipantInfo::isModerator, JAMI_ERR, JAMI_LOG, jami_tracepoint, jami::MEDIA_AUDIO, muteParticipant(), muteStream(), jami::ConfProtocolParser::onCheckAuthorization(), jami::ConfProtocolParser::onHangupParticipant(), jami::ConfProtocolParser::onKickParticipant(), jami::ConfProtocolParser::onMuteParticipant(), jami::ConfProtocolParser::onMuteStreamAudio(), jami::ConfProtocolParser::onRaiseHand(), jami::ConfProtocolParser::onRaiseHandUri(), jami::ConfProtocolParser::onSetActiveParticipant(), jami::ConfProtocolParser::onSetActiveStream(), jami::ConfProtocolParser::onSetLayout(), jami::ConfProtocolParser::onVersion(), jami::ConfProtocolParser::onVoiceActivity(), jami::runOnMainThread(), setActiveParticipant(), setActiveStream(), setHandRaised(), setLayout(), setVoiceActivity(), jami::split_string_to_unsigned(), jami::sip_utils::streamId(), jami::string_remove_suffix(), and jami::ParticipantInfo::videoMuted.
jami::Conference::~Conference | ( | ) |
Destructor for this class, decrement static counter.
Definition at line 235 of file conference.cpp.
References jami::closeMediaPlayer(), jami::emitSignal(), getConfId(), getDuration(), jami::Manager::getVideoManager(), jami::Manager::instance(), jami::Recordable::isRecording(), JAMI_DEBUG, JAMI_INFO, jami_tracepoint, and toggleRecording().
Add a new subcall to the conference.
Definition at line 681 of file conference.cpp.
References jami::sip_utils::DEFAULT_AUDIO_STREAMID, jami::emitSignal(), jami::Manager::getAllAccounts(), getConfId(), jami::MediaAttribute::hasMediaType(), jami::Manager::instance(), jami::Recordable::isRecording(), JAMI_DEBUG, JAMI_ERROR, jami_tracepoint, jami::MEDIA_VIDEO, jami::sip_utils::streamId(), and toggleRecording().
Referenced by jami::Manager::createConfFromParticipantList().
void jami::Conference::attachHost | ( | const std::vector< libjami::MediaMap > & | mediaList = {} | ) |
Attach host.
Definition at line 919 of file conference.cpp.
References ACTIVE_ATTACHED, ACTIVE_DETACHED, jami::sip_utils::DEFAULT_AUDIO_STREAMID, jami::emitSignal(), getState(), getStateStr(), JAMI_LOG, JAMI_WARNING, jami::MEDIA_VIDEO, requestMediaChange(), setState(), and jami::sip_utils::streamId().
Referenced by jami::Manager::ManagerPimpl::addMainParticipant(), jami::Manager::createConfFromParticipantList(), and jami::Manager::joinParticipant().
std::vector< std::map< std::string, std::string > > jami::Conference::currentMediaList | ( | ) | const |
Retrieve current medias list.
Definition at line 357 of file conference.cpp.
References jami::MediaAttribute::mediaAttributesToMediaMaps().
Referenced by handleMediaChangeRequest(), and reportMediaNegotiationStatus().
void jami::Conference::detachHost | ( | ) |
Detach local audio/video from the conference.
Definition at line 954 of file conference.cpp.
References ACTIVE_ATTACHED, ACTIVE_DETACHED, getState(), getStateStr(), JAMI_LOG, JAMI_WARNING, and setState().
Referenced by jami::Manager::ManagerPimpl::hangupConference(), jami::Manager::holdConference(), and jami::Manager::joinParticipant().
|
inline |
Definition at line 209 of file conference.h.
Referenced by getAccountId(), and jami::Manager::ManagerPimpl::hangupConference().
std::string jami::Conference::getAccountId | ( | ) | const |
Definition at line 1002 of file conference.cpp.
References jami::emitSignal(), and getAccount().
Referenced by jami::Manager::ManagerPimpl::addMainParticipant(), and switchInput().
std::shared_ptr< Call > jami::Conference::getCallFromPeerID | ( | std::string_view | peerId | ) |
Definition at line 1707 of file conference.cpp.
References jami::emitSignal(), and getSubCalls().
Referenced by Conference(), hangupParticipant(), muteParticipant(), and setActiveParticipant().
|
inline |
Definition at line 320 of file conference.h.
References jami::emitSignal(), and jami::ConfInfo::toVectorMapStringString().
|
inline |
Return the conference id.
Definition at line 207 of file conference.h.
Referenced by jami::Manager::ManagerPimpl::addMainParticipant(), jami::Manager::addSubCall(), addSubCall(), jami::Manager::answerCall(), jami::Manager::createConfFromParticipantList(), handleMediaChangeRequest(), jami::Manager::ManagerPimpl::hangupConference(), jami::Manager::holdConference(), jami::Manager::incomingMessage(), jami::Manager::joinParticipant(), jami::Manager::offHoldCall(), removeSubCall(), reportMediaNegotiationStatus(), requestMediaChange(), switchInput(), jami::Manager::unHoldConference(), and ~Conference().
|
inline |
Definition at line 375 of file conference.h.
Referenced by ~Conference().
Conference::State jami::Conference::getState | ( | ) | const |
Return the current conference state.
Definition at line 294 of file conference.cpp.
Referenced by jami::Manager::addSubCall(), attachHost(), detachHost(), isMediaSourceMuted(), requestMediaChange(), and jami::Manager::unHoldConference().
Definition at line 245 of file conference.h.
References getStateStr().
Referenced by attachHost(), detachHost(), getStateStr(), and setState().
Return a string description of the conference state.
Definition at line 231 of file conference.h.
References ACTIVE_ATTACHED, ACTIVE_DETACHED, and HOLD.
Referenced by jami::Manager::ManagerPimpl::addMainParticipant(), jami::Manager::holdConference(), jami::Manager::joinParticipant(), and jami::Manager::unHoldConference().
CallIdSet jami::Conference::getSubCalls | ( | ) | const |
Get the participant list for this conference.
Definition at line 978 of file conference.cpp.
References jami::emitSignal().
Referenced by getCallFromPeerID(), jami::Manager::ManagerPimpl::hangupConference(), setHandRaised(), setModerator(), and jami::Manager::unHoldConference().
void jami::Conference::handleMediaChangeRequest | ( | const std::shared_ptr< Call > & | call, |
const std::vector< libjami::MediaMap > & | remoteMediaList | ||
) |
Process incoming media change request.
callId | the call ID |
remoteMediaList | new media list from the remote |
Definition at line 632 of file conference.cpp.
References jami::MediaAttribute::buildMediaAttributesList(), currentMediaList(), jami::sip_utils::DEFAULT_AUDIO_STREAMID, jami::emitSignal(), libjami::Media::MediaAttributeKey::ENABLED, jami::FALSE_STR, getConfId(), jami::MediaAttribute::hasMediaType(), JAMI_DEBUG, jami::MEDIA_VIDEO, libjami::Media::MediaAttributeKey::MUTED, jami::sip_utils::streamId(), jami::MediaAttribute::toMediaMap(), and jami::TRUE_STR.
void jami::Conference::hangupParticipant | ( | const std::string & | accountUri, |
const std::string & | deviceId = "" |
||
) |
Definition at line 1516 of file conference.cpp.
References jami::Manager::detachHost(), jami::emitSignal(), getCallFromPeerID(), jami::Manager::hangupCall(), libjami::hangupParticipant(), jami::Manager::instance(), JAMI_WARN, and jami::string_remove_suffix().
Referenced by Conference().
Get the mute state of the local host.
Definition at line 435 of file conference.cpp.
References ACTIVE_ATTACHED, jami::emitSignal(), getState(), JAMI_ERR, JAMI_WARN, jami::MEDIA_AUDIO, jami::MEDIA_NONE, and jami::MEDIA_VIDEO.
Referenced by muteLocalHost(), requestMediaChange(), and updateMuted().
bool jami::Conference::isVideoEnabled | ( | ) | const |
Definition at line 1053 of file conference.cpp.
Referenced by muteLocalHost(), and switchInput().
Definition at line 1656 of file conference.cpp.
References jami::emitSignal(), JAMI_DBG, and JAMI_WARN.
Definition at line 1548 of file conference.cpp.
References jami::emitSignal(), isMediaSourceMuted(), isVideoEnabled(), JAMI_DBG, JAMI_DEBUG, JAMI_ERROR, jami::MEDIA_AUDIO, libjami::Media::Details::MEDIA_TYPE_AUDIO, libjami::Media::Details::MEDIA_TYPE_VIDEO, jami::MEDIA_VIDEO, setLocalHostMuteState(), and updateMuted().
Referenced by requestMediaChange().
Definition at line 1382 of file conference.cpp.
References jami::emitSignal(), jami::FALSE_STR, getCallFromPeerID(), jami::string_remove_suffix(), and jami::TRUE_STR.
Referenced by Conference().
void jami::Conference::muteStream | ( | const std::string & | accountUri, |
const std::string & | deviceId, | ||
const std::string & | streamId, | ||
const bool & | state | ||
) |
The client shows one tile per stream (video/audio related to a media)
accountUri | Account of the stream |
deviceId | Device of the stream |
streamId | Stream to mute |
state | True to mute, false to unmute |
Definition at line 1328 of file conference.cpp.
References jami::emitSignal(), and JAMI_WARN.
Referenced by Conference().
Definition at line 1126 of file conference.cpp.
References jami::emitSignal(), jami::ConfProtocolParser::initData(), JAMI_WARNING, jami::ConfProtocolParser::parse(), and jami::json::parse().
Set a callback that will be called when the conference will be destroyed.
Definition at line 226 of file conference.h.
References jami::emitSignal().
Remove a subcall from the conference.
Definition at line 756 of file conference.cpp.
References jami::emitSignal(), getConfId(), JAMI_DEBUG, and jami::MEDIA_AUDIO.
void jami::Conference::reportMediaNegotiationStatus | ( | ) |
Announce to the client that medias are successfully negotiated.
Definition at line 348 of file conference.cpp.
References currentMediaList(), jami::emitSignal(), getConfId(), and libjami::Media::MediaNegotiationStatusEvents::NEGOTIATION_SUCCESS.
Referenced by requestMediaChange().
bool jami::Conference::requestMediaChange | ( | const std::vector< libjami::MediaMap > & | mediaList | ) |
Process a media change request.
Used to change the media attributes of the host.
remoteMediaList | new media list from the remote |
Definition at line 531 of file conference.cpp.
References ACTIVE_ATTACHED, jami::MediaAttribute::buildMediaAttributesList(), jami::closeMediaPlayer(), jami::createMediaPlayer(), jami::sip_utils::DEFAULT_AUDIO_STREAMID, jami::emitSignal(), libjami::Media::VideoProtocolPrefix::FILE, jami::getAudioInput(), getConfId(), getState(), jami::Manager::instance(), isMediaSourceMuted(), JAMI_DEBUG, JAMI_ERROR, jami::MEDIA_AUDIO, libjami::Media::Details::MEDIA_TYPE_AUDIO, libjami::Media::Details::MEDIA_TYPE_VIDEO, jami::MEDIA_VIDEO, muteLocalHost(), reportMediaNegotiationStatus(), libjami::Media::VideoProtocolPrefix::SEPARATOR, and jami::sip_utils::streamId().
Referenced by attachHost().
Definition at line 789 of file conference.cpp.
References jami::sip_utils::DEFAULT_VIDEO_STREAMID, jami::emitSignal(), getCallFromPeerID(), JAMI_WARN, and jami::sip_utils::streamId().
Referenced by Conference().
Definition at line 816 of file conference.cpp.
Referenced by Conference().
Definition at line 1162 of file conference.cpp.
References jami::emitSignal(), getSubCalls(), JAMI_DBG, JAMI_DEBUG, and JAMI_WARN.
Referenced by Conference().
Definition at line 829 of file conference.cpp.
References jami::emitSignal(), JAMI_ERR, and jami::ConfInfo::layout.
Referenced by Conference().
Set the mute state of the local host.
Definition at line 427 of file conference.cpp.
References jami::emitSignal().
Referenced by muteLocalHost().
Definition at line 1246 of file conference.cpp.
References jami::emitSignal(), getSubCalls(), JAMI_DEBUG, and JAMI_WARN.
Set conference state.
Definition at line 300 of file conference.cpp.
References getStateStr(), and JAMI_DEBUG.
Referenced by attachHost(), detachHost(), jami::Manager::joinParticipant(), and jami::Manager::unHoldConference().
Definition at line 1207 of file conference.cpp.
References jami::emitSignal(), JAMI_ERR, and updateVoiceActivity().
Referenced by Conference().
Start recording.
Reimplemented from jami::Recordable.
Definition at line 1751 of file conference.cpp.
References jami::emitSignal(), jami::Recordable::startRecording(), and updateRecording().
|
overridevirtual |
Stop recording.
Reimplemented from jami::Recordable.
Definition at line 1744 of file conference.cpp.
References jami::Recordable::stopRecording(), and updateRecording().
Definition at line 1010 of file conference.cpp.
References jami::emitSignal(), getAccountId(), getConfId(), isVideoEnabled(), JAMI_DEBUG, jami::MEDIA_VIDEO, and video.
|
overridevirtual |
Start/stop recording toggle.
Reimplemented from jami::Recordable.
Definition at line 985 of file conference.cpp.
References jami::emitSignal(), jami::Recordable::isRecording(), jami::Recordable::recorder_, jami::Recordable::toggleRecording(), and updateRecording().
Referenced by addSubCall(), and ~Conference().
Definition at line 1508 of file conference.cpp.
References jami::emitSignal().
void jami::Conference::updateMuted | ( | ) |
Definition at line 1427 of file conference.cpp.
References jami::emitSignal(), isMediaSourceMuted(), jami::MEDIA_AUDIO, and jami::string_remove_suffix().
Referenced by muteLocalHost().
void jami::Conference::updateRecording | ( | ) |
Definition at line 1412 of file conference.cpp.
References jami::emitSignal(), jami::Recordable::isRecording(), and jami::string_remove_suffix().
Referenced by startRecording(), stopRecording(), and toggleRecording().
void jami::Conference::updateVoiceActivity | ( | ) |
Definition at line 1288 of file conference.cpp.
References jami::emitSignal(), and jami::string_remove_suffix().
Referenced by setVoiceActivity().