VoIP技術的最新發展 探討通訊協定及語音壓縮處理技術

2005-02-23
寬頻網路普及後,台灣網路廠商下一階段看好的新產品商機,將是所延伸出來的網路應用產品,網際網路語音通訊(VoIP)就是其中一股熱潮。 本篇文章首先由認識VoIP談起,而後瞭解現今VoIP主流的通訊協定,再來了解網路電話語音壓縮標準及數位音訊處理技術,最後綜合上述討論作一結論 ...
寬頻網路普及後,台灣網路廠商下一階段看好的新產品商機,將是所延伸出來的網路應用產品,網際網路語音通訊(VoIP)就是其中一股熱潮。  

本篇文章首先由認識VoIP談起,而後瞭解現今VoIP主流的通訊協定,再來了解網路電話語音壓縮標準及數位音訊處理技術,最後綜合上述討論作一結論。  

 

近年來隨著VoIP技術日趨成熟與寬頻基礎建設日漸完整,VoIP市場也快速起飛。當今電信服務市場最熱門的話題之一就是VoIP,它可以提供大眾語音通訊新選擇。今日語音的電信服務市場是交換式(circuit switch)與分封式(packet switch)兩種網路混合服務局面。換言之,為迎合VoIP潮流,傳統電信業者必須重新思考其服務的定位。  

VoIP通話控制通訊協定  

VoIP主要精神是利用語音訊號壓縮技術,將數位化的聲音訊號壓縮至適合網路傳輸的大小;網路接收端收到該聲音封包之後,透過同樣的壓縮技術解壓縮之後,在適當的時機透過播音設備如話筒或耳機,播出該聲音。但是在這些技術開始運作之前必須有一套機制流程,說明如下:  

1.建立連線:透過TCP/IP網路層的協助,能讓撥電話端(網路傳送端)及接電話端(網路接收端)建立網路控制頻道(Control channel)。  

2.溝通彼此的資訊及通訊能力:藉由控制頻道溝通彼此的資訊(如使用者姓名、聯絡方式、電子郵件位址等)及通訊能力(如支援的語音訊號壓縮標準及相關參數、聲音通道的位址及埠數等),以便之後能建立適當的語音頻道來傳輸聲音封包。  

3.建立聲音通道:溝通完彼此的通訊能力之後,通話雙方就可以協調互相可以接受的語音訊號壓縮標準及對方的通道位址來建立聲音通道。未來的語音封包即可透過此一通道來傳輸及交換。  

4.通話控制服務:在通話的過程中可能會遭遇建立連線前無法預測到的情況,如網路壅塞、封包遺失嚴重等。若通話雙方偵測到以上情況的發生,便可利用控制頻道傳送控制命令,如要求降低聲音位元率(bit-rate)、更換語音壓縮標準等。同時網路電話也可仿照傳統電信業者提供如話中插撥、通話轉接等服務。  

5.切斷連線:當通話結束時,雙方透過控制頻道送出切斷連線的要求,可以作為結束計費的依據。  

以上所述的機制,各家廠商可以自行設計,但是由於開發網路電話的廠商非常多,消費者所使用的產品可能來自不同的設計團隊;不同的網路電話如果因為不同的廠商所開發而導致無法互通,將會造成技術推廣的一大障礙。因此一套標準的通話控制協定的制定,讓元件開發者有共通的依據,以開發各項VoIP的相關應用產品,是十分重要的。  

VoIP通話控制協定中,目前較普遍應用的有:ITU-T Re-commendation H.323、Media Gateway Control Proto-col(MGCP,RFC 3435)以及Session Initiation Proto-col(SIP,RFC 3261)。這3項通訊協定定義了通話建立、通訊能力交換及通話控制服務的流程;對網路電話的業者而言,初期需針對市場需求及產品定位規格,開發適合的通訊協定,之後才針對不同通訊協定如何互通的議題下工夫,來擴張產品市場,以期更能符合顧客的需求。  

如圖1所示,SIP通訊協定可執行在TCP及UDP網路層,MGCP通訊協定僅可執行在UDP網路層,而H.323通訊協定中,連線建立 (H.225.0/Q.931)與控制訊號(H.245)部分執行於TCP網路層,而註冊及管理模組(H.225.0/RAS)則執行於UDP網路層。以下章節便針對這三種通訊協定標準作介紹。  

