跳轉到內容

計算機網路技術與服務/VoIP

來自Wikibooks,開放世界中的開放書籍
Previous page
VPN
計算機網路技術與服務 Next page
服務質量
VoIP

語音 over IP (VoIP) 是一套透過 IP 網路傳輸語音呼叫以及多媒體資料的技術。

電路交換與分組交換

[編輯 | 編輯原始碼]

電路交換電話網路

[編輯 | 編輯原始碼]

在傳統的電路交換電話網路(POTS)中,語音透過分配靜態電路來傳輸,其中語音以 64 Kbps 的位元率進行取樣(根據取樣定理)。使用這種網路有一些限制

  • 無壓縮:儲存位元沒有意義,因為每個電話呼叫都靜態分配了 64 千位元每秒;
  • 必須分配整數個電路以支援多媒體或多通道通訊;
  • 無靜音抑制:即使在暫停期間也會傳輸語音樣本,並且電路保持分配狀態;
  • 無統計複用:無法根據當前需求在多個呼叫之間動態共享頻寬;
  • 信令過程(鈴聲、忙音、空閒音等)是電路分配所必需的。

分組交換資料網路

[編輯 | 編輯原始碼]

分組交換資料網路(IP)中,語音透過資料包動態傳輸,這使得新的功能成為可能

  • 更好的壓縮,以便減少資料包數量;
  • 高質量通訊:位元率不再限於 64 Kbps;
  • 靜音抑制:在暫停期間不傳輸資料包;
  • 統計複用:頻寬分配靈活;
  • 信令過程不再分配靜態資源;
  • 漫遊性:當用戶移動時,可以透過相同的電話號碼或帳戶聯絡到他。

但是,引入了一個新問題:在分組交換網路中無法真正保留資源→很難保證語音呼叫的服務質量,因為資料包可能會延遲到達或丟失

  • 延遲:ITU 定義了一些端到端延遲的參考值
    • 0-150 毫秒:這對人耳是可以接受的;
    • 150-400 毫秒:這僅適用於洲際呼叫;
    • > 400 毫秒:這是不可接受的,會影響對話;
  • 丟失:人耳最多可以容忍 5% 的資料包丟失而沒有問題。
TCP 或 UDP?

UDP 和 TCP 資料包(理論上)同時到達接收方;唯一的區別是 TCP 必須等待確認資料包→UDP 將是最自然的選擇。事實上,Skype 通常使用 TCP,因為它更容易透過 NAT 和防火牆,即使有時由於滑動視窗機制可能會出現短暫的靜音。

從電路交換到分組交換的遷移

[編輯 | 編輯原始碼]

傳統的電路交換網路(POTS)可以逐步遷移到基於 IP 的分組交換網路

  1. 電話 over IP(ToIP)網路:網路邊緣的終端仍然以電路交換的方式工作,但網路骨幹基於 IP,並在內部執行分組化→由於 VoIP 使用對使用者是隱藏的,因此終端使用者無法使用其他多媒體服務。
    新的電信運營商可以將其電話網路構建為基於 ToIP 的網路→電信運營商可以透過構建和維護單個整合基礎設施來節省資金;
  2. 混合網路:一些終端是 VoIP,另一些仍然是傳統的;
  3. IP 網路:所有終端都是 VoIP,但智慧網路服務(例如免費電話號碼)仍然是傳統的,因為它們執行良好,網路運營商不願對其進行現代化改造;
  4. 僅 IP 網路:所有終端都是 VoIP,所有智慧網路服務都透過 IP 工作。

閘道器

[編輯 | 編輯原始碼]

閘道器是一種允許將 POTS 網路連線到 IP 網路的裝置。它由三個元件組成

  • 媒體閘道器:它能夠將來自 POTS 網路的語音樣本轉換為 IP 網路的資料包,反之亦然;
  • 信令閘道器:它能夠將來自 POTS 網路的信令音轉換為 IP 網路的信令資料包,反之亦然;[1]
  • 閘道器控制器:負責監督和監控整個閘道器,透過控制流量質量、執行授權、執行身份驗證(計費)、查詢目標等。
閘道器控制器本身在僅 IP 網路中仍然有用。

