<form id="tprxv"></form>

                  <address id="tprxv"></address>

                      <address id="tprxv"></address>

                        <form id="tprxv"><form id="tprxv"><meter id="tprxv"></meter></form></form>

                        Home > 電話會議新聞動態 > 技術文檔 > RTP協議在IP會議電話系統中的應用

                        RTP協議在IP會議電話系統中的應用

                        2014/07/17 Tang

                        引言

                        IP網絡電話泛指在以IP(Internet Protoco1)為網絡層協議的計算機網絡中進行語音通信的系統,它采用的技術統稱為V0IP( r0ice over IP)【1l。如今IP電話已成為因特網多媒體通信的一個典型業務,其中基于IP的會議電話系統更具有組網和管理方便靈活的特點,有很好的應用前景。本文對多媒體實時輸協議RTP/RTCP[2J進行了深入的研究,使用開放源代碼的RTP庫JRTPLIB進行RTP實時流媒體編程;采用客戶端一服務器模式,實現了局域網內IP會議電話實時語音傳輸,并在此基礎之上實現了IP會議電話功能。

                        1 基于IP的會議電話系統設計概述

                        使用PC機作為IP會議電話的語音終端,用戶之間的互相連接通??刹捎脙煞N方法,見圖1。第一種方法是客戶端~服務器模式:各客戶端通過服務器互相連接。這種連接方式常見于大型音頻視頻會議系統,其優點是軟件控制簡單,用戶連接方便;缺點是需要專門構建一個服務器。第二種方法是客戶端一客戶端模式,各個客戶端之間只要知道對方的IP地址就可以互相連接,不需要服務器,即每臺計算機既是服務器又是客戶端,其優缺點與前一種
                        方案相反。

                        yi yi

                        本文采用客戶端一服務器模式,在局域網內基于PC機設計和實現一套實時會議電話系統。其中客戶端提供用戶界面、實時語音傳輸和工作方式控制功能;局域網內的公共服務器負責建立連接,實時記錄和更新各個終端的工作狀態,實現對終端的管理:服務器還完成會議功能,包括建立并維護會議通話群,實現多方通話的語音合成等。

                        2 RTP TCP(實時傳輸協議/實時傳輸控制協議)及其實現

                        由于IP會議電話技術屬于分組語音通信的范疇,分組網絡傳送實時音頻、視頻的能力較差;故需要為系統選擇合適的多媒體實時流網絡傳輸協議,以保證語音的連貫性。RTP/RTCP(實時傳輸協議/實時傳輸控制協議)是一套基于會話層的實時連續媒體傳輸協議,該協議包括RTP和RTCP兩個部分;其中RTP負責傳輸實時數據,RTCP協議負責接收方和發送方交換控制信息。RTP包由具有固定格式的包頭和數據部分組成,RIP 包頭的定義格式如圖2所示:

                        er yi

                        RTP數據包頭中較為關鍵的字段有:
                        序列號(SequenceNumber)16bit,每發送一個RTP數據包,序列號加1。接收端根據I P包的序列號來對包進行排序。時間戳(TimeStamp)反映了I 數據包中第一個比特的抽樣瞬間,若RTP包周期性生成,則可以使用由抽樣周期確定的額定抽樣瞬間代替系統時鐘。序列號和時間戳在通信過程中實現下述功能[6]:實現R1]P數據包的正確排序、丟包判斷、進行
                        同步和抖動計算。

                        同步源識別符(SSRC)用以識別同步源;SSRC標識符隨機生成,在同一個I 會話期中沒有任何兩個同步源有相同的 C識別符。

                        貢獻源識別符(CSRC)用于識別在此RTP包負載中的有貢獻源,識別符的數目在cC(CSRC計數)域中給定。在會議電話過程中,若由多路語音合成產生新的語音數據包,則所有源的SSRC標識符都被在此陳列,以便在接收機處正確指示交談者。

                        RTP 數據包頭中的版本號(Version)、填充指示(Pad)、擴展位(eXtend)、標志(Mark)、負載類型(PayloadType)等域的具體含義可參見RFC3550 (2)。

                        RTP協議本身不提供流量或擁塞控制,它依靠RTCP提供這些服務。RTCP是RTP的伴隨協議,RTCP信息由若干堆棧式的包組成,每個包有其自己的類型碼和長度指示,格式和RTP數據包類似。常用的RTCP包包括:發送方報告(SR);接收者報告(I );源描述包(SDES)等。RTCP包中含有已發送的數據包數量、丟失的數據包數量等統計資料,服務器可以利用這些信息完成QoS監測、制定流量控制策略和會話控制策略。

                        本文使用RTP協議實現了IP會議電話系統的實時語音傳輸。RTP協議的實時傳輸模塊運行在LK)P傳輸協議之上,可以直接利用LK)P提供的多點投遞和數據校驗等功能。其數據裝載格式如圖3所示:

                        san yi

                        應用程序開始一個RTP會話時需使用兩個LK)P端口:一個給RTP,一個給RTCP。RTP/RTCP實時傳輸的關系如圖4:

                        si yi

                        本文以開放源代碼的RTP庫JRTPLIB(4)為基礎進行RTP實時流媒體編程。JRTPLIB使用C+
                        +語言和面向對象的技術實現,提供了三個主要的類供開發者實現RTP/RTCP協議:類RTPSeSSion,主要負責會話的建立、取消,數據的發送、接收,會話管理,本地信息維護等功能;類RTPPacket,主要負責某個數據包相關信息的獲得,如凈荷,時間戳等;類RTPSourceData,主要負責維護會話參與者的相關信息,如SSRC,RTCP統計數據。

                        調用JRTPLIB進行RTP數據的發送時,工作流程如圖5:

                        wu yi

                        RTP數據包的發送目標保存于發送目標列表,可以一次加入多個,每個發送循環都會向所有目標發送RTP數據包。利用類RTPSession的成員函數可以實現發送參數設定功能。發送過程中的RTCP數據統計工作是在JRTPLIB庫內部完成的,并由JRTPLIB自動判斷以及發送SR(發送者報告)。

                        調用JRTPLIB實現數據接收的工作流程如圖6:

                        liu yi

                        在接收RTP數據過程中,每次接收到一個新的源發來的數據包,JTRPLIB會將這個源的IP和端口信息存入會話參與者列表。利用類IHPPacket的成員函數可以得到RTP數據包各個域的值,如負載類型標識、時間戳、序列號等、同步源標識等信息。應用程序可利用這些信息盡可能地解決語音實時傳輸過程中不可預測的延遲、抖動等問題。將RTCP報告交由RTCP報告統計模塊,以及發送接收者報告(RR)的工作同樣是在JRTPLIB庫內部完成的。利用RTCP提供的傳輸監控服務,可大大提高RTP對網絡的自適應能力。

                        3 RTP協議在IP會議電話系統中的應用

                        本文中系統設計的IP會議電話包括兩種方式:廣播形式和討論形式。

                        廣播形式的會議是通過服務器將單個會議發言人的語音信號發送到所有會議成員客戶端。在此過程中,發言客戶端的語音數據通過RTP實時傳輸協議傳送到服務器,服務器直接將承載著語音數據的RTP數據包透明傳輸到所有會議成員客戶端;會議成員客戶端在JRTPLIB基礎之上實現RTP數據順序接收,RTP包頭中的SSRC字段可以用來標示語音數據源信息。討論形式的會議允許多個客戶端同時發言,在這種工作模式下,多個發言客戶端A1至An通過RTP協議,實現到服務器的實時語音傳輸;服務器將從多個數據源接收到RTP包分別拆解,得到實時多路音頻數據,然后進行實時會議混音處理;會議混音采用線性衰減疊加的方法防止音頻信號疊加后可能出現的溢出。服務器將混音合成后的音頻數據作為RTP包的凈荷,重新組織RTP數據包;混音數據RTP包頭中的CSRC字段標示該RTP包負載中的有貢獻源。服務器通過IP協議將組好的新RTP包廣播發送到會議的所有成員客戶端,如圖7所示。

                        qi yi

                        上述兩種形式的會議過程中,基于RTP的語音實時傳輸是保證會議通話質量的一個關鍵環節。在JRTPLIB基礎之上實現RTP數據順序接收后,不論是客戶端還是服務器,都需要考慮語音的防抖動處理。本文通過設置靜態抖動緩沖區實現去抖動,當會話開始時,接收方延遲回放。接收端將語音包根據RTP序列號和時間戳排列在緩存隊列中,當緩沖語音數據到達預先定義的閾值K時,開始進行回放。數據回放時,數據分組繼續到達。如果數據分組有抖動延遲,回放可繼續保持K時間單位不被打斷。

                        ITU—T建議電話業務的時延應小于或等于300ms,綜合考慮局域網傳輸時延以及音頻數據編解碼時延,本文設置閾值K為100 Ins,能較好地去除抖動,且不影響聽覺效果。

                        客戶端的語音數據回放過程是:引入定時器,每20ms定時向聲卡設備寫入語音數據,當緩存隊列為空,即100 Ins的閾值K不足以消除抖動時,可重復讀取上20ms數據,或加入舒適噪聲。

                        工作于討論會議模式下的服務器同時接收并分路緩存多路RTP語音數據,為了盡量減小延時,設計其語音數據回放過程是:當有一路數據緩存到達閾值K時,即開始數據回放:將該路語音數據每20ms定時輸出到會議混音模塊;在此過程中,當每次定時器溢出時,其他陸續緩存到達閾值K的各路數據加入混音的過程,直至所有各路語音均開始回放。在回放過程中,若出現某路語音數據緩存區為空,則混音模塊讀取該路語音的上20ms數據,或加入舒適噪聲。

                        4 小結

                        本文實現的基于PC的會議電話系統語音傳輸系統屬于VoIP系統,選擇RTP/RTCP實時傳輸協
                        議,利用JRTPLIB庫實現了語音的實時傳輸?;诰钟蚓W構建了語音傳輸服務器端和客戶端,實現了IP會議電話功能。

                        IP會議電話, JRTPLIB庫, RTP/RTCP協議

                        如沒特殊注明,文章均為好會通科技原創,轉載請注明來自 http://www.nuansatogel.com/archives/3662.htm.
                        ?

                        copyright 2004-2013     粵ICP備12061155號-1

                        Sitemap|XML|RSS|隱私政策|EN|
                        精品少妇白浆小泬60P,四虎免费精品视频,黑人大荫蒂BBWBBBAAss,国产麻豆一区二区三区精品视频