Application VoIP Infrastructure

SIP(session initiation protocol,議程初始協定)
定義在rfc3261,由IETF MMUSIC工作組開發的協議
描述如何設立網路電話呼叫,視訊會議,及其他多媒體連結
使用SDP(session description protocol,交談描述通訊協定),來描述通話功能及參數
單一模組,被設計成可與現存網路應用互動良好,ex可將電話號碼定義為url
與其他協議協同使用時,具有較強的靈活性
可建立雙方議程,多方議程(參與者皆可互動),多點傳送議程(一對多接收者)
支援call forking(同時把通話信號轉到不同的目的地),定位伺服器可回傳多個位置給使用者
議程中可含音訊視訊或資料
只處理session(議程)的設立,管理,結束
一種應用層協定,可在tcp,udp上操作,支援多種服務,文字為基礎(text-based)的仿http協定

缺點: 
 與現存電話系統信號協定間之互動較差,以及可能產生互相運作問題 
 SIP只是完整解決方案的一小部份

路由用的第五層協定
ENUM通訊協定 
 將E.164電話號碼轉換成URI,實際上是用DNS來儲存對應資訊,對應是1對多 
 E.164是PSTN裡所使用的ITU電話號碼標準
TRIP(telephone routing over ip,電話路由通訊協定)
 解決網路中如何找到使用者問題,定位伺服器使用TRIP來傳路由資訊的advertisement(通告)
 將電話網路分割為一組ITAD(ip telephone administrative domains,ip電話管理網域)
 各TRIP的路由通告內容代表的是各個ITAD對外的連絡點
 也就是說定位伺服器能告知另一個定位伺服器關於到達信令閘道器的路由,即可與另一個ITAD互連

SIP6個基本訊息型別,ascii文字表示訊息的第一行方法
invite,議程初始化:第二行的表頭描述訊息主體結構,含呼叫者功能,媒體型態,格式
ack,確定議程己初始化:(連結時三向握手法用)
bye,要求議程終止:任一端回應即終止
options,查詢主機功能:常在議程初始前用來查對方是否支援voice over ip
register,通知重導伺服器有關使用者的位置:訊息被送到一個負責記錄使用者所在地點的sip位置伺服器
cancel,取消等待中的查詢

SIP回覆代碼類型
1xx 訊息通知,請求處裡中尚為完成。(例如:Trying)
2xx 請求處裡成功。
3xx 重新導向,將請求訊息重新導向至另一個SIP元件。
4xx 客戶端錯誤,錯誤的原因在於請求端。可以矯正後重試。
5xx 伺服器端錯誤,錯誤的原因在於目的端。可以重試其他的location。
6xx Global Error(錯誤),請求失敗且無法重試。

ps
IETF MMUSIC(Multiparty MUltimedia SessIon Control,網際網路視訊會議的協定架構)
 SCCP(Simple Conference Control Protocol)則定義了連線管理的機制
 SDP和SAP(Session Announcement Protocol)定義了連線描述資訊的傳遞方式
 RTSP負責控制隨選類型應用傳遞即時資料的格式與程序
 SIP規範了會議開啟的方法與成員邀請的步驟
………………………..

MEGACO/H.248
ITU-U以ietf的MEGACO為基礎發展出H.gcp協定,也就是H.248,並於1999年6月與IETF達成合併協議

ietf的MEGACO(Media Gateway Control)及SIGTRAN(Signal Transport)
1999IETF以現有的MGCP及MDCP為範本基礎成立的兩個VoIP的工作團隊
MEGACO:負責Media Gateway的控制協定
SIGTRAN:負責另一個從MGC獨立出來的信令閘道SG(Signaling Gateway),針對PSTN電話SS7系統信令轉換及智慧型的Telephony Signaling進行研發
所以在MEGACO及SIGTRAN的架構中有三個重要系統元件,即MG、SG及MGC

