Integrating VoIP and PSTN
One of the central questions regarding VoIP technology is how do the users on the Internet find each other? We know that VoIP is all about treating voice data like any other information passing over the Internet. But when one user on the Internet decides to talk to another, how does the traffic know where to go? When you request a web page, your computer gets the IP address of the server and so knows who to ask. But every user on the web can't have their own IP address.
To solve this problem, we look at how applications such as mail work. Sending an email to someone means that they must first an email account with an email provider. Like Google or Yahoo!. When you want to mail then, you provide their username along with the organization with whom they have an account - like email@example.com. xyz is just like a domain name and is resolvable with an IP address. So when they get a request with the username, they know exactly who to send the mail to.
We can use the same system with VoIP as well. So the receiver first needs to have a "voip account" of their own with a provider. We can then talk to them by simply adding their username to the provider in the same format as email, namely firstname.lastname@example.org. In fact, this is exactly what an SIP VoIP URI looks like.
The problem arises when we need to talk to someone on a regular phone line.
Connecting VoIP and PSTN
Clearly, the above method only works for two people who both have VoIP connections. You can't send an email to a person who only uses a physical mail box for example! But because of the huge number of people still using the PSTN phone system, we need to find a way to communicate on their terms. The "email@example.com" system just won't work.
So we're forced to use phone numbers instead. When we talk to another person, the call has to originate from our VoIP enabled end as if it's coming from a phone. The phone network takes our voice data, encodes it and sends it along and the person at the other end doesn't even know that we're using an IP line and not a PSTN one.
This would be fine if it wasn't for a small problem. When two VoIP lines want to talk to each other, they're forced to communicate using phone numbers as well. And since there's no way to tell whether or not a particular number is actually hiding a VoIP phone, even "pure VoIP" calls have to drop down to the PSTN lines for resolution - which is a tremendous waste.
There are efforts to create a repository where VoIP phone numbers are linked to their SIP URIs instead, but predictably the telcos are against such a move since it would cut them out of the loop entirely. Their network would be come worthless as far as pure VoIP was concerned. But as long as there are people still on the PSTN lines, the integration between VoIP and the old telephone system will continue to be crucial.
The "firstname.lastname@example.org" addressing system is incredibly useful when you're connecting to say a mobile SIP proxy server. If you need a cheaper and more versatile communications system, it's time to switch to hosted PBX systems.