Liblinphone  5.3.0
Public Types | Public Member Functions | Static Public Member Functions | List of all members
linphone::ChatRoom Class Reference

A chat room is the place where ChatMessage are exchanged. More...

#include <chat_room.hh>

Inheritance diagram for linphone::ChatRoom:

Public Types

enum  Capabilities {
  Capabilities::None = 0,
  Capabilities::Basic = 1<<0,
  Capabilities::RealTimeText = 1<<1,
  Capabilities::Conference = 1<<2,
  Capabilities::Proxy = 1<<3,
  Capabilities::Migratable = 1<<4,
  Capabilities::OneToOne = 1<<5,
  Capabilities::Encrypted = 1<<6,
  Capabilities::Ephemeral = 1<<7
}
 Capabilities is used to indicate the capabilities of a chat room. More...
 
enum  Backend {
  Backend::Basic = 1<<0,
  Backend::FlexisipChat = 1<<1
}
 Backend is used to indicate the backend implementation of a chat room. More...
 
enum  SecurityLevel {
  SecurityLevel::Unsafe = 0,
  SecurityLevel::ClearText = 1,
  SecurityLevel::Encrypted = 2,
  SecurityLevel::Safe = 3
}
 TODO move to encryption engine object when available SecurityLevel is used to indicate the encryption security level of a chat room. More...
 
enum  EphemeralMode {
  EphemeralMode::DeviceManaged = 0,
  EphemeralMode::AdminManaged = 1
}
 EphemeralMode is used to the ephemeral message mode used by a chat room. More...
 
enum  EncryptionBackend {
  EncryptionBackend::None = 0,
  EncryptionBackend::Lime = 1<<0
}
 EncryptionBackend is used to indicate the encryption engine used by a chat room. More...
 
enum  State {
  State::None = 0,
  State::Instantiated = 1,
  State::CreationPending = 2,
  State::Created = 3,
  State::CreationFailed = 4,
  State::TerminationPending = 5,
  State::Terminated = 6,
  State::TerminationFailed = 7,
  State::Deleted = 8
}
 State is used to indicate the current state of a chat room. More...
 

Public Member Functions

LINPHONECXX_PUBLIC ChatRoom (void *ptr, bool takeRef=true)
 
LINPHONECXX_PUBLIC _LinphoneChatRoom * cPtr ()
 
LINPHONECXX_PUBLIC void addListener (const std::shared_ptr< ChatRoomListener > &listener)
 Add an application listener to the ChatRoom instance. More...
 
LINPHONECXX_PUBLIC void removeListener (const std::shared_ptr< ChatRoomListener > &listener)
 Remove a previously added listener from the ChatRoom instance. More...
 
LINPHONECXX_PUBLIC std::shared_ptr< linphone::CallgetCall () const
 Gets the current call associated to this chatroom if any To commit a message, use ChatMessage::send() More...
 
LINPHONECXX_PUBLIC unsigned int getCapabilities () const
 Get the capabilities of a chat room. More...
 
LINPHONECXX_PUBLIC uint32_t getChar ()
 When realtime text is enabled CallParams::realtimeTextEnabled(), LinphoneCoreIsComposingReceivedCb is call everytime a char is received from peer. More...
 
LINPHONECXX_PUBLIC std::list< std::shared_ptr< linphone::Address > > getComposingAddresses ()
 Gets the list of participants that are currently composing. More...
 
LINPHONECXX_PUBLIC std::shared_ptr< const linphone::AddressgetConferenceAddress () const
 Get the conference address of the chat room. More...
 
LINPHONECXX_PUBLIC void setConferenceAddress (const std::shared_ptr< linphone::Address > &conferenceAddress)
 Set the conference address of a group chat room. More...
 
LINPHONECXX_PUBLIC std::shared_ptr< linphone::CoregetCore () const
 Returns back pointer to Core object. More...
 
LINPHONECXX_PUBLIC time_t getCreationTime () const
 Return the creation time for the chat room. More...
 
LINPHONECXX_PUBLIC std::shared_ptr< const linphone::ChatRoomParamsgetCurrentParams () const
 Returns current parameters associated with the chat room. More...
 
LINPHONECXX_PUBLIC bool ephemeralEnabled () const
 Returns whether or not the ephemeral message feature is enabled in the chat room. More...
 
LINPHONECXX_PUBLIC void enableEphemeral (bool enable)
 Enable or disable the ephemeral message feature in the chat room. More...
 
LINPHONECXX_PUBLIC long getEphemeralLifetime () const
 Get lifetime (in seconds) for all new ephemeral messages in the chat room. More...
 
LINPHONECXX_PUBLIC void setEphemeralLifetime (long time)
 Set lifetime (in seconds) for all new ephemeral messages in the chat room. More...
 