VoIP流建立步驟

[編輯 | 編輯原始碼]

在傳送端

[編輯 | 編輯原始碼]

接收方應執行以下步驟

  1. 取樣
  2. 編碼
  3. 分組化
  4. 排隊
  5. 傳輸

取樣允許將語音從模擬訊號轉換為數字樣本。取樣以靈敏度(位元)、取樣頻率(赫茲=1/秒)和理論位元率(位元/秒)為特徵。

編碼技術可以降低位元率,但由於編碼演算法可能會引入額外的延遲。

主要的編碼技術包括:

  • 差分編碼:每個樣本的編碼基於其與前一個樣本和/或後一個樣本的差異;
  • 加權編碼:在視訊通話過程中,應以比周圍環境更高的位元率對通話者的影像進行編碼;
  • 有損編碼:一些音訊和影片資訊被不可逆地去除(可能質量損失不會被人感官察覺)。

當編碼演算法需要在移動終端(例如嵌入式系統或效能不佳的低功耗裝置)上執行時,複雜度是一個重要問題。此外,一些服務不支援有失真壓縮編碼的資料:例如,傳真不支援質量損失。這就是電信運營商仍然更喜歡使用 PCM64 編解碼器,其位元率恆定為 64 Kbps 的原因:它所需的處理能力較低,並且也受傳真和其他使用電話網路的服務支援。

說話者的聲音,在離開接收器揚聲器後,可能會透過接收器麥克風返回到發射器揚聲器,併產生稱為往返延遲的延遲,如果延遲時間較長,可能會干擾說話者本人 → 回聲消除旨在避免說話者聽到自己的聲音。

分組化

[編輯 | 編輯原始碼]

分組化延遲取決於插入每個資料包的樣本數量,這需要在延遲和效率之間進行權衡。

  • 延遲:如果在一個數據包中放入太多樣本,則該資料包必須等待最後一個樣本到達才能傳送 → 如果將太多樣本分組在一起,則第一個樣本將以較大的延遲到達;
  • 效率:每個 IP 資料包由於其報頭而導致大小開銷 → 如果將太少的樣本分組在一起,則由於報頭開銷,位元率將顯著增加。

可以考慮一些基於冗餘的糾錯技術:每個資料包除了攜帶新樣本外,還攜帶前一個樣本,因此如果前一個數據包丟失,仍然可以恢復其樣本。

當輸入流量超過輸出鏈路容量時,路由器應儲存等待傳輸的資料包(緩衝)→ 這會增加延遲和抖動。優先順序佇列管理解決了這些問題: 計算機網路技術和服務/服務質量

為了減少傳輸延遲,有一些可能的解決方案:

  • 增加頻寬,但 ADSL 提供商通常更感興趣的是僅增加下行頻寬;
  • 使用 PPP 交錯,即將一個大幀分成幾個較小的 PPP 幀,但提供商並不總是實現 PPP 交錯;
  • 避免在語音通話期間使用其他應用程式(例如資料傳輸)。

在接收端

[編輯 | 編輯原始碼]

接收方應執行以下步驟

  1. 抖動消除:抖動消除模組應以與生成它們相同的速率播放資料包;
  2. 重新排序:由於網路是分組交換的,因此可能會亂序交付資料包 → 需要一個模組進行重新排序;
  3. 解碼:解碼演算法應實現一些技術:
    • 丟失的資料包應透過使用預測技術、插入白噪聲或播放來自最後一個接收到的資料包的樣本進行管理;
    • 靜音抑制:接收器在對話暫停期間引入白噪聲,因為完美的靜音會被使用者感知為呼叫故障。重要的是能夠在說話者恢復說話時立即停止白噪聲。

即時傳輸協議(RTP)用於透過 UDP 傳輸 VoIP 流。

原生組播傳輸

RTP 允許在不支援組播的網路上進行組播傳輸。
實際上,IP 確實支援組播,但其使用需要網路提供商配置其網路裝置以建立每個 VoIP 流的組播組 → RTP 允許在應用層以即插即用的方式進行資料組播,而無需網路提供商的干預。

僅基本特性

RTP 沒有指定應該由底層管理的特性,例如資料包分片和傳輸錯誤檢測(校驗和)。

