I'm going to be setting up VoIP for a small business that is expected to grow rapidly. I don't really understand much about VoIP other than it's a telephone system that works over a regular network (intranet/internet) rather than over the POTS.
My primary question is how should this be setup? I know there are a ton of providers out there, there's IP PBXs, and even simpler solutions like Skype; what is the way to go? I want maximum flexibility and control over what features the system has. I want a very powerful and high quality phone system, but money is an object so it can't be too fancy.
If you know of any good articles that really describe how it works and the different options you have, that would be helpful. I just don't really understand it at a low level.
Also, if possible, I would like to support multiple locations. There are two building that are separated by a small driveway that will need to both have phones in it (the network will be joined so that's not really an issue) but there are a few people who will be working remotely, so if they could have a company phone with a four digit "extension" that would be awesome. Would that just be done with a VPN or what?
Definitely research is going to be your best friend. You'll soon realize that a VLAN capable infrastructure is key for your VoIP success (meaning: keeping your VoIP traffic logically separated from your 'normal' hosts). Also, make sure your network infrastructure switches/routers are going to be up to specs for VoIP: Full-duplex, QoS Capable, and free of cable-length issues.
Here are some good resources from my bookmarks:
One of the most common misconceptions about voice is that it's easy and you can just whack it on a network like all the other traffic. That approach can work, but you really need to do some prep work.
First of all, make sure your network is up to it. There are plenty of network analysers out there that will run over your LAN and report packet loss, latency and jitter, as well as bandwidth. You'll hear quotes of 64kbps of bandwidth for each conversation (using G.711) - that doesn't include protocol overhead, in practice, budget for 100kbps for each concurrent voice call and you should be fine. Jitter is the killer, an unreliable network is a nightmare and causes no end of random issues.
Check your equipment - many lower end routers run an Application Layer Gateway these days - it's purpose is to help you run SIP through NAT since SIP embeds IPs within the data. Without exception (and I've seen quite a few) I've yet to see an ALG that doesn't break SIP horribly in some way or other. Any decent hosted SIP provider will run a session border controller to cater for NAT anyway, so it's not a big concern.
Many providers will rant about QoS - it's only relevant if you have a congested network and if you're starting with a congested network, it's only going to get worse.
For the scenario you've described, avoid the low end providers like Skype. Your best bet is either:
Run a VoIP PBX that connects to the PSTN, so that you're running VoIP inside the company. You can link the two offices together, but make sure that the connection between the ofices is good enough.
Run a VoIP PBX with a VoIP interconnect. This can typically be cheaper than a PSTN connection.
Use a hosted PBX provider. This is similar to what used to be known as Centrex on the PSTN.
If you don't know that much about VoIP and need to roll this out, your best bet is the last option, providing that you have small numbers of people in each site. Find a good provider, use handsets that they recommend.