ITU-T H.323  

H.323通訊協定是由ITU-T(International Telecommunication Union Telecom Standardi-zation)於1995年5月提出,於1996年推出第一版「Visual telephone systems and equipment for local area networks which provide a non-guaranteed quality of service」,到2003年7月推出第五版「Packet-based multimedia communications systems」並持續開發中。此通訊協定為目前以網路為基礎的多媒體通訊標準中,最被通訊產品所廣泛採用的依據。  

在這份標準文件中描述了終端機和其他系統成員如何在以封包為基礎的網路(PBN,Packet Based Network)上,彼此交換多媒體聲音、影像及資料等即時訊息。H.323架構定義了連線的建立及結束流程、影音及資料等多媒體會議的交換方式。  

如圖2所示,H.323系統組成元件包括了終端機(Terminals)、閘道轉譯器(Gateway)、閘道管理員(Gatekeeper)及多點控制單元(MCU,Multipoint Control Unit)等。簡述如下:  

1.終端機:H.323終端機扮演著用戶端的角色,須支援以下功能:  

‧連線訊號通訊協定(H.225.0 Call signaling protocol)。和閘道管理員建立通道,經由此通道向閘道管理員註冊並接受其管理,同時和遠端終端機或伺服器建立連線通道用以建立連線。  

‧多媒體控制訊號通訊協定(H.245 Control protocol)。於連線完成後,建立控制通道,交換通話雙方的多媒體通訊能力並開啟多媒體通道;於通話過程當中可因應使用者需求調整通道品質或重新開啟多媒體通道。  

‧多媒體資料即時傳輸及控制通訊協定(RTP/RTCP)。負責傳送及接收即時多媒體資料,於此通訊協定的封包標頭(Packet header)內容記載有關所附載的多媒體資料即時資訊,如時間標籤(Time stamp)、序號(Sequence number)及封包結尾位元(Mark bit)等。  

‧語音壓縮技術(G.711,G.723.1 ,G.729)。將語音資料透過壓縮技術,編製成低位元率的資料流以利於網路傳輸。  

‧影像壓縮技術(H.261,H.263),非必要。將影像資料透過壓縮技術,編製成低位元率的資料流以利於網路傳輸。影像壓縮於H.323標準之內為非必要的技術,若產品支援此項功能即成為影像電話,通話雙方可即時看到彼此的畫面。  

2.閘道轉譯器:閘道轉譯器提供標準轉換的功能,可包括:  

‧異質網路環境轉換。例如可提供封包交換網路(packet switched network:IP network)及電路交換網路(circuit switched network:PSTN network)的資料轉換。  

‧通訊協定轉換。例如可提供H.323通訊協定和非H.323通訊協定(如SIP、MGCP)的網路電話互通的功能。  

‧多媒體壓縮技術轉換。可提供多媒體壓縮技術的轉換功能,如影像壓縮技術的H.261轉H.263、語音壓縮技術的G.711轉G.723.1等。  

3.閘道管理員:閘道管理員在H.323系統中,為非必要的元件,但是,一旦此元件存在的話,則所有的其他成員都必須要向閘道管理員註冊 ,並且接受它的管理。閘道管理員可提供以下幾種服務:  

‧位址轉換(Address translation)。閘道管理員管轄區內的用戶會向管理員註冊別名(Alias name)及網路位址,如此各成員間即可透過閘道管理員的位址轉換(別名,如電話號碼,轉換為網路位址)功能來建立連線,如此較符合用戶使用傳統電話的習慣。  

‧允入控制(Admission control)。用戶在建立連線或接受連線要求之前,必須經由閘道管理員的同意,如此方便閘道管理員作區域管理。  

‧頻寬控制(Bandwidth control)。閘道管理員有權因應實際網路環境,要求用戶提高或降低頻寬的使用情況。  

‧區域管理(Zone management)。  

