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