MDCP(Media Device Control Protocol),AT&T所提出
MGCP(Media Gateway Control Protocol),IETF所提出
1998年底SGCP與另一個新興的VoIP協定IPDC(IP Device Control,針對集中式交換機及以IP為主的閘道之間使用)合併
擴充了原本SGCP中Call Agent的功能成為所謂的MGC(Media Gateway Controller)
MGCP架構中,MG是根據MGC所下的指令作對應動作,一個MGC可同時管理多個MG,在MG與MG間的傳輸以RTP/RTCP做為媒體傳輸的協定
MGCP即是MGC與MG之間聯繫的傳輸協定,且MGCP宣稱其協定能夠與原先的H.323協定互通,所以MG也具備了與H.323做協定轉換的功能
為協調單個呼叫的媒體路徑和性能,MGCP要依賴SDP(對話描述協議),該協議是MGCP規格的一部份
優點:
  特別適合於配置大型應用系統,因為其本身就用於解決大型系統的具體問題
  應用MGCP可以實現與SS7網路良好的整合,為呼叫處理提供更大的控制和流通量
  MGCP將媒體處理和信令功能分離,從而可由多個設備提供商開發更簡潔的系統。

SGCP(Simple Gateway Control Protocol)
Telcordia在1998年提出
由貝爾實驗室主導發展的。SGCP引進一種新型通話管理階層,可大幅減輕來自終端節點的發信情報負載,非常適合傳統電話手機使用;SGCP同時承諾降低伴隨使用H.323信號轉換及TCP/IP要求的延遲。
主要特色是將原本H.323中Gatekeeper及Gateway中執行Call Routing、Call Billing、話務建立及信令介面的功能單獨的獨立出來,成為另一個個別的執行單元,稱之為話務代理者(Call Agent),而這時候的Gateway只單純的負責媒體傳輸及編解碼、協定轉換的部分,被稱之為MG(Media Gateway)。
Call Agent及Gateway之間基本上是一個Client-Server structure(主從架構),話務建立是由Call Agent來對外做connect(連結),之後再由Call Agent下指令給MG,MG即產生相對應的動作,執行語音的轉換及傳輸。在SGCP中,Call Agent與MG之間即是以SGCP做為傳輸控制的協定。

…………………………………………………………………………………………

H.323
1996ITU(international elcommunications union,國際電信聯盟)發佈
1998修改後廣泛使用(視頻電話及多媒體會議傳輸協議H.32x中的一部分)
1998年1月發佈H.323v2
1999年9月發佈H.323v3
2000年11月17發佈H.323v4,加強scalability,services…等

閘道一邊網際網路採用H.323,另一邊電話網路採PSTN
架構完整的協定堆疊,減輕互相運作負擔,大型且複雜,訊息格式採二元
傳送用抽象語意表示法asn.1和基本編碼規則ber所編碼出來的二進位訊息
缺點:難以適應未來應用的大型,複雜,嚴格的標準,不能與網際網路相容

h.323運作
1PC找閘道管理器:廣播一個UDP,閘道器回應時便知道其IP位址
2PC傳RAS許可訊息:向閘道管理器要求頻寬
3PC與閘道管理器建立TCP連結:呼叫建立程序使用現有的電話線路協定(因屬連結式導向)
4PC透過TCP連結傳送Q.931 SETUP訊息(被呼叫的電話號碼或IP和PORT)
5閘道管理器回傳Q.931 CALL PROCEEDING訊息(表正確接收到)後便轉送SETUP訊息給閘道器
6閘道器呼叫終端機(電話所屬的),並傳回Q.931 ALERT訊息(告訢PC己撥號)
7另一端拿起電話時終端機送出Q.931 CONNECT訊息(通知PC己建立)
8實體層連結建立後,封包會繞過閘道管理器到閘道器
9H.245開始協商呼叫的參數,每端一開始都先宣告其能力
10了解雙方能力後,便建立兩個單一方向的資料通道,並指定編解碼器及其他參數
11資料流可開始用RTP(RTCP所管)
h.323 結束
1任一方掛斷時,便利用Q.931呼叫信號通道拆斷連結
2呼叫端以RAS訊息聯繫閘道管理器,以釋放頻寬或進行另一通呼叫

H.323標準通訊協定分層
信令
 層級5:H.225.0-Q.931,H.250-annex G,H.245,H.250 
 層級4:TCP,UDP
註冊: 
 層級5:H.225.9-RAS 
 層級4:UDP
