Liblinphone  3.10.2
Defines | Typedefs | Enumerations | Functions
Chat room and Messaging

Defines

#define linphone_chat_message_set_from(msg, addr)   linphone_chat_message_set_from_address(msg, addr)
#define linphone_chat_message_get_from(msg)   linphone_chat_message_get_from_address(msg)
#define linphone_chat_message_set_to(msg, addr)   linphone_chat_message_set_to_address(msg, addr)
#define linphone_chat_message_get_to(msg)   linphone_chat_message_get_to_address(msg)

Typedefs

typedef struct
_LinphoneChatMessageCbs 
LinphoneChatMessageCbs
typedef struct _LinphoneChatMessage LinphoneChatMessage
typedef struct _LinphoneChatRoom LinphoneChatRoom
typedef enum
_LinphoneChatMessageState 
LinphoneChatMessageState
typedef enum _LinphoneLimeState LinphoneLimeState
typedef void(* LinphoneChatMessageStateChangedCb )(LinphoneChatMessage *msg, LinphoneChatMessageState state, void *ud)
typedef void(* LinphoneChatMessageCbsMsgStateChangedCb )(LinphoneChatMessage *msg, LinphoneChatMessageState state)
typedef void(* LinphoneChatMessageCbsFileTransferRecvCb )(LinphoneChatMessage *message, const LinphoneContent *content, const LinphoneBuffer *buffer)
typedef LinphoneBuffer *(* LinphoneChatMessageCbsFileTransferSendCb )(LinphoneChatMessage *message, const LinphoneContent *content, size_t offset, size_t size)
typedef void(* LinphoneChatMessageCbsFileTransferProgressIndicationCb )(LinphoneChatMessage *message, const LinphoneContent *content, size_t offset, size_t total)

Enumerations

enum  _LinphoneChatMessageState {
  LinphoneChatMessageStateIdle,
  LinphoneChatMessageStateInProgress,
  LinphoneChatMessageStateDelivered,
  LinphoneChatMessageStateNotDelivered,
  LinphoneChatMessageStateFileTransferError,
  LinphoneChatMessageStateFileTransferDone
}
enum  _LinphoneLimeState {
  LinphoneLimeDisabled,
  LinphoneLimeMandatory,
  LinphoneLimePreferred
}

Functions

