Freeswitch is a very flexible open source phone system that supports a number of VoIP protocols. I have used it as our corporate phone system for the last 6 years and it has worked flawlessly. You do have to be careful when selecting an Internet Telephony Service Provider (ITSP) as some of these organizations are more reliable than others. As for actual phones, there are a large number of hardware providers. Check out VoIPSupply for a selection at http://www.voipsupply.com.
Once you have your service provider selected and your Freeswitch in place, you can easily have a local presence anywhere in the world for less than $10 a month. I use Freeswitch at home as well as at work, running it on a low power Linux server behind my home firewall. Freeswitch will register with the ITSP through your firewall which opens the same port for incoming call notifications. My home freeswitch in conjunction with my New York based ITSP makes it possible for me to have a local number in Oklahoma City that my inlaws can call toll free. That number rings all the phones at my home in Canada. My wife can talk to her mother for hours as incoming calls are not metered (completely free). The number in Oklahoma city costs me $5.95 a month.
I use Callcentric and Babytel as my ITSP’s at work and Callcentric and Voipms at home. Expect to pay a few cents a minute for outgoing calls which at first might seem strange for those of us used to free local calling in North America. In actually fact I out $30 on my account via Internet money transfer and it lasts 2-3 months. When I think about what I used to pay bell monthly for free local calls, this is a fraction of the cost. There is usually no difference between local calls and long distance calls, which can really save you money.
Freeswitch works with a variety of PC hardware to connect to older analog lines and T1/E1 primary rate lines but the most cost effective way to deploy a system is using ITSP’s. Freeswitch has all of the common modern day phone system services like and Auto-Attendant, Voicemail, and Conference Bridges. It supports SIP and H.323 VoIP protocols and can be configured with both single and multi-port ethernet options. The most common configuration is a single ethernet connection.
Freeswitch does differentiate between locally registered devices and external devices with separate default dial plans (Routing) for each. It has built in toll restriction to prevent external users from running up you ITSP bill and is easily programmable to provide custom configurations for each incoming trunk as well as caller-id. You can have a different message for telemarketers for example.
Freeswitch is configured via a number of text files that are all contained in the “conf” directory. On a Linux server, freeswitch will be installed in the “/usr/local” directory where it builds a standard tree. If you tar up “/usr/local/freeswitch/conf” you have the entire configuration saved.
Freeswitch provides a plain text control interface on port 8021 with default password ClueCon. Programmers can use Telnet to test the interface and experiment with remotely controlling their phone systems. The control interfaces uses a publish and subscribe model for events that can be used to monitor you system.
I have written and app for IOS devices that allows users to pair your iPhone or iPad with your local desk phone. The app displays a list of all registered devices on the freeswitch(Extensions) and when you touch another user in the list, the software uses a freeswitch conference to connect your local phone to the remote phone. If you want to add another user, you simply touch another name in the list. The app is called FSRemote and is available in the AppStore for 99 cents.
Commercially packaged versions of freeswitch are available from companies like CudaTel. Check them out at http://www.cudatel.com/.