語音audio:
 層級5:G.711,G.722,G.723,G.723.1,G.728,G.729
 ps:g系列在最後補充
 層級5:RTP,RTCP 
 層級4:UDP
影像video: 
 層級5:H.261,H.263*,H.264 
 層級5:RTP,RTCP 
 層級4:UDP
資料: 
 層級5:T.120 
 層級4:TCP
安全: 
 層級5:H.235 
 層級4:TCP,UDP
全部層級3:IP,RSVP,IGMP
其他 
 電路交換業務互操作的H.246 
 用於大型會議的H.332 
 用於補充業務的H.450.1、H.450.2和H.450.3 
 用於ISDN的H.320,用於B-ISDN的H.321和用於GSTN終端的H.324

H.245:讓終端機能夠協商將採取的協定種類,並負責連結其他方面的協商,定義Call Control(呼叫控制)含請求,應答,信令,指示 
  負責通信能力協商,打開/關閉邏輯信道,及會議中的控制等。多點控制器應遵循H.245控制協議對會議進行管理
H.225:和控制lan終端點的gatekept(閘道管理器),溝通的協定,定義Call Signal(呼叫訊號)
H.225.0含三個部分(RAS、Q.931 and RTP/RTCP)

ITU Q.931格式:建立連結,釋放連結,提供撥號聲響.鈴聲,標準電話的其他部份 
  當閘道管理員回應允入許可,端點才有機會再透過Q.931所定義的Call Setup訊息,請求與對方端點建Call Signalling Channel
RAS(registration/admission/status,註冊/許可/狀態):管理pc和閘道管理器的通道,允許pc加入及離開,要求,還回頻寬 
 尋找閘道管理器信號:GRQ(Gatekeeper Request),GRJ(Gatekeeper Reject),GCF(Gatekeeper Confirm) 
 端點向閘道管理登記信號:RRQ(Registration Request),RCF(Registration Confirm),RRJ(Registration Reject) 
 消取登記信號:URQ(Unregistration Request),UCF(Unregistration Confirm),URJ(Unregistration Reject) 
 端點向閘道管理器呼叫的信號:ARQ(Admission Request),ACF(Admission Confirm),ARJ(Admission Reject) 
 向閘道管理器要地址翻譯功能:LRQ(Location Request),LCF(Location Confirm),LRJ(Location Reject) 
 端點或閘道管理器退出:DRQ(Disengage Request),DCF(Disengage Confirm),DRJ(Disengage Reject) 
 向閘道管理器改變頻寬:BRQ(Bandwidth Request),BCF(Bandwidth Confirm),BRJ(Bandwidth Reject) 
 閘道管理器查狀態:IRQ(Info Request),IRR(Info Request Response),IACK(Info Request Ack),INAK(Info Request Nak) 
 向閘道器報告資源狀況:RAI(Resource Availa-ble Indication),RAC(Resource Available Confirm)
RTP:用來載送即時的媒體資料並加以算出其在網路上傳送時的統計特性,提供給上層調節媒體流量之用,用RTCP管理
T.120:進行data conference(數據傳輸),在多媒體通訊中提供點對點或點對多點視訊會議,電子白板,檔案交換,資料庫存取等服務。
T.38:傳真部分

Audio Codecs,Voice Compression(話音壓縮)技術
VOIP 技術的基礎
G.711:速率64Kbps,用PCM,3.4KHz的語音壓縮用來為語音編碼及解碼的協定
G.721:速率32Kbps,用ADPCM
G.722:速率48、56、64 Kbps,用SB-ADPCM,7KHz的語音壓縮
G.723:速率40Kbps,32Kbps,24Kbps,16Kbps ADPCM,
G.723.1:速率6.3Kbps,5.3Kbps,雙位元率,(版本1用ACELP,MPCELP,版本2用CELP)含30ms声音,总延迟时间37.5 ms
G.724:ADPCM
G.726:速率40Kbps,32Kbps,24Kbps,16Kbps,用ADPCM,含0.125 ms声音,总延迟时间0.125 ms
G.727:速率40Kbps,32Kbps,24Kbps,16Kbps,用embedded-ADPCM
G.728:速率16Kbps,用LD-CELP,含0.625 ms声音,总延迟时间0.625ms,3.4KHz的語音壓縮,可提供與傳統電話(POTS)一樣的語音品質
G.729:速率8kbps,用CS-ACELP,含10 ms的声音,总延迟时间是15 ms,1995.11,ITU批准的新話音壓縮標準,品質與32KbpsADPCM相同。
G.729A:速率8kbps,用CS-ACELP,含10ms声音,总延迟时间15ms較不複雜
其他:G7XX..等,使用不同演算法,在品質和品寬間採取不同決擇

