liblinphone
3.8.1
|
Macros | |
#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_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 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 |
Exchanging text messages
Messages are sent using LinphoneChatRoom object. First step is to create a chat room from a peer sip uri.
Once created, messages are sent using function linphone_chat_room_send_message() .
Incoming message are received from call back LinphoneCoreVTable.text_received
A complete tutorial can be found at : Chat room tutorial
#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_get_to | ( | msg | ) | linphone_chat_message_get_to_address(msg) |
typedef struct _LinphoneChatMessageCbs LinphoneChatMessageCbs |
An object to handle the callbacks for the handling a LinphoneChatMessage objects.
typedef struct _LinphoneChatMessage LinphoneChatMessage |
A chat room message to hold content to be sent.
Can be created by linphone_chat_room_create_message().
typedef struct _LinphoneChatRoom LinphoneChatRoom |
A chat room is the place where text messages are exchanged.
Can be created by linphone_core_create_chat_room().
typedef enum _LinphoneChatMessageState LinphoneChatMessageState |
LinphoneChatMessageState is used to notify if messages have been succesfully delivered or not.
typedef void(* LinphoneChatMessageStateChangedCb) (LinphoneChatMessage *msg, LinphoneChatMessageState state, void *ud) |
Call back used to notify message delivery status
msg | LinphoneChatMessage object |
status | LinphoneChatMessageState |
ud | application user data |
typedef void(* LinphoneChatMessageCbsMsgStateChangedCb) (LinphoneChatMessage *msg, LinphoneChatMessageState state) |
Call back used to notify message delivery status
msg | LinphoneChatMessage object |
status | LinphoneChatMessageState |
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.
message | LinphoneChatMessage message from which the body is received. |
content | LinphoneContent incoming content information |
buffer | LinphoneBuffer 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.
message | LinphoneChatMessage message from which the body is received. |
content | LinphoneContent outgoing content |
offset | the offset in the file from where to get the data to be sent |
size | the number of bytes expected by the framework |
typedef void(* LinphoneChatMessageCbsFileTransferProgressIndicationCb) (LinphoneChatMessage *message, const LinphoneContent *content, size_t offset, size_t total) |
File transfer progress indication callback prototype.
message | LinphoneChatMessage message from which the body is received. |
content | LinphoneContent incoming content information |
offset | The number of bytes sent/received since the beginning of the transfer. |
total | The total number of bytes to be sent/received. |
LinphoneChatMessageState is used to notify if messages have been succesfully delivered or not.
LinphoneChatMessageCbs * linphone_chat_message_cbs_ref | ( | LinphoneChatMessageCbs * | cbs | ) |
Acquire a reference to the LinphoneChatMessageCbs object.
[in] | cbs | LinphoneChatMessageCbs object. |
void linphone_chat_message_cbs_unref | ( | LinphoneChatMessageCbs * | cbs | ) |
Release reference to the LinphoneChatMessageCbs object.
[in] | cbs | LinphoneChatMessageCbs object. |
void * linphone_chat_message_cbs_get_user_data | ( | const LinphoneChatMessageCbs * | cbs | ) |
Retrieve the user pointer associated with the LinphoneChatMessageCbs object.
[in] | cbs | LinphoneChatMessageCbs object. |
void linphone_chat_message_cbs_set_user_data | ( | LinphoneChatMessageCbs * | cbs, |
void * | ud | ||
) |
Assign a user pointer to the LinphoneChatMessageCbs object.
[in] | cbs | LinphoneChatMessageCbs object. |
[in] | ud | The user pointer to associate with the LinphoneChatMessageCbs object. |
LinphoneChatMessageCbsMsgStateChangedCb linphone_chat_message_cbs_get_msg_state_changed | ( | const LinphoneChatMessageCbs * | cbs | ) |
Get the message state changed callback.
[in] | cbs | LinphoneChatMessageCbs object. |
void linphone_chat_message_cbs_set_msg_state_changed | ( | LinphoneChatMessageCbs * | cbs, |
LinphoneChatMessageCbsMsgStateChangedCb | cb | ||
) |
Set the message state changed callback.
[in] | cbs | LinphoneChatMessageCbs object. |
[in] | cb | The message state changed callback to be used. |
LinphoneChatMessageCbsFileTransferRecvCb linphone_chat_message_cbs_get_file_transfer_recv | ( | const LinphoneChatMessageCbs * | cbs | ) |
Get the file transfer receive callback.
[in] | cbs | LinphoneChatMessageCbs object. |
void linphone_chat_message_cbs_set_file_transfer_recv | ( | LinphoneChatMessageCbs * | cbs, |
LinphoneChatMessageCbsFileTransferRecvCb | cb | ||
) |
Set the file transfer receive callback.
[in] | cbs | LinphoneChatMessageCbs object. |
[in] | cb | The file transfer receive callback to be used. |
LinphoneChatMessageCbsFileTransferSendCb linphone_chat_message_cbs_get_file_transfer_send | ( | const LinphoneChatMessageCbs * | cbs | ) |
Get the file transfer send callback.
[in] | cbs | LinphoneChatMessageCbs object. |
void linphone_chat_message_cbs_set_file_transfer_send | ( | LinphoneChatMessageCbs * | cbs, |
LinphoneChatMessageCbsFileTransferSendCb | cb | ||
) |
Set the file transfer send callback.
[in] | cbs | LinphoneChatMessageCbs object. |
[in] | cb | The file transfer send callback to be used. |
LinphoneChatMessageCbsFileTransferProgressIndicationCb linphone_chat_message_cbs_get_file_transfer_progress_indication | ( | const LinphoneChatMessageCbs * | cbs | ) |
Get the file transfer progress indication callback.
[in] | cbs | LinphoneChatMessageCbs object. |
void linphone_chat_message_cbs_set_file_transfer_progress_indication | ( | LinphoneChatMessageCbs * | cbs, |
LinphoneChatMessageCbsFileTransferProgressIndicationCb | cb | ||
) |
Set the file transfer progress indication callback.
[in] | cbs | LinphoneChatMessageCbs object. |
[in] | cb | The file transfer progress indication callback to be used. |
void linphone_core_disable_chat | ( | LinphoneCore * | lc, |
LinphoneReason | deny_reason | ||
) |
Inconditionnaly disable incoming chat messages.
lc | the core |
deny_reason | the deny reason (#LinphoneReasonNone has no effect). |
void linphone_core_enable_chat | ( | LinphoneCore * | lc | ) |
Enable reception of incoming chat messages. By default it is enabled but it can be disabled with linphone_core_disable_chat().
lc | the core |
bool_t linphone_core_chat_enabled | ( | const LinphoneCore * | lc | ) |
Returns whether chat is enabled.
MSList * linphone_core_get_chat_rooms | ( | LinphoneCore * | lc | ) |
Returns an list of chat rooms
[in] | lc | LinphoneCore object |
LinphoneChatRoom * linphone_core_get_or_create_chat_room | ( | LinphoneCore * | lc, |
const char * | to | ||
) |
Create a new chat room for messaging from a sip uri like sip:joe@s if not already existing, else return exisiting one ip.l inpho ne.o rg
lc | LinphoneCore object |
to | destination address for messages |
LinphoneChatRoom * linphone_core_create_chat_room | ( | LinphoneCore * | lc, |
const char * | to | ||
) |
Create a new chat room for messaging from a sip uri like sip:joe@s ip.l inpho ne.o rg
lc | LinphoneCore object |
to | destination address for messages |
LinphoneChatRoom * linphone_core_get_chat_room | ( | LinphoneCore * | lc, |
const LinphoneAddress * | addr | ||
) |
Get a chat room whose peer is the supplied address. If it does not exist yet, it will be created.
lc | the linphone core |
addr | a linphone address. |
LinphoneChatRoom * linphone_core_get_chat_room_from_uri | ( | LinphoneCore * | lc, |
const char * | to | ||
) |
Get a chat room for messaging from a sip uri like sip:joe@s. If it does not exist yet, it will be created. ip.l inpho ne.o rg
lc | The linphone core |
to | The destination address for messages. |
void linphone_chat_room_destroy | ( | LinphoneChatRoom * | cr | ) |
Destroy a LinphoneChatRoom.
cr | LinphoneChatRoom object |
LinphoneChatRoom * linphone_chat_room_ref | ( | LinphoneChatRoom * | cr | ) |
Acquire a reference to the chat room.
[in] | cr | The chat room. |
void linphone_chat_room_unref | ( | LinphoneChatRoom * | cr | ) |
Release reference to the chat room.
[in] | cr | The chat room. |
void * linphone_chat_room_get_user_data | ( | const LinphoneChatRoom * | cr | ) |
Retrieve the user pointer associated with the chat room.
[in] | cr | The chat room. |
void linphone_chat_room_set_user_data | ( | LinphoneChatRoom * | cr, |
void * | ud | ||
) |
Assign a user pointer to the chat room.
[in] | cr | The chat room. |
[in] | ud | The user pointer to associate with the chat room. |
void linphone_chat_room_send_message | ( | LinphoneChatRoom * | cr, |
const char * | msg | ||
) |
Send a message to peer member of this chat room.
cr | LinphoneChatRoom object |
msg | message to be sent |
bool_t linphone_chat_room_is_remote_composing | ( | const LinphoneChatRoom * | cr | ) |
Tells whether the remote is currently composing a message.
[in] | cr | The "LinphoneChatRoom object corresponding to the conversation. |
LinphoneCore * linphone_chat_room_get_lc | ( | LinphoneChatRoom * | cr | ) |
Returns back pointer to LinphoneCore object.
LinphoneCore * linphone_chat_room_get_core | ( | LinphoneChatRoom * | cr | ) |
Returns back pointer to LinphoneCore object.
const LinphoneAddress * linphone_chat_room_get_peer_address | ( | LinphoneChatRoom * | cr | ) |
get peer address associated to this LinphoneChatRoom
cr | LinphoneChatRoom object |
LinphoneChatMessage * linphone_chat_room_create_message | ( | LinphoneChatRoom * | cr, |
const char * | message | ||
) |
Create a message attached to a dedicated chat room;
cr | the chat room. |
message | text message, NULL if absent. |
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;
cr | the chat room. |
message | text message, NULL if absent. |
external_body_url | the URL given in external body or NULL. |
state | the LinphoneChatMessage.State of the message. |
time | the time_t at which the message has been received/sent. |
is_read | TRUE if the message should be flagged as read, FALSE otherwise. |
is_incoming | TRUE if the message has been received, FALSE otherwise. |
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.
cr | LinphoneChatRoom object |
msg | LinphoneChatMessage message to be sent |
status_cb | LinphoneChatMessageStateChangeCb status callback invoked when message is delivered or could not be delivered. May be NULL |
ud | user data for the status cb. |
void linphone_chat_room_send_chat_message | ( | LinphoneChatRoom * | cr, |
LinphoneChatMessage * | msg | ||
) |
Send a message to peer member of this chat room.
[in] | cr | LinphoneChatRoom object |
[in] | msg | LinphoneChatMessage 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(). |
void linphone_chat_room_compose | ( | LinphoneChatRoom * | cr | ) |
Notifies the destination of the chat message being composed that the user is typing a new message.
[in] | cr | The LinphoneChatRoom object corresponding to the conversation for which a new message is being typed. |
const char * linphone_chat_message_state_to_string | ( | const LinphoneChatMessageState | state | ) |
Returns a LinphoneChatMessageState as a string.
LinphoneChatRoom * linphone_chat_message_get_chat_room | ( | LinphoneChatMessage * | msg | ) |
Returns the chatroom this message belongs to.
const LinphoneAddress * linphone_chat_message_get_peer_address | ( | LinphoneChatMessage * | msg | ) |
Returns the peer (remote) address for the message.
void linphone_chat_message_set_user_data | ( | LinphoneChatMessage * | message, |
void * | ud | ||
) |
User pointer set function
void * linphone_chat_message_get_user_data | ( | const LinphoneChatMessage * | message | ) |
User pointer get function
const char * linphone_chat_message_get_external_body_url | ( | const LinphoneChatMessage * | message | ) |
Linphone message can carry external body as defined by rfc2017
message | LinphoneChatMessage |
void linphone_chat_message_set_external_body_url | ( | LinphoneChatMessage * | message, |
const char * | url | ||
) |
Linphone message can carry external body as defined by rfc2017
message | a LinphoneChatMessage |
url | ex: access-type=URL; URL="http://www.foo.com/file" |
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.
message | LinphoneChatMessage |
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.
message | LinphoneChatMessage |
data | the data to store into the message |
const LinphoneContent * linphone_chat_message_get_file_transfer_information | ( | const LinphoneChatMessage * | message | ) |
Get the file_transfer_information (used by call backs to recover informations during a rcs file transfer)
message | LinphoneChatMessage |
void linphone_chat_message_download_file | ( | LinphoneChatMessage * | message | ) |
Start the download of the file referenced in a LinphoneChatMessage from remote server.
[in] | message | LinphoneChatMessage object. |
void linphone_chat_message_start_file_download | ( | LinphoneChatMessage * | message, |
LinphoneChatMessageStateChangedCb | status_cb, | ||
void * | ud | ||
) |
Start the download of the file from remote server
message | LinphoneChatMessage |
status_cb | LinphoneChatMessageStateChangeCb status callback invoked when file is downloaded or could not be downloaded |
void linphone_chat_message_cancel_file_transfer | ( | LinphoneChatMessage * | msg | ) |
Cancel an ongoing file transfer attached to this message.(upload or download)
msg | LinphoneChatMessage |
void linphone_chat_message_set_from_address | ( | LinphoneChatMessage * | message, |
const LinphoneAddress * | from | ||
) |
Set origin of the message
[in] | message | LinphoneChatMessage obj |
[in] | from | LinphoneAddress origin of this message (copied) |
const LinphoneAddress * linphone_chat_message_get_from_address | ( | const LinphoneChatMessage * | message | ) |
void linphone_chat_message_set_to_address | ( | LinphoneChatMessage * | message, |
const LinphoneAddress * | to | ||
) |
Set destination of the message
[in] | message | LinphoneChatMessage obj |
[in] | to | LinphoneAddress destination of this message (copied) |
const LinphoneAddress * linphone_chat_message_get_to_address | ( | const LinphoneChatMessage * | message | ) |
LinphoneAddress * linphone_chat_message_get_local_address | ( | const LinphoneChatMessage * | message | ) |
Returns the origin address of a message if it was a outgoing message, or the destination address if it was an incoming message.
message | LinphoneChatMessage obj |
time_t linphone_chat_message_get_time | ( | const LinphoneChatMessage * | message | ) |
Get the time the message was sent.
LinphoneChatMessageState linphone_chat_message_get_state | ( | const LinphoneChatMessage * | message | ) |
Get the state of the message
message | LinphoneChatMessage obj |
const char * linphone_chat_message_get_text | ( | const LinphoneChatMessage * | message | ) |
Get text part of this message
void linphone_chat_message_add_custom_header | ( | LinphoneChatMessage * | message, |
const char * | header_name, | ||
const char * | header_value | ||
) |
Add custom headers to the message.
message | the message |
header_name | name of the header_name |
header_value | header value |
const char * linphone_chat_message_get_custom_header | ( | LinphoneChatMessage * | message, |
const char * | header_name | ||
) |
Retrieve a custom header value given its name.
message | the message |
header_name | header name searched |
bool_t linphone_chat_message_is_read | ( | LinphoneChatMessage * | message | ) |
Returns TRUE if the message has been read, otherwise returns FALSE.
message | the message |
bool_t linphone_chat_message_is_outgoing | ( | LinphoneChatMessage * | message | ) |
Returns TRUE if the message has been sent, returns FALSE if the message has been received.
message | the message |
unsigned int linphone_chat_message_get_storage_id | ( | LinphoneChatMessage * | message | ) |
Returns the id used to identify this message in the storage database
message | the message |
LinphoneChatMessage * linphone_chat_message_clone | ( | const LinphoneChatMessage * | msg | ) |
Duplicate a LinphoneChatMessage
void linphone_chat_message_destroy | ( | LinphoneChatMessage * | msg | ) |
Destroys a LinphoneChatMessage.
LinphoneChatMessage * linphone_chat_message_ref | ( | LinphoneChatMessage * | msg | ) |
Acquire a reference to the chat message.
msg | the chat message |
void linphone_chat_message_unref | ( | LinphoneChatMessage * | msg | ) |
Release reference to the chat message.
msg | the chat message. |
const LinphoneErrorInfo * linphone_chat_message_get_error_info | ( | const LinphoneChatMessage * | msg | ) |
Get full details about delivery error of a chat message.
msg | a LinphoneChatMessage |
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.
[in] | msg | LinphoneChatMessage object |
[in] | filepath | The path to the file to use for the file transfer. |
const char * linphone_chat_message_get_file_transfer_filepath | ( | LinphoneChatMessage * | msg | ) |
Get the path to the file to read from or write to during the file transfer.
[in] | msg | LinphoneChatMessage object |
LinphoneChatMessageCbs * linphone_chat_message_get_callbacks | ( | const LinphoneChatMessage * | msg | ) |
Get the LinphoneChatMessageCbs object associated with the LinphoneChatMessage.
[in] | msg | LinphoneChatMessage object |
LinphoneChatMessage * linphone_chat_room_create_file_transfer_message | ( | LinphoneChatRoom * | cr, |
LinphoneContent * | initial_content | ||
) |
Create a message attached to a dedicated chat room with a particular content. Use linphone_chat_room_send_message2 to initiate the transfer
cr | the chat room. |
initial_content | LinphoneContent 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. |
Create a message attached to a dedicated chat room with a particular content. Use #linphone_chat_room_file_transfer_send to initiate the transfer
[in] | cr | the chat room. |
[in] | initial_content | LinphoneContent initial content. LinphoneCoreVTable.file_transfer_send is invoked later to notify file transfer progress and collect next chunk of the message if #LinphoneContentSourceType.src_type is set to LINPHONE_CONTENT_SOURCE_CHUNKED_BUFFER. |
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.
lc | the linphone core |
path | filesystem path |
void linphone_chat_room_mark_as_read | ( | LinphoneChatRoom * | cr | ) |
Mark all messages of the conversation as read
[in] | cr | The LinphoneChatRoom object corresponding to the conversation. |
void linphone_chat_room_delete_message | ( | LinphoneChatRoom * | cr, |
LinphoneChatMessage * | msg | ||
) |
Delete a message from the chat room history.
[in] | cr | The LinphoneChatRoom object corresponding to the conversation. |
[in] | msg | The LinphoneChatMessage object to remove. |
void linphone_chat_room_delete_history | ( | LinphoneChatRoom * | cr | ) |
Delete all messages from the history
[in] | cr | The LinphoneChatRoom object corresponding to the conversation. |
int linphone_chat_room_get_history_size | ( | LinphoneChatRoom * | cr | ) |
Gets the number of messages in a chat room.
[in] | cr | The LinphoneChatRoom object corresponding to the conversation for which size has to be computed |
MSList* 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.
[in] | cr | The LinphoneChatRoom object corresponding to the conversation for which messages should be retrieved |
[in] | begin | The first message of the range to be retrieved. History most recent message has index 0. |
[in] | end | The 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) |
int linphone_chat_room_get_unread_messages_count | ( | LinphoneChatRoom * | cr | ) |
Gets the number of unread messages in the chatroom.
[in] | cr | The "LinphoneChatRoom object corresponding to the conversation. |