‧連線控制訊號(Call control signaling),非必要。閘道管理員可要求用戶將連線控制訊號(H.225.0/Q.931、H.245)經由管理員轉送而非用戶間彼此直接溝通。  

‧連線驗證(Call authorization),非必要。  

‧頻寬管理(Bandwidth management),非必要。  

‧連線管理(Call management),非必要。  

4.多點控制單元:H.323系統除定義點對點(peer-to-peer)的通話方式之外,透過多點控制單元的輔助,易能完成三點以上的會議功能。多點控制單元包含以下兩個子模組:  

‧多點控制模組(Multipoint Controller,MC)。提供多點控制功能。  

‧多點處理器模組(Multipoint Processor,MP),非必要。提供多點多媒體資料的接收與處理。  

如圖3所示,H.323標準所定義的範圍屬傘狀架構,規範了以下數個模組:  

1.媒體(Media)模組:  

‧影像壓縮標準:H.261、H.263。  

‧語音壓縮標準:G.711、G.723.1、G.729。  

‧即時資料傳輸標準:RTP/RTCP。  

2.資料會議(Data conferencing:T.120)模組  

3.連線控制訊號(Call control signaling)模組:  

‧H.225.0/RAS:和閘道管理員的註冊及管理通訊協定。  

‧H225.0/Q.931:連線建立通訊協定。  

‧H.245:通訊能力交換、建立多媒體通道及會議管理功能。  

圖4描述了H.323系統連線架構及訊號流程。H.323成員間可以透過連線控制訊號模組(H.225.0/Q.931及H.245)建立點對點連線,或透過RAS模組和閘道管理員溝通並接受其管理,透過閘道管理員的轉址服務,成員可彼此用別名溝通,較符合一般使用習慣。若是要和非H.323的網路電話互通必須仰賴Gateway協調,才能成功。  

如圖5所示,H.323成員間建立通話流程可分為五大步驟:  

‧Phase A:利用H.225.0/RAS及H.225.0/Q.931通訊協定建立連線。  

‧Phase B:利用H.245通訊協定建立通訊通道並交換彼此的通訊能力。  

‧Phase C:開啟影音通道,透過RTP/RTCP通訊協定交換多媒體資料。  

‧Phase D:透過連線通道、控制通道提供加值服務。  

‧Phase E:結束通話,關閉所有通道並中斷連線。  

MGCP  

MGCP由IETF於1998年10月提出,於1999年10月發表(RFC 2705),目前最新版本為2003年1月的RFC 3435。如圖6所示,MGCP所應用的網路環境屬於主從式架構(Master-Slave),伺服器端稱之為Call Agent(CA)或Media Gateway Controller(MGC),用戶端稱之為Media Gateway(MG),MGCP就是Call Agent用以控制Media Gateway所選用的通訊協定。MGCP主從式架構的主要元件有2個:  

1.Call Agent(CA)或稱為Media Gateway Controller(MGC):提供連線訊號交換、控制訊號交換;需擁有智慧型的State Machine來根據Media Gateway所發出的訊息作適當的反應及處理。Call Agent會根據不同的State發出不同的命令(Command),同時接受Media Gateway送回的回應(Response)。  

2.Media Gateway(MG):Media Gateway介接的兩端分別為封包交換網路(Packet switched network)及電路交換網路(Circuit switched network),所以Media Gateway必須提供異質網路的轉譯工作。  

Media Gateway必須能解譯並執行Call Agent所發出的命令(Command);同時也必須針對類比電話產生的事件,如拿起話筒、撥號、掛上話筒等,向Call Agent送出通知命令。以圖6來簡單解釋MGCP的通話流程:  

‧當phone A拿起話筒時,Media Gateway A會向Call Agent發出訊號。  

‧Media Gateway A會對phone A產生撥號音,並收集使用者撥打的號碼。  

‧Media Gateway A將收集到的號碼傳送到Call Agent。  

‧Call Agent決定該將這通連線要求轉送給誰。  

‧Call Agent發出Command到Media Gateway B。  

‧Media Gateway B收到該Com-mand後,向phone B產生震鈴訊號。  

‧phone B拿起話筒後,向Media Gateway B發出拿起話筒(Off-hook)事件;Media Gateway B隨即向Call Agent送出通知命令。  