資料格式獨立性

RTP 只包含“有效負載型別”欄位來指定資料包內容的型別和使用的編解碼器,但它沒有指定如何編碼資料以及使用哪些編解碼器(此資訊由“音訊影片配置檔案”文件單獨指定)。
不可能將世界上每個編解碼器都與一個程式碼關聯 → 發射機和接收機應在會話建立期間商定要使用的程式碼以識別編解碼器,並且這些程式碼僅在會話內有效。

即時資料傳輸

允許丟失資料包 → “序列號”和“時間戳”欄位結合起來,以便在資料包丟失的情況下在正確的時間點重新啟動音訊/影片播放。

流區分

多媒體會話需要為每個多媒體流(音訊、影片、白板等)開啟一個 RTP 會話,即一個 UDP 連線。

RTP 控制協議 (RTCP)

它執行連線監視和控制:目標收集一些統計資訊(有關丟失、延遲等的資訊),並定期將其傳送到源,以便後者可以降低或提高多媒體流的質量,以使服務儘可能根據當前網路功能工作。例如,接收器可以理解某個編解碼器的位元率過高,網路不支援,因此可以更改為位元率較低的編解碼器。

非標準埠

RTP 沒有定義標準埠 → 防火牆和服務質量難以檢測 RTP 資料包。但是,某些實現使用靜態埠範圍,以避免在防火牆上開啟太多埠,並使服務質量標記更容易。

組播傳輸

[編輯 | 編輯原始碼]

傳統解決方案

[編輯 | 編輯原始碼]

沒有 RTP 混合器的傳統解決方案始終需要所有主機都具有高頻寬能力。在 WebRTC 上下文中,此模式稱為選擇性轉發單元 (SFU)。

RTP 混合器

[編輯 | 編輯原始碼]

RTP 混合器是一種能夠操作 RTP 流以進行組播傳輸的裝置:例如,在視訊會議中,每個主機的混合器接收來自其他主機的流,並將它們混合成一個流傳送到該主機。

每個主機發送和接收一個單一的資料流 → 混合器有助於節省頻寬:即使是頻寬較低的主機也可以加入視訊會議。混合器應該是具有最高頻寬容量的主機,以便能夠接收來自其他所有主機的流並將其傳送到其他所有主機。在 WebRTC 中,這種模式被稱為多點會議單元 (MCU)。

RTP 頭部

[編輯 | 編輯原始碼]

RTP 頭部具有以下格式

2 3 4 8 9 16 32
V P X CC M 有效載荷型別 序列號
時間戳
同步源識別符號 (SSRC)
貢獻源識別符號 (CSRC) ::

其中最重要的欄位是

  • CSRC 計數 (CC) 欄位 (4 位):它指定“CSRC”欄位中識別符號的數量;
  • 標記 (M) 標誌 (1 位):用於將資料包標記為高優先順序或低優先順序以進行服務質量;
  • 有效載荷型別 (PT) 欄位 (7 位):它指定資料包有效載荷的型別;它通常包含與所用編解碼器相對應的程式碼;
  • 同步源識別符號 (SSRC) 欄位 (32 位):它標識 RTP 混合器(以下示例中的混合器 M);
  • 貢獻源識別符號 (CSRC) 欄位(可變長度):它標識對多播流有貢獻的多個源(以下示例中的源 S1、S2、S3)。
來自源 S1、S2、S3 的聲音被混合成一個流到目標 D。

H.323 是 ITU 標準化的應用層信令協議套件。這是一個非常複雜的標準,因為它繼承了電話運營商的邏輯。

H.323 網路元件

[編輯 | 編輯原始碼]
H.323 網路示例。

H.323 最初是為了允許連線到公司區域網[2]的主機與連線到傳統電路交換網路 (PSTN) 的遠端裝置之間的通訊(音訊、影片、共享白板等)而開發的。

  • 網守:它實現了閘道器控制器,負責使用者身份驗證和定位、跟蹤已註冊使用者等;[3]
  • 代理網守:客戶端透過代理網守間接聯絡網守 → 這減少了低功耗客戶端裝置的工作量,但不是強制性的;
  • 多點控制單元 (MCU):它實現了RTP 混合器
  • 閘道器:它實現了信令閘道器媒體閘道器,在區域網和 PSTN 之間轉換資料通道、控制通道和信令過程,並且在區域網中被視為 H.323 終端,在 PSTN 中被視為電話終端。

