2013-04-17 49 views
2

我需要檢查設備是否可以支持某種質量等級的VoIP呼叫。我的方法(我接受的方法可能更好)是在撥打電話之前立即在用戶的iOS設備上進行Internet連接速度測試。速度測試應儘可能準確地確定即將到來的voip呼叫是好還是差質量。如何在啓動之前確定voip呼叫的質量?

該voip呼叫包括實時視頻(類似於Skype)。

我知道以下技術測量連接速度:

  1. 下載或上傳文件,並測量需要多長時間。

    如概述here。測量下載或上傳速度是否能夠準確瞭解即時呼叫的VoIP通話質量?此外,文件可能被緩存,或者速度甚至可能被ISP限制。

  2. 使用ICMP數據包(即平)一個可靠的服務器(例如,google.com)。這種方法

    一個潛在的問題是,(我聽說已經是)一些路由器配置給ICMP數據包比別人更低的優先級。因此,它們不能用作帶寬/速度/可達性的準確度量。是這樣嗎?

測量網絡連接速度是預測voip通話質量的有效方法嗎?如果是這樣,爲此目的測量互聯網連接速度的有效和快速(即少於3秒)的方式是什麼?

回答

2

VoIP呼叫的實際數據通過RTP,這真的只需要24-64Kbps(取決於編解碼器),並要求各去UDP方式進行的地址。偶爾的RTCP數據包被髮送到報告狀態,指標等,但不是真的需要。

SIP用於呼叫建立和拆卸。

RTCP數據包攜帶(最小)通話質量指標。

幾個參數影響通話質量,包括編解碼器的選擇,可用帶寬,網絡延遲,丟包(RTP是在UDP上因此沒有重傳)和抖動(分組間到達時延,無序遞送的)。

(CICSO)開關實現RED,通過隨機丟棄網絡數據包,以減少隊列深度的技術。對於TCP網絡連接,這是可以接受的,因爲TCP通過滑動窗口協議進行重新傳輸。許多基於UDP協議實現應用程序重傳。但RTP並不能承受這種奢侈。所以隨機丟棄語音包會影響連接質量。 RED的一個解決方案是通過TCP連接傳輸VoIP,但這不是所做的選擇。

擁擠的網絡是一個巨大的VoIP呼叫質量問題源,並且它可在呼叫的初始幾秒鐘內進行測量。丟包由於抖動和延遲數據包(高網絡延遲)是導致呼叫質量降低的兩個主要原因。我從事VoIP服務質量監控系統的工作,並且我們觀察到最壞的呼叫具有高抖動和高延遲(高於〜70ms是不好的)。避免高延遲,擁塞的網絡。編碼的選擇可能會對質量產生巨大影響。更高的壓縮編解碼器會比丟失更少的「高效」編解碼器損失更多,因此選擇使用更高帶寬(好運)的編解碼器。

IP網絡需要QoS保證來提供最佳的VoIP質量。直到TCPIP被重新定義爲包含QoS,VoIP將會有(潛在的)問題。

您的方法很接近。但是你要測量:

  1. UDP
  2. 丟包
  3. 擁塞
  4. 延遲
  5. 數據包抖動

您需要時間戳和你的數據包數量,並檢測高延遲,到達間隔抖動,避免通過TCP進行測量(數據包重傳會扭曲質量數字,並且TCP重新排序數據包,即使它引入延遲)。你也想知道兩者的質量。您可能會發現編解碼器的選擇將是改善呼叫的重要因素。

我爲建立顯示器(Telchemy)而工作的公司將其VQMon軟件授權爲產品來衡量質量,所以您想要的工具已經存在。

+0

坦率地說,使用簡單地發送重複數據包並拋出重複數據的編解碼器,可以避免許多質量問題:-) – ChuckCottrill

+0

由於大部分通話質量都很好,因此目前不需要使用編解碼器。但是,我們希望能夠檢測到該軟件的用戶在網絡不好或連接不良時。您的建議是:「您需要爲數據包加上時間戳和數字編號,並檢測高延遲,間隔抖動」有點幫助。 VQMon是否可用作iOS的圖書館?如果不是,你知道一個類似的庫嗎? – gavdotnet

+0

@ gavdotnet你見過對手嗎?我添加了下面的鏈接。 – Septronic