
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. To attach traditional analog telephones to an Asterisk installation, or to connect to PSTN trunk lines, the server must be fitted with special hardware. Users can create new functionality by writing dial plan scripts in several of Asterisk’s own extensions languages, by adding custom loadable modules written in C, or by implementing Asterisk Gateway Interface (AGI) programs using any programming language capable of communicating via the standard streams system (stdin and stdout) or by network TCP sockets. The Asterisk software includes many features available in proprietary PBX systems: voice mail, conference calling, interactive voice response (phone menus), and automatic call distribution.

Asterisk is especially small enough to run in an embedded environment like Customer-premises equipment-hardware running OpenWrt. A port to Microsoft Windows is known as AsteriskWin32. Originally designed for Linux, Asterisk also runs on a variety of different operating systems including NetBSD, OpenBSD, FreeBSD, Mac OS X, and Solaris. Asterisk is released under a dual license model, using the GNU General Public License (GPL) as a free software license and a proprietary software license to permit licensees to distribute proprietary, unpublished system components.

Its name comes from the asterisk symbol, “*”. Like any PBX, it allows attached telephones to make calls to one another, and to connect to other telephone services including the public switched telephone network (PSTN) and Voice over Internet Protocol (VoIP) services. Is a software implementation of a telephone private branch exchange (PBX) it was created in 1999 by Mark Spencer of Digium.
