Chat room and Messaging 聊天室和消息传递
宏
#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_addr(msg)
自定义类型
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)(LinphoneChatMessge* 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)
枚举类型
enum _LinphoneChatMessageState{
LinphoneChatMessageStateIdle,
LinphoneChatMessageStateInProgress,
LinphoneChatMessageStateDelivered,
LinphoneChatMessageStateNotDelivered,
LinphoneChatMessageStateFileTransferError,
LinphoneChatMessageStateFileTransferDone
}
enum _LinphoneLimeState{
LinphoneLimeDisabled,
LinphoneLimeMandatory,
LinphoneLimePreferred
}
函数
详细描述
交换文本信息
用LinphoneChatRoom发送信息.第一步从一个对等 sip URI中创建一个聊天室.
LinphoneChatRoom* chat_room = linphone_core_get_chat_room(lc,"sip:joe@sip.linphone.org");
一旦完成创建,就可以用linphone_chat_room_send_message().
linphone_chat_room_send_message(chat_room,"Hello world"); /*sending message*/
传入的信息从回调函数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));
}
一个完全教程:Chat room tutorial
宏定义文档
#define liphone_chat_message_get_from( msg) linphone_chat_message_get_from_address( msg)
已弃用:
用linphone_chat_message_get_from_address()代替
#define linphone_chat_message_get_to( msg) linphone_chat_message_get_to_address( msg)
已弃用:
用linphone_chat_message_get_to_address() 代替
#define linphone_chat_message_set_from( msg, addr) linphone_chat_message_set_from_address( msg, addr)
已弃用:
用linphone_chat_message_set_from_address()代替
自定义文档
typedef struct _LinphoneChatMessage LinphoneChatMessage
一个聊天室消息包含发送的内容
可以由linphone_chat_room_create_message()创建
typedef struct _LinphoneChatMessageCbs LinphoneChatMessageCbs
一个用来控制LinphoneChatMessage对象的回调函数结构体
typedef void(* LinphoneChatMessageCbsFileTransferProgressIndicationCb)(LinphoneChatMessage* message, const LinphoneContent *content, size_t offset, size_t total)
文件传输进度提示回调函数原型
参数
message LinphoneChatMessage对象 ,其正文被发送
content LinphoneChatContent 传入的内容信息
offset 从传输一开始到现在的发送/接收比特数
total 发送或者接收的总比特数
typedef void(* LinphoneChatMessageCbsFileTransferRecvCb)(LinphoneChatMessage* message, const LinphoneContent *content, const LinphoneBuffer* buffer)
文件传输接受回调原型.这个函数由linphone核心在一个传入文件传输开始的时候调用.这个函数也许对同一个文件调用几次,因为文件比较大.
参数
messgae LinphoneChatMessage对象,其正文被发送
content LinphoneContent 传入的内容信息
buffer LinphoneBuffer 包含了接收的数据.空的buffer意味着文件传输结束
typedef LinphoneBuffer*(*LinphoneChatMessageCbsFileTransferSendCb)(LinphoneChatMessage* message, const LinphoneContent* content, size_t offset, size_t size)
文件传输发送原型.这个函数由linphone核心在传出文件传输开始的时候调用.这个函数一直被调用直达文件大小被设置为0的时候.
参数
message LinphoneChatMessage 该消息正文会被发送
content LinphoneChatContent对象 传出内容
offset 文件的偏移量,从中可以获取要发送的数据
size 由框架期望设定的比特数
返回
一个LinphoneBuffer对象,包含了应用程序写的数据.如果是空的buffer意味着没有文件
typedef void(* LinphoneChatMessageCbsMsgStateChangedCb)(LinphoneChatMessage* msg, LinphoneChatMessageState state)
用于通知消息传递的状态
参数
msg LinphoneChatMessage对象
status LinphoneChatMessageState 对象
typedef enum _LinphoneChatMessageState LinphoneChatMessageState
如果消息已经成功传输或者没有失败.LinphoneChatMessageState被用来通知
typedef void(* LinphoneChatMessageStateChangedCb)(LinphoneChatMessage *msg, LinphoneChatMessageState state, void* ud)
用于通知通知消息传递的状态
参数
msg LinphoneChatMessage对象
status LinphoneChatMessageState对象
ud 应用程序用户数据
已弃用:
typedef struct _LinphoneChatRoom LinphoneChatRoom
一个聊天室.可以交换文本信息
可以由linphone_core_create_chat_room()创建
枚举类型文档
enum _LinphoneChatMessageState
LinphoneChatMessageState被用于通知,如果消息已经被成功传递或者失败
枚举成员
LinphoneChatMessageStateIdle 初始状态
LinphoneChatMessageStateInProgress 传递正在处理
LinphoneChatMessageStateDelivered 消息成功传递,远端获知信息
LinphoneChatMessageStateNotDeliverded 消息没有发送
LinphoneChatMessageStateFileTransferError 消息被接收(并确认)但不能从服务器获取we文件
LinphoneChatMessageStateFileTransferDone 文件传输已经成功完成
enum _LinphoneLimeState
枚举成员
LinphoneLimeDisable 不使用Lime
LinphoneLimeMandatory 总是使用Lime
LinphoneLimePreferred 如果我们已经共享一个机密文件给远端
函数文档
void linphone_chat_message_add_custom_header(LinphoneChatMessage* message, const char* header_name, const char* header_value)
添加自定义头到消息
参数
message LinphoneChatMessage对象
header_name 头的名字
header_value 头的值
void linphone_chat_message_cancel_file_transfer(LinphoneChatMessage* msg)
取消一个连接到该message对象的正在进行的文件传输(上传或下载)
参数
msg LinphoneChatMessage对象
LinphoneChatMessageCbsFileTransferProgressIndicationCb linphone_chat_message_cbs_get_file_transfer_progress_indication(const LinphoneChatMessageCbs* cbs)
获取文件传输进度提示回调函数
参数
[in] cbs LinphoneChatMessageCbs对象
返回
当前文件传输进度提示回调函数
LinphoneChatMessageCbsFileTransferSendCb
linphone_chat_message_cbs_get_file_transfer_send(const LinphoneChatMessageCbs* cbs)
获取文件传输发送回调函数
参数
[in] cbs LinphoneChatMessageCbs对象
返回
目前文件传输发送回调函数
LinphoneChatMessageCbsMsgStateChangedCb
linphone_chat_message_cbs_get_msg_state_changed(const LinphoneChatMessageCbs* cbs )
获取消息状态改变回调函数
参数
[in] cbs LinphoneChatMessageCbs对象
返回
当前消息状态改变回调函数
void* linphone_chat_message_cbs_get_user_data(const LinphoneChatMessageCbs* cbs)
获取与LinphoneChatMessageCbs对象相关的用户指针
参数
[in] cbs LinphoneChatMessageCbs对象
返回
与LinphoneChatMessageCbs对象的用户指针
LinphoneChatMessageCbs* linphone_chat_message_cbs_ref(LinphoneChatMessageCbs* cbs)
获取LinphoneChatMessageCbs对象的引用
参数
[in] cbs LinphoneChatMessageCbs对象
返回
一样的LinphoneChatMessageCbs对象
void linphone_chat_message_cbs_set_file_transfer_progress_indication(LinphoneChatMessageCbs* cbs, LinphoneChatMessageCbsFileTransferProgressIndicationCb cb)
设置文件传输进度提示回调.
参数
[in] cbs LinphoneChatMessageCbs对象
[in] cb 文件传输进度提示回调函数
void linphone_chat_message_cbs_set_file_transfer_recv(LinphoneChatMessageCbs* cbs, LinphoneChatMessageCbsFileTransferRecvCb cb)
设置文件传输接受回调
参数
[in] cbs LinphoneChatMessageCbs对象
[in] cb 文件传输接受回调函数
void linphone_chat_message_cbs_set_file_transfer_send(LinphoneChatMessageCbs* cbs, LinphoneChatMessageCbsFileTransferSendCb cb)
设置文件传输发送回调
参数
[in] cbs LinphoneChatMessageCbs对象
[in] cb 文件传输发送回调函数
void linphone_chat_message_cbs_set_msg_state_changed(LinphoneChatMessageCbs* cbs, LinphoneChatMessageCbsMsgStateChangedCb cb)
设置消息状态改变的回调
参数
[in] cbs LinphoneChatMessageCbs对象
[in] cb 消息状态改变回调函数
void linphone_chat_message_cbs_set_user_data(LinphoneChatMessageCbs* cbs, void* ud)
获取LinphoneChatMessageCbs对象的用户指针
参数
[in] cbs LinphoneChatMessageCbs对象
[in] ud 与LinphoneChatMessageCbs对象相关联的用户指针
void linphone_chat_message_cbs_unref(LinphoneChatMessageCbs* cbs)
释放LinphoneChatMessageCbs对象引用
参数
[in] cbs LinphoneChatMessageCbs对象
LinphoneChatMessage* linphone_chat_message_clone(const LinphoneChatMessage* message)
复制一个LinphoneCharMessage对象
void linphone_chat_message_destroy(LinphoneChatMessage* msg)
销毁一个LinphoneChatMessage对象
int linphone_chat_message_download_file(LinphoneChatMessage* message)
开始文件下载,文件引用在inphoneChatMessage对象中.
参数
[in] message LinphoneChatMessage对象
const char* linphone_chat_message_get_appdata(const LinphoneChatMessage* message)
Linphone 消息有一个app-sprcific域可以保存一个文本.应用程序也许想用它来保存数据在重启上,如缩略图路径
参数
message LinphoneChatMessage对象
返回
application-specific域,如果没有保存的为NULL
LinphoneChatMessageCbs* linphone_chat_message_get_callbacks(const LinphoneChatMessage* msg)
获取与LinphoneChatMessage对象相关的LinphoneChatMessageCbs对象
参数
[in] msg LinphoneChatMessage 对象
返回
与LinphoneChatMessage对象相关的LinphoneChatMessageCbs对象
const char* linphone_chat_message_get_custom_header(LinphoneChatMessage* message, const char* header_name)
获取指定名字的自定义头的值
参数
message LinphoneChatMessage对象
header_name 搜索的头名
const LinphoneErrorInfo* linphone_chat_message_get_erroe_info(const LinphoneChatMessage* msg)
获取关于聊天信息传递出错的完全详细信息
参数
msg LinphoneChatMessage对象
返回
描述细节的LinphoneErrorInfo对象
const char* linphone_chat_message_get_external_body_url(const LinphoneChatMessage* message)
Linphone消息可用搭载一个外部正文,如rfc2017定义的.
参数
message LinphoneChatMessage对象
返回
外部正文的url,如果没有返回NULL
const char* linphone_chat_message_get_file_transfer_filepath(LinphoneChatMessage* msg)
获取需要传输的文件(读写)的文件路径.
参数
[in] msg LinphoneChatMessage对象
返回
用于文件传输的文件路径
const LinphoneContent* linphone_chat_message_get_file_transfer_information(const LinphoneChatMessage* message)
获取文件传输信息(被用于回调来恢复信息在一个rcs文件传输时)
参数
message LinphoneChatMessage对象
返回
LinphoneContent结构的指针,如果没有返回NULL
const LinphoneAddress* linphone_chat_message_get_from_address(const LinphoneChatMessage* message)
获取消息的来源
参数
[in] message LinphoneChatMessage对象
返回
LinphoneAddress对象
LinphoneAddress* linphone_chat_message_get_local_address(const LinphoneChatMessage* message)
如果是传出消息,返回消息的源地址,如果是传入消息,返回消息的目的地址.
参数
message LinphoneChatMessage对象
返回
LinphoneAddress对象
LinphoneChatMessageState linphone_chat_message_get_state(const LinphoneChatMessage* message)
获取消息的状态
参数
message LinphoneChatMessage对象
返回
LinphoneChatMessageState对象
unsigned int linphone_chat_message_get_storage_id(LinphoneChatMessage* message)
返回用于识别在存储数据库中这个消息的id
参数
message LinphoneChatMessage对象
返回
id
const char* linphone_chat_message_get_text(const LinphoneChatMessage* message)
获取消息的文本部分
返回
文本,如果没有文本返回NULL
time_t linphone_chat_message_get_time(const LinphoneChatMessage* message)
获取消息发送的时间
const LinphoneAddress* linphone_chat_message_get_to_address(const LinphoneChatMessage* message)
获取消息的目的地
参数
[in] message LinphoneChatMessage对象
返回
LinphoneAddress对象
void* linphone_chat_message_get_user_data(const LinphoneChatMessage* message)
获取用户数据指针的函数
bool_t linphone_chat_message_is_outgoing(LinphoneChatMessage* message)
如果消息已经发送返回TRUE,如果消息已经收到返回FALSE.
参数
message LinphoneChatMessage对象
bool_t linphone_chat_message_is_read(LinphoneChatMessage* message)
如果消息已经被阅读返回TRUE,否则返回FALSE.
参数
message LinphoneChatMessage对象
int linphone_chat_message_put_char(LinphoneChatMessage* msg, uint32_t character)
通过字符实现一个消息字符串.消息与实时文本通话实时地发送字符,根据RFC 4103/T.140 提交一个消息,使用linphone_chat_room_send_message
参数
[in]msg LinphoneChatMessage对象
[in] character T.140字符
返回
如果成功返回0
LinphoneChatMessage* linphone_chat_message_ref(LinphoneChatMessage* msg)
获得LinphoneChatMessage对象的引用
参数
msg LinphoneChatMessage对象
返回
一样的LinphoneChatMessage对象
void linphone_chat_message_set_appdata(LinphoneChatMessage* message, const chat* data)
Linphone消息中有一个app-specific字段可以保存一个文本.应用程序可能想用她来保存数据在重启时,像缩略图地址.调用这个函数将尝试更新消息存储来反映变化,如果它可用的话.
参数
message LinphoneChatMessage对象
data 保存到消息中的数据
void linphone_chat_message_set_external_body_url(LinphoneChatMessage* message, const char* url)
Linphone消息可以携带外部的主体如rfc2017定义的
参数
message LinphoneChatMessage对象
url 例如: access-type=URL;URL="http://www.foo.com/file"
void linphone_chat_message_set_file_transfer_filepath(LinphoneChatMessage* msg, const char* filepath)
设置文件路径,在文件传输中可读写.
参数
[in] msg LinphoneChatMessage 对象
[in] filepath 用于文件传输的文件路径
void linphone_chat_message_set_from_address(LinphoneChatMessage* message, const LinphoneAddress* from)
设置消息的源地址
参数
[in] message LinphoneChatMessage对象
[in] from LinphoneAddress对象 该消息的源地址(复制)
void linphone_chat_message_set_to_address(LinphoneChatMessage* message, const LinphoneAddress* addr)
设置该消息的目的地址
参数
[in] message LinphoneChatMessage对象
[in] addr LinphoneAddress 消息的目的地(复制)
void linphone_chat_message_set_user_data(LinphoneChatMessage* message, void* user_data)
设置用户指针
MS2_DEPRECATED void linphone_chat_message_start_file_download(LinphoneChatMessage* message, LinphoneChatMessageStateChangedCbs status_cb, void* ud)
开始下载远程服务器的文件
参数
message LinphoneChatMessage对象
status_cb LinphoneChatMessageStateChangeCb状态回调调用,当文件被下载或者无法下载
ud 用户数据
已弃用:
用linphone_chat_message_download_file()代替
const char* linphone_chat_message_state_to_string(const LinphoneChatMessageState state)
返回一个LinphoneChatMessageState的字符串格式
void linphone_chat_message_unref(LinphoneChatMessage* msg)
释放LinphoneChatMessage对象的引用
参数
msg LinphoneChatMessage对象
void linphone_chat_room_compose(LinphoneChatRoom* cr)
通知目的地,其聊天消息有用户输入一个消息构成.
参数
[in] cr LinphoneChatRoom对象对应于对话有一个新消息输入
LinphoneChatMessage* linphone_chat_room_create_file_transfer_message(LinphoneChatRoom* cr, const LinphoneContent* initial_content)
用特定的内容来创建一个消息附加到一个专门的聊天室.用linphone_chat_room_send_message来启动传输
参数
cr LinphoneChatRoom对象
initial_content LinphoneContent对象 初始化内容.
LinphoneCoreVTable.file_transfer_send稍后被调用来通知文件传输进度,如果 LinphoneContent.data是NULL的话,就收集消息的下一个消息块.
返回
一个新的LinphoneChatMessae对象
LinphoneChatMessage* linphone_chat_room_create_message(LinphoneChatRoom* cr, const char* message)
创建一个消息附加到一个专门的聊天室
参数
cr LinphoneChatRoom对象
message 文本消息,如果忽略设置为NULL
返回
一个新的LinphoneChatMessage对象
LinphoneChatMessage* linphone_chat_room_create_message_2(LinphoneChatRoom* cr,
const char* message,
const char* external_body, LinphoneChatMessageStates state,
time_t time,
bool_t is_read,
bool_t is_incoming)
创建一个消息附加到一个专用的聊天室
参数
cr 聊天室对象
message 文本消息,如果忽略可为NULL
external_body_url 外部主体的URL,或者为NULL
state 消息的LinphoneChatMessage.State
time 消息接收或发送的时间
is_read 如果消息应该被表明为读,就返回TUER,否则返回FALSE
is_incoming 如果消息已经接收返回TRUE,否则返回FALSE.
返回
一个新的LinphoneChatMessage对象
void linphone_chat_room_delete_history(LinphoneChatRoom* cr)
删除所有消息历史
参数
[in] cr LinphonChatRoom对象 ,与对话有关
void linphone_chat_room_delete_message(LinphoneChatRoom* cr, LinphoneChatMessage* msg)
从聊天室历史记录中删除一条消息
参数
[in] cr LinphoneChatrRoom 对象 ,与对话相关的
[in] msg LinphoneChatMessage对象 对应要删除的消息
MS2_DEPRECATED void linphone_chat_room_destroy(LinphoneChatRoom* cr)
销毁一个LinphoneChatRoom对象
参数
cr LinphoneChatRoom对象
已弃用:
用linphone_chat_room_unref()代替
LinphoneCall* linphone_chat_room_get_call(const LinphoneChatRoom* room)
获取与room相关联的当前通话,如果要提交消息,使用linphone_chat_room_send_message
参数
[in] room LinphoneChatRoom对象
返回
LinphoneCall对象 或者为NULL
uint32_t linphone_chat_room_get_char(const LinphoneChatRoom* cr)
当实时文本被启用linphone_call_params_realtime_text_enabled,每次接收到从对方发来的字符都会调用LinphoneCoreIsComposingReceivedCb.远程端输入一个正规的LinphoneChatMessage和LinphoneCoreMessageReceivedCb的提交数据一起被接收.
参数
[in] cr LinphoneChatRoom对象
返回
RFC 4103/T.140 字符
LinphoneCore* linphone_chat_room_get_core(LinphoneChatRoom* cr)
返回控制cr的LinphoneCore对象
bctbx_list_t* linphone_chat_room_get_history(LinphoneChatRoom* cr, int nb_message)
从cr聊天室中获取nb_message最新消息,从最早到最近排序
参数
[in] cr LinphoneChatRoom对象对应于消息可以获取的对话.
[in] nb_message 需要获取的消息的数量.0代表获取所有消息
返回
LinphoneChatMessage对象的列表
bctbx_list_t* linphone_chat_room_get_history_range(LinphoneChatRoom* cr, int begin, int end)
获取指定范围内的消息部分列表,按最早到最近排序
参数
[in] cr LinphoneChatRoom对象对应于消息可以获取的对话
[in] begin 需要检索范围的第一个消息.历史上最近的消息索引为0
[in] end 需要检索范围的最后一个消息.历史上最早的消息索引为历史记录长度-1(用linphone_chat_room_get_history_size获取历史记录长度)
返回
一个LinphoneChatMessage对象列表
int linphone_chat_room_get_history_size(LinphoneChatRoom* cr)
获取在一个聊天室内的消息数量
参数
[in] cr LinphoneChatRoom对象
返回
消息的数量
MS2_DEPRECATED LinphoneCore* linphone_chat_room_get_lc (LinphoneChatRoom* cr)
返回LinphoneCore对象的指针
已弃用
用linphone_char_room_get_core()代替
const LinphoneAddress* linphone_chat_room_get_peer_address(LinphoneChatRoom* cr)
获取与这个LinphoneChatRoom对相关联的 对方地址
参数
cr LinphoneChatRoom对象
返回
LinphoneAddress 对等地址
int linphone_chat_room_get_unread_messages_count(LinphoneChatRoom* cr)
获取一个聊天室未读信息数
参数
[in] cr LinphoneChatRoom对象与对话相关联
返回
未读消息数
void* linphone_chat_room_get_user_data(const LinphoneChatRoom* cr)
获取与指定聊天室相关的用户数据指针
参数
[in] cr LinphoneChatRoom对象
返回
与指定聊天室相关联的用户指针
bool_t linphone_chat_room_is_remote_composing(const LinphoneChatRoom* cr)
判断远程目前是否正在构成一个消息
参数
[in] cr LinphoneChatRoom对象与对话相关联
返回
如果远程目前在构造一个消息返回TRUE,否则返回FALSE.
bool_t linphone_chat_room_lime_available(LinphoneChatRoom* cr)
如果lime对应给定的peer可用,返回TRUE.
返回
如果zrtp密码已经共享,并且准备使用,返回TRUE
void linphone_chat_room_mark_as_read(LinphoneChatRoom* cr)
标记所有对象消息为已读
参数
[in] cr LinphoneChatRoom对象相应于对话
LinphoneChatRoom* linphone_chat_room_ref(LinphoneChatRoom* cr)
获取一个聊天室的引用
参数
[in] cr 聊天室
返回
一样的聊天室对象
void linphone_chat_room_send_chat_message(LinphoneChatRoom* cr, LinphoneChatMessage* msg)
发送一个消息到这个聊天室的另一方
参数
[in] cr LinphoneChatRoom对象
[in] msg LinphoneChatMessage对象 消息发送的状态将通过LinphoneChatMessageCbs对象中定义的回调函数来 通知.LinphoneChatMessageCbs对象可以通过调用linphone_chat_message_get_callbacks()来获 取.LinphoneChatMessage引用被传入到函数,因此不需要应用程序释放引用
MS2_DEPRECATED void linphone_chat_room_send_message(LinphoneChatRoom* cr, const char* msg)
发送消息到这个聊天室的另一方
已弃用:
用linphone_chat_room_send_chat_message()代替
参数
cr LinphoneChatRoom对象
msg 发送的消息
MS2_DEPRECATED void linphone_chat_room_send_message2(LinphoneChatRoom* cr, LinphoneChatMessage* msg, LinphoneChatMessageStateChangedCb status_cb, void* ud)
发送消息到这个聊天室的另一方
参数
cr LinphoneChatRoom对象
msg LinphoneChatMessage 发送的消息
status_cb LinphoneChatMessageStateChangeCb 状态回调调用,当消息传递或不可传递时.也许为NULL
ud 为状态回调函数设置的用户指针
已弃用:
用linphone_chat_room_send_chat_message() 代替
注意:
LinphoneChatMessage对象不能销毁,知道回调被调用.LinphoneChatMessage引用传进函数,因而不需要由应用程序释放.
void linphone_chat_room_set_user_data(LinphoneChatRoom* cr, void* ud)
获取聊天室的用户指针
参数
[in] cr 聊天室对象
[in] ud 与聊天室相对应的用户指针
void linphone_chat_room_unref(LinphoneChatRoom* cr)
释放聊天室对象的引用
参数
[in] cr LinphoneChatRoom对象
bool_t linphone_core_chat_enabled(const LinphoneCore* lc)
返回聊天是否可用
参数
lc 一个LinphoneCore对象
void linphone_core_delete_chat_room(LinphoneCore* lc , LinphoneChatRoom* cr)
移除一个聊天室包含所有消息历史
参数
lc LinphoneCore对象
cr LinphoneChatRoom对象
void linphone_core_disable_chat(LinphoneCore* lc, LinphoneReason deny_reason)
有条件地禁止传入聊天信息
参数
lc LinphoneCore对象
deny_reason 拒绝的原因(LinphoneReasonNone在这里无效)
void linphone_core_enable_chat(LinphoneCore* lc)
启用传入聊天消息的接收.默认情况下它是启用的,但可以调用linphone_core_disable_chat()来禁用它.
参数
lc LinphoneCore对象
const char* linphone_core_get_chat_database_path(const LinphoneCore* lc)
获取用于保存聊天消息的数据库文件路径
参数
lc LinphoneCore对象
返回
文件路径,如果不存在返回NULL
LinphoneChatRoom* linphone_core_get_chat_room(LinphoneCore* lc, const LinphoneAddress* addr)
获取一个聊天室,该聊天室的对等方就是所提供的地址addr.如果它不存在,它会被创建.没有引用传入应用程序.LinphoneCore保存一个引用在聊天室上.
参数
lc LinphoneCore对象
addr LinphoneAddress对象
返回
LinphoneChatRoom对象
LinphoneChatRoom* linphone_core_get_chat_room_from_uri(LinphoneCore* lc, const char* to)
从一个sip URI如sip:joe@sip.linphone.org中获取一个聊天室.如果它不存在,它会被创建.没有引用被传递个应用程序.LinphoneCore保留一个引用在聊天室上.
参数
lc 一个LinphoneCore对象
to 消息的目的地址
返回
LinphoneChatRoom对象
const bctbx_list_t* linphone_core_get_chat_rooms(LinphoneCore* lc)
返回一个聊天室列表
参数
[in] lc LinphoneCore对象
返回
LinphoneChatRoom对象列表
void linphone_core_set_chat_database_path(LinphoneCore* lc, const char* path)
设置用于保存聊天消息的数据库文件路径.如果文件不存在,它会被创建
参数
lc LinphoneCore对象
path 文件路径