The SIP protocol for IP communication is elegant. Yet, it\’s partially based on a vision that we live in a end-to-end IP network, which is no longer the case. There\’s an oppurtunity to come back on this track with IP version 6, but the problem is no longer the technology, it\’s the user. We\’ve successfully taught the users that address translation is a natural thing, a broken network is what they should use.
That\’s sad.
…how does that visionary problem affect us? Well, this week I\’ve spent two days working with SIP and NAT problems, media gateways and ways to overcome this broken architecture. It\’s ugly, it\’s not very fun and it\’s resource intensive. The Internet architecture is end-to-end with a passive core network in the middle. The telecom network is the opposit, an intelligent network with very passive an un-intelligent endpoints. NAT forces us in a way to add intelligence to the core, which is not a good thing. SIP should be peer-to-peer.
What you also find out is that even though SIP has a few years of age, the implementations are not very mature. I spent a good part of yesterday trying to find out why some devices couldn\’t place a call, to end up finding out that if I used a specific codec, the phone did not acknowledge the SIP transaction at all, it just gave up. And this is a very common phone on the market. The call dropped to the floor and since I was in the middle of the NAT workaround mode, I blamed the NAT and not the phone for too long.
Hopefully new solutions like UPNP and STUN will help the situation, SIP-aware broadband routers will certainly help. But they\’re not out there today. And when they come, will they be interoperable, will they support the standards in the same way? Or do I have to spend hours testing them?
Regardless of what you do in the world of TCP/IP, interoperability is key. We need SIP interoperability testing and certification now, we need to join forces and change the market like what the WiFi branding did for wireless lans. Now, because one year from now, it\’ll be too late.