PCM(pulse code modulation,脈衝碼調變技術)
64kbps語音編解碼,代表:G.711 (信號每秒鐘取樣8000次(8k/sec);每次取樣為8bit,總共64 kbps
模擬信號,進行抽樣,並把抽樣值量化,通過編碼轉換成數字信號的調變方式。
TDMA(多時分工存取)中的一種主要方式。利用脈碼調變可以用兩對導線同時傳送多路電話。
應用在公眾交換電路,電話網路,通話語音傳送信號碼
步驟有(1)取樣(2)量子化(3)編碼
缺點是所佔用的頻寬太大

DPCM(差動式脈碼調變)
pcm改良,預測性編碼
DM代爾他調變,pcm改良,預測性編碼

ADPCM(Adaptive Differential Pulse Code Modulation,差值式脈衝編碼調變)
提供了40Kbps, 32Kbps,24Kbps, 16Kbps語音編解碼,代表:G.721,G.723,G.726
編碼方式只採取相鄰兩樣本之間差別作紀錄, ADPCM 所需的BIT RATE(位元比)較標準PCM為低,就是說ADPCM儲存同一聲音所需的空間比較小,單一CD-ROM儲存資料使用 ADPCM 格式可從1小時容量提升至16小時,CD-ROM XA 與 CD-I 均使用 ADPCM 編碼.ADPCM 並且可以動態的調整紀錄的大小以適應瞬間較大的變化, 使採取樣本時的失真較小. 

LD-CELP(Low Delay-celp,低時延碼激勵線性預測編碼)
16kbit/s,G.728語音編碼標準演算法,提供較低的編碼延遲,一個傳統的CELP編碼延遲大約是.60ms,LD-CELP則是約2〜4ms 不等
在CELP演算法的基礎上,採用後向自適應線性預測、50階合成濾波、短激勵向量(5個樣值)等改進方法,從而達到高品質和低時延的目的
backward-CELP(後向自適應線性預測)
代表G.727,G.728這一系列的標準重視編解碼的延遲時間

CELP(Code Excited Linear Prediction,碼激勵線性預測編碼)
近10年來最成功的語音編碼演算法。CELP語音編碼演算法用線性預測提取聲道參數,用一個包含許多典型的激勵向量的碼本作為激勵參數,每次編碼時都在這個碼本中搜索一個最佳的激勵向量,這個激勵向量的編碼值就是這個序列的碼本中的序號。
已經被許多語音編碼標準所採用,美國聯邦標準FS1016就是採用CELP的編碼方法,主要用於高品質的窄帶語音保密通信。
8Kbps語音編解碼,以LPC(Linear Prediction Coding)為骨幹加上VQ(Vector quantization)技術混合而成的新技術,北美的CTIA (CellularTechnology Industry Association)即提議將之訂為數位式行動電話之標準

ACELP(Algebraic Code Excited Linear. Prediction,算術運算碼激發線性預測)
6.3Kbps,5.3Kbps語音編解碼,代表G.723.1
將數碼資料中的話音訊號加以數碼化及壓縮的算法

CS-ACELP(Conjugate Structure-Algebraic Code Excited Linear Prediction,對生結構代數碼激線性預測)
4.8 Kbps語音編解碼,代表G.729,應用CELP技術,初始是要應用於軍方的保密電話,但後來不僅用於軍中
標準PCM或線性PCM的話音採樣基礎上,這個算法提供了優良的音質,且延時很小,但需要強大的運算處理能力。
NSA 的 Federal Standard 1016

MELP、STC
LPC vocoder 技術
2.4 Kbps語音編解碼器,語音品質多半只強調語意之傳達,在音色方面較無法顧及,通話雙方可能無法辨認彼此的個人聲音特色。