sipML5 中的通话质量指标

Call quality metrics in sipML5

sipML 是否提供有关通话质量的任何信息?诸如丢弃的数据包或乱序到达的数据包之类的东西?

我查看了 sipML API 文档,但没有找到任何相关内容。还查看了 Firefox/Chrome 的开发人员工具,但在那里没有找到此类指标。

我们希望实现一个通话质量指标,类似于 Skype for Business 或 Teams 等其他通信工具所具有的指标。

sipML 库使用两种不同的协议作为传输层:

  • WS/WSS:使用底层 TCP 连接。丢失情况下的数据包重传和数据包的有序传递由 TCP 协议本身处理,它不提供有关其内部功能的任何信息
  • WebRTC:使用底层 UDP 连接,这是一种“即发即弃”协议,它只发送数据包,甚至不关心它们是否到达目的地,以及顺序

由于 SIP 与传输层无关,因此它不会带来任何与传输层数据包相关的功能。因此,没有实际的“开箱即用”解决方案来检测服务质量。解决方案是让服务器将 UDP 数据包发送回客户端以计算一些指标,但这需要在客户端和服务器端进行一些特殊的实现。

似乎没有官方的 API 但是如果你能得到底层的 RTCPeerConnection 对象 (here?) you can use the full getStats() API