LINPHONECXX_PUBLIC EphemeralMode getEphemeralMode () const
 Get the ephemeral mode of the chat room. More...
 
LINPHONECXX_PUBLIC void setEphemeralMode (EphemeralMode mode)
 Set the ephemeral mode of the chat room. More...
 
LINPHONECXX_PUBLIC int getHistoryEventsSize ()
 Gets the number of events in a chat room. More...
 
LINPHONECXX_PUBLIC int getHistorySize ()
 Gets the number of messages in a chat room. More...
 
LINPHONECXX_PUBLIC bool isEmpty ()
 Returns whether or not a ChatRoom has at least one ChatMessage or not. More...
 
LINPHONECXX_PUBLIC bool isReadOnly () const
 Return whether or not a message can be sent using this chat room. More...
 
LINPHONECXX_PUBLIC bool isRemoteComposing () const
 Tells whether the remote is currently composing a message. More...
 
LINPHONECXX_PUBLIC std::shared_ptr< linphone::ChatMessagegetLastMessageInHistory ()
 Gets the last chat message sent or received in this chat room. More...
 
LINPHONECXX_PUBLIC time_t getLastUpdateTime () const
 Return the last updated time for the chat room. More...
 
LINPHONECXX_PUBLIC std::shared_ptr< const linphone::AddressgetLocalAddress ()
 Get the local address associated to this chat room. More...
 
LINPHONECXX_PUBLIC std::shared_ptr< linphone::ParticipantgetMe () const
 Get the participant representing myself in the chat room. More...
 
LINPHONECXX_PUBLIC bool getMuted () const
 Gets if a chat room has been flagged as muted (not by default). More...
 
LINPHONECXX_PUBLIC void setMuted (bool muted)
 Sets if a chat room should be considered as muted or not. More...
 
LINPHONECXX_PUBLIC int getNbParticipants () const
 Get the number of participants in the chat room (that is without ourselves). More...
 
LINPHONECXX_PUBLIC std::list< std::shared_ptr< linphone::Participant > > getParticipants () const
 Get the list of participants of a chat room. More...
 
LINPHONECXX_PUBLIC std::shared_ptr< const linphone::AddressgetPeerAddress ()
 Get the peer address associated to this chat room. More...
 
LINPHONECXX_PUBLIC SecurityLevel getSecurityLevel ()
 Get the security level of a chat room. More...
 
LINPHONECXX_PUBLIC State getState () const
 Get the state of the chat room. More...
 
LINPHONECXX_PUBLIC std::string getSubject () const
 Get the subject of a chat room. More...
 
LINPHONECXX_PUBLIC void setSubject (const std::string &subject)
 Set the subject of a chat room. More...
 
LINPHONECXX_PUBLIC std::list< std::shared_ptr< linphone::ChatMessage > > getUnreadHistory ()
 Gets all unread messages for this chat room, sorted from oldest to most recent. More...
 
LINPHONECXX_PUBLIC int getUnreadMessagesCount ()
 Gets the number of unread messages in the chatroom. More...
 
LINPHONECXX_PUBLIC void addParticipant (const std::shared_ptr< linphone::Address > &addr)
 Add a participant to a chat room. More...
 
LINPHONECXX_PUBLIC bool addParticipants (const std::list< std::shared_ptr< linphone::Address >> &addresses)
 Add several participants to a chat room at once. More...
 
LINPHONECXX_PUBLIC void allowCpim ()
 Allow cpim on a basic chat room .
 
LINPHONECXX_PUBLIC void allowMultipart ()
 Allow multipart on a basic chat room .
 
LINPHONECXX_PUBLIC bool canHandleParticipants () const
 Tells whether a chat room is able to handle participants. More...
 
LINPHONECXX_PUBLIC void compose ()
 Notifies the destination of the chat message being composed that the user is typing a new message.
 
LINPHONECXX_PUBLIC std::shared_ptr< linphone::ChatMessagecreateEmptyMessage ()
 Creates an empty message attached to the given chat room. More...
 
LINPHONECXX_PUBLIC std::shared_ptr< linphone::ChatMessagecreateFileTransferMessage (const std::shared_ptr< linphone::Content > &initialContent)
 Creates a message attached to the given chat room with a particular content. More...
 
LINPHONECXX_PUBLIC std::shared_ptr< linphone::ChatMessagecreateForwardMessage (const std::shared_ptr< linphone::ChatMessage > &message)
 Creates a forward message attached to the given chat room with a particular message. More...
 
LINPHONECXX_PUBLIC LINPHONECXX_DEPRECATED std::shared_ptr< linphone::ChatMessagecreateMessage (const std::string &message)
 Creates a message attached to the given chat room with a plain text content filled with the given message. More...
 
LINPHONECXX_PUBLIC std::shared_ptr< linphone::ChatMessagecreateMessageFromUtf8 (const std::string &message)
 Creates a message attached to the given chat room with a plain text content filled with the given message. More...
 
