專利名稱:一種云廣播系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種云廣播系統(tǒng)及方法。云廣播即支持分布式擴(kuò)展的IP網(wǎng)絡(luò)廣播。
背景技術(shù):
廣播系統(tǒng)在社會(huì)的生產(chǎn)和生活中有著非常廣泛的應(yīng)用,可以快捷方便的以聲音的形式將信息傳播出去,或者用來作為背景音樂或者教學(xué)節(jié)目的播放設(shè)施,在車站、廠礦、學(xué)校、小區(qū)、酒店等場所都有著非常廣泛的應(yīng)用。廣播系統(tǒng)主要解決音頻信息的傳輸問題。最初的廣播系統(tǒng)采用定壓功放實(shí)現(xiàn),聲音信號直接以模擬電信號傳輸,音頻線上可以駁接多個(gè)揚(yáng)聲器。直接傳輸模擬信號最大的問題在于無法解決傳輸過程中信號衰減和噪聲干擾的問題,傳輸?shù)木嚯x、接入的廣播點(diǎn)數(shù)目都受到限制。數(shù)碼多址廣播是在基礎(chǔ)定壓功放廣播系統(tǒng)之上增加頻道選擇功能的演進(jìn)產(chǎn)品,本質(zhì)上就是同時(shí)鋪設(shè)多個(gè)音頻線,另外外加一路控制信號線,可以控制揚(yáng)聲器選擇哪一路音頻進(jìn)行擴(kuò)音,即增加多路傳輸特性,但傳輸?shù)囊纛l信號本身還是模擬信號,無法克服定壓功放廣播自身固有的缺陷。隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的普及,計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)也應(yīng)用到廣播領(lǐng)域。采用TCP/IP網(wǎng)絡(luò)協(xié)議傳輸聲音信息的廣播系統(tǒng)稱之為IP廣播。在IP廣播系統(tǒng)傳輸?shù)穆曇粜盘栃枰冉?jīng)過采樣編碼為數(shù)字信號,傳輸?shù)氖羌償?shù)字信號,數(shù)字信號在傳輸過程中不會(huì)失真,信號傳輸距離不受限制,因此從根本上解決了定壓功放在信號傳輸上的缺陷。IP廣播主要由服務(wù)器軟件系統(tǒng)、IP終端設(shè)備以及中間的網(wǎng)絡(luò)傳輸設(shè)備構(gòu)成,服務(wù)器軟件將音頻流發(fā)送到指定終端,終端將接收到的音頻流解碼還原為模擬信號,驅(qū)動(dòng)喇叭播放聲音。隨著IP廣播系統(tǒng)越來越多的應(yīng)用,人們希望采用IP廣播技術(shù)構(gòu)建更大規(guī)模的廣播網(wǎng)絡(luò),譬如全省、全地區(qū)統(tǒng)一建立的農(nóng)村廣播,連鎖機(jī)構(gòu)廣播系統(tǒng),集團(tuán)公司廣播系統(tǒng)等等?,F(xiàn)有IP廣播技術(shù)還是基于單服務(wù)器架構(gòu)模式,服務(wù)器硬件性能、服務(wù)器網(wǎng)絡(luò)接口帶寬限制了網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)目,一般單臺(tái)服務(wù)器能夠支持的終端節(jié)點(diǎn)數(shù)目為200 500個(gè)。因而,現(xiàn)有的IP廣播系統(tǒng)擴(kuò)展性能差?,F(xiàn)有IP廣播系統(tǒng)一般由如下設(shè)備構(gòu)成1. 一臺(tái)計(jì)算機(jī)作為廣播服務(wù)器,運(yùn)行系統(tǒng)服務(wù)軟件,負(fù)責(zé)處理與系統(tǒng)中所有終端設(shè)備的通訊;2.多個(gè)IP廣播終端設(shè)備,接收來自廣播服務(wù)器的音頻流,將其解碼還原為模擬音頻信號,驅(qū)動(dòng)揚(yáng)聲器輸出聲音,或者將現(xiàn)場聲音進(jìn)行采集編碼,通過網(wǎng)絡(luò)接口發(fā)送到廣播服務(wù)器;3. 一些客戶端應(yīng)用程序,連接廣播服務(wù)器,通過服務(wù)將音頻流發(fā)送到指定終端,或者接收出來自指定終端的音頻流;現(xiàn)有技術(shù)的缺點(diǎn)現(xiàn)有IP廣播技術(shù)的問題在于存在服務(wù)器性能瓶頸,網(wǎng)絡(luò)中所有終端都必須由一臺(tái)服務(wù)器進(jìn)行管理,不能通過擴(kuò)展服務(wù)器數(shù)量增加網(wǎng)絡(luò)容量(服務(wù)器之間沒有任何關(guān)聯(lián),連接不同服務(wù)器的客戶端和應(yīng)用程序不能通訊,等同于隔離的網(wǎng)絡(luò)),當(dāng)終端數(shù)量達(dá)到一定量時(shí),服務(wù)器不能保證及時(shí)處理與所有終端的通訊,聲音播放不再流暢。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種云廣播系統(tǒng)及方法,該云廣播系統(tǒng)及方法可以方便靈活地?cái)U(kuò)展IP廣播系統(tǒng)的規(guī)模。本發(fā)明為解決上述技術(shù)問題所采用的技術(shù)方案是一種云廣播方法,其特征在于,從架構(gòu)上設(shè)置應(yīng)用層、網(wǎng)絡(luò)服務(wù)層和終端層以構(gòu)成一個(gè)IP廣播系統(tǒng);應(yīng)用層為提供給用戶使用的各種音頻應(yīng)用程序,這些應(yīng)用程序用于將各種來源的音頻流發(fā)送到廣播終端,或者接收來自廣播終端現(xiàn)場采集編碼的音頻流進(jìn)行處理;網(wǎng)絡(luò)服務(wù)層用于管理網(wǎng)絡(luò)中所有會(huì)話對象和廣播終端;在網(wǎng)絡(luò)服務(wù)層設(shè)有會(huì)話服務(wù)器和終端服務(wù)器;終端層由多個(gè)廣播終端組成,廣播終端與終端服務(wù)器連接,最終完成聲音信號的數(shù)模轉(zhuǎn)換。會(huì)話服務(wù)器和終端服務(wù)器均為1個(gè)或多個(gè),應(yīng)用程序通過會(huì)話服務(wù)器建立和維護(hù)會(huì)話,一個(gè)應(yīng)用程序只對應(yīng)一個(gè)會(huì)話服務(wù)器,一個(gè)會(huì)話服務(wù)器能服務(wù)1個(gè)或多個(gè)應(yīng)用程序;終端服務(wù)器維護(hù)終端設(shè)備及廣播終端的工作狀態(tài),一個(gè)終端設(shè)備只對應(yīng)一個(gè)終端服務(wù)器,一個(gè)終端服務(wù)器管理一個(gè)或多個(gè)終端設(shè)備;所述IP廣播方法中涉及的數(shù)據(jù)流包括會(huì)話指令流、媒體數(shù)據(jù)流和終端通訊流1)會(huì)話指令流建立與維護(hù)廣播會(huì)話關(guān)系的通訊指令,發(fā)生在應(yīng)用程序與會(huì)話服務(wù)器、會(huì)話服務(wù)器與終端服務(wù)器之間,應(yīng)用程序與終端服務(wù)器亦從會(huì)話指令中獲取到媒體流的發(fā)送方向;2)媒體數(shù)據(jù)流承載音頻數(shù)據(jù),在應(yīng)用程序、終端服務(wù)器和廣播終端之間傳送;3)終端通訊流終端控制指令,傳遞終端服務(wù)器和廣播終端之間的控制信息;會(huì)話服務(wù)器通過查詢系統(tǒng)數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫一般設(shè)置在網(wǎng)絡(luò)層,它是系統(tǒng)中各個(gè)模塊相互交流的數(shù)據(jù)中心,存儲(chǔ)數(shù)據(jù)包括終端配置數(shù)據(jù)、會(huì)話狀態(tài)數(shù)據(jù)、終端服務(wù)配置數(shù)據(jù)、會(huì)話服務(wù)配置數(shù)據(jù)、用戶管理數(shù)據(jù);,建立起終端服務(wù)器與其管理的終端設(shè)備之間的連接關(guān)系視圖附圖1中顯示了終端服務(wù)器與其管理的終端設(shè)備之間的連接關(guān)系視圖, 如果一個(gè)會(huì)話包含多個(gè)廣播終端,這些廣播終端分別與不同的終端服務(wù)器連接,會(huì)話服務(wù)器將會(huì)話操作請求分發(fā)到相關(guān)的終端服務(wù)器。會(huì)話服務(wù)器定位到網(wǎng)絡(luò)中所有的廣播終端,將應(yīng)用程序?qū)V播終端的控制請求轉(zhuǎn)發(fā)到對應(yīng)的終端服務(wù)器處理;通過會(huì)話服務(wù)器和終端服務(wù)器使得IP廣播系統(tǒng)獲得了可以擴(kuò)展的能力通過擴(kuò)展會(huì)話服務(wù)器數(shù)量,以增加可支持的應(yīng)用程序的數(shù)量;通過擴(kuò)展終端服務(wù)器的數(shù)量增加終端設(shè)備的數(shù)量。與會(huì)話相關(guān)的過程包括會(huì)話建立過程和會(huì)話撤銷過程會(huì)話建立過程為步驟1 應(yīng)用程序發(fā)送邀請消息即INVITE消息到與該應(yīng)用程序連接的會(huì)話服務(wù)器,在INVITE消息中,將音頻流發(fā)送的目標(biāo)終端ID通知給會(huì)話服務(wù)器;
步驟2 會(huì)話服務(wù)器收到INVITE消息后,解析目標(biāo)終端ID,通過查詢?nèi)峙渲帽恚?獲取到這些終端所連接的終端服務(wù)器主機(jī)地址與端口 ;步驟3 會(huì)話服務(wù)器將INVITE消息轉(zhuǎn)發(fā)給步驟2所查詢到終端服務(wù)器服務(wù)主機(jī);步驟4 終端服務(wù)器收到INVITE消息后,修改目標(biāo)終端會(huì)話狀態(tài)信息,準(zhǔn)備好將數(shù)據(jù)流發(fā)送到目標(biāo)終端,并打開接收音頻流的端口 ;步驟5 各個(gè)終端服務(wù)器發(fā)送加入消息即JOIN消息給應(yīng)用程序,通知應(yīng)用程序接收音頻流的地址與端口,報(bào)告已經(jīng)加入到會(huì)話中的終端;
步驟6:應(yīng)用程序根據(jù)配置的策略,在收到一定數(shù)量一般取目標(biāo)終端總數(shù)的百分之三十的JOIN消息后,啟動(dòng)數(shù)據(jù)流的傳輸,將音頻數(shù)據(jù)流直接發(fā)送到各個(gè)終端服務(wù)器上報(bào)的媒體流接收端口;在數(shù)據(jù)流的傳輸過程即會(huì)話生存期中,應(yīng)用程序?qū)⒅芷谛缘陌l(fā)送心跳消息即 HBEAT消息到會(huì)話服務(wù)器,報(bào)告會(huì)話生存,會(huì)話服務(wù)器在超過設(shè)定時(shí)間未收到會(huì)話的HBEAT 消息,將通知終端服務(wù)器撤銷會(huì)話;會(huì)話撤銷過程為1)應(yīng)用程序在數(shù)據(jù)流傳輸完畢后,發(fā)送結(jié)束指令即BYE指令到會(huì)話服務(wù)器;2)會(huì)話服務(wù)器將BYE指令轉(zhuǎn)發(fā)至與當(dāng)前會(huì)話關(guān)聯(lián)的終端服務(wù)器;3)終端服務(wù)器在收到BYE指令后,撤銷當(dāng)前會(huì)話;會(huì)話生存期間,終端服務(wù)器選擇性地主動(dòng)發(fā)送離開指令即LEAVE指令給應(yīng)用程序,通知自身管理的某些廣播終端離開會(huì)話。一種云廣播系統(tǒng),包括應(yīng)用層設(shè)備、網(wǎng)絡(luò)服務(wù)層設(shè)備和終端層設(shè)備;所述的應(yīng)用層設(shè)備包括音頻播放設(shè)備;網(wǎng)絡(luò)服務(wù)層設(shè)備包括會(huì)話服務(wù)器和終端服務(wù)器;終端層設(shè)備由多個(gè)廣播終端組成;廣播終端、會(huì)話服務(wù)器以及應(yīng)用層設(shè)備均與終端服務(wù)服務(wù)器連接;會(huì)話服務(wù)服務(wù)器與應(yīng)用層設(shè)備連接;所述的云廣播系統(tǒng)采用前述的云廣播方法進(jìn)行實(shí)現(xiàn)會(huì)話和音頻數(shù)據(jù)傳輸。應(yīng)用層設(shè)備還包括音頻采集設(shè)備。廣播屬于一對多的通信模式,和電話通信有所區(qū)別,電話通信屬于一對一的通信, 必須確保雙方都能接收到對方的語音流,廣播通信存在多個(gè)數(shù)據(jù)接收者(SA),不必保證每個(gè)接收者都能接收到的數(shù)據(jù)流,接收者也可以選擇何時(shí)開始接收數(shù)據(jù)流,將會(huì)話建立分為 “邀請”和“加入”兩個(gè)階段,這樣便將各個(gè)SA的行為獨(dú)立開來,可以比較靈活的處理多方通信的場景。名詞說明Session:會(huì)話,如無特殊說明,本專利中專指廣播會(huì)話,廣播會(huì)話表示一個(gè)廣播事務(wù),即多個(gè)通信節(jié)點(diǎn)之間進(jìn)行一次信息傳遞所包含的從發(fā)起、執(zhí)行到結(jié)束的過程由某個(gè)發(fā)起者發(fā)起的;Session Server =SessionSvr,會(huì)話服務(wù)程序,系統(tǒng)中管理會(huì)話信息的服務(wù)程序; 負(fù)責(zé)將會(huì)話請求發(fā)送到被邀請的網(wǎng)絡(luò)節(jié)點(diǎn);Terminal Server :TRMSvr,終端服務(wù)程序,系統(tǒng)中管理終端設(shè)備工作狀態(tài)的服務(wù)程序;
Session Protocol 會(huì)話通訊協(xié)議,會(huì)話協(xié)議定義會(huì)話建立和運(yùn)行期間參與者之間消息報(bào)文格式以及邀請、關(guān)閉、加入、離開等會(huì)話事務(wù)的執(zhí)行過程;有益效果 本發(fā)明的云廣播系統(tǒng)及方法,通過部署多個(gè)服務(wù)器支持大規(guī)模IP廣播網(wǎng)絡(luò),使系統(tǒng)可以平行擴(kuò)展。本發(fā)明建立分布式架構(gòu),將管理終端的負(fù)載分擔(dān)多個(gè)服務(wù)上,保障與每個(gè)終端的通訊能得到及時(shí)處理。SessionSvr為App屏蔽了網(wǎng)絡(luò)部署結(jié)構(gòu)細(xì)節(jié),應(yīng)用不需要知道各個(gè)終端的具體分布,以及各個(gè)TRMSvr與終端之間的對應(yīng)關(guān)系,只需將會(huì)話請求發(fā)送給SessionSvr處理即可,便于用戶使用。本發(fā)明的優(yōu)點(diǎn)如下1.良好的可擴(kuò)展性由分層設(shè)計(jì)、會(huì)話狀態(tài)與終端狀態(tài)分布存儲(chǔ)與維護(hù)、標(biāo)準(zhǔn)會(huì)話管理協(xié)議設(shè)計(jì)使得系統(tǒng)具備良好的可擴(kuò)展性。每一個(gè)終端,每一次會(huì)話,在服務(wù)程序都需要分配相應(yīng)的CPU和內(nèi)存資源對其進(jìn)行邏輯運(yùn)算和狀態(tài)保存,因此計(jì)算機(jī)硬件性能(CPU 計(jì)算能力,內(nèi)存大小,出口帶寬等)限制了單臺(tái)服務(wù)最大能支持的終端數(shù)量和會(huì)話數(shù)量.雖然當(dāng)前IP廣播系統(tǒng)通過增加服務(wù)器,可以增加支持終端數(shù)量,但連接不同服務(wù)器的終端之間,不同的服務(wù)器之間是彼此完全獨(dú)立的,不能構(gòu)成一個(gè)互聯(lián)互通的網(wǎng)絡(luò),因此只能是彼此毫無關(guān)系的小規(guī)模廣播系統(tǒng)?!霸茝V播”系統(tǒng)(即本發(fā)明的IP廣播系統(tǒng))將終端狀態(tài)和會(huì)話狀態(tài)數(shù)據(jù)分布到不同的服務(wù)主機(jī)保存和處理,各個(gè)服務(wù)主機(jī)之間通過會(huì)話協(xié)議進(jìn)行通訊, 構(gòu)成了互聯(lián)互通的網(wǎng)絡(luò)系統(tǒng),通過擴(kuò)展服務(wù)器數(shù)量,便可以擴(kuò)大網(wǎng)絡(luò)規(guī)模。2.會(huì)話管理協(xié)議比較好的描述了廣播會(huì)話各個(gè)階段的操作,依據(jù)標(biāo)準(zhǔn)協(xié)議,可以比較方便的在核心服務(wù)系統(tǒng)之上建立各種應(yīng)用。
圖1是本發(fā)明的架構(gòu)圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施方式
對本發(fā)明作進(jìn)一步說明。實(shí)施例1 如圖1,整個(gè)系統(tǒng)劃分為三個(gè)層次,從上至下依次為應(yīng)用層、網(wǎng)絡(luò)服務(wù)層,終端層。其中網(wǎng)絡(luò)服務(wù)層為分布式IP廣播系統(tǒng)核心組件,為上層應(yīng)用屏蔽了終端設(shè)備的分布細(xì)節(jié)。系統(tǒng)分層說明應(yīng)用層應(yīng)用層為提供給用戶使用的各種音頻應(yīng)用程序,這些應(yīng)用程序完成將各種來源的音頻流發(fā)送到終端設(shè)備,或者接收來自終端設(shè)備現(xiàn)場采集編碼的音頻流進(jìn)行處理。這些應(yīng)用程序包括音頻文件播放、電腦實(shí)時(shí)采集播放、報(bào)警廣播、內(nèi)部對講、定時(shí)廣播等;網(wǎng)絡(luò)服務(wù)層網(wǎng)絡(luò)服務(wù)層主要包括會(huì)話服務(wù)(SessionSvr)和終端服務(wù)(TRMSvr) 兩個(gè)模塊,這兩個(gè)模塊起到管理網(wǎng)絡(luò)中所有會(huì)話對象和終端設(shè)備的作用,是構(gòu)建分布式IP 廣播系統(tǒng)的核心組件;
終端層這一層為終端設(shè)備,與上層的終端服務(wù)連接,最終完成聲音信號的數(shù)模轉(zhuǎn)換;系統(tǒng)中的實(shí)體主要包括應(yīng)用(App)這里的應(yīng)用就是和廣播系統(tǒng)服務(wù) (SessionSvr, TRMSvr)有關(guān)聯(lián)的應(yīng)用程序,一個(gè)應(yīng)用就是一套程序,但可以部署到多個(gè)電腦上運(yùn)行。、會(huì)話服務(wù)(SessionSvr)、終端服務(wù)(TRMSvr)、終端(Terminal),它們之間的關(guān)系如下會(huì)話服務(wù)(SessionSvr)、終端服務(wù)(TRMSvr)對應(yīng)的實(shí)體或者硬件設(shè)備就是服務(wù)器
這里的終端指網(wǎng)絡(luò)音頻編解碼設(shè)設(shè)備,是類似電視機(jī)頂盒的多媒體網(wǎng)絡(luò)設(shè)備,主要構(gòu)成為MCU (微處理器)、網(wǎng)卡芯片等硬件和運(yùn)行在上面的嵌入式軟件構(gòu)成。會(huì)話服務(wù)和終端服務(wù)都可以部署多個(gè)。每個(gè)終端服務(wù)管理一定數(shù)量的終端,每個(gè)會(huì)話服務(wù)負(fù)責(zé)處理一定數(shù)量的應(yīng)用接入請求,根據(jù)全局的配置信息,會(huì)話服務(wù)可以定位到網(wǎng)絡(luò)中所有的終端服務(wù),將應(yīng)用對終端的控制請求轉(zhuǎn)發(fā)到對應(yīng)的終端服務(wù)處理。4) App通過SessionSvr建立和維護(hù)會(huì)話,一個(gè)App只對應(yīng)一個(gè)SessionSvr, 一個(gè) SessionSvr可以服務(wù)多個(gè)App ;5)TRMSvr維護(hù)終端設(shè)備的工作狀態(tài),一個(gè)終端設(shè)備只對應(yīng)一個(gè)TRMSvr,一個(gè) TRMSvr可以管理多個(gè)終端;6)系統(tǒng)中的數(shù)據(jù)流主要包括會(huì)話指令流,媒體數(shù)據(jù)流,終端通訊流。a)會(huì)話指令流建立與維護(hù)廣播會(huì)話關(guān)系的通訊指令,發(fā)生在App與SessionSvr、 SessionSvr與TRMSvr之間,App與TRMSvr亦從會(huì)話指令中獲取到媒體流的發(fā)送方向;b)媒體數(shù)據(jù)流承載音頻數(shù)據(jù),在App,TRMSvr, Terminal之間傳送;c)終端通訊流終端控制指令,傳遞TRMSvr和Terminal之間的控制信息;7) SessionSvr通過查詢系統(tǒng)數(shù)據(jù)庫,建立起TRMSvr與其管理終端之間的連接關(guān)系視圖,如果一個(gè)會(huì)話包含多個(gè)終端,這些終端分別與不同的TRMSvr連接,SessionSvr將會(huì)話操作請求分發(fā)到相關(guān)的TRMSvr。通過SessionSvr和TRMSvr,系統(tǒng)獲得了可以擴(kuò)展的能力通過擴(kuò)展SessionSvr服務(wù)器數(shù)量,系統(tǒng)可以增加可支持應(yīng)用的數(shù)量;通過擴(kuò)展TRMSvr 服務(wù)器數(shù)量,可以增加終端設(shè)備的數(shù)量,一般的,終端設(shè)備數(shù)量是網(wǎng)絡(luò)規(guī)模的主要指標(biāo);i.會(huì)話協(xié)議(Session Protocol, SP)會(huì)話協(xié)議是建立分布式廣播會(huì)話的表達(dá)方式,是“云廣播”系統(tǒng)的關(guān)鍵技術(shù)之一。 會(huì)話協(xié)議格式參考在互聯(lián)網(wǎng)服務(wù)中廣泛使用的http協(xié)議,是一種文本協(xié)議,具備良好的可讀性和可擴(kuò)展性,包含請求和應(yīng)答兩種類型的報(bào)文。協(xié)議報(bào)文格式1.請求格式Method SP Request-Uri SP Version CRLFmessage-header*CRLF[message-body]其中SP為字段之間的間隔符,使用一個(gè)或者多個(gè)空格,CRLF為“\r\n ;Method 請求方法,表示是何種請求,可以是“ INVITE”,“CANCEL”,“JOIN”, “LEAVE”,“BYE”,各個(gè)方法的具體意義下面章節(jié)再詳細(xì)說明;Request-Uri 請求發(fā)送目標(biāo)節(jié)點(diǎn) URI,格式為 sp:node_id,譬如sp:ss. domain.com Version 協(xié)議版本,當(dāng)前為 “bsp/1. 0”message-header 消息頭部,每行為一個(gè)字段,可以有零項(xiàng)或者多項(xiàng),承載請求的參數(shù),字段格式后面說明;message-body 消息正文,保存消息擴(kuò)展內(nèi)容,保存體積較大,格式復(fù)雜,不適合在頭部承載的參數(shù)。Message-body的長度由Header中“Content-Length”字段說明,類型由 “Content-Type” 字段說明;字段格式FieldNameCOLON SP^FieldValue CRLF,其中 COLON 為 ‘ ,,COLON和字段值之間可以有零個(gè)或者多個(gè)空格;2.應(yīng)答格式Version SP Status-code SP Reason-Phrase CRLFmessage-header*CRLF[message-body]Respond中除第一行外,其它部分格式與Request相同,這里只對第一行進(jìn)行說明。Version 協(xié)議版本,當(dāng)前為 “sp/1. 0”Status-code 請求處理返回狀態(tài)碼,表示接收者對請求的處理情況,具體編碼后面章節(jié)說明;Reason-Phrase 處理狀態(tài)描述信息;會(huì)話協(xié)議中的參與者1. Session Initator (Si),會(huì)話發(fā)起者發(fā)起建立會(huì)話,并負(fù)責(zé)維護(hù)整個(gè)會(huì)話的生命周期,在本系統(tǒng)中,各種應(yīng)用即承擔(dān)了 SI的角色;2. Session Server (SS),會(huì)話服務(wù)在會(huì)話服務(wù)上,保存了當(dāng)前有效的會(huì)話狀態(tài)數(shù)據(jù),在本系統(tǒng)中,各個(gè)SessionSvr實(shí)例即為SS ;3. Session Agent (SA),會(huì)話代理合話代理代理其它不支持SP協(xié)議的設(shè)備或者應(yīng)用執(zhí)行各種會(huì)話操作,并將會(huì)話請求轉(zhuǎn)化為被代理對象能夠處理的操作,在本系統(tǒng)中, TRMSvr即為SA,代理終端設(shè)備處理會(huì)話請求;會(huì)話協(xié)議主要內(nèi)容會(huì)話協(xié)議包括如下命令I(lǐng)NVITE,BYE, JOIN, LEAVE, HBEAT0其中INVITE建立會(huì)話或者邀請新的終端設(shè)備加入會(huì)話,BYE撤銷會(huì)話,JOIN表示SA請求加入會(huì)話,LEAVE表示SA 通知離開會(huì)話,HBEAT由SI周期性發(fā)給SS,表示會(huì)話處于活動(dòng)狀態(tài)。INVITE命令內(nèi)容SI (或者SI的代理者)通過INVITE消息對SA節(jié)點(diǎn)發(fā)出會(huì)話邀請,建立起會(huì)話。 會(huì)話相關(guān)請求主要包括INVITE,BYE, JOIN, LEAVE這4個(gè),下面將詳細(xì)說明其請求和應(yīng)答格式,以及處理流程。INVITE可以邀請新的終端加入已經(jīng)建立的會(huì)話;請求Request
---------------------------------------------------------------------INVITE SS-URI sp/1. 0From SIUriTo =TargetIDl, TargetID2,...CSeq :nnnn INVITESessionId {uuid of session}Appdata 頭部字段說明l)From 會(huì)話發(fā)起用戶ID2)To:會(huì)話目標(biāo)節(jié)點(diǎn)ID,各個(gè)目標(biāo)ID之間用‘,’隔開;3)CSeq:請求序列號,32位無符號整數(shù),在一個(gè)會(huì)話內(nèi),在同一方向上的請求序列號單調(diào)遞增;4) SessionId 會(huì)話ID,必須保證全局唯一;5)Appdata 應(yīng)用自定義數(shù)據(jù),交由SS統(tǒng)一維護(hù);應(yīng)答INVITE請求的應(yīng)答有兩種,一是SI發(fā)送INVITE請求給SS后,SS給SI的應(yīng)答(Respondl);另外一個(gè)是SS解析完會(huì)話目標(biāo)SA集合后,各個(gè)SA發(fā)送給SS的應(yīng)答 (Respond2)。Respondl Respondl :SS — SI---------------------------------------------------------------------sp/1.O Status-Code Reason-Phrase[Via :xxxxx]CSeq :nnn INVITESessionId Agents 字段說明■ CSeq 與請求中CSeq字段相同;■ Agents 目標(biāo)SA ID清單(即目標(biāo)終端所屬區(qū)號清單);Respond2 Respond2 :SA — SS---------------------------------------------------------------------sp/1.O Status-Code Reason-PhraseCSeq :nnn INVITE
SessionId From SAUri
字段說明■ CSeq 與請求中CSeq字段相同;■ AgentId :SA 節(jié)點(diǎn) ID (區(qū)號)BYE命令內(nèi)容SI發(fā)送BYE請求,通知參與者結(jié)束會(huì)話。SS和SA接收到BYE請求時(shí),撤銷本地存儲(chǔ)的會(huì)話數(shù)據(jù);請求Request ---------------------------------------------------------------------BYE SS-URI sp/1. 0[Viatransport-of-proxyVia:···]From SIUriCSeq:nnnn BYESessionId [To :trmid, trmid,…]請求發(fā)送路徑:SI— SS — SA1,SA2,· · ·應(yīng)答Respondl :SS — SI---------------------------------------------------------------------sp/1.O Status-Code Reason-Phrase[Via···]CSeq :nnn BYESessionId Respond2 :SA — SS ---------------------------------------------------------------------sp/1.O Status-Code Reason-PhraseCSeq :nnn BYESessionId From SAUriJOIN命令內(nèi)容SA (或者SA的代理者)發(fā)送JOIN請求給SI,報(bào)告加入已存在的會(huì)話,并告知自己媒體數(shù)據(jù)接收設(shè)置。SA可以在收到SI的INVITE請求后加入到會(huì)話中,也可以直接向SI發(fā)送JOIN請求(在獲取到SessionId的情況下)。請求Request :SA — SS — SI---------------------------------------------------------------------
JOIN SS-URI sp/1. O [Via:transport_of-proxyVia ...]From :AgentUriCSeq :nnnn JOINSessionId Receive—Port :recv-address:recv-portTargets 頭部字段說明■ Receive-Port =RTP 數(shù)據(jù)流接收端口 ;■ Targets 加入會(huì)話的目標(biāo)終端號碼清單,如果為ΑΑΑ0000,則表示包括全區(qū)所有終端,多個(gè)號碼之間用’,’隔開;應(yīng)答Respond :SI — SS — SA---------------------------------------------------------------------sp/1.0 Status-Code Reason-Phrase[Via transport-of-proxyVia ...]From :AgentUriCSeq :nnn JOINSessionId Owner SessionAttr Media Targets 頭部字段說明■ Owner :Uri of SI■ SessionAttr :Session Attr■ Targets 新加入會(huì)話的終端ID清單;LEAVE命令內(nèi)容SA (或者SA代理者)向SI發(fā)送LEAVE請求,報(bào)告離開會(huì)話的終端清單。請求Request SA — SS — SI---------------------------------------------------------------------JOIN SS-URI sp/1. OCSeq :nnnn LEAVE
SessionId From :AgentUriTargets 頭部字段說明■ Target-num 當(dāng)前還存在于會(huì)話中的終端數(shù)量;■ Targets 離開會(huì)話的目標(biāo)終端號碼清單;應(yīng)答Respond :SI — SS — SA---------------------------------------------------------------------sp/1. O Status-Code Reason-PhraseCSeq :nnn LEAVESessionId From :AgentUriTargets ■ Targets 新退出會(huì)話的終端ID清單。HBEAT命令內(nèi)容SI定期向SS發(fā)送的心跳請求,報(bào)告自己的狀態(tài)以及當(dāng)前發(fā)起的會(huì)話ID清單,如果 SS長時(shí)間沒有收到SI的HBEAT請求,則認(rèn)為SI狀態(tài)異常,由該SI發(fā)起的會(huì)話已失效。請求Request SI — SS---------------------------------------------------------------------HBEAT SS-URI sp/1. OVia :transport-of-SIFrom Sess ion-Owner-User IDCSeq :nnnn HBEATSessions :session_idl,session_id2頭部字段說明■ Sessions =SI當(dāng)前擁有會(huì)話ID清單;SI如果通過NAT設(shè)備與SS連接,可以先設(shè)置Sessions為空串,發(fā)送HBEAT請求至SS,獲得自己今后NAT映射后的出口地址;應(yīng)答Respond SS — SI---------------------------------------------------------------------sp/1.0 Status-Code Reason-PhraseCSeq :nnn HBEAT{NATAddr :χχχ· xxx. xxx. xxx: nnnn}頭部字段說明
NATAddr =SS將實(shí)際收到SI請求的數(shù)據(jù)源地址、端口發(fā)回到Si,以便SI獲取到自己的NAT映射端口,可選;會(huì)話建立與撤銷過程1. SI發(fā)出INVITE消息到SS,INVITE消息中包含需要加入到會(huì)話中的終端編號清單;
2. SS接收到SI的INVITE消息后,解析會(huì)話所包含的終端ID,通過全局配置信息, 獲取到管理這些終端的TRMSvr服務(wù)地址與端口,將INVITE消息轉(zhuǎn)發(fā)到這些TRMSvr (SA);3. TRMSvr接收到INVITE消息后,根據(jù)各自現(xiàn)實(shí)情形與策略配置,決定是否加入會(huì)話,以及決定自己所哪些終端可以加入到會(huì)話中。如果存在需要加入會(huì)話的終端,則發(fā)送 JOIN消息到SS,由SS轉(zhuǎn)發(fā)至SI ;4. SI根據(jù)接收到的JOIN請求,可以獲知哪些受邀對象已經(jīng)加入到會(huì)話中,如果加入到會(huì)話中的終端設(shè)備數(shù)量滿足策略需求,則啟動(dòng)媒體流的傳輸;5.在會(huì)話進(jìn)行過程中,SA可以通過主動(dòng)發(fā)送JOIN,LEAVE加入或者離開會(huì)話,SI 也可以通過主動(dòng)向其它SA發(fā)送INVITE請求,將該SA管理的設(shè)備加入到會(huì)話中;6.在會(huì)話進(jìn)行過程中,SI周期性發(fā)送心跳請求(HBEAT命令)到SS,SS如超過規(guī)定時(shí)間未收到SI的心跳,則認(rèn)為會(huì)話已異常終止,發(fā)送BYE命令到各個(gè)SA,請它們退出會(huì)話;7.當(dāng)媒體流傳輸完畢,SI發(fā)送BYE命令到SS,通知會(huì)話結(jié)束,SS負(fù)責(zé)轉(zhuǎn)發(fā)BYE命令到其它會(huì)話參與者;會(huì)話建立過程l.App發(fā)送INVITE消息到與之連接的SessionSvH每個(gè)應(yīng)用可以配置不同的SessionSvr為之服務(wù)),在INVITE消息中,將音頻流發(fā)送的目標(biāo)終端ID通知給 SessionSvr ;2. SessionSvr收到INVITE消息后,解析目標(biāo)終端ID,通過查詢?nèi)峙渲帽恚@取到這些終端所連接的TRMSvr主機(jī)地址與端口 ;3. SessionSvr將INVITE消息轉(zhuǎn)發(fā)給步驟2所查詢到TRMSvr服務(wù)主機(jī);4. TRMSvr收到INVITE消息后,修改目標(biāo)終端會(huì)話狀態(tài)信息,準(zhǔn)備好將數(shù)據(jù)流發(fā)送到目標(biāo)終端,并打開接收音頻流的端口 ;5.各個(gè)TRMSvr發(fā)送JOIN消息給App,通知App接收音頻流的地址與端口,報(bào)告已經(jīng)加入到會(huì)話中的終端;6. App根據(jù)配置的策略,在收到一定數(shù)量的JOIN消息后,啟動(dòng)數(shù)據(jù)流的傳輸,將音頻數(shù)據(jù)流直接發(fā)送到各個(gè)TRMSvr上報(bào)的媒體流接收端口 ;7.在數(shù)據(jù)流的傳輸過程中(會(huì)話生存期),App將周期性的發(fā)送HBEAT消息到 SessionSvr,報(bào)告會(huì)話生存,SessionSvr在超過設(shè)定時(shí)間未收到會(huì)話的HBEAT消息,將通知 TRMSvr撤銷會(huì)話;會(huì)話撤銷過程8) App在數(shù)據(jù)流傳輸完畢后,發(fā)送BYE指令到SessionSvr ;9) SessionSvr將BYE指令轉(zhuǎn)發(fā)至與當(dāng)前會(huì)話關(guān)聯(lián)的TRMSvr ;10) TRMSvr在收到BYE指令后,撤銷當(dāng)前會(huì)話,終端可能切換到其它會(huì)話(發(fā)送其它會(huì)話音頻流到終端播放)或者空閑; 11)會(huì)話生存期間,TRMSvr也可以主動(dòng)發(fā)送LEAVE指令給App,通知自身管理的某些終端離開會(huì)話(可能需要加入到其它會(huì)話中,或者在某些終端需要臨時(shí)屏蔽當(dāng)前會(huì)話音頻流);見會(huì)話建立過程說明,為提高網(wǎng)絡(luò)傳輸效率,避免出現(xiàn)網(wǎng)絡(luò)瓶頸,音頻流由應(yīng)用直接發(fā)送給TRMSvr,再由TRMSvr根據(jù)終端所在網(wǎng)絡(luò)的情況,通過單播或者組播方式將數(shù)據(jù)流傳輸?shù)浇K端。這里說一下“云廣播”系統(tǒng)即云廣播系統(tǒng)可能的一種應(yīng)用場景。譬如農(nóng)村廣播,假定某市建立了統(tǒng)一的農(nóng)村IP廣播系統(tǒng),每個(gè)縣分配一個(gè)TRMSvr,管理全縣的終端設(shè)備,全市建立2臺(tái)SessionSvr,每10個(gè)縣分配一臺(tái)SessionSvr (假定共有20個(gè)縣),縣和市都有廣播站,廣播站應(yīng)用程序具備音樂播放和實(shí)時(shí)廣播講話的功能。這些功能都依托“云廣播” 系統(tǒng)來實(shí)現(xiàn),通過系統(tǒng)權(quán)限管理,各縣廣播站應(yīng)用只允許訪問本縣終端,市廣播站應(yīng)用允許訪問全市終端設(shè)備。廣播站應(yīng)用程序讀取所運(yùn)行電腦上存儲(chǔ)的音樂文件,或者通過電腦MIC 實(shí)時(shí)采集編碼音頻流,通過SessionSvr建立會(huì)話,將音頻流發(fā)送到TRMSvr通過JOIN消息上報(bào)的數(shù)據(jù)流接收端口,TRMSvr再將音頻流轉(zhuǎn)發(fā)至目標(biāo)終端設(shè)備,終端將音頻流解碼還原為聲音進(jìn)行播放。本發(fā)明的協(xié)議參考了以下資料《RFC :3261》,SIP協(xié)議標(biāo)準(zhǔn)。
權(quán)利要求
1.一種云廣播方法,其特征在于,從架構(gòu)上設(shè)置應(yīng)用層、網(wǎng)絡(luò)服務(wù)層和終端層以構(gòu)成一個(gè)IP廣播系統(tǒng);應(yīng)用層為提供給用戶使用的各種音頻應(yīng)用程序,這些應(yīng)用程序用于將各種來源的音頻流發(fā)送到廣播終端,或者接收來自廣播終端現(xiàn)場采集編碼的音頻流進(jìn)行處理;網(wǎng)絡(luò)服務(wù)層用于管理網(wǎng)絡(luò)中所有會(huì)話對象和廣播終端;在網(wǎng)絡(luò)服務(wù)層設(shè)有會(huì)話服務(wù)器和終端服務(wù)器;終端層由多個(gè)廣播終端組成,廣播終端與終端服務(wù)器連接,最終完成聲音信號的數(shù)模轉(zhuǎn)換。
2.根據(jù)權(quán)利要求1所述的云廣播方法,其特征在于,會(huì)話服務(wù)器和終端服務(wù)器均為1個(gè)或多個(gè),應(yīng)用程序通過會(huì)話服務(wù)器建立和維護(hù)會(huì)話,一個(gè)應(yīng)用程序只對應(yīng)一個(gè)會(huì)話服務(wù)器,一個(gè)會(huì)話服務(wù)器能服務(wù)1個(gè)或多個(gè)應(yīng)用程序;終端服務(wù)器維護(hù)終端設(shè)備及廣播終端的工作狀態(tài),一個(gè)終端設(shè)備只對應(yīng)一個(gè)終端服務(wù)器,一個(gè)終端服務(wù)器管理一個(gè)或多個(gè)終端設(shè)備;所述IP廣播方法中涉及的數(shù)據(jù)流包括會(huì)話指令流、媒體數(shù)據(jù)流和終端通訊流1)會(huì)話指令流建立與維護(hù)廣播會(huì)話關(guān)系的通訊指令,發(fā)生在應(yīng)用程序與會(huì)話服務(wù)器、會(huì)話服務(wù)器與終端服務(wù)器之間,應(yīng)用程序與終端服務(wù)器亦從會(huì)話指令中獲取到媒體流的發(fā)送方向;2)媒體數(shù)據(jù)流承載音頻數(shù)據(jù),在應(yīng)用程序、終端服務(wù)器和廣播終端之間傳送;3)終端通訊流終端控制指令,傳遞終端服務(wù)器和廣播終端之間的控制信息;會(huì)話服務(wù)器通過查詢系統(tǒng)數(shù)據(jù)庫,建立起終端服務(wù)器與其管理的終端設(shè)備之間的連接關(guān)系視圖,如果一個(gè)會(huì)話包含多個(gè)廣播終端,這些廣播終端分別與不同的終端服務(wù)器連接, 會(huì)話服務(wù)器將會(huì)話操作請求分發(fā)到相關(guān)的終端服務(wù)器。
3.根據(jù)權(quán)利要求1所述的云廣播方法,其特征在于,會(huì)話服務(wù)器定位到網(wǎng)絡(luò)中所有的廣播終端,將應(yīng)用程序?qū)V播終端的控制請求轉(zhuǎn)發(fā)到對應(yīng)的終端服務(wù)器處理;通過會(huì)話服務(wù)器和終端服務(wù)器使得IP廣播系統(tǒng)獲得了可以擴(kuò)展的能力通過擴(kuò)展會(huì)話服務(wù)器數(shù)量,以增加可支持的應(yīng)用程序的數(shù)量;通過擴(kuò)展終端服務(wù)器的數(shù)量增加終端設(shè)備的數(shù)量。
4.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的云廣播方法,其特征在于,與會(huì)話相關(guān)的過程包括會(huì)話建立過程和會(huì)話撤銷過程會(huì)話建立過程為步驟1 應(yīng)用程序發(fā)送邀請消息即INVITE消息到與該應(yīng)用程序連接的會(huì)話服務(wù)器,在 INVITE消息中,將音頻流發(fā)送的目標(biāo)終端ID通知給會(huì)話服務(wù)器;步驟2 會(huì)話服務(wù)器收到INVITE消息后,解析目標(biāo)終端ID,通過查詢?nèi)峙渲帽?,獲取到這些終端所連接的終端服務(wù)器主機(jī)地址與端口;步驟3 會(huì)話服務(wù)器將INVITE消息轉(zhuǎn)發(fā)給步驟2所查詢到終端服務(wù)器服務(wù)主機(jī); 步驟4 終端服務(wù)器收到INVITE消息后,修改目標(biāo)終端會(huì)話狀態(tài)信息,準(zhǔn)備好將數(shù)據(jù)流發(fā)送到目標(biāo)終端,并打開接收音頻流的端口 ;步驟5 各個(gè)終端服務(wù)器發(fā)送加入消息即JOIN消息給應(yīng)用程序,通知應(yīng)用程序接收音頻流的地址與端口,報(bào)告已經(jīng)加入到會(huì)話中的終端;步驟6 應(yīng)用程序根據(jù)配置的策略,在收到一定數(shù)量的JOIN消息后,啟動(dòng)數(shù)據(jù)流的傳輸,將音頻數(shù)據(jù)流直接發(fā)送到各個(gè)終端服務(wù)器上報(bào)的媒體流接收端口 ;在數(shù)據(jù)流的傳輸過程即會(huì)話生存期中,應(yīng)用程序?qū)⒅芷谛缘陌l(fā)送心跳消息即HBEAT消息到會(huì)話服務(wù)器,報(bào)告會(huì)話生存,會(huì)話服務(wù)器在超過設(shè)定時(shí)間未收到會(huì)話的HBEAT消息,將通知終端服務(wù)器撤銷會(huì)話; 會(huì)話撤銷過程為1)應(yīng)用程序在數(shù)據(jù)流傳輸完畢后,發(fā)送結(jié)束指令即BYE指令到會(huì)話服務(wù)器;2)會(huì)話服務(wù)器將BYE指令轉(zhuǎn)發(fā)至與當(dāng)前會(huì)話關(guān)聯(lián)的終端服務(wù)器;3)終端服務(wù)器在收到BYE指令后,撤銷當(dāng)前會(huì)話;會(huì)話生存期間,終端服務(wù)器選擇性地主動(dòng)發(fā)送離開指令即LEAVE指令給應(yīng)用程序,通知自身管理的某些廣播終端離開會(huì)話。
5.一種云廣播系統(tǒng),其特征在于,包括應(yīng)用層設(shè)備、網(wǎng)絡(luò)服務(wù)層設(shè)備和終端層設(shè)備; 所述的應(yīng)用層設(shè)備包括音頻播放設(shè)備;網(wǎng)絡(luò)服務(wù)層設(shè)備包括會(huì)話服務(wù)器和終端服務(wù)器; 終端層設(shè)備由多個(gè)廣播終端組成;廣播終端、會(huì)話服務(wù)器以及應(yīng)用層設(shè)備均與終端服務(wù)服務(wù)器連接;會(huì)話服務(wù)服務(wù)器與應(yīng)用層設(shè)備連接;所述的云廣播系統(tǒng)采用權(quán)利要求4所述的云廣播方法進(jìn)行實(shí)現(xiàn)會(huì)話和音頻數(shù)據(jù)傳輸。
6.根據(jù)權(quán)利要求5所述的云廣播系統(tǒng),其特征在于,應(yīng)用層設(shè)備還包括音頻采集設(shè)備。
全文摘要
本發(fā)明公開了一種云廣播系統(tǒng)及方法,首先從架構(gòu)上設(shè)置應(yīng)用層、網(wǎng)絡(luò)服務(wù)層和終端層以構(gòu)成一個(gè)IP廣播系統(tǒng);應(yīng)用層為提供給用戶使用的各種音頻應(yīng)用程序,這些應(yīng)用程序用于將各種來源的音頻流發(fā)送到廣播終端,或者接收來自廣播終端現(xiàn)場采集編碼的音頻流進(jìn)行處理;網(wǎng)絡(luò)服務(wù)層用于管理網(wǎng)絡(luò)中所有會(huì)話對象和廣播終端;在網(wǎng)絡(luò)服務(wù)層設(shè)有會(huì)話服務(wù)器和終端服務(wù)器;終端層由多個(gè)廣播終端組成,廣播終端與終端服務(wù)器連接,最終完成聲音信號的數(shù)模轉(zhuǎn)換。該云廣播系統(tǒng)及方法突破了單臺(tái)服務(wù)器性能瓶頸,能支持大規(guī)模IP廣播網(wǎng)絡(luò)。
文檔編號H04L29/08GK102291244SQ201110229450
公開日2011年12月21日 申請日期2011年8月11日 優(yōu)先權(quán)日2011年8月11日
發(fā)明者劉雅浪 申請人:湖南康通電子科技有限公司