天天看點

QChat 技術

版權聲明:本文為半吊子子全棧工匠(wireless_com,同公衆号)原創文章,未經允許不得轉載。 https://blog.csdn.net/wireless_com/article/details/6491810

從本質上說,POC/PTT技術是把VoIP技術應用于移動終端,将原來由營運商承擔的部分VoIP功能轉移到手機終端來實作。是以,POC可參照傳統的網絡分層概念。其中,POC系統中的移動信道層、應用層以及IP層分别等同于TCP/IP模型中的網絡通路層、應用層以及傳輸層與網際網路層。   

與許多VoIP解決方案一樣,SIP協定被用來作為“一鍵通”協定的控制層面,語音包的傳輸是通過RTP協定實作的,也就是說,大部分的RTP鍊路傳輸的是語音包,其餘的控制資訊是通過RTCP來傳輸。實時控制協定(RTCP)提供了會話中談話者的仲裁器,并且對RTP會話品質進行判決。具有POC/PTT功能的手機的特定插件和接口如圖10-18所示。

圖 10-18:支援POC/PTT的手機裝置

QChat借助IP技術,實作的語音一鍵通業務具有“始終線上”特性,對蜂窩接入和無線資源的利用效率比電路交換蜂窩業務要高很多,營運商通過信道的高使用率使得POC/PTT業務可以得到赢利性的實施。向手機上移植QChat需要BREW3.1.5或更高版本的支援,對網絡也有相應的要求,例如需要至少3條以上的QoS通道等等。在CDMA的網絡環境中,QChat的在用戶端和應用伺服器側的協定模型如圖10-19所示。

圖 10-19:,QChat的用戶端和應用伺服器之間的協定模型

其中RTP(Real - time Transport Protocol) 是針對多媒體資料流的一種傳輸協定,工作于一對一或一對多的傳輸情況,可提供時間資訊和實作流同步。RTP 通常使用UDP 來傳送資料,也可在TCP 協定上工作。

SIP作為應用層上的一個控制(信令)協定,用來建立、修改和終止有多個參與者參加的多媒體會話程序,參與會話的成員可以通過多點傳播(multicast)、單點傳播(unicast)或者兩者結合的方式進行通信。SIP可以用于邀請新的成員加入一個已經存在的會話,也可以用于建立一個全新的會話。

作為SIP的核心思想之一,它可以用于明确地邀請某一個成員加入或者建立會話,這一點相對多點傳播、SAP(會議通告協定)等是一個很大的進步.通信雙方可以共同協商使用的媒體參數(比如是否支援視訊)。SIP獨立于它所處理的多媒體會話類型和描述會話所使用的機制,能夠用一個可擴充的體系結構應用于視訊會議、語音通話、共享白闆、遊戲會話、應用共享、桌面共享、檔案傳輸等各種情況.一般情況下,SIP協定使用RTP協定傳送音頻和視訊流,使用SDP協定進行媒體描述。SIP通過這樣的機制來實作其擴充性:通信雙方或多方使用SDP進行音、視訊的會議描述,如果通信的幾方希望在建立的SIP架構上進行一個遊戲會話,那麼隻需要使用一個适用于描述遊戲會話的協定來取代SDP協定。使用SIP協定進行會話的管理包括發起和終止會話、修改會話參數、調用服務、引入其他使用者、設定轉移呼叫、呼叫保持等。SIP的可擴充性還表現在它可以通過定義新的消息頭(header)和方法(method)來增加新的功能,這一點應用在大部分增加新功能的SIP擴充RFC中。

SIP的另一個重要功能是支援使用者的移動性,通過SIP定義的代理(proxy)伺服器和重定向(redirection)伺服器來實作。由于SIP實作了通信使用者終端的定位,保證了無論被呼叫方在網絡的任何位置上都可以確定呼叫達到被呼叫方。它通過SIP URL(uniform resource indicator,統一資源辨別符)進行辨別,其格式和Email位址很相似,通常采用user@domain的形式。使用者必須首先向一個伺服器登記他目前的位置,才能被呼叫者找到,如果使用者的位置發生變化,必須将新位置向伺服器重新注冊.伺服器支援一個使用者同時擁有多個位址記錄,存到資料庫中,當伺服器需要聯系這個使用者時,它會按順序依次聯系記錄裡的位置資訊,直到從一個位置裡得到回報資訊或者沒找到.SIP提供了重定向和代理兩種操作模式來完成對使用者的定向.另外,SIP可以用于其他的IETF協定以建立一個完整的多媒體體系結構,如傳輸實時資料、提供QoS回報的RTP協定、控制流媒體發送的實時流傳輸協定RTSP、控制到公共交換電話網(PSTN)網關的媒體網關控制協定MEGACO、描述多媒體會話的會話描述協定SDP等.

對應于BREW的移植,QChat有自身的移植工具(QPK,如圖10-20所示)。為了支援QChat用戶端應用的運作,需要修改OEM層以便實作對PTT的按鍵事件進行處理。根據代碼移植的方向,QChat的移植過程有兩種,一種手機廠商采用自己的移植代碼,然後将QChat的相關改變合并到這些代碼裡,另一種是手機廠商采用QChat的移植代碼,然後将自己移植的相關改變合并到QChat的移植代碼中。尤其需要主要的是,要對作業系統層進行優化,否則難以實作QChat的目标參數,例如連接配接建立時間等等。