freeswitch中文本消息處理流程

1. Freeswitch轉發文本消息流程如下流程圖所示:

 

 

1.1 chat_thread_run函數

該函數從消息隊列中pop消息,並把消息傳遞給chat_process_event函數進行處理

 

1.2 chat_process_event函數,定義如下:

 

 

1.3 sofia_presence_chat_send函數

sofia_presence_chat_send函數對參數message_event進行解釋,並重新組裝成nua_message函數需要的參數,最終由nua_message函數把文本消息發送到目的客戶端,如下圖:

 

 

1.4 nua_message函數

nua_message函數使用宏NUA_SIGNALnua_signal函數進行調用

 

1.5 nua_signal函數

nua_signal函數對參數重新進行封裝,然後調用su_msg_send_to函數把消息發送到sofia-sip,並由sofia-sip轉發到目的客戶端

 

2客戶端和FreeSwitch之間收發文本消息使用的是sip的擴展simple,消息內容放在SIP“Message Body”中,如下圖所示:


 

3. simple協議簡介

IETF制定的SIMPLESIP for Instant Messaging and Presence Leveraging Extensions)協議簇對SIP協議進行了擴展,以使其支持IM服務。SIMPLE增加了MESSAGESUBSCRIBENOTIFY方法


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章