5

我为我的公司开发了一个 SIP 堆栈。它远非完美,并且缺少 RFC 中的很多东西,但它功能强大,可以与许多经过测试的软电话和其他 SIP 硬件和软件配合使用。

我的问题是:有多少 SIP 软件可以真正说它们完全符合 SIP(​​在您可以在互联网上找到的软电话中)?

4

3 回答 3

2

好问题。

从 RFC3261 第 18 节开始,许多 SIP 堆栈无法实现 TCP,因此不兼容:

所有 SIP 元素必须实现 UDP 和 TCP。SIP 元素可以实现其他协议。

Asterisk 就是一个很好的例子。它通常声称符合 RFC3261,但 TCP 支持只是最近才包含在内,并且仍然存在很多错误。有更好的 SIP 产品,例如 SER 派生产品,我怀疑它们符合 RFC3261,我从未审核过其中的任何产品,但 SER 作为领先的 SIP 服务器而享有盛誉。

要记住的另一件事是,“SIP 标准”现在包括 8 个附加 RFC,它们已更新或废弃了原始 RFC3261。此外,还有许多其他 RFC用于扩展和修复诸如 NAT 之类的东西。我认为可以肯定地说,不太可能有任何 SIP 堆栈符合所有 SIP RFC。

我也编写了一个 SIP 堆栈,并遵循与您相同的路径;让它与您可以轻松测试的设备一起使用,然后随着时间的推移或需要的增加添加标准中更深奥的部分。我什至开始记录我正在努力实施的SIP RFC 。

于 2010-03-13T23:17:10.883 回答
1

我承认我也编写了自己的 SIP 堆栈。

SIP 互操作性测试事件会生成大量互操作数据。例如,从去年的 SIPit 25 中,我们发现:

Implementations using each transport for SIP messages:
   UDP   98% 
   TCP   83%
   TLS   38% server-auth, 24% mutual-auth
   SCTP   7%
   DTLS   2%

36% of the implementations supported IPv6.
于 2010-03-18T12:53:25.477 回答
0

两个 SIP 端点可以是 SIP 兼容的,但仍然无法互操作。因此,唉,“完全符合 SIP 标准”还不足以让您在不进行互操作测试的情况下说“将工作”。但是,这可能足以让您从初始选择中删除一些内容。

于 2010-03-12T14:03:04.590 回答