LINPHONECXX_PUBLIC std::shared_ptr< linphone::ChatMessagecreateReplyMessage (const std::shared_ptr< linphone::ChatMessage > &message)
 Creates a reply message attached to the given chat room with a particular message. More...
 
LINPHONECXX_PUBLIC std::shared_ptr< linphone::ChatMessagecreateVoiceRecordingMessage (const std::shared_ptr< linphone::Recorder > &recorder)
 Creates a chat message with a voice recording attached to the given chat room. More...
 
LINPHONECXX_PUBLIC void deleteHistory ()
 Delete all messages from the history.
 
LINPHONECXX_PUBLIC void deleteMessage (const std::shared_ptr< linphone::ChatMessage > &message)
 Delete a message from the chat room history. More...
 
LINPHONECXX_PUBLIC bool ephemeralSupportedByAllParticipants () const
 Uses linphone spec to check if all participants support ephemeral messages. More...
 
LINPHONECXX_PUBLIC std::shared_ptr< linphone::ChatMessagefindMessage (const std::string &messageId)
 Gets the chat message sent or received in this chat room that matches the message_id. More...
 
LINPHONECXX_PUBLIC std::shared_ptr< linphone::ParticipantfindParticipant (const std::shared_ptr< linphone::Address > &address) const
 Find a participant of a chat room from its address. More...
 
LINPHONECXX_PUBLIC std::list< std::shared_ptr< linphone::ChatMessage > > getHistory (int nbMessage)
 Gets nb_message most recent messages from chat_room chat room, sorted from oldest to most recent. More...
 
LINPHONECXX_PUBLIC std::list< std::shared_ptr< linphone::EventLog > > getHistoryEvents (int nbEvents)
 Gets nb_events most recent events from chat_room chat room, sorted from oldest to most recent. More...
 
LINPHONECXX_PUBLIC std::list< std::shared_ptr< linphone::EventLog > > getHistoryMessageEvents (int nbEvents)
 Gets nb_events most recent chat message events from chat_room chat room, sorted from oldest to most recent. More...
 
LINPHONECXX_PUBLIC std::list< std::shared_ptr< linphone::ChatMessage > > getHistoryRange (int begin, int end)
 Gets the partial list of messages in the given range, sorted from oldest to most recent. More...
 
LINPHONECXX_PUBLIC std::list< std::shared_ptr< linphone::EventLog > > getHistoryRangeEvents (int begin, int end)
 Gets the partial list of events in the given range, sorted from oldest to most recent. More...
 
LINPHONECXX_PUBLIC std::list< std::shared_ptr< linphone::EventLog > > getHistoryRangeMessageEvents (int begin, int end)
 Gets the partial list of chat message events in the given range, sorted from oldest to most recent. More...
 
LINPHONECXX_PUBLIC LINPHONECXX_DEPRECATED bool hasBeenLeft () const
 Return whether or not the chat room has been left. More...
 
LINPHONECXX_PUBLIC bool hasCapability (int mask) const
 Check if a chat room has given capabilities. More...
 
LINPHONECXX_PUBLIC void leave ()
 Leave a chat room.
 
LINPHONECXX_PUBLIC void markAsRead ()
 Mark all messages of the conversation as read.
 
LINPHONECXX_PUBLIC void notifyParticipantDeviceRegistration (const std::shared_ptr< const linphone::Address > &participantDevice)
 Notify the chatroom that a participant device has just registered. More...
 
LINPHONECXX_PUBLIC void receiveChatMessage (const std::shared_ptr< linphone::ChatMessage > &message)
 Used to receive a chat message when using async mechanism with IM enchat_roomyption engine. More...
 
LINPHONECXX_PUBLIC void removeParticipant (const std::shared_ptr< linphone::Participant > &participant)
 Remove a participant of a chat room. More...
 
LINPHONECXX_PUBLIC void removeParticipants (const std::list< std::shared_ptr< linphone::Participant >> &participants)
 Remove several participants of a chat room at once. More...
 
LINPHONECXX_PUBLIC void setParticipantAdminStatus (const std::shared_ptr< linphone::Participant > &participant, bool isAdmin)
 Change the admin status of a participant of a chat room (you need to be an admin yourself to do this). More...
 
LINPHONECXX_PUBLIC void setParticipantDevices (const std::shared_ptr< linphone::Address > &participantAddress, const std::list< std::shared_ptr< linphone::ParticipantDeviceIdentity >> &deviceIdentities)
 Set the list of participant devices in the form of SIP URIs with GRUUs for a given participant. More...
 

Static Public Member Functions

static LINPHONECXX_PUBLIC std::string stateToString (State state)
 Converts a State enum to a string. More...
 

Detailed Description

A chat room is the place where ChatMessage are exchanged.

