欧美三区_成人在线免费观看视频_欧美极品少妇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)論
主站蜘蛛池模板: 亚洲av一级毛片特黄大片 | 欧美日韩不卡 | 瑟瑟网站免费网站入口 | 久久综合欧美 | 国产人成精品一区二区三 | 99久久精品免费看国产免费 | 午夜视频久久 | 在线观看国产免费高清不卡 | 男女啪啪免费视频 | 国产精品久久久久久久久久大牛 | 一级黄色绿像片 | 天天操天天操天天操香蕉 | 91情侣在线偷精品国产 | 日韩精品视频一区二区三区 | 国产精品国产亚洲精品不卡 | 奇米影视8888狠狠狠狠 | 日韩久久久久久 | 国产精品一区二区三区四区 | 九九热精品在线视频 | 九九精品在线 | 日本亚洲精品色婷婷在线影院 | 免费av大全 | 国产精品欧美一区二区在线看 | 亚洲综合色视频在线观看 | 久久这里只有精品视频9 | 欧美日韩在线播放一区二区三区 | 国产精品国产a级 | 亚洲成人在线视频播放 | 中文字幕日韩在线 | 91激情视频| 欧美性吧 | 日本午夜在线观看 | 成人在线免费观看网站 | 国产亚洲第一伦理第一区 | 国产精品尤物在线观看一区 | 色综合久久天天综合观看 | 伊人久久大杳蕉综合大象 | 性夜a爽黄爽 | 久久综合丁香激情久久 | 精品国产乱码久久久久久1区2区 | 亚洲天天做日日做天天看2018 |