Asterisk is an Open Source PBX and IP-PBX software solution.
http://www.asterisk.org/support/about
It could be used as a home system, but is optimized for business solutions.
Asterisk runs on a wide variety of operating systems including Linux, Mac OS X, OpenBSD, FreeBSD and Sun Solaris and provides all of the features you would expect from a PBX including many advanced features that are often associated with high end (and high cost) proprietary PBXs. Asterisk's architecture is designed for maximum flexibility and supports Voice over IP in many protocols, and can interoperate with almost all standards-based telephony equipment using relatively inexpensive hardware.
I subscribe to various BYOD (bring your own device) VoIP services. Virtually all of these VoIP carriers use Astereisk as their operating platform to manage VoIP calls through their networks and clients.
Asterisk is probably the dominant platform in the VoIP industry today.
To use Asterisk, you generally need to be familiar with Linux operating system. Now days, you can get Asterisk preinstalled in a "hardware appliance" that basically runs right out of the box. But, generally speaking, it does take some level of networking expertise to configure and use.
Another option to Asterisk is a Windows based PBX/IP-PBX software solution called 3CX. I believe it may be easier to get started using IP-PBX solutions in a Windows environment.
http://www.3cx.com/
I sometimes use the 3CX VoIP Client Softphone on my PC to connect to my BYOD VoIP services when I want to use VoIP from my PC.
http://www.3cx.com/VOIP/softphone.html