void linphone_core_set_chat_database_path (LinphoneCore *lc, const char *path)
const char * linphone_core_get_chat_database_path (const LinphoneCore *lc)
LinphoneChatRoomlinphone_core_get_chat_room (LinphoneCore *lc, const LinphoneAddress *addr)
LinphoneChatRoomlinphone_core_get_chat_room_from_uri (LinphoneCore *lc, const char *to)
void linphone_core_delete_chat_room (LinphoneCore *lc, LinphoneChatRoom *cr)
void linphone_core_disable_chat (LinphoneCore *lc, LinphoneReason deny_reason)
void linphone_core_enable_chat (LinphoneCore *lc)
bool_t linphone_core_chat_enabled (const LinphoneCore *lc)
MS2_DEPRECATED void linphone_chat_room_destroy (LinphoneChatRoom *cr)
LinphoneChatMessagelinphone_chat_room_create_message (LinphoneChatRoom *cr, const char *message)
LinphoneChatMessagelinphone_chat_room_create_message_2 (LinphoneChatRoom *cr, const char *message, const char *external_body_url, LinphoneChatMessageState state, time_t time, bool_t is_read, bool_t is_incoming)
LinphoneChatRoomlinphone_chat_room_ref (LinphoneChatRoom *cr)
void linphone_chat_room_unref (LinphoneChatRoom *cr)
void * linphone_chat_room_get_user_data (const LinphoneChatRoom *cr)
void linphone_chat_room_set_user_data (LinphoneChatRoom *cr, void *ud)
LinphoneChatMessagelinphone_chat_room_create_file_transfer_message (LinphoneChatRoom *cr, const LinphoneContent *initial_content)
const LinphoneAddresslinphone_chat_room_get_peer_address (LinphoneChatRoom *cr)
MS2_DEPRECATED void linphone_chat_room_send_message (LinphoneChatRoom *cr, const char *msg)
MS2_DEPRECATED void linphone_chat_room_send_message2 (LinphoneChatRoom *cr, LinphoneChatMessage *msg, LinphoneChatMessageStateChangedCb status_cb, void *ud)
void linphone_chat_room_send_chat_message (LinphoneChatRoom *cr, LinphoneChatMessage *msg)
void linphone_chat_room_mark_as_read (LinphoneChatRoom *cr)
void linphone_chat_room_delete_message (LinphoneChatRoom *cr, LinphoneChatMessage *msg)
void linphone_chat_room_delete_history (LinphoneChatRoom *cr)
int linphone_chat_room_get_history_size (LinphoneChatRoom *cr)
bctbx_list_t * linphone_chat_room_get_history (LinphoneChatRoom *cr, int nb_message)
bctbx_list_t * linphone_chat_room_get_history_range (LinphoneChatRoom *cr, int begin, int end)
void linphone_chat_room_compose (LinphoneChatRoom *cr)
bool_t linphone_chat_room_is_remote_composing (const LinphoneChatRoom *cr)
int linphone_chat_room_get_unread_messages_count (LinphoneChatRoom *cr)
MS2_DEPRECATED LinphoneCorelinphone_chat_room_get_lc (LinphoneChatRoom *cr)
LinphoneCorelinphone_chat_room_get_core (LinphoneChatRoom *cr)
uint32_t linphone_chat_room_get_char (const LinphoneChatRoom *cr)
bool_t linphone_chat_room_lime_available (LinphoneChatRoom *cr)
const bctbx_list_t * linphone_core_get_chat_rooms (LinphoneCore *lc)
unsigned int linphone_chat_message_store (LinphoneChatMessage *msg)
const char * linphone_chat_message_state_to_string (const LinphoneChatMessageState state)
LinphoneChatMessageState linphone_chat_message_get_state (const LinphoneChatMessage *message)
LinphoneChatMessagelinphone_chat_message_clone (const LinphoneChatMessage *message)
LinphoneChatMessagelinphone_chat_message_ref (LinphoneChatMessage *msg)
void linphone_chat_message_unref (LinphoneChatMessage *msg)
void linphone_chat_message_destroy (LinphoneChatMessage *msg)
void linphone_chat_message_set_from_address (LinphoneChatMessage *message, const LinphoneAddress *from)
const LinphoneAddresslinphone_chat_message_get_from_address (const LinphoneChatMessage *message)
void linphone_chat_message_set_to_address (LinphoneChatMessage *message, const LinphoneAddress *addr)
const LinphoneAddresslinphone_chat_message_get_to_address (const LinphoneChatMessage *message)
const char * linphone_chat_message_get_external_body_url (const LinphoneChatMessage *message)
void linphone_chat_message_set_external_body_url (LinphoneChatMessage *message, const char *url)
const LinphoneContentlinphone_chat_message_get_file_transfer_information (const LinphoneChatMessage *message)
MS2_DEPRECATED void linphone_chat_message_start_file_download (LinphoneChatMessage *message, LinphoneChatMessageStateChangedCb status_cb, void *ud)
int linphone_chat_message_download_file (LinphoneChatMessage *message)
void linphone_chat_message_cancel_file_transfer (LinphoneChatMessage *msg)
const char * linphone_chat_message_get_appdata (const LinphoneChatMessage *message)
void linphone_chat_message_set_appdata (LinphoneChatMessage *message, const char *data)
const char * linphone_chat_message_get_text (const LinphoneChatMessage *message)
time_t linphone_chat_message_get_time (const LinphoneChatMessage *message)
void * linphone_chat_message_get_user_data (const LinphoneChatMessage *message)
void linphone_chat_message_set_user_data (LinphoneChatMessage *message, void *)
LinphoneChatRoomlinphone_chat_message_get_chat_room (LinphoneChatMessage *msg)
const LinphoneAddresslinphone_chat_message_get_peer_address (LinphoneChatMessage *msg)
LinphoneAddresslinphone_chat_message_get_local_address (const LinphoneChatMessage *message)
void linphone_chat_message_add_custom_header (LinphoneChatMessage *message, const char *header_name, const char *header_value)
const char * linphone_chat_message_get_custom_header (LinphoneChatMessage *message, const char *header_name)
bool_t linphone_chat_message_is_read (LinphoneChatMessage *message)
bool_t linphone_chat_message_is_outgoing (LinphoneChatMessage *message)
unsigned int linphone_chat_message_get_storage_id (LinphoneChatMessage *message)
LinphoneReason linphone_chat_message_get_reason (LinphoneChatMessage *msg)
const LinphoneErrorInfolinphone_chat_message_get_error_info (const LinphoneChatMessage *msg)
void linphone_chat_message_set_file_transfer_filepath (LinphoneChatMessage *msg, const char *filepath)
const char * linphone_chat_message_get_file_transfer_filepath (LinphoneChatMessage *msg)
int linphone_chat_message_put_char (LinphoneChatMessage *msg, uint32_t character)
LinphoneCalllinphone_chat_room_get_call (const LinphoneChatRoom *room)
LinphoneChatMessageCbslinphone_chat_message_get_callbacks (const LinphoneChatMessage *msg)
LinphoneChatMessageCbslinphone_chat_message_cbs_ref (LinphoneChatMessageCbs *cbs)
void linphone_chat_message_cbs_unref (LinphoneChatMessageCbs *cbs)
void * linphone_chat_message_cbs_get_user_data (const LinphoneChatMessageCbs *cbs)
void linphone_chat_message_cbs_set_user_data (LinphoneChatMessageCbs *cbs, void *ud)
LinphoneChatMessageCbsMsgStateChangedCb linphone_chat_message_cbs_get_msg_state_changed (const LinphoneChatMessageCbs *cbs)
void linphone_chat_message_cbs_set_msg_state_changed (LinphoneChatMessageCbs *cbs, LinphoneChatMessageCbsMsgStateChangedCb cb)
LinphoneChatMessageCbsFileTransferRecvCb linphone_chat_message_cbs_get_file_transfer_recv (const LinphoneChatMessageCbs *cbs)
void linphone_chat_message_cbs_set_file_transfer_recv (LinphoneChatMessageCbs *cbs, LinphoneChatMessageCbsFileTransferRecvCb cb)
LinphoneChatMessageCbsFileTransferSendCb linphone_chat_message_cbs_get_file_transfer_send (const LinphoneChatMessageCbs *cbs)
void linphone_chat_message_cbs_set_file_transfer_send (LinphoneChatMessageCbs *cbs, LinphoneChatMessageCbsFileTransferSendCb cb)
LinphoneChatMessageCbsFileTransferProgressIndicationCb linphone_chat_message_cbs_get_file_transfer_progress_indication (const LinphoneChatMessageCbs *cbs)
void linphone_chat_message_cbs_set_file_transfer_progress_indication (LinphoneChatMessageCbs *cbs, LinphoneChatMessageCbsFileTransferProgressIndicationCb cb)

