3G交互式視頻網關的設計與實現(xiàn)方案三
3 網關的實現(xiàn)
在實現(xiàn)的時候,用到的硬件主要包括PC 機一臺和E1 板卡一塊,用到的軟件主要包括Linux 操作系統(tǒng)和實驗室已有的2G 語音網關平臺(該平臺主要提供應用程序接口、SIP 協(xié)議棧和E1 板卡驅動程序),在此基礎上實現(xiàn)了3G 交互式視頻網關,其中最主要的是實現(xiàn)了3G-324M 協(xié)議棧以及3G-324M 協(xié)議與SIP協(xié)議間媒體格式和控制消息的轉換。
3.1 3G-324M協(xié)議棧的實現(xiàn)設計的主要數據結構包括:
H324M: 提供協(xié)議棧對外的統(tǒng)一接口,包括H324M::Int(),H324M::Demux(),H324M::Mutex()等。其中H324M::Init()接口初始化3G-324M 協(xié)議棧, H324M::Demux()接口解復用從B 信道收到的數據,H324M::Mutex()將音頻、視頻和控制消息復用后,發(fā)送到3G 手機終端。
H324MChannels: 音視頻信道、控制信道和復用/解復用器等資源的容器,并通過回調的形式向上層傳遞消息。
AudioChannel: 音頻信道,包含H223 適配層等資源,提供的接口包括AudioChannel::GetFrame(),AudioChannel::S-endFrame()。
VideoChannel: 視頻信道,包含H223 適配層等資源,提供的接口包括VideoChannel::GetFrame(),VideoChannel::S-endFrame()。
ControlChannel: 控制信道,實現(xiàn)了CCSR、NSRP協(xié)議。
H223ALReceiver: H223 協(xié)議的適配層,負責對從3G 手機接收到的數據進行檢錯。
H223ALSender: H223 協(xié)議的適配層,負責對發(fā)發(fā)送到3G手機的數據進行適配并追加所計算的校驗和。
H223Demuxer: H223 協(xié)議的復用層,負責解復用從3G 手機接收到的數據,并將解復用后的數據根據數據類型分別添加到音頻、視頻和控制消息接收隊列中。
H223Muxer: H223 協(xié)議的復用層,將從IP 域一側收到的音頻、視頻和控制消息復用到一個物理通道上,從3G 電路域一側發(fā)送到3G 手機上。
3.2 網關工作流程。
網關的主要工作是在3G 域與IP 域之間進行控制消息和媒體格式的轉換,主程序的設計首先進行3G-324M 協(xié)議棧等各種數據結構的初始化,然后在3G 域和IP 域兩個通道同時監(jiān)聽數據的到達。如果從監(jiān)聽返回的時候沒有數據到達,則意味著某個通道出錯,此時進行退出處理;如果從監(jiān)聽返回是因為3G域通道有數據到達,則將收到的數據根據3G-324M協(xié)議解復用后進行格式轉換發(fā)送到IP 域的通道;如果從監(jiān)聽返回是因為IP 域通道有數據到達,則轉換格式后根據3G-324M 協(xié)議復用并發(fā)送到3G 域通道。在后兩種情況下,進行完數據轉發(fā)后,繼續(xù)回到監(jiān)聽3G域通道和IP 域通道的狀態(tài)。程序流程圖如圖5 所示。
圖5 網關工作流程。
評論