tags:

views:

86

answers:

3

I developed a SIP stack for my company. It's far from perfect, a it's lacking a lot of things from the RFCs, but it's functional and work well with a lot of tested softphones and other SIP hardware and software.

My question is: How much of SIP software can truly say that they are entirely SIP compliant? (Of the softphones you can find on the internet...)

A: 

Two SIP endpoints can be SIP-compliant and still be unable to inter-operate. So "entirely SIP-compliant" is, alas, not enough for you to be able to say "will work" without doing interop testing. It may be enough to allow you to cut some out of the initial selection, however.

Vatine
+2  A: 

Good question.

To start with a lot of SIP stacks fail to implement TCP and are therefore not compliant, from RFC3261 section 18:

All SIP elements MUST implement UDP and TCP. SIP elements MAY implement other protocols.

Asterisk is a good example of this. It often claims to be RFC3261 compliant but TCP support has only been recently included and there are still lots of bugs with it. There are better SIP products, such as the SER derived ones, that I suspect are compliant to RFC3261, I've never audited any of them but SER had a reputation as being the leading SIP server.

The other thing to keep in mind is that the "SIP standard" now includes 8 additional RFC's that have updated or obsoleted the original RFC3261. In addition there are a multitude of other RFCs for extensions and fixes for things like NAT. I think it would be safe to say there is unlikely to be any SIP stack that is compliant to all the SIP RFCs.

I too have written a SIP stack and followed the same path as you; get it working with devices you can easily test with and then add the more esoteric parts of the standard as time goes on or as the need arises. I even went as far as to start documenting which SIP RFCs I am making an effort to implement.

sipwiz
+1  A: 

I'll confess to writing my own SIP stack too.

The SIP Interoperability Test events generate quite a lot of interop data. For instance, from SIPit 25 last year we find this:

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.
Frank Shearar