Detailed Description

Exchanging text messages
Messages are sent using LinphoneChatRoom object. First step is to create a chat room from a peer sip uri.

LinphoneChatRoom* chat_room = linphone_core_get_chat_room(lc,"sip:joe@sip.linphone.org");


Once created, messages are sent using function linphone_chat_room_send_message().

linphone_chat_room_send_message(chat_room,"Hello world"); /*sending message*/


Incoming message are received from call back LinphoneCoreVTable.text_received

void text_received(LinphoneCore *lc, LinphoneChatRoom *room, const LinphoneAddress *from, const char *message) {
        printf(" Message [%s] received from [%s] \n",message,linphone_address_as_string (from));
}


A complete tutorial can be found at : Chat room tutorial


Define Documentation

#define linphone_chat_message_set_from (   msg,
  addr 
)    linphone_chat_message_set_from_address(msg, addr)

Typedef Documentation

A chat room message to hold content to be sent.
Can be created by linphone_chat_room_create_message().

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

typedef void(* LinphoneChatMessageCbsFileTransferProgressIndicationCb)(LinphoneChatMessage *message, const LinphoneContent *content, size_t offset, size_t total)

File transfer progress indication callback prototype.

Parameters:
messageLinphoneChatMessage message from which the body is received.
contentLinphoneContent incoming content information
offsetThe number of bytes sent/received since the beginning of the transfer.
totalThe total number of bytes to be sent/received.
typedef void(* LinphoneChatMessageCbsFileTransferRecvCb)(LinphoneChatMessage *message, const LinphoneContent *content, const LinphoneBuffer *buffer)

File transfer receive callback prototype. This function is called by the core upon an incoming File transfer is started. This function may be call several time for the same file in case of large file.

