本文將簡單介紹可視電話子系統的組成及結構,以及所接觸過的基於android可視電話做簡單介紹。每個廠家的可視電話實現方案略有異同,不能以一概全。
1 Android可視電話
如所示,Android可視電話由以上幾個模組組成,即基於無線通訊業務,又對多媒體處理要求極高。控制camera,麥克風即時捕捉本端的音視頻資料經3G-324協議棧編碼複用發送到網路。同時將解複用解壓縮收到的對端音視頻資料push到LCD及擴音器。由於使用了專有的可視電話協議,因此與http資料業務傳輸是有本質區別的。
重點介紹由以下幾個模組組成:
VTapp:通常可以在Android的Phone app上增加及修改,此種方法工作量複雜度會減少。
VTengine:通常也被視為VT的適配層。這個模組可以放在framework java,也可以放在library中。具體放在哪一層涉及到音視頻資料搬運等問題,故推測這也是MTK的可視電話VTengine放在lib層的一個原因。對3g-324M做一個封裝,向上提供介面。調用camera以及audio介面進行本端音視頻資料擷取。並負責將遠端的解碼後的音視頻資料放出來。
3G-324M:下面章節將會詳細介紹,簡單來說是實現可視電話必不可少的協議。放在android的external中。
VT port:Android手機通常使用雙晶片設計。而modem側與AP側之間有兩種資料通訊的方式,一種就是port口。而另一種是雙連接埠記憶體ram。如果是採用port口方式,至少有兩個port口,分別用於CS域傳遞AT指令,PS域傳送資料業務相關資料。而可視電話需要增加一個VT port。專用於在AP側與modem側傳遞本端與對端的可視電話資料。
[edit]2
可視電話協議棧介紹
在對可視電話有了整體的認識以後,再來看陌生的可視電話協議棧是什嗎?它有哪幾部分組成,如何分工合作?
3GPP在ITU H.324M及其他國際標準基礎上制訂了3G-324M架構性協議它可以在無線電路交換網路上實現即時多媒體服務。使視頻、音頻、控制訊號等在同一個64K的物理鏈路上傳輸。 3G-324M是一個標準體系,包含下面幾個子協議標準:語音編碼通訊協定(3GPP-AMR、G.723.1)、視頻編碼通訊協定(H.263、MPEG-4、H.261)、資料編碼通訊協定 (V.14、LAPM(Link Access Procedure for Modems))、多工和分離標準(H.223)和呼叫控制標準(H.245)。
H.223,語音、視頻、使用者資料和控制資料的多工與分離(Multiplexing、De-Multiplexing),制定了多路音頻和視頻訊號在單個移動通訊通道的多工應用標準;
H.245,制定了在各個階段的訊息控制交換標準;
Audio codec,ARM是強制標準,G.723.1為可選的老的編碼通訊協定;
Video codec,H.263為強制性基準協議,MPEG-4是推薦標準;
[edit]2.2
H.245協議
3G-324M中使用H.245作為終端控制協議,所支援的H.245最低版本是Version 3,推薦實現更新的版本。
H.245提供如下功能:
支援NSRP、CCSRL;
主從模式確定,在會話開始時確定哪個終端作為主控制終端,發生衝突時由主終端確定通訊狀態;
終端能力交換,如多工可選模式、codec、資料共用模式及參數;
複用表初始化和更新,增刪複用表項;
模式請求(Mode request),用於請求從接收者到寄件者的操作模式;
傳輸延遲測量,提供精確的品質特性度量;
迴環測試(Loopback testing);
混雜呼叫控制(Miscellaneous call control)命令和指示。
3 可視電話建立過程
3.1 CS域可視撥打電話建立
VT的CS域呼叫建立類似於Android上的語音電話,而原生的android代碼沒有提供可視電話介面,因此需要在framework telephony 中添加API,以及在RIl HAL層中增加可視電話介面以及AT指令。CS域呼叫建立成功後,一條64kbit/s的透明資料轉送鏈路也成功建立,3G-324M位元流將通過這條鏈路進行傳輸。
[edit]3.2
3G-324M協商建立
1, 手機電平檢測,即選擇H.223多工層:每部手機發送一個標誌位序列來表示他所能支援的最高移動多工電平, 採用最高值作為公用電平;手機電平1、2、3分別對應H.223附件A、B、C;
2, MUX-PDUS的傳輸:傳輸H.223複用協議資料單元幀;
3, H.245簡單響應協議(SRP);
4, 終端交換能力,包括音視頻能力、所支援的移動方面的擴充、所支援的複用選項等;
5, 主從模式的決定,H.245訊息“Master Slave Determination(MSD) Request”,確定終端的主從模式;
6, 開放邏輯通道,承載話音、視頻媒體,定義他們的複用表給遠端解複用端;
7, 通話建立後進行媒體交換。
[edit]3.3
可視電話資料傳遞
在完成了3G-324M協商建立後,才開始媒體資料的交換。如所示,camera採集的未經處理資料,從麥克風採集的audio資料,傳入3G-324M。經過編碼,複用。傳送到VTport。再由modem經空中介面發送到網路。
而對端的資料在modem接收到以後,經VTport傳送到3G-324,經解複用,解碼,再將未經處理資料push到surfaceflinger顯示,audio經擴音器播放出來。
除了音頻資料、視頻資料之外的使用者資料,在可視電話過程中傳送圖片或者文字。
控制資料, H.245不僅在可視電話建立時發揮作用,在可視電話過程中也會發送流量控制、通用命令和指示等。
[edit]4
Android可視電話實現
Android可視電話不是一個簡單的google market中的應用,若希望實現ckt自己的可視電話需要注意以下幾方面:
1,得到晶片方案廠商的支援,與晶片方案廠商協商modem側與AP側如何通訊傳遞可視電話複用資料。
2,知曉modem側的可視電話相關AT指令。
3,選取合適的3G-324M可視電話協議棧lib。