後來,H.323 標準擴充套件到廣域網 (WAN),允許透過網際網路與遠端使用者通訊。

網守的區域由它管理的終端集合組成。一個區域可能涉及不同的網路層,例如由路由器分隔的多個區域網。

H.323 協議架構

[編輯 | 編輯原始碼]

H.323 協議棧非常複雜,因為它由多個協議組成

  • 資料平面:它由位於 UDP 上的RTP 和 RTCP 協議組成;
  • 控制平面:它由位於 TCP/UDP 上的信令協議組成
    • RAS 控制器:它允許終端與網守交換控制訊息
      • 註冊訊息:終端要求網守加入區域;
      • 准入訊息:終端要求網守聯絡另一個終端;
      • 狀態訊息:終端告訴網守它是否處於活動狀態;
      • 頻寬訊息:即使在通話過程中,RAS 控制器也會通知網守頻寬的變化,以便網守能夠在鏈路過載時拒絕新的通話;
    • 呼叫控制器:它允許終端直接與另一個終端交換控制訊息;
    • H.245 控制器:它允許一對終端就編解碼器等引數達成一致;
    • 資料:它允許終端傳送用於桌面共享或其他多媒體資料流的控制訊息。

最後,H.225 層將所有訊息組合在一起:它允許建立一種可靠的虛擬隧道,以便在不可靠的 IP 網路上傳送 H.323 訊息,類比電路的可靠性。

每個終端都由一個 (IP 地址,TCP/UDP 埠) 對唯一標識,因此它可以透過其地址/埠對直接聯絡,而無需網守。

如果存在網守,則地址/埠對可以對映到使用者更容易記住的別名(例如 name@domain.com、E-164 電話號碼、暱稱)。由於它們與使用者帳戶相關聯,因此別名支援漫遊:即使使用者移動並更改其 IP 地址,他仍然可以被訪問。

H.323 呼叫的主要步驟

[編輯 | 編輯原始碼]

H.323 呼叫發生在六個主要步驟中

  1. 註冊:呼叫方終端在其區域內搜尋網守,並使用 RAS 控制開啟 RAS 通道;
  2. 呼叫建立:呼叫方終端使用呼叫控制建立到被叫方終端的通道;
  3. 協商:使用 H.245 控制協商頻寬和編解碼器等引數;
  4. 資料傳輸:語音由 RTP 傳輸;
  5. 關閉:使用 H.245 控制關閉資料通道;
  6. 拆除:使用 RAS 控制關閉 RAS 通道。

網守可以扮演兩個角色

  • 網守路由呼叫:呼叫始終透過網守 → 這可能對 NAT 穿越很有用:網守充當中繼伺服器;
  • 網守直接端點:呼叫直接轉到端點,但呼叫方和被叫方客戶端應首先與網守執行准入步驟,以進行計費和頻寬管理目的。[4]

主要問題和批評

[編輯 | 編輯原始碼]
  • H.323 標準沒有提供任何容錯輔助,因為它只考慮了一個網守 → 供應商開發了自己的提供此功能的自定義功能,這些功能在彼此之間不相容;
  • H.323 標準不提供對不同區域之間通訊的支援 → 公司無法將其區域與另一家公司的區域“合併”;
  • 訊息使用ASN.1格式編碼:這不是文字格式,因此除錯非常困難,並且需要處理機器的低階細節(例如小端序);
  • 協議棧由許多協議組成,每個功能一個。

會話發起協議 (SIP) 是 IETF 透過 RFC 標準化的應用層信令協議。如今,SIP 的發展速度遠遠快於 H.323,這主要歸功於其遵循網際網路理念(“保持簡單”)的方法:例如,它使用文字方法(如 HTTP),因此編碼易於理解。互動是客戶端-伺服器

SIP協議棧。