Parameters:
messageLinphoneChatMessage message from which the body is received.
contentLinphoneContent incoming content information
bufferLinphoneBuffer holding the received data. Empty buffer means end of file.
typedef LinphoneBuffer*(* LinphoneChatMessageCbsFileTransferSendCb)(LinphoneChatMessage *message, const LinphoneContent *content, size_t offset, size_t size)

File transfer send callback prototype. This function is called by the core when an outgoing file transfer is started. This function is called until size is set to 0.

Parameters:
messageLinphoneChatMessage message from which the body is received.
contentLinphoneContent outgoing content
offsetthe offset in the file from where to get the data to be sent
sizethe number of bytes expected by the framework
Returns:
A LinphoneBuffer object holding the data written by the application. An empty buffer means end of file.

Call back used to notify message delivery status

Parameters:
msgLinphoneChatMessage object
statusLinphoneChatMessageState

LinphoneChatMessageState is used to notify if messages have been succesfully delivered or not.

Call back used to notify message delivery status

Parameters:
msgLinphoneChatMessage object
statusLinphoneChatMessageState
udapplication user data
Deprecated:

A chat room is the place where text messages are exchanged.
Can be created by linphone_core_create_chat_room().


Enumeration Type Documentation

LinphoneChatMessageState is used to notify if messages have been succesfully delivered or not.

Enumerator:
LinphoneChatMessageStateIdle 

Initial state

LinphoneChatMessageStateInProgress 

Delivery in progress

LinphoneChatMessageStateDelivered 

Message successfully delivered and acknowledged by remote end point

LinphoneChatMessageStateNotDelivered 

Message was not delivered

LinphoneChatMessageStateFileTransferError 

Message was received(and acknowledged) but cannot get file from server

LinphoneChatMessageStateFileTransferDone 

File transfer has been completed successfully.

Enumerator:
LinphoneLimeDisabled 

Lime is not used at all

LinphoneLimeMandatory 

Lime is always used

LinphoneLimePreferred 

Lime is used only if we already shared a secret with remote


Function Documentation

void linphone_chat_message_add_custom_header ( LinphoneChatMessage message,
const char *  header_name,
const char *  header_value 
)

Add custom headers to the message.

Parameters:
messagethe message
header_namename of the header_name
header_valueheader value

Cancel an ongoing file transfer attached to this message.(upload or download)

Parameters:
msgLinphoneChatMessage

Get the file transfer progress indication callback.

Parameters:
[in]cbsLinphoneChatMessageCbs object.
Returns:
The current file transfer progress indication callback.

Get the file transfer receive callback.

Parameters:
[in]cbsLinphoneChatMessageCbs object.
Returns:
The current file transfer receive callback.

Get the file transfer send callback.

Parameters:
[in]cbsLinphoneChatMessageCbs object.
Returns:
The current file transfer send callback.

Get the message state changed callback.

Parameters:
[in]cbsLinphoneChatMessageCbs object.
Returns:
The current message state changed callback.

Retrieve the user pointer associated with the LinphoneChatMessageCbs object.

Parameters:
[in]cbsLinphoneChatMessageCbs object.
Returns:
The user pointer associated with the LinphoneChatMessageCbs object.

Acquire a reference to the LinphoneChatMessageCbs object.

Parameters:
[in]cbsLinphoneChatMessageCbs object.
Returns:
The same LinphoneChatMessageCbs object.

Set the file transfer progress indication callback.

Parameters:
[in]cbsLinphoneChatMessageCbs object.
[in]cbThe file transfer progress indication callback to be used.

Set the file transfer receive callback.

Parameters:
[in]cbsLinphoneChatMessageCbs object.
[in]cbThe file transfer receive callback to be used.

Set the file transfer send callback.

Parameters:
[in]cbsLinphoneChatMessageCbs object.
[in]cbThe file transfer send callback to be used.

Set the message state changed callback.

Parameters:
[in]cbsLinphoneChatMessageCbs object.
[in]cbThe message state changed callback to be used.

Assign a user pointer to the LinphoneChatMessageCbs object.

Parameters:
[in]cbsLinphoneChatMessageCbs object.
[in]udThe user pointer to associate with the LinphoneChatMessageCbs object.

Release reference to the LinphoneChatMessageCbs object.

Parameters:
[in]cbsLinphoneChatMessageCbs object.

Duplicate a LinphoneChatMessage

Destroys a LinphoneChatMessage.

Start the download of the file referenced in a LinphoneChatMessage from remote server.