‧Call Agent向Media Gateway A及B發出命令,要求雙方自行建立RTP通道,以傳送語音封包。  

‧開始通話。  

MGCP在連線建立的過程中,Media Gateway和Call Agent會彼此交換不同的訊息,這些訊息是由一個command及一個response成對所組成,稱之為一個transaction。雙方每收到一個 command時必須回應一個response,此對command及response共用相同的transaction ID,用以辨別是否為同一組transaction。圖7描述了Media Gateway或Call Agent在接收到Command之後,如何利用transaction ID來決定後續的動作。  

MGCP通訊協定利用不同的Commands來完成建立連線的流程,如圖8所示。以下分別介紹各個Commands所代表的意義:  

1.EndpointConfiguration:Call Agent向Gateway發出EndpointConfiguration命令,指示Gateway有關類比電話線路的編碼特性(如A-law或μ-law)。  

2.NotificationRequest:Call Agent向Gateway發出NotificationRequest命令,指示Gateway監視特定電話機的某些特定事件(如DTMF tones、On-hook/Off-hook)。  

3.Notify:當Call Agent要求Gateway監視的特定事件發生後,Gateway會向Call Agent發出Notify命令,知會Call Agent。  

4.CreateConnection:Call Agent利用發出CreateConnection命令,命令電話機雙方開啟通話連線。  

5.ModifyConnection:Call Agent利用發出ModifyConnection命令,來修正先前開啟的通話連線參數。  

6.DeleteConnection:Call Agent利用發出DeleteConnection命令,來結束一個存在的通話連線;Gateway也可發出DeleteConnection命令代表此一連線將不再存在。  

7.AuditEndpoint/AuditConnection:Call Agent利用AuditEndpoint/AuditConnection命令,來審查某一特定電話機或通話連線的狀態。  

8.RestartInProgress:Gateway利用RestartInProgress命令知會Call Agent有一新的電話機連結上Gateway,或是有一電話機中斷和Gateway的連結。  

在網路上的任何程式都有可能發送MGCP command給MGCP endpoint,如果任何未經授權的終端都可利用MGCP建立未經授權的通話,將有可能會影響經授權的通話連線品質及權益;若希望MGCP的訊息能架設在安全的網路環境之上,可以利用IP security architecture(RFC 2401),也可使用IP Authentication Hea-der(RFC 2402)、或是IP Encapsulating Security Payload(RFC 2406)等標準(圖9)。  

SIP  

SIP為IETF(Internet Engineering Task Force)於1999年3月制定,編號為RFC 1943,目前最新的版本為2002年6月的RFC 3261。SIP為網際網路應用層(Application Layer)的訊號通訊協定,定義了如何開啟(Initial)、修改(Modify)及終結(Terminate)即時性的多媒體通話。如圖10所示, SIP的組成元件分別簡述如下:  

1.User Agents:起始(Initial)、接收(Receive)及結束(Terminate)一通電話連線的應用程式;User Agent可再細分為User Agent Client及User Agent Server:  

‧User Agent Client(UAC)-起始連線的應用程式。  

‧User Agent Server(UAS)-接收連線的應用程式。無論UAC或是UAS皆可中斷連線。  

2.代理伺服器(Proxy Server):SIP架構中的居中媒介應用程式。Proxy Server提供接收SIP訊息的服務,經由解譯之後可自行處理或是經由轉譯之後再轉送給其他伺服器。  

3.位置伺服器(Location Server):提供被呼叫端目前所在位置給代理伺服器或轉向伺服器使用。  

4.轉向伺服器(Redirect Server):接收SIP messages之後,提供被呼叫端目前可能所在位置給呼叫者;和代理伺服器不同的是轉向伺服器不會自行啟動一個連線;和UAS不同的是轉向伺服器不會接受或結束一個連線。  

5.註冊伺服器(Registrar Server):可接受REGISTER request的伺服器;註冊伺服器也可提供認證的服務;通常註冊伺服器和代理伺服器或轉向伺服器位於同一位置上;而註冊伺服器也經常提供位置伺服器的功能。  