SIP協議棧比H.323協議棧更簡單,因為SIP是控制平面中的一個通用層。SIP僅覆蓋信令:它將與信令無關的方面(例如頻寬管理)委託給其他已存在的協議,從而降低了其設計的複雜性。

  • RTP/RTCP:用於傳輸和控制多媒體流;
  • SDP:用於通知有關多媒體流的控制資訊;
  • RTSP(即時流協議):類似於RTP的協議,用於處理即時流和其他型別的資源(例如,語音郵箱的錄製語音訊息快進);
  • RSVP:用於在IP網路上預留資源,嘗試[5]在分組交換網路上構建某種電路交換網路。

SIP可以在三種可能的傳輸層之一上執行

  • UDP:無需保持TCP連線活躍→適用於低功耗裝置;
  • TCP:它保證了更高的可靠性,並且對於NAT遍歷和穿越防火牆很有用;
  • TLS(帶SSL的TCP):訊息被加密以確保安全,但文字訊息的優勢會丟失。

SIP提供帶有一些主要服務的語音呼叫

  • 使用者定位:定義要聯絡的呼叫目標終端;
  • 使用者能力:定義要使用的媒體(音訊、影片等)和引數(編解碼器);
  • 使用者可用性:定義被叫方是否願意接聽呼叫;
  • 呼叫建立:建立具有所有引數的連線;
  • 呼叫管理.

除了語音呼叫之外,SIP信令還可以用於多種其他服務:電子出席(使用者狀態:可用、忙等)、即時訊息、白板共享、檔案傳輸、互動遊戲等等。SIP支援漫遊:每個使用者都關聯一個帳戶,因此即使他移動並更改IP地址,他仍然可以被訪問。

SIP網路元件

[編輯 | 編輯原始碼]
  • 終端:每個主機都需要是客戶端和伺服器二合一(為了能夠被訪問,需要作為伺服器)。
  • 註冊伺服器:負責跟蹤主機和IP地址之間的對映關係。
它實現了閘道器守護器:主機必須註冊才能進入SIP網路。
  • 代理伺服器:管理主機和其他伺服器之間訊息的交換。
主機可以選擇僅與代理伺服器通訊,並將SIP呼叫所需的所有任務委託給它。
  • 重定向伺服器:用於重定向傳入呼叫(例如,使用者只想在工作時間才能透過其工作手機被訪問)。
  • 媒體伺服器:用於儲存增值內容(例如語音郵箱)。
  • 媒體代理:可以用作防火牆穿越的中繼伺服器。
  • 位置伺服器:用於定位使用者。
當主機想要撥打電話時,它會請求位置伺服器查詢目標使用者的地址。
  • AAA伺服器(身份驗證、授權、計費):註冊伺服器與AAA伺服器交換訊息以檢查使用者(例如,使用者是否有權進入網路)。
  • 閘道器:透過將SIP資料包轉換為樣本,反之亦然,連線IP網路和PSTN網路。
  • 多點控制單元(MCU):實現RTP混合器,與H.323中的功能相同。

在許多情況下,一臺稱為SIP伺服器(或SIP代理)的機器實現了註冊伺服器、代理伺服器、重定向伺服器、媒體代理的功能。此外,位置伺服器通常位於DNS伺服器中,AAA伺服器通常位於公司AAA伺服器中。

計費和域

[編輯 | 編輯原始碼]

每個使用者都有一個SIP帳戶,因此即使他移動並更改IP地址,他仍然可以被訪問(漫遊)。帳戶地址採用以下格式username@domain.com;電話終端也可以具有以下格式的SIP地址telephone_number@gateway.

SIP網路具有分散式架構:每個SIP伺服器負責一個SIP域(相當於H.323區域),並且所有引用同一SIP伺服器的主機都屬於同一SIP域,並且其帳戶地址具有相同的域名。與H.323相比,使用者可以聯絡屬於另一個SIP域的使用者:他的SIP伺服器將負責聯絡另一個使用者的SIP伺服器。

假設一個屬於Verizon域的美國使用者搬到義大利並連線到Telecom Italia網路。為了保持可訪問性,他需要聯絡Verizon SIP伺服器註冊自己,但他正在使用Telecom Italia網路基礎設施→他需要透過Telecom Italia SIP伺服器(其出站代理伺服器)作為漫遊式服務,這樣Telecom Italia就可以跟蹤使用者的呼叫以進行計費。

