欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

FS SIP呼叫的消息線程和狀態(tài)機(jī)線程

系統(tǒng) 2222 0

THREAD

當(dāng)收到一次呼叫的時(shí)候, FS 會(huì)在 TU 層創(chuàng)建兩個(gè)線程,一個(gè)線程為狀態(tài)機(jī)線程,另外一個(gè)為消息線程。狀態(tài)機(jī)線程通過 switch_core_session_thread_launch創(chuàng)建,顧名思義其作用是不斷的檢查channel 的狀態(tài),并進(jìn)行處理。以下為詳細(xì)處理過程。

狀態(tài)機(jī)的執(zhí)行機(jī)制:

2 個(gè)回調(diào)函數(shù)

分別為:

const?switch_state_handler_table_t?*driver_state_handler?=?NULL;

const?switch_state_handler_table_t?*application_state_handler?=?NULL;

?

下面為具體的代碼分析:

FS 里面有大量的結(jié)構(gòu)體,其變量的類型為函數(shù)指針。然后定義此結(jié)構(gòu),直接使用全局函數(shù)名稱進(jìn)行初始化。達(dá)到回調(diào)的效果。

例:

結(jié)構(gòu)體

struct?switch_state_handler_table?{

/*!?executed?when?the?state?changes?to?init?*/

switch_state_handler_t?on_init;

/*!?executed?when?the?state?changes?to?routing?*/

switch_state_handler_t?on_routing;

。。。。/ 這里只顯示部分

};

全局結(jié)構(gòu)變量

switch_state_handler_table_t?sofia_event_handlers?=?{

/*.on_init?*/?sofia_on_init,

/*.on_routing?*/?sofia_on_routing,

。。。

};

通過sofia_event_handlers 即可對(duì)所有的函數(shù)進(jìn)行調(diào)用。

?

通過宏定義進(jìn)行回調(diào)

#define?STATE_MACRO(__STATE,?__STATE_STR)??do{....}while(...)

?

狀態(tài)機(jī)的回調(diào)過程,下圖:

?

??概括為:

1、根據(jù)狀態(tài)機(jī)的狀態(tài)執(zhí)行 mod_sofia 中對(duì)應(yīng)的回調(diào)函數(shù)

2、根據(jù)狀態(tài)機(jī)的狀態(tài)執(zhí)行 application core 設(shè)置的對(duì)應(yīng)的回調(diào)函數(shù)

3、如果狀態(tài)沒有發(fā)生改變根據(jù)狀態(tài)機(jī)的狀態(tài)執(zhí)行對(duì)應(yīng)的 standard 函數(shù)

?

l?狀態(tài)機(jī)狀態(tài)一覽

typedef?enum?{

CS_NEW,

CS_INIT,

CS_ROUTING,

CS_SOFT_EXECUTE,

CS_EXECUTE,

CS_EXCHANGE_MEDIA,

CS_PARK,

CS_CONSUME_MEDIA,

CS_HIBERNATE,

CS_RESET,

CS_HANGUP,

CS_REPORTING,

CS_DESTROY,

CS_NONE

}?switch_channel_state_t;

以上為呼叫過程中的所有狀態(tài)機(jī)。其中標(biāo)注藍(lán)色的狀態(tài)會(huì)根據(jù)當(dāng)前狀態(tài)執(zhí)行狀態(tài)機(jī)函數(shù)。

修改 channel 狀態(tài)

當(dāng) channel 的狀態(tài)發(fā)生改變,進(jìn)行修改時(shí),會(huì)進(jìn)行喚醒動(dòng)作,把之前進(jìn)入 sleep session 線程喚醒。然后從新執(zhí)行狀態(tài)機(jī)。

?

另外一個(gè)線程為消息線程,其功能為不斷的從呼叫對(duì)應(yīng)的消息隊(duì)列里面取出消息,并進(jìn)行處理,我在 SESSION 文檔里面有過描述,會(huì)創(chuàng)建一個(gè)消息隊(duì)列。

消息的處理會(huì)在消息隊(duì)列里面進(jìn)行描述。這里不再消息講述。

FS SIP呼叫的消息線程和狀態(tài)機(jī)線程


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: www.伊人网 | 波多野结衣hd在线播放 | 日本高清视频在线播放 | 国产一区二区精品丝袜 | 日韩av第一页 | 久久精品国产精品亚洲综合 | 色午夜日本 | 国内精品视频免费观看 | 99久久免费费视频在线观看 | 黄视频网站在线 | av在线播放国产 | 亚洲精品一区在线 | 欧美污污网站 | 国产片侵犯亲女视频播放 | 日本精品久久无码影院 | 日韩精品福利视频一区二区三区 | 久久6699精品国产人妻 | 性色网站| 激情伊人网 | 伊人情涩网 | a爱片 | 国产在线精品一区二区高清不卡 | 国产四虎精品8848hh | 久久久久无码国产精品一区 | 日韩午夜三级 | 日韩中文字幕免费版 | 午夜影院在线看 | 欧洲视频在线观看 | 黄色精品视频 | 性欧美一级毛片在线播放 | 手机看片日韩国产 | 国产黄色三级 | 两性视频在线 | 日本大片在线免费观看 | 色拍拍欧美视频在线看 | 亚洲午夜成激人情在线影院 | 精品久久久久久久人人人人传媒 | 久久综合九色综合欧美狠狠 | 色播在线永久免费视频网站 | 男女真实无遮挡xx00动态图120秒 | 黄网站免费在线观看 |