Asterisk is a fully-software PBX system. It can run on Linux, BSD, Windows (simulated), and OS X. It provides all the features you want from the PBX, and is more than the PBX. Asterisk supports four types of VoIP protocols. By using relatively inexpensive hardware, it can interconnect with almost all standard-based telephone devices.
Asterisk provides a directory-based voice mailbox Service (VOICEMAIL), teleconference, Interactive Voice Response (IVR), and call queue. It also supports third-party calls, caller ID, ADSI, IAX, sip, H.323 (supported by both the customer side and the gateway side), MGCP (only supported by the Call Manager side), and SCCP/skinny. See the features list section for a more complete list.
When VoIP is supported, asterisk does not need any additional hardware, although it wants a non-standard driver to implement the dummy hardware to implement a non-portable timing mechanism (some specific applications will use it, such as conference applications ). A single (or multiple) voIP providers can use it to implement outbound and/or inbound calls (outbound and inbound calls can also be handled by completely different VOIP and/or telecom providers ).
To connect to digital and analog phone devices, asterisk supports a range of hardware devices, most of which are manufactured by digium, a sponsor of Asterisk. Digium has one or four T1 and E1 interface cards that can be connected to the PRI line and channel pool. In addition, one to four simulated fxo and FXS cards can also be used in popular small installation environments. Cards from other vendors can also be used as Bri interfaces, or four or eight Bri interfaces. They are capi-compatible cards or cards of the hfc-chipset.
To connect to the cellular network (GSM or CDMA), asterisk can use the celliax channel driver or chan_mobile. It is currently used as a relay, and is a version that has not been officially recognized.