如何在开始之前确定voip通话的质量?

时间:2013-04-17 06:57:21

标签: iphone ios networking voip

我需要检查设备是否可以支持一定质量的voip呼叫。我的方法(我接受可能有更好的方法)是在拨打电话之前立即在用户的iOS设备上进行互联网连接速度测试。速度测试应尽可能准确地确定即将发出的voip呼叫质量是好还是差。

voip通话包括直播视频(类似于Skype)。

我知道以下测量连接速度的技术:

  1. 下载或上传文件并衡量需要多长时间。

    概述here。测量下载或上传速度是否可以准确了解即时通话的voip通话质量?此外,文件可能会被缓存,甚至可能会被ISP限制速度。

  2. 使用ICMP数据包(即ping)可靠的服务器(例如google.com)。

    这种方法的一个潜在问题是(我听说过)某些路由器配置为使ICMP数据包的优先级低于其他路由器。因此,它们不能用作带宽/速度/可达性等的精确测量。是这样吗?

  3. 测量网络连接速度是预测voip通话质量的有效方法吗?如果是这样,为此目的测量互联网连接速度的有效且快速(即少于3秒)的方法是什么?

1 个答案:

答案 0 :(得分: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. 数据包抖动
  6. 您需要对数据包进行时间戳和编号,并检测高延迟,到达间隔的抖动,避免通过TCP进行测量(数据包重新传输会使您的质量数字出现偏差,并且TCP重新排序数据包,即使它会引入延迟)。你也想知道两者的质量。您可能会发现编解码器选择将是改善呼叫的一个重要因素。

    我为构建显示器(Telchemy)而工作的公司将其VQMon软件作为测量质量的产品获得许可,因此您想要的工具已经存在。