Parameters:
[in]messageLinphoneChatMessage object.
const char* linphone_chat_message_get_appdata ( const LinphoneChatMessage message)

Linphone message has an app-specific field that can store a text. The application might want to use it for keeping data over restarts, like thumbnail image path.

Parameters:
messageLinphoneChatMessage
Returns:
the application-specific data or NULL if none has been stored.

Get the LinphoneChatMessageCbs object associated with the LinphoneChatMessage.

Parameters:
[in]msgLinphoneChatMessage object
Returns:
The LinphoneChatMessageCbs object associated with the LinphoneChatMessage.

Returns the chatroom this message belongs to.

const char* linphone_chat_message_get_custom_header ( LinphoneChatMessage message,
const char *  header_name 
)

Retrieve a custom header value given its name.

Parameters:
messagethe message
header_nameheader name searched

Get full details about delivery error of a chat message.

Parameters:
msga LinphoneChatMessage
Returns:
a LinphoneErrorInfo describing the details.

Linphone message can carry external body as defined by rfc2017

Parameters:
messageLinphoneChatMessage
Returns:
external body url or NULL if not present.

Get the path to the file to read from or write to during the file transfer.

Parameters:
[in]msgLinphoneChatMessage object
Returns:
The path to the file to use for the file transfer.

Get the file_transfer_information (used by call backs to recover informations during a rcs file transfer)

Parameters:
messageLinphoneChatMessage
Returns:
a pointer to the LinphoneContent structure or NULL if not present.

Get origin of the message

Parameters:
[in]messageLinphoneChatMessage obj
Returns:
LinphoneAddress

Returns the origin address of a message if it was a outgoing message, or the destination address if it was an incoming message.

Parameters:
messageLinphoneChatMessage obj
Returns:
LinphoneAddress

Get the state of the message

Parameters:
messageLinphoneChatMessage obj
Returns:
LinphoneChatMessageState

Returns the id used to identify this message in the storage database

Parameters:
messagethe message
Returns:
the id
const char* linphone_chat_message_get_text ( const LinphoneChatMessage message)

Get text part of this message

Returns:
text or NULL if no text.

Get the time the message was sent.

Get destination of the message

Parameters:
[in]messageLinphoneChatMessage obj
Returns:
LinphoneAddress

User pointer get function

Returns TRUE if the message has been sent, returns FALSE if the message has been received.

Parameters:
messagethe message

Returns TRUE if the message has been read, otherwise returns FALSE.

Parameters:
messagethe message
int linphone_chat_message_put_char ( LinphoneChatMessage msg,
uint32_t  character 
)

Fulfill a chat message char by char. Message linked to a Real Time Text Call send char in realtime following RFC 4103/T.140 To commit a message, use linphone_chat_room_send_message

Parameters:
[in]msgLinphoneChatMessage
[in]characterT.140 char
Returns:
0 if succeed.

Acquire a reference to the chat message.

Parameters:
msgthe chat message
Returns:
the same chat message
void linphone_chat_message_set_appdata ( LinphoneChatMessage message,
const char *  data 
)

Linphone message has an app-specific field that can store a text. The application might want to use it for keeping data over restarts, like thumbnail image path.

Invoking this function will attempt to update the message storage to reflect the changeif it is enabled.

Parameters:
messageLinphoneChatMessage
datathe data to store into the message
void linphone_chat_message_set_external_body_url ( LinphoneChatMessage message,
const char *  url 
)

Linphone message can carry external body as defined by rfc2017

Parameters:
messagea LinphoneChatMessage
urlex: access-type=URL; URL="http://www.foo.com/file"
void linphone_chat_message_set_file_transfer_filepath ( LinphoneChatMessage msg,
const char *  filepath 
)

Set the path to the file to read from or write to during the file transfer.

Parameters:
[in]msgLinphoneChatMessage object
[in]filepathThe path to the file to use for the file transfer.

Set origin of the message

Parameters:
[in]messageLinphoneChatMessage obj
[in]fromLinphoneAddress origin of this message (copied)

Set destination of the message

Parameters:
[in]messageLinphoneChatMessage obj
[in]addrLinphoneAddress destination of this message (copied)
void linphone_chat_message_set_user_data ( LinphoneChatMessage message,
void *   
)

User pointer set function

MS2_DEPRECATED void linphone_chat_message_start_file_download ( LinphoneChatMessage message,
LinphoneChatMessageStateChangedCb  status_cb,
void *  ud 
)

