基于SIP協(xié)議的模擬電臺語音通信系統(tǒng)設計
作者/ 牟健 何波賢 岳明 王巖 92724部隊(山東 青島 266108)
本文引用地址:http://2s4d.com/article/201612/342199.htm摘要:為了提高模擬電臺訓練系統(tǒng)的仿真程度,在模擬電臺語音通信系統(tǒng)中以計算機網絡通信技術為核心,構建一種基于SIP協(xié)議的語音通信技術。經過實驗測試,在多部電臺模擬器之間相互構建語音組網通信時延小于200ms,音質清晰,能夠清楚分辨出發(fā)話人的語音特征,滿足了設計的要求。
引言
當前大部分模擬電臺訓練系統(tǒng)基于電臺界面的操作,對語音通信交互及組網的構建存在一定的缺陷,隨著計算機技術及仿真技術的飛速發(fā)展,以局域網為依托,利用計算機技術,基于SIP協(xié)議的多線程即時語音通信技術,構建模擬仿真電臺一對一、一對多、多對多的即時語音通信組網效果,以適應當前開展多元化、現(xiàn)代化的仿真模擬訓練需求。
SIP協(xié)議是一種網絡電話協(xié)議,可以在局域網絡中即時構建一對一、一對多、多對多參與者之間的語音交互通信。由于SIP協(xié)議開源、簡單、快捷、靈活、擴展性強等特點,當前國內外企業(yè)研制出很多基于SIP協(xié)議的視頻語音會議解決方案及網絡電話設備,極大地推進了SIP協(xié)議技術的發(fā)展。
1 SIP協(xié)議
SIP(Session Initiation Protocol)是一個基于IP應用層控制協(xié)議,繼承了互聯(lián)網通信一些設計理念,它高效、穩(wěn)定、簡單、擴展方便而又不缺乏靈活性,可以在幾分鐘之內構建出一個可以在多系統(tǒng)平臺運行的服務器和客戶端。主要功能是以服務器為中心,即時建立、調整、撤消客戶端的呼叫與會話,同時可進行用戶定位、用戶交換、呼叫建立、處理等,構建完整的語音通信網絡系統(tǒng)。
SIP協(xié)議采用了C/S模式,包括SIP代理客戶端和SIP服務器。其中,代理客戶端是一個交互的系統(tǒng)接口,又分為負責發(fā)起SIP呼叫請求的用戶代理客戶端和負責對呼叫請求做出響應的用戶代理服務器。而SIP服務器主要包括注冊、代理、位置、重定向服務器,它們之間可以共存于一個設備當中,也可以分布在整個物理實體中,SIP服務器并不依賴硬件系統(tǒng),完全是基于軟件實現(xiàn)的文本協(xié)議,主要負責接收和處理用戶端請求、注冊、鑒權、認證、處理呼叫相關信令的網絡等服務。
SIP作為一個開源的協(xié)議棧,編碼方式是采用擴展的BNF范式來規(guī)定的,不是一個垂直集成的通訊系統(tǒng),本身不提供服務,往往與實時數(shù)據傳輸協(xié)議(RTP)、實時流協(xié)議(RSTP)、媒體網關控制協(xié)議、會話描述協(xié)議(SDP)等協(xié)同合作,來實現(xiàn)不同的網絡通信服務,構造完整的多媒體網絡通信架構。同時,SIP的技術核心是采用了標準C語言編寫開源的OSIP協(xié)議棧,并可在VC6.0編譯器中運行,并為語音通信提供了一些解析消息的API和事物處理狀態(tài)機。
2 設計思路
SIP協(xié)議的語音通信模塊設計的目的是把分布在計算機局域網內的半實物電臺模擬器實時構建語音通信網,該語音通信網絡的設計主要采用模塊設計,各模塊之間松耦合且相對獨立,主要的模塊包括:SIP注冊模塊、語音處理模塊、實時語音傳輸模塊、SIP消息處理模塊。模塊的總體框圖如圖1所示。其中,SIP注冊是認證各電臺模擬訓練器子系統(tǒng)組網的狀態(tài);語音處理模塊包括語音采集、播放、編碼和解碼過程;實時語音傳輸主要包括SIP線程、發(fā)送線程、接收線程和網絡狀態(tài)反饋線程;SIP信息處理主要記錄各模擬電臺通信組網狀態(tài),發(fā)起或拆除語音系統(tǒng)組網以及相對應的消息處理,實時調整處于不同組別電臺模擬訓練器的組網連接狀態(tài)。
3 模塊具體實現(xiàn)
3.1 SIP注冊
SIP服務器設置在主控計算機上,主控計算機IP地址設置為:168.192.1.1,端口為:5060;每一臺電臺模擬器在系統(tǒng)中充當SIP客戶端,設置的IP地址為:168.192.1.(2-12),端口為5061-5071。根據C/S模式把主控SIP服務器、電臺模擬器進行組網連接,如圖5所示,并依次分配IP、端口地址、用戶名字,以及設定的密碼。此系統(tǒng)第一次使用時,需要取得服務器的注冊認證,否則無法進行組網通信,SIP的注冊過程如圖2所示。
第一步,首次啟動語音通信時,SIP客戶端先通過局域網向安裝在主控計算機上的SIP服務器發(fā)起REGISTER注冊申請;
第二步,SIP服務器對SIP客戶端進行查詢并認證該客戶的信息,確保這名客戶信息是一個新的用戶,服務器對該用戶返回401 Unauthorized質詢信息及所需的安全認證令牌;
第三步,用戶根據服務器的提示,輸入相應的標識及用戶信息,再次向服務器發(fā)出REGISTER消息請求;
第四步,服務器收到請求后,檢查用戶信息的正確性,質詢信息驗證用戶的合法性,若是用戶信息錯誤,返回失敗,若是戶信息合法,把用戶信息保存到數(shù)據庫當中,最后返回成功的相應消息200 OK。
3.2 語音處理模塊
當客戶端完成注冊驗證之后,由主控計算機選擇相應的電臺模擬訓練器進行組網,構建SIP語音會議通信系統(tǒng)。語音的采集是由模擬電臺訓練器終端負責語音采集,語音處理的流程如圖3所示,首先判斷手咪的PTT按鍵是否觸發(fā),若是沒有被觸發(fā),該電臺模擬訓練器處于接收語音狀態(tài),即時對語音信息進行解碼及播放;若是被觸發(fā),該電臺模擬訓練器進行語音采集,初始化語音存儲的數(shù)據結構,調用錄音設備,并根據電臺設定的電磁干擾類型的強度,對語音信息進行編碼,當保存數(shù)據的緩沖區(qū)滿時,對語音數(shù)據進行打包,并發(fā)送到會議系統(tǒng)中進行組播。
3.3 語音傳輸模塊
語音傳輸模塊包括SIP線程、發(fā)送線程、接收線程和網絡狀態(tài)反饋線程四個線程,為了滿足建立多線程的C/S模型和嚴格的異常處理機制,局域網中采用UDP協(xié)議進行傳輸。UDP協(xié)議傳輸是一種單向的傳輸方式,事前不必與對方進行連接,直接發(fā)送數(shù)據,例如微信,不用擔心對方是否在線,都可以向對方發(fā)送數(shù)據,不僅可以實現(xiàn)一對多點的數(shù)據廣播,還可以進行用戶分組通信,具有通信效率高,占用網絡資源少等特點。然而UDP協(xié)議存在的缺點是存在數(shù)據的丟包現(xiàn)象,不能完全確保對方接收到完整的數(shù)據包。為了解決這種問題,采用了三個UDP控件,如圖4所示,MUUDP1負責SIP線程及網絡轉狀態(tài)反饋線程,MUUDP2負責語音發(fā)送線程,MUUDP3負責語音接收線程,這樣可以有效地解決傳輸信息存在的丟包現(xiàn)象。
3.4 SIP信息處理模塊
當主控在進行組網語音通信時,根據當前所有電臺模擬器設置的工作參數(shù)進行組網,在主控服務器中生成模擬器會話會議號,例如根據1號、5號、8號電臺模擬器設置的工作參數(shù)一致,建立組網號186001, 1、5、8號電臺模擬器就可以在構建的網絡內進行語音交互通信。組網的過程一般包括創(chuàng)建組網、加入組網、退出組網、結束組網等步驟。
創(chuàng)建組網方式采用即時會議的形式進行,首先主控服務器對每臺電臺模擬訓練器工作參數(shù)進行周期掃描,并進行匹配對比,若發(fā)現(xiàn)電臺的工作參數(shù)有相同的組合,則即時生成新的會議號進行組網。
加入組網方式采用Call—In方式,當建立組網完成之后,主控利用即時消息的方式向具有相同工作參數(shù)的電臺模擬器終端發(fā)送相對應的會議號,各電臺模擬器終端根據接收到的會議號,向主控發(fā)送INVITE消息,請求加入相對應的會議號,具體的流程如圖5所示。首先主控SIP服務器根據創(chuàng)建的會議號向模擬器客戶端提出邀請INVITE消息,帶有新的協(xié)商信息;然后模擬器客戶端回復200 OK,并將協(xié)商后的信息帶回;最后服務器發(fā)送ACK給模擬器客戶端進行答復,成功邀請新的成員加入組網,即時可進行語音通信。
退出組網模式是基于電臺模擬器工作參數(shù)的改變,當某電臺的工作參數(shù)發(fā)生改變時,該電臺模擬器需要向主控服務器發(fā)送BYE消息進行申請退出當前會議號,服務器接收到BYE請求后,對該模擬器語音通信鏈路進行切斷。
當系統(tǒng)內所有模擬器的工作參數(shù)不相同或退出組網模擬時,組網結束,主控服務器會向所有模擬器終端發(fā)送BYE請求,中斷所有的組網。
4 系統(tǒng)測試
電臺模擬器訓練系統(tǒng)主要有主控計算機、局域網、電臺模擬訓練器組成,如圖6所示。其中把SIP的注冊服務器、代理服務器、位置服務器及重定向服務器安裝在一臺主控計算上,每一臺電臺模擬訓練器都是基于ARM11的嵌入式SIP客戶終端,以局域網技術為依托,構建電臺模擬訓練系統(tǒng)強大的語音交互網。在模擬電臺通信過程中,主控計算機周期掃描模擬電臺訓練器的工作參數(shù),用模擬器工作參數(shù)相同的組合構建實時的語音通信網,經過測試,通信延時小于200ms,音質清晰,能夠清楚分辨出發(fā)話人的語音特征,滿足了設計的要求。
5 結論
本文基于局域網通信技術,利用SIP協(xié)議,構建了電臺模擬訓練系統(tǒng)的語音通信系統(tǒng),并在VC6.0平臺上編譯通過,實現(xiàn)了多臺電臺模擬訓練器之間的組網語音通信,通信效果良好,對電臺模擬器的語音仿真訓練具有很強的實際參考價值。
參考文獻:
[1]GNU Organization Stabs[Z]. 2004-10. http://sources.redhat.com/gdb/onlinedocs/stabs.html.
[2]魏春城.SIP協(xié)議的特點及應用[J].電信科學,2002, 18(9):64-66.
[3]楊俊智.基于IP的可視電話中H.263+編碼器的實現(xiàn)及其優(yōu)化[D].浙江大學,2003.
[4] Wind River Systems Inc. Tornado API Guide 1.0.1[Z].Alameda,CA,2002.
本文來源于《電子產品世界》2017年第1期第56頁,歡迎您寫論文時引用,并注明出處。
評論