To create (or find) a ChatRoom, you first need a ChatRoomParams object. A chat room is uniquely identified by it's local and remote SIP addresses, meaning you can only have one chat room between two accounts (unless the backend is Backend::FlexisipChat). Then you can call Core::searchChatRoom() or Core::createChatRoom(). Be careful as a Backend::FlexisipChat backend ChatRoom will be created asynchronously, so make sure you add a ChatRoomListener to the returned object to be notified when it will be in state State::Created. All chat rooms are loaded from database when the Core starts, and you can get them using Core::getChatRooms(). This method doesn't return empty chat rooms nor ones for which the local address doesn't match an existing ProxyConfig identity, unless you specify otherwise in the [misc] section of your configuration file by setting hide_empty_chat_rooms=0 and/or hide_chat_rooms_from_removed_proxies=0.

Member Enumeration Documentation

◆ Backend

Backend is used to indicate the backend implementation of a chat room.

Enumerator
Basic 

Basic (client-to-client) chat room.

FlexisipChat 

Server-based chat room.

◆ Capabilities

Capabilities is used to indicate the capabilities of a chat room.

Enumerator
None 

No capabilities.

Basic 

No server.

RealTimeText 

Supports RTT.

Conference 

Use server (supports group chat)

Proxy 

Special proxy chat room flag.

Migratable 

Chat room migratable from Basic to Conference.

OneToOne 

A communication between two participants (can be Basic or Conference)

Encrypted 

Chat room is encrypted.

Ephemeral 

Chat room can enable ephemeral messages.

◆ EncryptionBackend

EncryptionBackend is used to indicate the encryption engine used by a chat room.

Enumerator
None 

No encryption.

Lime 

Lime x3dh encryption.

◆ EphemeralMode

EphemeralMode is used to the ephemeral message mode used by a chat room.

Enumerator
DeviceManaged 

Each device manages its own ephemeral settings.

AdminManaged 

Ephemeral settings are chatroom wide and only admins can change them.

◆ SecurityLevel

TODO move to encryption engine object when available SecurityLevel is used to indicate the encryption security level of a chat room.

Enumerator
Unsafe 

Security failure.

ClearText 

No encryption.

Encrypted 

Encrypted.

Safe 

Encrypted and verified.

◆ State

State is used to indicate the current state of a chat room.

Enumerator
None 

Initial state.

Instantiated 

Chat room is now instantiated on local.

CreationPending 

One creation request was sent to the server.

Created 

Chat room was created on the server.

CreationFailed 

Chat room creation failed.

TerminationPending 

Wait for chat room termination.

Terminated 

Chat room exists on server but not in local.

TerminationFailed 

The chat room termination failed.

Deleted 

Chat room was deleted on the server.

Member Function Documentation

◆ addListener()

LINPHONECXX_PUBLIC void linphone::ChatRoom::addListener ( const std::shared_ptr< ChatRoomListener > &  listener)

Add an application listener to the ChatRoom instance.

Parameters
listenerthe application listener

◆ addParticipant()

LINPHONECXX_PUBLIC void linphone::ChatRoom::addParticipant ( const std::shared_ptr< linphone::Address > &  addr)

Add a participant to a chat room.

This may fail if this type of chat room does not handle participants. Use canHandleParticipants() to know if this chat room handles participants.

Parameters
addrThe address of the participant to add to the chat room

◆ addParticipants()

LINPHONECXX_PUBLIC bool linphone::ChatRoom::addParticipants ( const std::list< std::shared_ptr< linphone::Address >> &  addresses)

Add several participants to a chat room at once.

This may fail if this type of chat room does not handle participants. Use canHandleParticipants() to know if this chat room handles participants.

Parameters
addressesThe participants to add.
Returns
true if everything is OK, false otherwise

◆ canHandleParticipants()

LINPHONECXX_PUBLIC bool linphone::ChatRoom::canHandleParticipants ( ) const

Tells whether a chat room is able to handle participants.

Returns
true if the chat room can handle participants, false otherwise

◆ createEmptyMessage()

LINPHONECXX_PUBLIC std::shared_ptr<linphone::ChatMessage> linphone::ChatRoom::createEmptyMessage ( )

Creates an empty message attached to the given chat room.

Returns
a new ChatMessage

◆ createFileTransferMessage()

LINPHONECXX_PUBLIC std::shared_ptr<linphone::ChatMessage> linphone::ChatRoom::createFileTransferMessage ( const std::shared_ptr< linphone::Content > &  initialContent)

Creates a message attached to the given chat room with a particular content.

Use ChatMessage::send() to initiate the transfer

Parameters
initialContentContent initial content.
Returns
a new ChatMessage

◆ createForwardMessage()

LINPHONECXX_PUBLIC std::shared_ptr<linphone::ChatMessage> linphone::ChatRoom::createForwardMessage ( const std::shared_ptr< linphone::ChatMessage > &  message)