Start the download of the file from remote server

Parameters:
messageLinphoneChatMessage
status_cbLinphoneChatMessageStateChangeCb status callback invoked when file is downloaded or could not be downloaded
uduser data
Deprecated:
Use linphone_chat_message_download_file() instead.

Returns a LinphoneChatMessageState as a string.

Release reference to the chat message.

Parameters:
msgthe chat message.

Notifies the destination of the chat message being composed that the user is typing a new message.

Parameters:
[in]crThe LinphoneChatRoom object corresponding to the conversation for which a new message is being typed.

Create a message attached to a dedicated chat room with a particular content. Use linphone_chat_room_send_message to initiate the transfer

Parameters:
crthe chat room.
initial_contentLinphoneContent initial content. LinphoneCoreVTable.file_transfer_send is invoked later to notify file transfer progress and collect next chunk of the message if #LinphoneContent.data is NULL.
Returns:
a new LinphoneChatMessage

Create a message attached to a dedicated chat room;

Parameters:
crthe chat room.
messagetext message, NULL if absent.
Returns:
a new LinphoneChatMessage
LinphoneChatMessage* linphone_chat_room_create_message_2 ( LinphoneChatRoom cr,
const char *  message,
const char *  external_body_url,
LinphoneChatMessageState  state,
time_t  time,
bool_t  is_read,
bool_t  is_incoming 
)

Create a message attached to a dedicated chat room;

Parameters:
crthe chat room.
messagetext message, NULL if absent.
external_body_urlthe URL given in external body or NULL.
statethe LinphoneChatMessage.State of the message.
timethe time_t at which the message has been received/sent.
is_readTRUE if the message should be flagged as read, FALSE otherwise.
is_incomingTRUE if the message has been received, FALSE otherwise.
Returns:
a new LinphoneChatMessage

Delete all messages from the history

Parameters:
[in]crThe LinphoneChatRoom object corresponding to the conversation.

Delete a message from the chat room history.

Parameters:
[in]crThe LinphoneChatRoom object corresponding to the conversation.
[in]msgThe LinphoneChatMessage object to remove.
MS2_DEPRECATED void linphone_chat_room_destroy ( LinphoneChatRoom cr)

Destroy a LinphoneChatRoom.

Parameters:
crLinphoneChatRoom object
Deprecated:
Use linphone_chat_room_unref() instead.

get Curent Call associated to this chatroom if any To commit a message, use linphone_chat_room_send_message

Parameters:
[in]roomLinphoneChatRomm
Returns:
LinphoneCall or NULL.

When realtime text is enabled linphone_call_params_realtime_text_enabled, LinphoneCoreIsComposingReceivedCb is call everytime a char is received from peer. At the end of remote typing a regular LinphoneChatMessage is received with committed data from LinphoneCoreMessageReceivedCb.

Parameters:
[in]crLinphoneChatRoom object
Returns:
RFC 4103/T.140 char

Returns back pointer to LinphoneCore object.

bctbx_list_t* linphone_chat_room_get_history ( LinphoneChatRoom cr,
int  nb_message 
)

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

Parameters:
[in]crThe LinphoneChatRoom object corresponding to the conversation for which messages should be retrieved
[in]nb_messageNumber of message to retrieve. 0 means everything.
Returns:
A list of LinphoneChatMessage objects.
bctbx_list_t* linphone_chat_room_get_history_range ( LinphoneChatRoom cr,
int  begin,
int  end 
)

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

Parameters:
[in]crThe LinphoneChatRoom object corresponding to the conversation for which messages should be retrieved
[in]beginThe first message of the range to be retrieved. History most recent message has index 0.
[in]endThe last message of the range to be retrieved. History oldest message has index of history size - 1 (use linphone_chat_room_get_history_size to retrieve history size)
Returns:
A list of LinphoneChatMessage objects.

Gets the number of messages in a chat room.

Parameters:
[in]crThe LinphoneChatRoom object corresponding to the conversation for which size has to be computed
Returns:
the number of messages.

Returns back pointer to LinphoneCore object.

Deprecated:
use linphone_chat_room_get_core()

get peer address associated to this LinphoneChatRoom

Parameters:
crLinphoneChatRoom object
Returns:
LinphoneAddress peer address

Gets the number of unread messages in the chatroom.

Parameters:
[in]crThe LinphoneChatRoom object corresponding to the conversation.
Returns:
the number of unread messages.