SIP各個元件之間是透過SIP messages來互相溝通及傳遞訊息;SIP messages包括了Methods及Responses,以下詳列出各個messages內容:  

1.SIP Methods  

‧INVITE:透過邀請使用者加入會議來開啟一個通話連線。  

‧ACK:當用戶端發出INVITE request要求和對方建立通話連線,而對方回傳final response時,必須利用ACK request通知對方作確認的動作。  

‧BYE:結束一通連線。  

‧CANCEL:取消之前所發出的INVITE request。  

‧REGISTERS:註冊用的request。  

‧OPTIONS:用來詢問Server的通訊能力。  

‧INFO:通常用來傳遞撥出的資訊,如DTMF digits。  

2.SIP Responses(2XX~6XX稱為final responses)  

‧1XX─Informational Messages:資訊性消息。  

‧2XX─Successful Responses:要求成功。  

‧3XX─Redirection Responses:轉發新的連線要求到被呼叫端的其他位址。  

‧4XX─Request Failure Responses:要求失敗。  

‧5XX─Server Failure Responses:伺服器發生錯誤。  

‧6XX─Global Failure Responses:其他錯誤發生。  

圖11描述了SIP methods與responses之間的互動關係。發出request的為UAC,而接收request的則為UAS;UAS收到request之後必須依情況作出適當地回應;當UAC收到UAS回應的response後,若之前所發出的request為INVITE,且收到的回應為final response(2XX~6XX)時,則UAC必須發出ACK request作確認,除此之外,UAC可不作任何回應。  

圖12以一個簡單的例子解釋SIP系統中的各個元件之間,如何利用前面介紹的messages來建立及結束一個通話連線:  

‧User Agent A發出INVITE request到Proxy Server A,要求和被呼叫端User Agent B建立通話。  

‧Proxy Server A將此INVITE轉送到Loca-tion/Redirect Server,藉此詢問User Agent B目前所在位址。  

‧Location/Redirect Server回應User Agent B的代理伺服器Proxy Server B位址,Proxy Server A收到此回應之後,重新送出INVITE到Proxy Server B處。  

‧Proxy Server B收到INVITE request之後,同樣詢問Location/Redirect Server 被呼叫端User Agent B目前所在位址;Proxy Server B收到回應之後,發出INVITE request到User Agent B。  

‧User Agent B先回應180 Ringing表示電話已響,待使用者接起電話之後,User Agent B則回應200 OK表示連線建立成功。  

‧User Agent A收到200 OK的回應,且由於此final response是針對之前送出INVITE request的回應,所以User Agent A必須送出ACK request作確認收到。  

‧此時雙方即可建立RTP多媒體通道,用以交換語音封包,進行通話。  

‧最後透過BYE request來結束通話。  

語音壓縮標準  

在網路電話的應用中,除了通話通訊協定的標準外,最重要的莫過於語音的壓縮技術。語音經數位壓縮之後,位元率可介於5k~64kbps之間,可因應不同的網路環境採用不同的壓縮技術,可在頻寬使用率及失真率之間找到恰當的平衡點。目前應用於網路電話的語音壓縮標準主要有以下幾項:  

1.ITU-T G.711 A-law/μ-law:ITU-T G.711是將電話語音編碼在64kbps頻道上的國際標準。採用Pulse Code Modulation(PCM)的機制,運作在8kHz的採樣頻率;每個採樣使用8個位元。G.711的編碼頻率介於0~4kHz;G.711有兩種表現方式,A-law及μ-law;A-law為目前國際電路所採用的標準。  

2.ITU-T G.723.1 5.3/6.3k:ITU-T G.723.1語音編碼技術是一種應用於多媒體通訊,編碼位元率為5.3kbps和6.3kbps的雙碼率編碼方案。G.723.1標準是國際電信聯盟 (ITU)制定的多媒體通訊標準中的一個部分,可以應用的系統包括H.323、H.324等多媒體通訊系統。目前該演算法已成為網路電話系統中的必選演算法之一。  

3.G.723.1編碼器的frame長度為30ms。G.723.1編碼器首先對語音信號進行傳統電話頻寬的濾波,再對語音信號用傳統8KHz速率進行抽樣,並變換成16bit線性PCM碼,作為該編碼器的輸入。G.723.1系統用LPAS編碼方法將語音信號編碼成frame。  

