OP, check out Voip.ms
You can set up ring groups to ringall phones, transfer calls between extensions, setup cell phones as extensions, setup up failover routes if your internet is down, or no answer. You can also set up backup routes in other data centers, like say houston voip was down cause a hurricane, it will route to secondary route, etc. A bunch of good features.
You pay per minute inbound and outbound, but just a penny or so per minute.
Callcentric is another, but we moved fully over to voip.ms a few years back.
I used to have service with 2 or 3 voip providers for redundancy, but now with the vendors co-locating themselves, it hasn't been a problem.