Liblinphone 3.9.1中文--Modules--Chat room and Messaging

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

       }



函数

                 

void  linphone_core_set_chat_database_path (LinphoneCore *lc, const char *path)
 
const char *  linphone_core_get_chat_database_path (const LinphoneCore *lc)
 
LinphoneChatRoom *  linphone_core_get_chat_room (LinphoneCore *lc, const LinphoneAddress *addr)
 
LinphoneChatRoom *  linphone_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)
 
LinphoneChatMessage *  linphone_chat_room_create_message (LinphoneChatRoom *cr, const char *message)
 
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)
 
LinphoneChatRoom *  linphone_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)
 
LinphoneChatMessage *  linphone_chat_room_create_file_transfer_message (LinphoneChatRoom *cr, const LinphoneContent*initial_content)
 
const LinphoneAddress *  linphone_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 LinphoneCore *  linphone_chat_room_get_lc (LinphoneChatRoom *cr)
 
LinphoneCore *  linphone_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)
 
LinphoneChatMessage *  linphone_chat_message_clone (const LinphoneChatMessage *message)
 
LinphoneChatMessage *  linphone_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 LinphoneAddress *  linphone_chat_message_get_from_address (const LinphoneChatMessage *message)
 
void  linphone_chat_message_set_to_address (LinphoneChatMessage *message, const LinphoneAddress *addr)
 
const LinphoneAddress *  linphone_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 LinphoneContent *  linphone_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 *)
 
LinphoneChatRoom *  linphone_chat_message_get_chat_room (LinphoneChatMessage *msg)
 
const LinphoneAddress *  linphone_chat_message_get_peer_address (LinphoneChatMessage *msg)
 
LinphoneAddress *  linphone_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 LinphoneErrorInfo *  linphone_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)
 
LinphoneCall *  linphone_chat_room_get_call (const LinphoneChatRoom *room)
 
LinphoneChatMessageCbs *  linphone_chat_message_get_callbacks (const LinphoneChatMessage *msg)
 
LinphoneChatMessageCbs *  linphone_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)



详细描述

               交换文本信息

        用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  文件路径

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值