版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
智能手機(jī)安卓系統(tǒng)秘密語音通信軟件設(shè)計(jì)答辯人XXX指導(dǎo)老師XXXContentsVoIP技術(shù)SIP協(xié)議Android中的SIP開源協(xié)議棧SIPDroid加密模塊的實(shí)現(xiàn)系統(tǒng)的測試不足和展望什么是VoIP網(wǎng)絡(luò)電話VoiceoverInternetProtocol具體流程聲電轉(zhuǎn)換:將聲波轉(zhuǎn)換為電信號量化采樣:將模擬信號按照某種采樣方法轉(zhuǎn)換成數(shù)字信號封包:RTP報(bào)文、TCP/IP標(biāo)準(zhǔn)傳輸:IP網(wǎng)絡(luò)中由源端傳遞到目的端VoIP的優(yōu)勢網(wǎng)絡(luò)電話基于Internet傳輸分組交換<10kbit/s普通電話基于PSTN傳輸電路交換>64kbit/sVoIP主流協(xié)議H.323SIPMGCP擬定組織ITU-TIETFIETF架構(gòu)P2PP2P主從式設(shè)計(jì)對象ISDN及ATMInternetGateway復(fù)雜度高低中擴(kuò)展性低高中編碼方式二進(jìn)制編碼基于文本編碼基于文本編碼SIP協(xié)議SessionInitiationProtocol信令控制協(xié)議1996199920002002創(chuàng)建、修改以及終結(jié)多個參與者參加的多媒體會話SIP規(guī)定了以下基本的通信要求:1.用戶定位服務(wù)2.會話建立3.會話參與方管理4.特點(diǎn)的有限確定HTTPSMTPRSVPRTPRTSPSAPSDPMEGACO等信令技術(shù)
鑒別呼叫方所要呼叫的對象
定位呼叫方在網(wǎng)絡(luò)中的位置外部信令語音代理及語音設(shè)備遵循電話標(biāo)準(zhǔn)內(nèi)部信令語音代理之間傳輸網(wǎng)絡(luò)標(biāo)準(zhǔn)或語音代理本身的標(biāo)準(zhǔn)內(nèi)部信令提供了連接控制和呼叫處理兩種功能。連接控制信令用于建立語音代理之間傳輸語音分組的聯(lián)系或通道。呼叫處理信令在語音代理之間發(fā)送呼叫狀態(tài),如振鈴、忙音等。內(nèi)部信令最初是用于避免在網(wǎng)絡(luò)中維持用來支持所有可能呼叫的永久連接。對無連接網(wǎng)絡(luò)中的分組語音應(yīng)用而言,永久連接并不存在,進(jìn)行語音業(yè)務(wù)時雙方的語音代理只需要彼此定位。信令的作用是通過撥號規(guī)則判斷目標(biāo)代理是否存在,如果存在就將分組流發(fā)送至該代理。SIP協(xié)議要素SIP協(xié)議結(jié)構(gòu)SIP事務(wù)用戶層事務(wù)層傳輸層UDP/TCPIP鏈路層物理層SIP消息機(jī)制
請求消息SIP請求消息以Request-Line為起始行,以此區(qū)別于其他消息。INVITE:
用于邀請用戶加入一個呼叫。ACK:用于對請求消息的響應(yīng)消息進(jìn)行確認(rèn)。OPTIONS:用于查詢代理服務(wù)器支持的方法和會話描述協(xié)議。BYE:用于釋放已建立的呼叫。主叫方與被叫方都可以發(fā)送,等同于普通電話通訊中的掛機(jī)操作。CANCEL:用于釋放尚未建立的呼叫。。REGISTER:用于在SIP網(wǎng)絡(luò)服務(wù)器上登記用戶的位置信息。SIP消息機(jī)制
響應(yīng)消息SIP響應(yīng)起始行為含有響應(yīng)狀態(tài)碼的Status-Line,作為請求與響應(yīng)的區(qū)別。編碼類別描述1xx信息表示請求已經(jīng)收到,可以繼續(xù)處理請求2xx正確表示呼叫已經(jīng)被正確接受和處理3xx重定向表示該呼叫需要被重定向處理4xx客戶機(jī)錯誤表示該消息存在表達(dá)錯誤,不能被服務(wù)器處理5xx服務(wù)器錯誤服務(wù)器不能處理該消息6xx全局失敗請求無論在哪都不能被處理SIP用戶定位功能E-mail地址形式一個用戶對應(yīng)一個URL。SIPURL用于SIP消息中,包括請求的發(fā)起者(From)、當(dāng)前目的地(Request-URI)和最終接收者(To)以及指定重定向地址(Contact)??杉嫒菪裕河脩裘鸃主機(jī)地址被叫號碼@PSTN網(wǎng)關(guān)地址普通電話的描述SIP會話過程注冊/注銷過程呼叫過程由主叫UAC直接向被叫UAS呼叫由代理服務(wù)器代表主叫UAC向被叫UAS發(fā)起呼叫由主叫UAC在重定向服務(wù)器的輔助下進(jìn)行重定向呼叫重定向過程SIPDroid工作原理注冊流程當(dāng)需要發(fā)送注冊請求消息時,要先調(diào)用MessageFactory.createRegisterRequest函數(shù)
構(gòu)建請求消息然后建立一個線程TransactionClient用來監(jiān)管本次信令流程。TransactionClient會調(diào)用SIPProvider來發(fā)送請求消息,同時會監(jiān)聽注冊服務(wù)器的響應(yīng)消息。當(dāng)收到響應(yīng)消息后,將響應(yīng)消息傳遞給上層的SIPProvider進(jìn)行處理。撥號流程撥號請求由UI通過Receiver廣播信息交給SIPDroidEngine處理。在SIPDroidEngine上鑒別目標(biāo)帳號以及本地帳號是否為空,然后交給UserAgent處理。UserAgent調(diào)用call(Stringtarget_url,booleansend_anonymous)創(chuàng)建一個ExtendedCall對象,以提供給SIP協(xié)議棧使用,然后經(jīng)過ExtendedCall的call方法處理之后,由ExtendedCall調(diào)用ExtendedInviteDialog來發(fā)送invite請求。InviteDialog調(diào)用InviteTransactionClient的request方法,并由InviteTransactiongClient來監(jiān)管本次信令流程。來電處理流程SIPDroidEngine創(chuàng)建并啟動一個UdpProvider線程,開始監(jiān)聽收到的信息,之后調(diào)用onReiceivedPacket方法,把對象傳出到UdpTransport,由UdpTransport把消息封裝成SIP的擴(kuò)展消息Message,再通過onReceivedPacket方法傳出到SIPProvider對象,最后將在SIPProvider的processReceivedMessage方法中處理收到的消息。processReceivedMessage會鑒定該消息是否為SIP消息,不是則丟棄。最后從listenrs(map)中的OnReceivedMessage來處理具體SIP請求。如果是INVITE請求,就啟動來電提示界面,如果本地用戶選擇接聽,就發(fā)送請求接受響應(yīng),即200(ok)響應(yīng),若用戶不愿接聽,則發(fā)送4xx錯誤響應(yīng)。SIPDroid數(shù)據(jù)傳遞流程SIPDroid的數(shù)據(jù)流主要有SIP信令消息和會話音頻數(shù)據(jù)兩種,分別使用不同的傳輸渠道。信令數(shù)據(jù)的傳輸用戶在UI層的操作(比如撥號、接聽等),會廣播給SIPdroidEngine類,SIPdroidEngine會根據(jù)操作類型交付給UserAgent類或者RegisterAgent類,處理后產(chǎn)生的不同請求由SIPDroidProvide類解讀,并將產(chǎn)生的SIP消息封裝成包,之后交付給UdpTransport類,Udptransport是個接口類,SIPdroidProvider與UdpProvider之間的接口,可以提供數(shù)據(jù)傳送、監(jiān)聽Udp數(shù)據(jù)包和封裝或分解Udp數(shù)據(jù)包等服務(wù)。UdpProvider會調(diào)用UdpSocket,將目標(biāo)地址映射至UdpSocket,最終調(diào)用Java的DatagramSocket將數(shù)據(jù)傳輸出去。當(dāng)收到來自網(wǎng)絡(luò)的數(shù)據(jù)包時,數(shù)據(jù)傳遞順序則相反。RTP數(shù)據(jù)包的傳輸RTP數(shù)據(jù)包的簡要傳輸流程如下:當(dāng)終端把采樣到的音頻數(shù)據(jù)壓縮編碼后需要封裝成RTP包傳輸出去時,會先建立一個虛擬的RTP傳送器RtpStreamSender和一個用于接收RTP數(shù)據(jù)包的虛擬RTP接收器RtpStreamReceiver,這兩個繼承于線程,在對話建立后就不斷運(yùn)行。RTPStreamSender會把音頻數(shù)據(jù)壓縮編碼后交付UDPtransport(或TCPtransport)處理,UDPtransport之后會調(diào)用RtpSocket將其封裝成RTP包,讀取目標(biāo)IP地址與協(xié)商好的RTP端口號,將數(shù)據(jù)傳輸出去。當(dāng)收到來自網(wǎng)絡(luò)的RTP數(shù)據(jù)包時,數(shù)據(jù)傳遞順序則相反。加密算法的選擇
本文選擇RC4流密碼,簡潔易于實(shí)現(xiàn),加密速度快,安全性較高
/*初始化*/fori=0to255doS[i]=i;T[i]=K[imodkeylen]/*S的初始序列*/j=0fori=Oto255doj=(j+s[i]+T[i])mod256swap(s[i],s[j]);/*密鑰流的產(chǎn)生*/i,j=0while(true)i=(i+1)mod256j=(j+S[i])mod256swap(sEi],s[j])t=(sEi]+s[j])mod256;k=S[t]加密模塊的嵌入通過研究SIPDroid的源代碼,我們發(fā)現(xiàn)SIPDroid在對UDP消息進(jìn)行封裝時是將語音信息編碼為BYTE類型處理的,因此我們選擇不改變信令協(xié)議棧和媒體傳輸協(xié)議棧的任何實(shí)現(xiàn)代碼,僅僅只是將RC4算法模塊封裝成為src中的一個包,改寫了系統(tǒng)的UDP收發(fā)函數(shù),使其在對語音編碼信息封裝前先調(diào)用RC4算法進(jìn)行加密,再將加密后的密文打包。解密時則進(jìn)行相反的過程。系統(tǒng)測試
搭建測試環(huán)境語音加密測試原始語音原始語音加密后解密測試使用正確密鑰解密使用錯誤密鑰解
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度木材原材料供應(yīng)與加工合作框架合同4篇
- 2025年度祠堂修繕與維護(hù)承包服務(wù)合同4篇
- 2025版打印機(jī)租賃及耗材供應(yīng)合同范本3篇
- 2025年度二零二五年度存量房買賣居間合同綠色建筑認(rèn)證服務(wù)2025版4篇
- 二零二五年度船舶貨運(yùn)合同船舶燃油供應(yīng)合同范本4篇
- 二零二四年度展覽展示設(shè)計(jì)與施工后期維護(hù)保養(yǎng)合同3篇
- 2025年度廠房租賃押金托管服務(wù)合同4篇
- 2025年度木材行業(yè)節(jié)能減排技術(shù)研發(fā)合同范本4篇
- 二零二五智能交通設(shè)施代理采購合同范本4篇
- 二零二五版特色主題酒店承包經(jīng)營合同規(guī)范范本3篇
- 山東鐵投集團(tuán)招聘筆試沖刺題2025
- 真需求-打開商業(yè)世界的萬能鑰匙
- 2025年天津市政集團(tuán)公司招聘筆試參考題庫含答案解析
- GB/T 44953-2024雷電災(zāi)害調(diào)查技術(shù)規(guī)范
- 2024-2025學(xué)年度第一學(xué)期三年級語文寒假作業(yè)第三天
- 心律失常介入治療
- 6S精益實(shí)戰(zhàn)手冊
- 展會場館保潔管理服務(wù)方案
- 監(jiān)理從業(yè)水平培訓(xùn)課件
- 廣東省惠州市實(shí)驗(yàn)中學(xué)2025屆物理高二第一學(xué)期期末綜合測試試題含解析
- 搞笑朗誦我愛上班臺詞
評論
0/150
提交評論