Creates a forward message attached to the given chat room with a particular message.

Parameters
messageChatMessage message to be forwarded.
Returns
a new ChatMessage

◆ createMessage()

LINPHONECXX_PUBLIC LINPHONECXX_DEPRECATED std::shared_ptr<linphone::ChatMessage> linphone::ChatRoom::createMessage ( const std::string &  message)

Creates a message attached to the given chat room with a plain text content filled with the given message.

Parameters
messagetext message, nullptr if absent.
Returns
a new ChatMessage
Deprecated:
01/07/2020. Use createMessageFromUtf8() instead.

◆ createMessageFromUtf8()

LINPHONECXX_PUBLIC std::shared_ptr<linphone::ChatMessage> linphone::ChatRoom::createMessageFromUtf8 ( const std::string &  message)

Creates a message attached to the given chat room with a plain text content filled with the given message.

Introduced in 01/07/2020

Parameters
messagetext message in UTF8, nullptr if absent.
Returns
a new ChatMessage

◆ createReplyMessage()

LINPHONECXX_PUBLIC std::shared_ptr<linphone::ChatMessage> linphone::ChatRoom::createReplyMessage ( const std::shared_ptr< linphone::ChatMessage > &  message)

Creates a reply message attached to the given chat room with a particular message.

Parameters
messageChatMessage message to reply to.
Returns
a new ChatMessage

◆ createVoiceRecordingMessage()

LINPHONECXX_PUBLIC std::shared_ptr<linphone::ChatMessage> linphone::ChatRoom::createVoiceRecordingMessage ( const std::shared_ptr< linphone::Recorder > &  recorder)

Creates a chat message with a voice recording attached to the given chat room.

Warning
If the recorder isn't in Closed state, it will return an empty message!
Parameters
recorderthe Recorder object used to record the voice message.
Returns
a new ChatMessage

◆ deleteMessage()

LINPHONECXX_PUBLIC void linphone::ChatRoom::deleteMessage ( const std::shared_ptr< linphone::ChatMessage > &  message)

Delete a message from the chat room history.

Parameters
messageThe ChatMessage object to remove.

◆ enableEphemeral()

LINPHONECXX_PUBLIC void linphone::ChatRoom::enableEphemeral ( bool  enable)

Enable or disable the ephemeral message feature in the chat room.

Works only for flexisip-based chat room. An ephemeral message will automatically disappear from the sender and recipient's chatrooms after a specified timeout configurable with setEphemeralLifetime(). The timer starts when the message has been displayed at the recipent, which means:

Parameters
enabletrue if the ephemeral message feature is enabled, false otherwise.

◆ ephemeralEnabled()

LINPHONECXX_PUBLIC bool linphone::ChatRoom::ephemeralEnabled ( ) const

Returns whether or not the ephemeral message feature is enabled in the chat room.

Returns
true if ephemeral is enabled, false otherwise.

◆ ephemeralSupportedByAllParticipants()

LINPHONECXX_PUBLIC bool linphone::ChatRoom::ephemeralSupportedByAllParticipants ( ) const

Uses linphone spec to check if all participants support ephemeral messages.

It doesn't prevent to send ephemeral messages in the room but those who don't support it won't delete messages after lifetime has expired.

See also
ephemeralEnabled()
Returns
true if all participants in the chat room support ephemeral messages, false otherwise

◆ findMessage()

LINPHONECXX_PUBLIC std::shared_ptr<linphone::ChatMessage> linphone::ChatRoom::findMessage ( const std::string &  messageId)

Gets the chat message sent or received in this chat room that matches the message_id.

Parameters
messageIdThe id of the message to find
Returns
the ChatMessage if found or nullptr.

◆ findParticipant()

LINPHONECXX_PUBLIC std::shared_ptr<linphone::Participant> linphone::ChatRoom::findParticipant ( const std::shared_ptr< linphone::Address > &  address) const

Find a participant of a chat room from its address.

Parameters
addressThe Address to search in the list of participants of the chat room
Returns
The participant if found, nullptr otherwise.

◆ getCall()

LINPHONECXX_PUBLIC std::shared_ptr<linphone::Call> linphone::ChatRoom::getCall ( ) const

Gets the current call associated to this chatroom if any To commit a message, use ChatMessage::send()

Returns
Call or nullptr.

◆ getCapabilities()

LINPHONECXX_PUBLIC unsigned int linphone::ChatRoom::getCapabilities ( ) const

Get the capabilities of a chat room.

Returns
The capabilities of the chat room (as a LinphoneChatRoomCapabilitiesMask)

◆ getChar()

LINPHONECXX_PUBLIC uint32_t linphone::ChatRoom::getChar ( )

When realtime text is enabled CallParams::realtimeTextEnabled(), LinphoneCoreIsComposingReceivedCb is call everytime a char is received from peer.