互連域

[編輯 | 編輯原始碼]

為了互連域,需要能夠找到所有註冊伺服器,因為它們儲存帳戶別名和IP地址之間的對映→DNS伺服器需要兩個額外的記錄來定位註冊伺服器

  • NAPTR記錄:定義可以用於指定域的傳輸協議,並指定要用於SRV查詢的別名;
  • SRV記錄:指定要用於A/AAAA查詢的註冊伺服器別名,以及指定傳輸協議的埠;
  • A/AAAA記錄:指定指定註冊伺服器別名的IPv4/IPv6地址。

DNS記錄表可能包含多個SRV/NAPTR記錄

  • 多個NAPTR記錄:指定傳輸協議有多個註冊伺服器可用,“首選項”欄位指定順序優先順序;
  • 多個SRV記錄:指定域有多個傳輸協議可用,“優先順序”欄位指定順序優先順序(按順序:TLS/TCP、TCP、UDP);

或者可能不包含任何SRV/NAPTR記錄

  • 無NAPTR記錄:主機僅嘗試SRV查詢(通常為UDP),並將使用與第一個SRV回覆相對應的傳輸協議;
  • 無SRV記錄:必須在主機上靜態配置註冊伺服器地址,主機將使用標準埠5060。
ENUM標準

如何在傳統電話上鍵入帳戶地址以聯絡SIP使用者?每個SIP帳戶預設與一個稱為E.164地址的電話號碼關聯

  1. 使用者在其傳統電話上鍵入電話號碼;
  2. POTS網路和SIP網路之間的閘道器將電話號碼轉換為具有固定域的別名e164.arpa並查詢DNS以檢視是否存在NAPTR記錄
    1. 如果DNS伺服器找到了NAPTR記錄,則電話號碼將與SIP帳戶相關聯,並將呼叫轉發到目標SIP代理;
    2. 如果DNS伺服器沒有找到NAPTR記錄,則電話號碼對應於POTS網路中的使用者。

SIP訊息

[編輯 | 編輯原始碼]

每條SIP訊息都具有以下文字格式

  1. 訊息型別(一行):指定訊息型別;
  2. SIP頭:包含有關多媒體流的資訊;
  3. 空行(類似於HTTP的行為);
  4. SDP訊息(有效負載):包含有關多媒體流的控制資訊。

主要訊息型別

[編輯 | 編輯原始碼]

SIP訊息可以是以下幾種型別之一,包括

  • REGISTER訊息:用於向域註冊自己,並且可以透過多播發送到所有註冊伺服器;
  • INVITE訊息:用於建立電話呼叫;
  • ACK訊息:是RTP流開始前最後一條SIP訊息。[6]
  • BYE訊息:用於結束電話呼叫;
  • CANCEL訊息:用於取消待處理的呼叫建立請求;
  • SUBSCRIBENOTIFYMESSAGE訊息:用於電子出席和即時訊息;
  • 程式碼訊息:包括
    • 1xx = 臨時程式碼:它們指正在進行的操作(例如100 Trying, 180 Ringing);
    • 2xx = 成功程式碼:它們是成功程式碼(例如200 OK);
    • 4xx = 客戶端錯誤程式碼:它們是錯誤程式碼(例如401 Unauthorized).

SIP頭中的主要欄位

[編輯 | 編輯原始碼]

SIP頭可以包含多個欄位,包括

  • From欄位:包含想要發起呼叫的終端的SIP地址;
  • To欄位:包含呼叫方終端想要聯絡的終端的SIP地址;
  • Contact欄位:SIP伺服器使用它來指定被叫終端的IP地址,呼叫方終端可以使用該地址直接聯絡被叫終端;

  • Via 欄位:用於跟蹤訊息需要經過的所有SIP伺服器(例如,出站代理伺服器);
  • Record Routing 欄位:指定所有SIP訊息是否應透過代理伺服器,這對於NAT遍歷很有用;
  • Subject 欄位:包含SIP連線的主題;
  • Content-TypeContent-LengthContent-Encoding 欄位:包含有關有效負載型別(以類似MIME的格式,例如SDP)、長度(以位元組為單位)和編碼的資訊。

