移動終端VoIP通訊音頻管理系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種管理系統(tǒng),尤其是一種移動終端VoIP通訊音頻管理系統(tǒng),屬于工程數(shù)據(jù)管理的【技術(shù)領(lǐng)域】。按照本發(fā)明提供的技術(shù)方案,所述移動終端VoIP通訊音頻管理系統(tǒng),包括移動終端;所述移動終端與服務(wù)器端連接,移動終端將通話音頻傳輸至服務(wù)器端,以通過服務(wù)器端對移動終端傳輸?shù)耐ㄔ捯纛l進(jìn)行存儲管理。本發(fā)明移動終端能將通訊音頻傳輸?shù)椒?wù)器端,在服務(wù)器端通過網(wǎng)站服務(wù)器提供HTTPRESTFul服務(wù),通過媒體文件服務(wù)器進(jìn)行通訊音頻的轉(zhuǎn)碼,通過實時信息服務(wù)器提供轉(zhuǎn)碼精度的查詢,通過反向代理服務(wù)器能夠?qū)崿F(xiàn)反向代理以及負(fù)載均衡,結(jié)構(gòu)緊湊,能對移動終端的音頻進(jìn)行有效管理,適用范圍廣,安全可靠。
【專利說明】移動終端Vo IP通訊音頻管理系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種管理系統(tǒng),尤其是一種移動終端VoIP通訊音頻管理系統(tǒng),屬于工程數(shù)據(jù)管理的【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]VoIP 通訊技術(shù)全稱 Voice over Internet Protocol,泛指一系列通過 IP(Internet Protocol)網(wǎng)絡(luò)進(jìn)行語音或其它多媒體通信的通訊方式。當(dāng)前VoIP技術(shù)發(fā)展較為成熟,已被廣泛應(yīng)用于各種智能手機(jī)。面對日益增多的VoIP通訊,如何有效管理VoIP通訊音頻成為了研究者們不可回避的問題。
[0003]當(dāng)前,大部分手機(jī)VoIP客戶端并不對通訊音頻提供管理服務(wù)。部分功能較為完善的客戶端如CSipSimple, SIF1Droid等也僅僅提供了基本的通訊音頻存儲功能。造成這一現(xiàn)象的原因在于通訊音頻占據(jù)較大存儲空間,手機(jī)等移動終端往往不能滿足這樣的空間需求。雖然部分手機(jī)軟件可以通過轉(zhuǎn)碼文件的方式來降低音頻文件的空間占用率,但是這樣方式會使手機(jī)處于高負(fù)荷運(yùn)轉(zhuǎn),使得手機(jī)響應(yīng)緩慢并消耗大量電力。
[0004]然而,在另一方面,隨著科技的發(fā)展,服務(wù)器端大數(shù)據(jù)的存儲與管理已經(jīng)成為了可能。將數(shù)據(jù)存放在服務(wù)器端,我們不用擔(dān)心數(shù)據(jù)的安全性、空間的使用限制。除此以外,較之于本地存儲,通訊音頻還可以得到更多元化的管理,例如我們可以直接以網(wǎng)頁的方式播放通訊音頻、設(shè)置通訊音頻的訪問權(quán)限等。
[0005]傳統(tǒng)手機(jī)客戶端與服務(wù)器端往往直接建立TCP (Transmission ControlProtocol)連接,然后用自定義協(xié)議的方式進(jìn)行業(yè)務(wù)邏輯的控制。這種方式大大降低了程序的魯棒性和可擴(kuò)展性。當(dāng)自定義協(xié)議越來越臃腫時,后續(xù)的維護(hù)和新功能的引入將變得難以實現(xiàn)。為此,應(yīng)當(dāng)使用一種統(tǒng)一、輕量的協(xié)議來管理手機(jī)客戶端與服務(wù)器端的交互。
[0006]此外,當(dāng)前手機(jī)等移動終端數(shù)量巨大,服務(wù)器端如何有效管理自身資源并為大量終端提供服務(wù)也是一個非常值得考慮的問題。例如,考慮到可能會有海量的音頻文件,服務(wù)器端應(yīng)當(dāng)能夠?qū)σ纛l文件轉(zhuǎn)碼以降低其空間占用。又例如,當(dāng)大量終端同時訪問時,服務(wù)器端如何對用戶請求進(jìn)行分流。又例如,為了確保數(shù)據(jù)的安全性,服務(wù)器端如何對數(shù)據(jù)進(jìn)行備份。
[0007]以上對于客戶端及服務(wù)器端的每個子問題,都有接近成熟的實現(xiàn)。然而,如何將這些實現(xiàn)集中在一起,并構(gòu)建出一個整體的系統(tǒng)卻仍有待人們探索。
【發(fā)明內(nèi)容】
[0008]本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的不足,提供一種移動終端VoIP通訊音頻管理系統(tǒng),其結(jié)構(gòu)緊湊,能對移動終端的音頻進(jìn)行有效管理,適用范圍廣,安全可靠。
[0009]按照本發(fā)明提供的技術(shù)方案,所述移動終端VoIP通訊音頻管理系統(tǒng),包括移動終端;所述移動終端與服務(wù)器端連接,移動終端將通話音頻傳輸至服務(wù)器端,以通過服務(wù)器端對移動終端傳輸?shù)耐ㄔ捯纛l進(jìn)行存儲管理。[0010]所述服務(wù)器端包括反向代理服務(wù)器及與所述反向代理服務(wù)器相互連接的網(wǎng)站服務(wù)器、媒體文件服務(wù)器及實時信息服務(wù)器;移動終端通過反向代理服務(wù)器與網(wǎng)站服務(wù)器、媒體文件服務(wù)器及實時信息服務(wù)器連接;網(wǎng)站服務(wù)器對移動終端提供HTTP RESTFuI服務(wù);媒體文件服務(wù)器存儲移動終端傳輸?shù)耐ㄔ捯纛l,并對所述通話音頻文件進(jìn)行轉(zhuǎn)碼;實時信息服務(wù)器能允許移動終端查詢當(dāng)前通話音頻轉(zhuǎn)碼的進(jìn)度。
[0011]所述服務(wù)器端還包括與反向代理服務(wù)器連接的數(shù)據(jù)庫服務(wù)器及備份服務(wù)器;數(shù)據(jù)庫服務(wù)器存儲移動終端的用戶信息、通話音頻元信息。
[0012]所述移動終端包括智能手機(jī)或平板電腦。
[0013]本發(fā)明的優(yōu)點:移動終端能將通訊音頻傳輸?shù)椒?wù)器端,在服務(wù)器端通過網(wǎng)站服務(wù)器提供HTTP RESTFuI服務(wù),通過媒體文件服務(wù)器進(jìn)行通訊音頻的轉(zhuǎn)碼,通過實時信息服務(wù)器提供轉(zhuǎn)碼精度的查詢,通過反向代理服務(wù)器能夠?qū)崿F(xiàn)反向代理以及負(fù)載均衡,結(jié)構(gòu)緊湊,能對移動終端的音頻進(jìn)行有效管理,適用范圍廣,安全可靠。
【專利附圖】
【附圖說明】
[0014]圖1為本發(fā)明的結(jié)構(gòu)框圖。
[0015]圖2為本發(fā)明的流程圖。
[0016]附圖標(biāo)記說明;1_反向代理服務(wù)器、2-網(wǎng)站服務(wù)器、3-媒體文件服務(wù)器、4-數(shù)據(jù)庫服務(wù)器、5-備份服務(wù)器、6-移動終端及7-實時信息服務(wù)器。
【具體實施方式】
[0017]下面結(jié)合具體附圖和實施例對本發(fā)明作進(jìn)一步說明。
[0018]如圖1和圖2所示:為了能夠?qū)σ苿咏K端6在通話中產(chǎn)生的通話音頻進(jìn)行有效存儲及管理,本發(fā)明包括移動終端6 ;所述移動終端6與服務(wù)器端連接,移動終端6將通話音頻傳輸至服務(wù)器端,以通過服務(wù)器端對移動終端6傳輸?shù)耐ㄔ捯纛l進(jìn)行存儲管理。
[0019]所述服務(wù)器端包括反向代理服務(wù)器I及與所述反向代理服務(wù)器I相互連接的網(wǎng)站服務(wù)器2、媒體文件服務(wù)器3及實時信息服務(wù)器7 ;移動終端6通過反向代理服務(wù)器I與網(wǎng)站服務(wù)器2、媒體文件服務(wù)器3及實時信息服務(wù)器7連接;網(wǎng)站服務(wù)器2對移動終端6提供HTTP RESTFuI服務(wù);媒體文件服務(wù)器3存儲移動終端6傳輸?shù)耐ㄔ捯纛l,并對所述通話音頻文件進(jìn)行轉(zhuǎn)碼;實時信息服務(wù)器7能允許移動終端6查詢當(dāng)前通話音頻轉(zhuǎn)碼的進(jìn)度。
[0020]所述服務(wù)器端還包括與反向代理服務(wù)器I連接的數(shù)據(jù)庫服務(wù)器4及備份服務(wù)器5 ;數(shù)據(jù)庫服務(wù)器4存儲移動終端6的用戶信息、通話音頻元信息。所述移動終端6包括智能手機(jī)或平板電腦。
[0021 ] 具體地實施時,將服務(wù)器端分成三層,其中,
服務(wù)器端第一層包括反向代理服務(wù)器1,通過反向代理服務(wù)器I主要實現(xiàn)反向代理以及負(fù)載均衡。
[0022]服務(wù)器端第二層包括網(wǎng)站服務(wù)器2、媒體文件服務(wù)器3以及實時信息服務(wù)器7。網(wǎng)站服務(wù)器2對移動終端6提供HTTP RESTFuI服務(wù),包括用戶認(rèn)證、通話音頻的訪問權(quán)限設(shè)置、音頻列表生成等功能。媒體文件服務(wù)器3存儲著用戶上傳的通話音頻,媒體文件服務(wù)器3會對存儲的媒體文件進(jìn)行轉(zhuǎn)碼,以降低空間占用率和日后網(wǎng)絡(luò)傳輸該文件所需的流量。實時信息服務(wù)器7主要供用戶動態(tài)查詢當(dāng)前通話音頻的轉(zhuǎn)的進(jìn)度。
[0023]服務(wù)器端第三層包括數(shù)據(jù)庫服務(wù)器4及備份服務(wù)器5。數(shù)據(jù)庫服務(wù)器4主要用于存儲用戶信息、通話音頻元信息以及其它與系統(tǒng)有關(guān)的信息。備份服務(wù)器5負(fù)責(zé)對整個服務(wù)器端的重要數(shù)據(jù)進(jìn)行備份。
[0024]本發(fā)明實施例中,使用反向代理服務(wù)器作為服務(wù)器端的第一層。這樣做有如下優(yōu)
占-
^ \\\.I)、隔絕外部網(wǎng)絡(luò):通過在服務(wù)器端前端架構(gòu)反向代理服務(wù)器1,等于在服務(wù)器端內(nèi)部服務(wù)器和移動終端6之間架設(shè)了一堵墻,能夠提高了服務(wù)器端內(nèi)服務(wù)器的安全性。由于任何外部用戶的訪問請求實際上都直接作用于反向代理服務(wù)器1,所以用戶對服務(wù)器端的惡意攻擊往往不會波及服務(wù)器端的其余服務(wù)器。
[0025]2)、降低對IP地址的需求:由于服務(wù)器端通常包含大量服務(wù)器,為了解決公網(wǎng)IP地址有限的問題,本發(fā)明實施例中,只需給反向代理服務(wù)器I分配公網(wǎng)IP地址。對于其它服務(wù)器,只需給其分配內(nèi)網(wǎng)地址即可。
[0026]3)、負(fù)載均衡:本發(fā)明實施例中,可以很容易地在反向代理服務(wù)器I的基礎(chǔ)上增加負(fù)載均衡功能。這樣,當(dāng)有大量用戶訪問服務(wù)器端時,可以自由地在后端增加響應(yīng)服務(wù)器,并對其進(jìn)行調(diào)度。
[0027]4)、加快訪 問速度:反向代理服務(wù)器I兼具普通前向代理服務(wù)器的特性,可以很好地對文件進(jìn)行緩存,故而能大大減小響應(yīng)時間。
[0028]Nginx是一個輕量、高性能的異步式網(wǎng)站服務(wù)軟件。本發(fā)明實施例中,使用Nginx來構(gòu)建服務(wù)器端反向代理服務(wù)。
[0029]在本發(fā)明實施例中,網(wǎng)站服務(wù)器2以HTTP RESTFuI的方式對外提供服務(wù),網(wǎng)站服務(wù)器2以HTTP RESTFuI方式提供服務(wù)有如下優(yōu)點:
I )、RESTFuI 直接基于 HTTP (Hypertext transfer protocol),協(xié)議輕量。
[0030]2), RESTFuI面向資源,直觀易于理解。
[0031]3)、無狀態(tài)請求降低了單點故障的可能性。
[0032]4)、易于擴(kuò)展。
[0033]本發(fā)明實施例中,采用基于Python的Django框架進(jìn)行相應(yīng)網(wǎng)站服務(wù)的開發(fā)。網(wǎng)站服務(wù)的主要業(yè)務(wù)邏輯如下:用戶注冊、認(rèn)證;用戶通話音頻的上傳、下載;用戶通話音頻列表的生成;用戶轉(zhuǎn)碼音頻列表的生成;用戶通話音頻的播放頁面。
[0034]媒體文件服務(wù)器3主要負(fù)責(zé)通訊音頻文件的轉(zhuǎn)碼和存儲。當(dāng)移動終端6上傳通訊音頻后,相應(yīng)音頻最終會被同步存儲至媒體文件服務(wù)器3內(nèi)。
[0035]考慮到服務(wù)器存儲容量的限制以及降低未來文件傳輸時所耗的流量,媒體文件服務(wù)器3會對所存儲的媒體文件進(jìn)行轉(zhuǎn)碼。值得注意的是,除了支持對音頻轉(zhuǎn)碼外,媒體文件服務(wù)器3還支持對視頻的轉(zhuǎn)碼。
[0036]當(dāng)文件在媒體服務(wù)器3上同步完成后,轉(zhuǎn)碼模塊隨即被調(diào)用。在轉(zhuǎn)碼模塊內(nèi),本發(fā)明實施例中,首先通過與外部程序ffprobe來獲取媒體文件的詳細(xì)信息,然后調(diào)用外部程序ffmpeg進(jìn)行轉(zhuǎn)碼。在這個過程中,通過使用Pexpect不斷與ffmpeg進(jìn)程通訊,然后對ffmpeg返回的文本結(jié)果進(jìn)行解析,提取出轉(zhuǎn)碼的時間進(jìn)度。
[0037]由于在同一時間段內(nèi)可能存在多個用戶上傳通話音頻,這意味著在同一時間段有多個媒體文件需要被轉(zhuǎn)碼??紤]到系統(tǒng)的性能,系統(tǒng)不可能針對每個轉(zhuǎn)碼請求都開啟一個新的線程/進(jìn)程。為了確保轉(zhuǎn)碼模塊工作正常,系統(tǒng)需要把所有轉(zhuǎn)碼請求存儲在一個容器中。消息隊列無疑非常適合作為這個容器。
[0038]文件轉(zhuǎn)碼是一個較為耗時的操作。為了提高用戶體驗,服務(wù)器端提供了媒體文件轉(zhuǎn)碼進(jìn)度的實時查詢功能。因此,設(shè)置了實時信息服務(wù)器7。
[0039]在本發(fā)明實施例中,移動終端6使用瀏覽器以AJAX/JSONP方式與實時信息服務(wù)器7進(jìn)行通訊,移動終端6則直接以調(diào)用HTTP RESTFul API方式與實時信息服務(wù)器7進(jìn)行通τΗ ο
[0040]本發(fā)明實施例中,可以使用Python異步庫Twisted實現(xiàn)了服務(wù)器端的實時信息服務(wù)功能。當(dāng)實時信息服務(wù)器7收到移動終端6發(fā)來的請求后,會保持住該請求,并將該請求加入到內(nèi)部隊列中。實時信息服務(wù)器7會每隔2秒遍歷該內(nèi)部隊列,然后訪問媒體信息服務(wù)器7以獲得文件轉(zhuǎn)碼的實時進(jìn)度。如果轉(zhuǎn)碼進(jìn)度有更新或者連接即將超時,則返回消息。
[0041]數(shù)據(jù)庫服務(wù)器4主要存儲著用戶信息、媒體文件元信息以及轉(zhuǎn)碼相關(guān)的信息。本發(fā)明實施例中,在數(shù)據(jù)庫服務(wù)器4上部署了 Postgres。Postgres是一個基于對象的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。它開源、穩(wěn)健,且相對其它數(shù)據(jù)庫實現(xiàn)了較多的功能。在系統(tǒng)的開發(fā)過程中,本發(fā)明實施例中,主要使用PGAdmin對Postgres數(shù)據(jù)庫管理系統(tǒng)進(jìn)行管理,并對數(shù)據(jù)庫表進(jìn)行了規(guī)范化。
[0042]由于外部不可抗拒因素,如磁盤損壞等,服務(wù)器數(shù)據(jù)面臨著丟失的風(fēng)險。為了解決這個問題,本發(fā)明在服務(wù)器端部署了備份服務(wù)器5??紤]到傳統(tǒng)全盤備份過于冗余,且較為耗時,本發(fā)明選用了基于GPL(General Public License)協(xié)議發(fā)布的rdiff-backup作為主要備份工具。rdiff-back up由rsync和rdiff發(fā)展而來,完善集成了 rsync的同步和rdiff的增量功能,能夠穩(wěn)定地通過網(wǎng)絡(luò)將文件從一臺服務(wù)器同步到另一臺服務(wù)器。同時,這樣的備份方式還能夠有效保存被同步文件的信息,如文件權(quán)限,GID (Group Identification^PUID (User Identification)等。
[0043]為了能夠通過移動終端6實現(xiàn)所需的通訊音頻管理,本發(fā)明實施例中,在開源VoiP客戶端SiroiOid的基礎(chǔ)上進(jìn)行了二次開發(fā),加入了通話音頻的同步、通話音頻列表的獲取與播放等功能。
[0044]I)、通話音頻的同步
SIPDroid中,通話音頻默認(rèn)以16位PCM方式編碼并進(jìn)行傳輸。通過提取RTPStreamReceiver和RTPStreamSender中的音頻數(shù)據(jù)并進(jìn)行混流即可得到通話雙方的WAV文件。
[0045]由SIF1Droid源碼可知,JAudioLauncher類管理著一次通話的所有音頻數(shù)據(jù)。本發(fā)明實施例中,在JAudioLauncher類中的StopMedia方法內(nèi)加入了一個對MediaUploader類對象的調(diào)用。MediaUploader類負(fù)責(zé)同步、分享通話音頻至服務(wù)器端。這樣當(dāng)通話結(jié)束時便會觸發(fā)對通話音頻(本地WAV文件)的處理。
[0046]考慮到通話音頻的上傳會阻塞UI主線程(User Interface Thread),本發(fā)明定義MediaUploader為AsyncTask類的子類。這樣,MediaUploader會以異步任務(wù)的方式在后臺執(zhí)行。
[0047]客戶端首先讀取并設(shè)置音頻的元信息。元信息(Meta Information)指的是關(guān)于文件本身的信息,比如文件的訪問權(quán)限等。然后調(diào)用服務(wù)器端RESTFul的接口進(jìn)行文件的上傳。
[0048]2 )、通話音頻列表的獲取、播放
本發(fā)明實施例中,在移動終端6加入了通話音頻列表的獲取功能。移動終端6可以從服務(wù)器端獲取自己可以訪問的通話音頻列表或者是個人歷史通話音頻列表。
[0049]當(dāng)移動終端6與服務(wù)器端成功認(rèn)證后,根據(jù)請求參數(shù)的不同,服務(wù)器端返回不同類型的音頻列表給服務(wù)器端。
[0050]在收到服務(wù)器端返回的JSON文本后,移動終端6會對其進(jìn)行解析并提取出相應(yīng)的音頻信息。最后本發(fā)明將這些音頻信息渲染生成列表。當(dāng)用戶點擊列表條目時,客戶端會自動從服務(wù)器端獲取相應(yīng)音頻數(shù)據(jù),并對其進(jìn)行播放。
[0051]3)、實時信息查詢
用戶可以通過手機(jī)網(wǎng)頁客戶端的方式訪問服務(wù)器端,獲得文件信息。實時信息的獲取主要通過AJAX/JS0NP實現(xiàn)。當(dāng)通過手機(jī)客戶端訪問時,則調(diào)用服務(wù)器端APKApplicationProgramming Interface)實現(xiàn)。
[0052]本發(fā)明移動終端6能將通訊音頻傳輸?shù)椒?wù)器端,在服務(wù)器端通過網(wǎng)站服務(wù)器2提供HTTP RESTFul服務(wù),通過媒體文件服務(wù)器3進(jìn)行通訊音頻的轉(zhuǎn)碼,通過實時信息服務(wù)器7提供轉(zhuǎn)碼精度的查詢,通過反向代理服務(wù)器I能夠?qū)崿F(xiàn)反向代理以及負(fù)載均衡,結(jié)構(gòu)緊湊,能對移動終端的音頻進(jìn)行有效管理,適用范圍廣,安全可靠。
【權(quán)利要求】
1.一種移動終端VoIP通訊音頻管理系統(tǒng),包括移動終端(6);其特征是:所述移動終端(6)與服務(wù)器端連接,移動終端(6)將通話音頻傳輸至服務(wù)器端,以通過服務(wù)器端對移動終端(6)傳輸?shù)耐ㄔ捯纛l進(jìn)行存儲管理。
2.根據(jù)權(quán)利要求1所述的移動終端VoIP通訊音頻管理系統(tǒng),其特征是:所述服務(wù)器端包括反向代理服務(wù)器(I)及與所述反向代理服務(wù)器(I)相互連接的網(wǎng)站服務(wù)器(2)、媒體文件服務(wù)器(3 )及實時信息服務(wù)器(7 );移動終端(6 )通過反向代理服務(wù)器(I)與網(wǎng)站服務(wù)器(2)、媒體文件服務(wù)器(3)及實時信息服務(wù)器(7)連接;網(wǎng)站服務(wù)器(2)對移動終端(6)提供HTTP RESTFuI服務(wù);媒體文件服務(wù)器(3)存儲移動終端(6)傳輸?shù)耐ㄔ捯纛l,并對所述通話音頻文件進(jìn)行轉(zhuǎn)碼;實時信息服務(wù)器(7)能允許移動終端(6)查詢當(dāng)前通話音頻轉(zhuǎn)碼的進(jìn)度。
3.根據(jù)權(quán)利要求1所述的移動終端VoIP通訊音頻管理系統(tǒng),其特征是:所述服務(wù)器端還包括與反向代理服務(wù)器(I)連接的數(shù)據(jù)庫服務(wù)器(4)及備份服務(wù)器(5);數(shù)據(jù)庫服務(wù)器(4)存儲移動終端(6)的用戶信息、通話音頻元信息。
4.根據(jù)權(quán)利要求1所述的移動終端VoIP通訊音頻管理系統(tǒng),其特征是:所述移動終端(6)包括智能手機(jī)或平板電腦。
【文檔編號】H04L29/08GK103685485SQ201310634839
【公開日】2014年3月26日 申請日期:2013年12月2日 優(yōu)先權(quán)日:2013年12月2日
【發(fā)明者】馬史耀, 劉云浩 申請人:無錫清華信息科學(xué)與技術(shù)國家實驗室物聯(lián)網(wǎng)技術(shù)中心