SPEC-RFC3261總述
最近學習VoLTE(Voice Vver LTE)相關知識,而學習VoLTE必須要學相關的協議,最基礎的就是RFC3261,RFC3261的全稱是:SIP: Session Initiation Protocol,英文翻譯就是會話初始協議。
SIP協議並不提供通話的數據傳輸的具體工作,主要是用在數據傳輸之前的會話建立階段,例如我們進行手機通話時,首先我們的手機得先註冊到手機附近運營商的基站上,然後得撥下對方的電話號碼,然後通過手機基帶芯片將信息傳輸出去,然後到運營商的基站去查詢對方的地址,然後與對方建立連接,當撥號信息從UEA到達UEB對端準備好了接聽電話,註意此時UEB端手機開始響鈴,但還沒有接聽,UEA端開始聽的鈴聲,如果開通了彩信也就是如果具有回鈴音我們此時在UEA端能夠聽到歌曲。
在前面的描述中我們看到了:
1、一個信息的流動即從UEA到UEB,其實整個過程還有從UEB到UEA的流動,類似於TCP的握手,SIP協議也有一個發起和應答的機制,即UEA發起一個動作UEB會產生一個應答。
2、在開始撥打電話到對方接聽電話,這段時間或者說通話這個動作需要一個協調雙方的協議,這個協議就是SIP協議,所以說SIP協議主要是對會話建立進行協商和規範。但是很多初學者容易搞混淆的地方是,必須要明白SIP協議它不負責後面的語音數據如何傳輸,雙方的編解碼如何協調,它只是負責會話的發起,會話的結束,會話單播到多播或者會議電話的建立。
3、要完成一次VoLTE通話,僅僅有SIP協議是不夠的。就如第二點所講,數據的傳輸需要有一個實時的數據傳輸協議、編解碼的協調需要一個協議,所以SIP協議通常會與RTCP和SDP協議共同工作完成一次數據的傳輸。
前面在講SIP協議,突然又說到VoLTE這個可能會讓很多人搞不清楚,SIP是什麽,VoLTE又是什麽,其實要了解這些概念,需要去了解我們的移動通信的發展從2G-4G,馬上又要進入5G時代,這些不斷進步的技術帶來了很多新的概念,當然我得澄清一下SIP是先於VoLTE產生。我們通常講2-3G是CS call,通話數據的傳輸和網絡數據的傳輸是分成兩個通道的,即通話數據走CS(電路交換)通道,網絡數據走PS(分組交換)通道。但是在4G時代沒有CS、PS通道的區分了,所有的數據都走PS通道,意思就是我們通話時的數據也和瀏覽網頁產生的數據一樣都是通過分組交換實現,這些數據最終都會通過TCP/IP協議借助LTE 4G網絡進行傳輸,這個就是目前VoLTE的一個簡單的技術路線,當然要弄清楚這個還需要看很多的協議,最主要的就是IR.92,這個是VoLTE和IMS的提綱挈領的協議,整個IR.92文檔內容不多但是是一個總體介紹。
前面作為了將SIP的一個鋪墊,當然要想了解VoLTE可以看這個網頁鏈接,它講的很詳細:http://www.360doc.cn/article/2909773_637471256.html。下面開始介紹SIP協議:
如下圖所示我們將通話雙方分為UEA(Alice)、UEB(Bob),圖為前面講的通話接通這個過程SIP協議流程,圖為從SIP 3261所截。我們將一個SIP協議講成SIP Message,如圖中Alice發出INVITE請求即發起通話的請求,這個INVITE動作就是一個SIP message,每一個SIP message由一下幾部分組成:
generic-message = start-line
*message-header
[ message-body ]
start-line = Request-Line / Status-Line
主要由Request-Line由method和狀態碼(1xx、2xx、3xx、4xx、5xx)組成,method方法在RFC3261中有:INVITE、ACK、BYE、REGISTER、CANCEL、BYE。
SPEC-RFC3261總述