2010-03-12 37 views
5

我爲我公司開發了一個SIP堆棧。它遠非完美,它缺少很多來自RFC的東西,但它功能強大,並且可以與許多經過測試的軟電話和其他SIP硬件和軟件配合使用。網絡上的SIP VoIP軟件的兼容性如何?

我的問題是:有多少SIP軟件可以真正地說它們完全符合SIP(可以在互聯網上找到的軟電話)?

回答

2

好問題。

要開始使用大量的SIP堆棧未能實現TCP,因此不符合,從RFC3261第18條:

所有的SIP元素都必須實現UDP和TCP。 SIP元素可以實現其他協議。

Asterisk就是一個很好的例子。它通常聲稱符合RFC3261標準,但TCP支持最近才被包括在內,並且仍然存在大量的錯誤。有更好的SIP產品,例如SER派生的產品,我懷疑它符合RFC3261,我從來沒有審覈過其中的任何產品,但是SER有着作爲領先SIP服務器的聲譽。

需要記住的另一件事是,「SIP標準」現在包括8個額外的RFC,它們已經更新或廢棄了原始的RFC3261。另外還有一個multitude of other RFCs用於NAT等擴展和修復。我認爲可以肯定地說,不太可能存在符合所有SIP RFC的任何SIP堆棧。

我也寫了一個SIP堆棧,並遵循相同的路徑;讓它與可以輕鬆測試的設備一起工作,然後隨着時間推移或隨着需求的增加添加標準中更深奧的部分。我甚至去開始documenting which SIP RFCs我正在努力實施。

0

兩個SIP端點可以是SIP兼容的,但仍然無法互操作。因此,「完全符合SIP標準」是,唉,不足以讓您在沒有進行互操作性測試的情況下說「會工作」。不過,這可能足以讓你減少一些初始選擇。

1

我會承認寫我自己的SIP協議棧。

SIP Interoperability Test事件會生成相當多的互操作數據。例如,去年的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.