At the end of remote typing a regular ChatMessage is received with committed data from LinphoneCoreCbsMessageReceivedCb.

Returns
RFC 4103/T.140 char

◆ getComposingAddresses()

LINPHONECXX_PUBLIC std::list<std::shared_ptr<linphone::Address> > linphone::ChatRoom::getComposingAddresses ( )

Gets the list of participants that are currently composing.

Returns
List of addresses that are in the is_composing state.

◆ getConferenceAddress()

LINPHONECXX_PUBLIC std::shared_ptr<const linphone::Address> linphone::ChatRoom::getConferenceAddress ( ) const

Get the conference address of the chat room.

Returns
The conference address of the chat room or nullptr if this type of chat room is not conference based.

◆ getCore()

LINPHONECXX_PUBLIC std::shared_ptr<linphone::Core> linphone::ChatRoom::getCore ( ) const

Returns back pointer to Core object.

Returns
the Core object this chat room is attached to.

◆ getCreationTime()

LINPHONECXX_PUBLIC time_t linphone::ChatRoom::getCreationTime ( ) const

Return the creation time for the chat room.

Returns
the time at which the chat room was created

◆ getCurrentParams()

LINPHONECXX_PUBLIC std::shared_ptr<const linphone::ChatRoomParams> linphone::ChatRoom::getCurrentParams ( ) const

Returns current parameters associated with the chat room.

This is typically the parameters passed at chat room chat_roomeation to linphone_core_chat_roomeate_chat_room() or some default parameters if no ChatRoomParams was explicitely passed during chat room chat_roomeation.

Returns
the current ChatRoomParams parameters.

◆ getEphemeralLifetime()

LINPHONECXX_PUBLIC long linphone::ChatRoom::getEphemeralLifetime ( ) const

Get lifetime (in seconds) for all new ephemeral messages in the chat room.

After the message is read, it will be deleted after "time" seconds.

See also
ephemeralEnabled()
Returns
the ephemeral lifetime (in secoonds)

◆ getEphemeralMode()

LINPHONECXX_PUBLIC EphemeralMode linphone::ChatRoom::getEphemeralMode ( ) const

Get the ephemeral mode of the chat room.

See also
ephemeralEnabled()
Returns
the ephemeral mode EphemeralMode

◆ getHistory()

LINPHONECXX_PUBLIC std::list<std::shared_ptr<linphone::ChatMessage> > linphone::ChatRoom::getHistory ( int  nbMessage)

Gets nb_message most recent messages from chat_room chat room, sorted from oldest to most recent.

Parameters
nbMessageNumber of message to retrieve. 0 means everything.
Returns
A list of chat messages.

◆ getHistoryEvents()

LINPHONECXX_PUBLIC std::list<std::shared_ptr<linphone::EventLog> > linphone::ChatRoom::getHistoryEvents ( int  nbEvents)

Gets nb_events most recent events from chat_room chat room, sorted from oldest to most recent.

Parameters
nbEventsNumber of events to retrieve. 0 means everything.
Returns
The list of the most recent events.

◆ getHistoryEventsSize()

LINPHONECXX_PUBLIC int linphone::ChatRoom::getHistoryEventsSize ( )

Gets the number of events in a chat room.

Returns
the number of events.

◆ getHistoryMessageEvents()

LINPHONECXX_PUBLIC std::list<std::shared_ptr<linphone::EventLog> > linphone::ChatRoom::getHistoryMessageEvents ( int  nbEvents)

Gets nb_events most recent chat message events from chat_room chat room, sorted from oldest to most recent.

Parameters
nbEventsNumber of events to retrieve. 0 means everything.
Returns
A list

◆ getHistoryRange()

LINPHONECXX_PUBLIC std::list<std::shared_ptr<linphone::ChatMessage> > linphone::ChatRoom::getHistoryRange ( int  begin,
int  end 
)

Gets the partial list of messages in the given range, sorted from oldest to most recent.

Parameters
beginThe first message of the range to be retrieved. History most recent message has index 0.
endThe last message of the range to be retrieved. History oldest message has index of history size - 1 (use getHistorySize() to retrieve history size)
Returns
A list of chat messages.

◆ getHistoryRangeEvents()

LINPHONECXX_PUBLIC std::list<std::shared_ptr<linphone::EventLog> > linphone::ChatRoom::getHistoryRangeEvents ( int  begin,
int  end 
)

Gets the partial list of events in the given range, sorted from oldest to most recent.

Parameters
beginThe first event of the range to be retrieved. History most recent event has index 0.
endThe last event of the range to be retrieved. History oldest event has index of history size - 1
Returns
The list of the found events.

◆ getHistoryRangeMessageEvents()

LINPHONECXX_PUBLIC std::list<std::shared_ptr<linphone::EventLog> > linphone::ChatRoom::getHistoryRangeMessageEvents ( int  begin,
int  end 
)