SDP(會話描述協議)是一種基於文字的協議,用於描述多媒體會話:多媒體流的數量、媒體型別(音訊、影片等)、編解碼器、傳輸協議(例如RTP/UDP/IP)、頻寬、地址和埠、每個流的開始/結束時間、源標識。

SDP包含在SIP資料包的有效負載中,以通知有關多媒體流的控制資訊(例如,承載呼叫邀請訊息的SIP訊息也需要通知使用哪個編解碼器)。由於SDP是在一段時間前設計的,因此它具有一些對於SIP來說無用的功能(例如每個流的開始/結束時間),但SIP只是採用了SDP而沒有進行任何更改,以便重複使用現有的軟體。

SDP訊息格式

每個SDP訊息都由一個會話部分和一個或多個媒體部分(每個多媒體流一個)組成

  • 會話部分:以一行開頭v=,它包含當前會話中所有多媒體流的引數;
  • 媒體部分:以一行開頭m=,它包含當前多媒體流的引數。

SIP呼叫步驟

[編輯 | 編輯原始碼]

SIP呼叫分4個步驟進行

  1. 註冊:呼叫方終端向域註冊自身;
  2. 邀請:呼叫方終端請求建立呼叫;
  3. 資料傳輸:語音由 RTP 傳輸;
  4. 拆除:呼叫結束。

註冊步驟

[編輯 | 編輯原始碼]

使用者代理A想要透過聯絡其SIP代理向域A註冊自身:[7]

  • 1. 2. DNS查詢和回覆(NAPTR、SRV、A/AAA):A向DNS伺服器查詢SIP代理IP地址;
  • 3. REGISTER訊息:A請求SIP代理進行註冊,此處不插入其密碼;
  • 4. 401 Unauthorized訊息:SIP代理請求身份驗證,並插入一個挑戰,該挑戰在每次註冊時都會更改;
  • 5. REGISTER訊息:A根據挑戰和密碼計算雜湊函式,並將結果字串傳送到SIP代理;
  • 6. 200 OK訊息:註冊伺服器檢查對挑戰的回覆,並授予使用者訪問許可權。

邀請步驟

[編輯 | 編輯原始碼]

使用者代理A想要透過B的SIP代理與使用者代理B建立呼叫

  • 1. A請求其SIP代理透過傳送INVITE訊息與B聯絡;
  • 2. 3. A的SIP代理執行DNS查詢以查詢B的SIP代理IP地址(NAPTR、SRV、A/AAA);
  • 4. A的SIP代理向B的SIP代理傳送INVITE訊息。
  • 5. B的SIP代理向B傳送INVITE訊息;
  • 6. 7. 8. B透過SIP代理向A傳送RINGING訊息,使A的電話響起;
  • 9. 10. 11. B透過SIP代理傳送OK訊息,使A的電話響起;
  • 訊息,接受呼叫;12. A根據Record RoutingOK欄位值,透過SIP代理或直接通知B它已收到

訊息。

拆除步驟

在呼叫結束時,關閉RTP流後

  • 1. BYE訊息:B通知A它想要結束呼叫;
  • 2. OK訊息:A通知B它已收到BYE欄位值,透過SIP代理或直接通知B它已收到

參考文獻

[編輯 | 編輯原始碼]
  1. 媒體閘道器和信令閘道器之間的區別通常並不明確:事實上,信令音調是普通的音訊樣本,信令資料包是普通的資料包。
  2. 最好更籠統地談論企業網路,因為H.323實際上對底層網路的拓撲結構沒有任何假設。
  3. 閘道器管理器不是強制性的:如果客戶端知道目的地的地址,則可以直接聯絡目的地。
  4. 如果呼叫方知道被叫方的IP地址,則接入步驟不是強制性的。
  5. RSVP只是試圖做到這一點,因為不可能在分組交換網路上保證電路交換服務。
  6. 此訊息不應與TCP ACK資料包混淆:它在應用層工作,因此也適用於UDP。
  7. 此處,註冊伺服器應該在SIP代理中實現。
Previous page
VPN
計算機網路技術與服務 Next page
服務質量
VoIP
華夏公益教科書