Brough Turner in his post SIP revolution, massively delayed speaks about why SIP has not taken off for user-to-user VoIP:
When SIP emerged in 1996, it’s support for direct connections from one user to another was extremely compelling. This was the VoIP protocol which would lead to a complete revolution in communications. Yes, you might refer to a directory service, but you wouldn’t need an operator to make a phone call. You could do it yourself, directly. Unfortunately, that revolution never happened.
I think this misses the mark just little. What was really compelling about SIP is that it gave us the hope that phone calls could work more like email. In fact, SIP addresses looked a lot like email address, e.g. sip:email@example.com. The issue of whether a service provider, or central server, was in the loop (or not) is really a red herring, IMHO. The point was that we could have a public address that was reachable directly from the Internet that could be used to call us, thus completely bypass the traditional PSTN (and telephone company carriers).
Unfortunately, that is what never happened – it’s not that P2P didn’t happen – it’s that (almost) no service providers offered publicly reachable SIP addresses to their end-user customers.
Instead, VoIP vendors used SIP behind the scenes only, and never exposed it to customers or to competitors the way Email services do. With email, a hotmail.com email address is public and a hotmail.com user can receive email from any other domain that supports the Internet Email protocols (standards). That didn’t happen with VoIP and SIP. The VoIP products like Vonage (and all Vonage copycats) built their system to use SIP to get the customers from the Internet to Vonage servers and to the old PSTN (existing telecom network), but not beyond. The old PSTN telecom network continued to be the only way to pass calls between providers. It would be as if hotmail.com refused to accept email from yahoo.com users via the Internet and instead delivered all inter-provider email using traditional postal mail (snail mail).
More importantly, these decisions as to what calls stay on the Internet, are controlled by the VoIP providers, not by VoIP end-users. End-users have no directly reachable VoIP address on the Internet, even though the Internet Standards exist for it (SIP) and in most cases these protocols were already being used internally by the providers, so it should have been easy to make them public.
I was writing about this as far back as 2003, such as:
There is the open standards based global SIP network, where like DNS or e-mail, everybody speaks the same protocols and can talk to each other, regardless of hardware or service provider… Services that do not support the global SIP-based VoIP network aren’t participating in the Internet. They are using the Internet as a pipe for their closed systems and getting in the way of progress toward making VoIP just one more interoperable application on the Internet. Whether a VoIP provider is using SIP ‘behind the curtains’ is irrelevent if it does not connect to the global SIP network.
In short, SIP’s problem has nothing to do with NAT or any technology aspect. It has to do with who funds what and, nobody has wanted to fund inter-provider VOIP. Likewise, grassroots efforts like FWD, Gizmo, and PhoneGnome, have not not succeeded in tickling the Internet’s fancy enough to get much viral traction.
Part of the problem is the difference in cost and speed between email and postal snail-mail was dramatic and clear. Even though email didn’t do that much new, it delivered messages much faster and cheaper (especially globally). VoIP has a similar appeal in terms of cost and, like email, that benefit is most noticeable to those making international calls. But as phone calls kept getting cheaper, the cost difference is more subtle with voice and therefore VOIP requires more “selling” than email did.