liblinphone
3.9.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) |
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.
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 |
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. No reference is transfered to the application. The LinphoneCore keeps a reference on the chat room.
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. No reference is transfered to the application. The LinphoneCore keeps a reference on the chat room. ip.l inpho ne.o rg
lc | The linphone core |
to | The destination address for messages. |
void linphone_core_delete_chat_room | ( | LinphoneCore * | lc, |
LinphoneChatRoom * | cr | ||
) |
Removes a chatroom including all message history from the LinphoneCore.
lc | The linphone core |
to | The chatroom. |
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.
void linphone_chat_room_destroy | ( | LinphoneChatRoom * | cr | ) |
Destroy a 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. |
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. |
LinphoneChatMessage* linphone_chat_room_create_file_transfer_message | ( | LinphoneChatRoom * | cr, |
const LinphoneContent * | initial_content | ||
) |
Create a message attached to a dedicated chat room with a particular content. Use linphone_chat_room_send_message 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. |
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 |
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(). The LinphoneChatMessage reference is transfered to the function and thus doesn't need to be unref'd by the application. |
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 | ( | LinphoneChatRoom * | cr, |
int | nb_message | ||
) |
Gets nb_message most recent messages from cr chat room, sorted from oldest to most recent.
[in] | cr | The LinphoneChatRoom object corresponding to the conversation for which messages should be retrieved |
[in] | nb_message | Number of message to retrieve. 0 means everything. |
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) |
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. |
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. |
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. |
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.
uint32_t linphone_chat_room_get_char | ( | const LinphoneChatRoom * | cr | ) |
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.
[in] | msg | LinphoneChatMessage |
const MSList* linphone_core_get_chat_rooms | ( | LinphoneCore * | lc | ) |
Returns an list of chat rooms
[in] | lc | LinphoneCore object |
const char* linphone_chat_message_state_to_string | ( | const LinphoneChatMessageState | state | ) |
Returns a LinphoneChatMessageState as a string.
LinphoneChatMessageState linphone_chat_message_get_state | ( | const LinphoneChatMessage * | message | ) |
Get the state of the message
message | LinphoneChatMessage obj |
LinphoneChatMessage* linphone_chat_message_clone | ( | const LinphoneChatMessage * | message | ) |
Duplicate 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. |
void linphone_chat_message_destroy | ( | LinphoneChatMessage * | msg | ) |
Destroys a LinphoneChatMessage.
void linphone_chat_message_set_from_address | ( | LinphoneChatMessage * | message, |
const LinphoneAddress * | addr | ||
) |
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 * | addr | ||
) |
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 | ) |
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 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_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 |
int 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_cancel_file_transfer | ( | LinphoneChatMessage * | msg | ) |
Cancel an ongoing file transfer attached to this message.(upload or download)
msg | LinphoneChatMessage |
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 char* linphone_chat_message_get_text | ( | const LinphoneChatMessage * | message | ) |
Get text part of this message
time_t linphone_chat_message_get_time | ( | const LinphoneChatMessage * | message | ) |
Get the time the message was sent.
void* linphone_chat_message_get_user_data | ( | const LinphoneChatMessage * | message | ) |
User pointer get function
void linphone_chat_message_set_user_data | ( | LinphoneChatMessage * | message, |
void * | |||
) |
User pointer set function
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 | ) |
get peer address associated to this LinphoneChatRoom
cr | LinphoneChatRoom object |
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 |
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 |
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 |
int linphone_chat_message_put_char | ( | LinphoneChatMessage * | msg, |
uint32_t | charater | ||
) |
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
[in] | msg | LinphoneChatMessage |
[in] | character | T.140 char |
LinphoneCall* linphone_chat_room_get_call | ( | const LinphoneChatRoom * | room | ) |
get Curent Call associated to this chatroom if any To commit a message, use linphone_chat_room_send_message
[in] | room | LinphoneChatRomm |
LinphoneChatMessageCbs* linphone_chat_message_get_callbacks | ( | const LinphoneChatMessage * | msg | ) |
Get the LinphoneChatMessageCbs object associated with the LinphoneChatMessage.
[in] | msg | LinphoneChatMessage object |
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. |