編碼器能夠產生兩種速率的語音流量。其中,5.3kbps碼率編碼器採用多脈衝最大似然量化技術(MP-MLQ),每個frame壓縮成20bytes; 6.3kbps碼率編碼器採用代數碼激勵線性預測技術(ACELP),每個frame壓縮成24bytes。編碼器和解碼器都必須支援此兩種速率,並能夠在frame間對兩種速率進行轉換。G.723.1採用了執行不連續傳輸的靜音壓縮(Silence Compression),這就意味著在靜音期間的資料流中加入了人為的雜訊。除了保留頻寬之外,這種技術使發送端的數據機保持連續工作,並且避免了載波信號的時通時斷。  

4.ITU-T G.729A/B:G.729語音壓縮採用的演算法是共軛結構的代數碼激勵線形預測(CSACELP),是基於CELP編碼模型的演算法。由於G.729 編解碼器能夠實現很高的音質和低運算的演算法,因此被廣泛地應用於資料通訊的各個領域,如網路電話和H.323系統等。G.729是在語音信號8KHz取樣的基礎上,16bit線性PCM後進行編碼,壓縮後資料速率為8kbps,具有相當於16:1的高壓縮率。  

語音處理技術  

除了以上介紹的語音壓縮技術之外,還有些語音處理技術能有效提升聲音的品質及免除ㄧ般使用者對於語音數位化之後所造成的不適應。  

1.VAD/CNG(Voice Activity Detector/Com-fort Noise Generation):聲音啟動偵測器可在很多地方找到應用,如語音壓縮技術、網路電話閘道器、數位答錄機等。某些語音壓縮技術如G.729B和 G.723.1都有靜音壓縮(Silence Compression)的機制,此機制可用於當發話端沒有說話的時候傳送靜音壓縮封包,接收端收到之後可以藉此產生舒適背景音(Comfort Noise Generation),使得聽者不會感到聲音時通時斷而覺得突兀,符合傳統電話的使用習慣。但是也有一些語音壓縮技術,如G.726還是需要VAD的輔助,能讓編碼的效果更高,尤其是應用在網路電話等產品上。VAD應用於發話傳送端,而CNG則是應用於接收端,兩者功能相輔相成,缺一不可。  

2.AEC(Adaptive Echo Cancellation):在電話網路中由於阻抗不匹配(impedance mismatching),部分的訊號由傳輸路徑反射回接收端而造成回音的效果,尤其在延遲較長的路徑上更會造成干擾。可調式的回音消除系統即是用來對付電話網路上的回音問題。ITU-T G.165/G.168即指導該如何實現線性回音消除系統。回音消除系統應包含以下4個主要元件:  

‧Adaptive Transversal Filter。  

‧Double-Talk Detector。  

‧Non-Linear Suppressor。  

‧Tone Disabler。  

符合使用者習慣最重要  

SIP和H.323屬於較相近且可比較的通訊協定,他們都提供連線建立、連線中斷、連線控制、通訊能力交換及通信基礎服務等功能。MGCP是由Call Agent控制Media Gateway的通訊協定。在網路電話的系統中,MGCP可和SIP及H.323共同運作;SIP和H.323提供連線控制的功能,而MGCP則用來管理媒體閘道器建立多媒體通道。  

網路電話運用數位語音壓縮技術將語音資料壓縮至適合網路傳輸的位元率。不同的壓縮技術可應用在不同的網路環境以達到最好的效果。語音數位化之後和傳統使用電話的習慣會有些許不同,透過AEV/VAD/CNG等語音處理技術,可讓語音數位化造成的不適降至最低。  

網路電話除了在通訊協定的互通、語音壓縮技術的提升、網路環境基礎建設的速度及穩定度外,最重要的要符合傳統電話的使用習慣,現代人使用電話的習慣數十年,很難叫大眾更改簡單方便的模式,而去配合高科技但不友善的操作介面,開發網路電話產品在這方面才是最要注意的地方。  

(本文作者任職於工研院電通所)  

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!