A PBX is a Private Branch Exchange (or a private telephone company). It used to be a hardware solution and some think of it as a hotel-style switchboard, yet it is more. Now it has become more software than hardware.
Whether you buy a PBX box or run software on a computer, you will end up with a self-contained system with the ability to connect to VOIP suppliers and telephones. You will be able to configure extensions, voicemail, calling queues, error and progress recordings, determine least cost routing and run reports on calls.
A typical setup might be for a small company to have a few outbound and inbound phone lines, a number of extensions, voicemail and the ability to allow or disallow local and long distance calling. Based upon a list of customers or perhaps the telephone number they connected through, a call might be routed to a calling queue and given a higher priority to be answered by the next available agent. Calls to an extension might be also routed to a different number or extension if the first number is busy or does not answer.
This PBX system may be a hardware box, purchased and supported by an provider, or it may be a system you build and support in-house.
The software used often for this is called Asterisk and some versions are free. It can run in a virtual window on a PC or on hardware set aside for this application. Actually almost any hardware (PC or Unix system) can be used to run the free software.
Recently a hardware solution called a RaspberryPi computer has come on the scene. The box is a mini-computer, which runs on a cell phone power supply, uses an external USB keyboard if needed and uses external SD memory card that slides in. The box is the size of a pack of cigarettes and costs all of about $25. Thus with careful shopping or the raid of a tool kit at home, a complete operating PBX system could cost $25 to $55.
A website called NerdVittles.com has documented and offered a free version of the operating system and Asterisk that installs on the RaspberryPi in minutes and you end up with a complete system with an extension ready to configure. Although this system is above the capability of the general public, there is enough support that someone setting one up for a small company should be able to get it working pretty quickly. While not overly powerful for many applications, it would be a great way to test and familiarize yourself with what Asterisk can do and how it works.