SIP Interoperability – Why Is It So Hard to Achieve? (Part I)
Posted by Alan Percy, Audiocodes | Jun 8, 2009
For those of you that have deployed SIP-based solutions or SIP Trunking, there is a pretty good chance that you’ve had to navigate your way through the maze of SIP interoperability, wondering why it is so difficult to get a straight answer out of anyone on whether two systems will work together or not.
SIP is supposed to be a standard and eliminate many of the challenges with integrating systems from various vendors together, right? If my IP-PBX is RFC 3261 compliant and my SIP Trunking service provider is RFC 3261 compliant, they should just work, correct? Well–maybe or maybe not. Most likely there will be interoperability issues.
Today I thought it would be good to start a multi-part series of posts to explore why SIP interoperability seems to be as challenging as it appears, how the vendors are dealing with it and solutions you can use to solve difficult interoperability challenges.
The Root Cause
Let’s start with a discussion on the root causes that make SIP interoperability difficult. The problem starts not with technology, but with the way that IETF Requests For Comments (RFCs) are developed. As opposed to the old ITU specifications that the Telecommunications Industry has lived with for the last four decades, IETF RFCs and Drafts are developed in an open and communal environment, using committees and consensus to craft the specification. This has very many positive benefits, but also a few predictable negative side effects. The problem is that RFC 3261 that defines SIP has become “everything to everyone” and bloated in both size and in flexibility.
Performing a simple word count on RFC 3261 yields some interesting insight into the problem:
Weak Terms
May = 381
Should = 344
Option = 144
Can = 475
Strong Terms
Shall = 4
Must = 631
As you can see, the number of weak terms “May,” “Should,” “Option” and “Can” outnumber the stronger “Shall” and “Must,” which results in a very loose specification that allows the developers of SIP-based systems to make plenty of decisions on features of functions. The byproduct of this is that two systems can be completely RFC 3261 compliant and completely incompatible.
Examples
In our experience, there are no fewer than five “correct” ways to transport DTMF tones from one end point to another:
* In-band–leaves the DTMF tones in the RTP streams
* RFC 2833–uses specialized payload packets in the RTP stream to indicate a DTMF tone
* SIP NOTIFY–uses a SIP message to indicate the presence of a DTMF key press
* SIP INFO (Nortel)–a technique frequently used in Nortel systems that uses a SIP INFO message
* SIP INFO (Cisco)–a variation on the above, but with some slight modifications.
Another example that is causing a lot of grief right now whether to transport the SIP messages over UDP or TCP. The RFC indicates that either is okay and recommends supporting both, but few manufacturers actually do support both. The vast majority of equipment and application developers chose SIP-over-UDP. Microsoft chose SIP-over-TCP. Again, both are within specification and completely incompatible.
While these technical challenges may seem difficult to overcome, they can be solved. However, the political issues are another story.
SIP Interoperability: Why Is It So Hard to Achieve? (Part II)
Posted by Alan Percy, Audiocodes | Jun 15, 2009
Earlier this week I shared with you a few thoughts on SIP Interoperability, discussing what I felt where the root causes of incompatibility between two or more SIP-based systems. I clearly hit a raw nerve with a few of you, flooding my email box with your own stories of interoperability issues. You shared with me your own experiences with registration problems, call transfers, security, message waiting indications, even fax issues. It seems the couple examples I gave were only the tip of the iceberg.
Let’s move past the technical issues with SIP Interoperability and talk about a far more difficult challenge–the politics of SIP Interoperability.
It appears to me that soon after the authors of RFC 3261 finished their work, the fun really started. As the development teams of the various product and application companies started to build their solutions based on RFC 3261, the looseness of the specification allowed them to make wildly different choices all “within specification.” The result was that you had developers that had invested untold hours of hard work into developing a protocol stack that worked fine in their own lab and with their own products, but had serious interoperability issues with other vendors. To each of the developers, it appeared that “everybody else screwed up.”
So now you have a number of overworked developers that would have to go back into their products and re-work significant parts of their SIP stacks–just because someone else made some bad choices. The end result is a classic standoff with each of the vendors saying “we followed the spec, you should change.” So much for “Open and Standard.”
To make things even more politically complex, many of the vendors are starting to compete in the marketplace, vying for the same markets and customers. In this competitive environment, interoperability is a double-edge sword.
Okay, so let’s pretend our developers get past their own stubbornness and decide to make some changes to be more interoperable. Who do you do your interoperability testing with? Do you test against anyone that comes along? Or maybe just in cases where “the business case works?” What happens if you or anyone else makes changes? Do you re-test with everyone? It was easy when there were just a few other applications to test with on the market, but now with hundreds of applications and devices to test, it becomes clear that the maintenance of SIP interoperability testing becomes a bigger burden than the original development.