Having a fully functional PBX system is not a big problem anymore. Thanks to Asterisk, you can now have a working PBX installed on your PC running GNU/Linux without spending a lot of money.
What is Asterisk?
Asterisk is an open source Private Branch Exchange (PBX) that runs on Linux, BSD and Mac OSX. It was created by Mark Spencer of Digium in 1991. Like any PBX, it allows a number of attached telephones (extensions) to make calls to one another, and to connect to other telephone services including the public switched telephone network (PSTN).
The basic Asterisk software provides all of the features you would expect from a proprietary PBX including: voicemail, conference calling, interactive voice response (IVR), and automatic call distribution (queue). These are just a few of the features that it can provide, you can view a list of supported features at Asterisk's Web site.
Asterisk is extremely powerful and flexible; users can create new functionality by writing dial plan scripts, by adding custom modules written in C, or by writing Asterisk Gateway Interface (AGI) scripts in Perl or other languages. Asterisk also supports a wide range of Voice over IP protocols, including SIP, IAX2, MGCP and H.323.
To attach ordinary telephones to Asterisk, or to connect to PSTN trunk lines, the server must be fitted with special hardware. Digium and a number of other firms sell PCI cards to attach telephones, telephone lines, T1 and E1 lines, and other analog and digital phone services to a server.
Just download Asterisk from http://www.asterisk.org and install it on your PC, you can build a sophisticated home phone system you want at low cost.