Retrieve the user pointer associated with the chat room.

Parameters:
[in]crThe chat room.
Returns:
The user pointer associated with the chat room.

Tells whether the remote is currently composing a message.

Parameters:
[in]crThe LinphoneChatRoom object corresponding to the conversation.
Returns:
TRUE if the remote is currently composing a message, FALSE otherwise.

Returns true if lime is available for given peer

Returns:
true if zrtp secrets have already been shared and ready to use

Mark all messages of the conversation as read

Parameters:
[in]crThe LinphoneChatRoom object corresponding to the conversation.

Acquire a reference to the chat room.

Parameters:
[in]crThe chat room.
Returns:
The same chat room.

Send a message to peer member of this chat room.

Parameters:
[in]crLinphoneChatRoom object
[in]msgLinphoneChatMessage object The state of the message sending will be notified via the callbacks defined in the LinphoneChatMessageCbs object that can be obtained by calling linphone_chat_message_get_callbacks(). The LinphoneChatMessage reference is transfered to the function and thus doesn't need to be unref'd by the application.
MS2_DEPRECATED void linphone_chat_room_send_message ( LinphoneChatRoom cr,
const char *  msg 
)

Send a message to peer member of this chat room.

Deprecated:
Use linphone_chat_room_send_chat_message() instead.
Parameters:
crLinphoneChatRoom object
msgmessage to be sent
MS2_DEPRECATED void linphone_chat_room_send_message2 ( LinphoneChatRoom cr,
LinphoneChatMessage msg,
LinphoneChatMessageStateChangedCb  status_cb,
void *  ud 
)

Send a message to peer member of this chat room.

Parameters:
crLinphoneChatRoom object
msgLinphoneChatMessage message to be sent
status_cbLinphoneChatMessageStateChangeCb status callback invoked when message is delivered or could not be delivered. May be NULL
uduser data for the status cb.
Deprecated:
Use linphone_chat_room_send_chat_message() instead.
Note:
The LinphoneChatMessage must not be destroyed until the the callback is called. The LinphoneChatMessage reference is transfered to the function and thus doesn't need to be unref'd by the application.
void linphone_chat_room_set_user_data ( LinphoneChatRoom cr,
void *  ud 
)

Assign a user pointer to the chat room.

Parameters:
[in]crThe chat room.
[in]udThe user pointer to associate with the chat room.

Release reference to the chat room.

Parameters:
[in]crThe chat room.
bool_t linphone_core_chat_enabled ( const LinphoneCore lc)

Returns whether chat is enabled.

Parameters:
lcA LinphoneCore object

Removes a chatroom including all message history from the LinphoneCore.

Parameters:
lcA LinphoneCore object
crA LinphoneChatRoom object
void linphone_core_disable_chat ( LinphoneCore lc,
LinphoneReason  deny_reason 
)

Inconditionnaly disable incoming chat messages.

Parameters:
lcA LinphoneCore object
deny_reasonthe deny reason (#LinphoneReasonNone has no effect).

Enable reception of incoming chat messages. By default it is enabled but it can be disabled with linphone_core_disable_chat().

Parameters:
lcA LinphoneCore object

Get path to the database file used for storing chat messages.

Parameters:
lcthe linphone core
Returns:
file path or NULL if not exist

Get a chat room whose peer is the supplied address. If it does not exist yet, it will be created. No reference is transfered to the application. The LinphoneCore keeps a reference on the chat room.

Parameters:
lcthe linphone core
addra linphone address.
Returns:
LinphoneChatRoom where messaging can take place.

Get a chat room for messaging from a sip uri like sip:joe@sip.linphone.org. If it does not exist yet, it will be created. No reference is transfered to the application. The LinphoneCore keeps a reference on the chat room.

Parameters:
lcA LinphoneCore object
toThe destination address for messages.
Returns:
LinphoneChatRoom where messaging can take place.
const bctbx_list_t* linphone_core_get_chat_rooms ( LinphoneCore lc)

Returns an list of chat rooms

Parameters:
[in]lcLinphoneCore object
Returns:
A list of LinphoneChatRoom objects.
void linphone_core_set_chat_database_path ( LinphoneCore lc,
const char *  path 
)

Sets the database filename where chat messages will be stored. If the file does not exist, it will be created.

Parameters:
lcthe linphone core
pathfilesystem path