I developed a SIP stack for my company. It’s far from perfect and it’s lacking a lot of things from the RFCs, but it’s functional and works 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) ?
Good question.
To start with a lot of SIP stacks fail to implement TCP and are therefore not compliant, from RFC3261 section 18:
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.