Gets the partial list of chat message events in the given range, sorted from oldest to most recent.

Parameters
beginThe first event of the range to be retrieved. History most recent event has index 0.
endThe last event of the range to be retrieved. History oldest event has index of history size - 1
Returns
The list of chat message events.

◆ getHistorySize()

LINPHONECXX_PUBLIC int linphone::ChatRoom::getHistorySize ( )

Gets the number of messages in a chat room.

Returns
the number of messages.

◆ getLastMessageInHistory()

LINPHONECXX_PUBLIC std::shared_ptr<linphone::ChatMessage> linphone::ChatRoom::getLastMessageInHistory ( )

Gets the last chat message sent or received in this chat room.

Returns
the latest ChatMessage or nullptr if no message.

◆ getLastUpdateTime()

LINPHONECXX_PUBLIC time_t linphone::ChatRoom::getLastUpdateTime ( ) const

Return the last updated time for the chat room.

Returns
the last updated time

◆ getLocalAddress()

LINPHONECXX_PUBLIC std::shared_ptr<const linphone::Address> linphone::ChatRoom::getLocalAddress ( )

Get the local address associated to this chat room.

Returns
The local address.

◆ getMe()

LINPHONECXX_PUBLIC std::shared_ptr<linphone::Participant> linphone::ChatRoom::getMe ( ) const

Get the participant representing myself in the chat room.

Returns
The participant representing myself in the conference or nullptr if me is not set.

◆ getMuted()

LINPHONECXX_PUBLIC bool linphone::ChatRoom::getMuted ( ) const

Gets if a chat room has been flagged as muted (not by default).

A muted chat room isn't used to compute unread messages total count.

Returns
true if the chat room is muted, false otherwise.

◆ getNbParticipants()

LINPHONECXX_PUBLIC int linphone::ChatRoom::getNbParticipants ( ) const

Get the number of participants in the chat room (that is without ourselves).

Returns
The number of participants in the chat room

◆ getParticipants()

LINPHONECXX_PUBLIC std::list<std::shared_ptr<linphone::Participant> > linphone::ChatRoom::getParticipants ( ) const

Get the list of participants of a chat room.

Returns
A of the participants

◆ getPeerAddress()

LINPHONECXX_PUBLIC std::shared_ptr<const linphone::Address> linphone::ChatRoom::getPeerAddress ( )

Get the peer address associated to this chat room.

Returns
The peer address.

◆ getSecurityLevel()

LINPHONECXX_PUBLIC SecurityLevel linphone::ChatRoom::getSecurityLevel ( )

Get the security level of a chat room.

Returns
The current SecurityLevel of the chat room

◆ getState()

LINPHONECXX_PUBLIC State linphone::ChatRoom::getState ( ) const

Get the state of the chat room.

Returns
The current State of the chat room

◆ getSubject()

LINPHONECXX_PUBLIC std::string linphone::ChatRoom::getSubject ( ) const

Get the subject of a chat room.

Returns
The subject of the chat room.

◆ getUnreadHistory()

LINPHONECXX_PUBLIC std::list<std::shared_ptr<linphone::ChatMessage> > linphone::ChatRoom::getUnreadHistory ( )

Gets all unread messages for this chat room, sorted from oldest to most recent.

Returns
A list of unread chat messages.

◆ getUnreadMessagesCount()

LINPHONECXX_PUBLIC int linphone::ChatRoom::getUnreadMessagesCount ( )

Gets the number of unread messages in the chatroom.

Returns
the number of unread messages.

◆ hasBeenLeft()

LINPHONECXX_PUBLIC LINPHONECXX_DEPRECATED bool linphone::ChatRoom::hasBeenLeft ( ) const

Return whether or not the chat room has been left.

Returns
true if the chat room has been left, false otherwise.
Deprecated:
16/03/2022 use isReadOnly() instead.

◆ hasCapability()

LINPHONECXX_PUBLIC bool linphone::ChatRoom::hasCapability ( int  mask) const

Check if a chat room has given capabilities.

Parameters
maska LinphoneChatRoomCapabilitiesMask mask
Returns
true if the mask matches, false otherwise

◆ isEmpty()

LINPHONECXX_PUBLIC bool linphone::ChatRoom::isEmpty ( )

Returns whether or not a ChatRoom has at least one ChatMessage or not.

Returns
true if there are no ChatMessage, false otherwise.

◆ isReadOnly()

LINPHONECXX_PUBLIC bool linphone::ChatRoom::isReadOnly ( ) const

Return whether or not a message can be sent using this chat room.

A chat room may be read only until it's created, or when it's a group you have left.

Returns
true if a chat message can't be sent in it, false otherwise.

◆ isRemoteComposing()

LINPHONECXX_PUBLIC bool linphone::ChatRoom::isRemoteComposing ( ) const

Tells whether the remote is currently composing a message.

Returns
true if the remote is currently composing a message, false otherwise.

◆ notifyParticipantDeviceRegistration()

LINPHONECXX_PUBLIC void linphone::ChatRoom::notifyParticipantDeviceRegistration ( const std::shared_ptr< const linphone::Address > &  participantDevice)

Notify the chatroom that a participant device has just registered.

This function is meaningful only for server implementation of chatroom, and shall not by used by client applications.

Parameters
participantDevicelist of the participant devices to be used by the group chat room

◆ receiveChatMessage()

LINPHONECXX_PUBLIC void linphone::ChatRoom::receiveChatMessage ( const std::shared_ptr< linphone::ChatMessage > &  message)

Used to receive a chat message when using async mechanism with IM enchat_roomyption engine.

Parameters
messageChatMessage object

◆ removeListener()

LINPHONECXX_PUBLIC void linphone::ChatRoom::removeListener ( const std::shared_ptr< ChatRoomListener > &  listener)

Remove a previously added listener from the ChatRoom instance.

Parameters
listenerthe application listener

◆ removeParticipant()

LINPHONECXX_PUBLIC void linphone::ChatRoom::removeParticipant ( const std::shared_ptr< linphone::Participant > &  participant)

Remove a participant of a chat room.

Parameters
participantThe participant to remove from the chat room

◆ removeParticipants()

LINPHONECXX_PUBLIC void linphone::ChatRoom::removeParticipants ( const std::list< std::shared_ptr< linphone::Participant >> &  participants)

Remove several participants of a chat room at once.

Parameters
participantsThe participants to remove.

◆ setConferenceAddress()

LINPHONECXX_PUBLIC void linphone::ChatRoom::setConferenceAddress ( const std::shared_ptr< linphone::Address > &  conferenceAddress)

Set the conference address of a group chat room.

This function needs to be called from the LinphoneChatRoomCbsConferenceAddressGenerationCb callback and only there. This function is meaningful only for server implementation of chatroom, and shall not by used by client applications.

Parameters
conferenceAddressThe conference Address to be used by the group chat room

◆ setEphemeralLifetime()

LINPHONECXX_PUBLIC void linphone::ChatRoom::setEphemeralLifetime ( long  time)

Set lifetime (in seconds) for all new ephemeral messages in the chat room.

After the message is read, it will be deleted after "time" seconds.

See also
ephemeralEnabled()
Parameters
timeThe ephemeral lifetime, default is 0 (disabled)
Warning
A value of "time" equal to 0 disables ephemeral messages

◆ setEphemeralMode()

LINPHONECXX_PUBLIC void linphone::ChatRoom::setEphemeralMode ( EphemeralMode  mode)

Set the ephemeral mode of the chat room.

See also
ephemeralEnabled()
Parameters
modeThe ephemeral mode EphemeralMode
Warning
This function only changes the mode of ephemeral messages EphemeralMode. It is required to manually enable ephemeral messages after setting the mode by calling enableEphemeral()

◆ setMuted()

LINPHONECXX_PUBLIC void linphone::ChatRoom::setMuted ( bool  muted)

Sets if a chat room should be considered as muted or not.

A muted chat room isn't used to compute unread messages total count.

Parameters
mutedtrue to flag it as muted, false to un-mute it.

◆ setParticipantAdminStatus()

LINPHONECXX_PUBLIC void linphone::ChatRoom::setParticipantAdminStatus ( const std::shared_ptr< linphone::Participant > &  participant,
bool  isAdmin 
)

Change the admin status of a participant of a chat room (you need to be an admin yourself to do this).

Parameters
participantThe Participant for which to change the admin status
isAdminA boolean value telling whether the participant should now be an admin or not

◆ setParticipantDevices()

LINPHONECXX_PUBLIC void linphone::ChatRoom::setParticipantDevices ( const std::shared_ptr< linphone::Address > &  participantAddress,
const std::list< std::shared_ptr< linphone::ParticipantDeviceIdentity >> &  deviceIdentities 
)

Set the list of participant devices in the form of SIP URIs with GRUUs for a given participant.

This function is meaningful only for server implementation of chatroom, and shall not by used by client applications.

Parameters
participantAddressThe participant address
deviceIdentitiesList of the participant devices to be used by the group chat room

◆ setSubject()

LINPHONECXX_PUBLIC void linphone::ChatRoom::setSubject ( const std::string &  subject)

Set the subject of a chat room.

Parameters
subjectThe new subject to set for the chat room

◆ stateToString()

static LINPHONECXX_PUBLIC std::string linphone::ChatRoom::stateToString ( State  state)
static

Converts a State enum to a string.

Parameters
statea State to convert to string
Returns
the string representation of the State

The documentation for this class was generated from the following file: