Tuesday, July 31, 2007

What is Asterisk?

Asterisk is a free software implementation of a telephone private branch exchange (PBX) originally created by Mark Spencer of Digium. Like any PBX, it allows a number of attached telephones to make calls to one another, and to connect to other telephone services including the public switched telephone network (PSTN). "Its name comes from the asterisk symbol, *, which in Unix (and Unix-like operating systems such as Linux) and DOS environments represents a wildcard, matching any sequence of characters in a filename."

Asterisk is released under a dual license scheme, the free software license being the GNU General Public License (GPL), the other being a proprietary software license as to allow proprietary/closed and patented code, such as the G.729 codec to work with the system (although the G729 codec may work with the free or proprietary versions). However, due to free software/open source nature of the software, hundreds of other programmers have contributed features and functionality and have reported bugs. Originally designed for the Linux operating system, Asterisk now also runs on OpenBSD, FreeBSD, Mac OS X, and Solaris, although as the "native" platform, Linux is the most supported of these.

The basic Asterisk software includes many features previously only available in expensive proprietary PBX systems: voice mail, conference calling, interactive voice response (phone menus), and automatic call distribution. Users can create new functionality by writing dial plan scripts in Asterisk's own language, by adding custom modules written in C, or by writing Asterisk Gateway Interface scripts in Perl or other languages.

To attach ordinary telephones to a Linux server running Asterisk, or to connect to PSTN trunk lines, the server must be fitted with special hardware. (An ordinary modem will not suffice.) 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.

Perhaps of more interest to many deployers today, Asterisk also supports a wide range of Voice over IP protocols, including SIP, MGCP and H.323. Asterisk can interoperate with most SIP telephones, acting both as registrar and as a gateway between IP phones and the PSTN. Asterisk developers have also designed a new protocol, Inter-Asterisk eXchange, for efficient trunking of calls among Asterisk PBXes.

By supporting a mix of traditional and VoIP telephony services, Asterisk allows deployers to build new telephone systems efficiently, or gradually migrate existing systems to new technologies. Some sites are using Asterisk servers to replace aging proprietary PBXes; others to provide additional features (such as voice mail or phone menus) or to cut costs by carrying long-distance calls over the Internet (toll bypass).

VoIP telephone companies have begun to support Asterisk; many now offer IAX2 or SIP trunking direct to an Asterisk box as an alternative to providing the customer with an ATA.

Asterisk was rated top in the PBX category out of 74 open source VoIP resources.[1]

As of July 17, 2007, the current release version of Asterisk is 1.4.8.

No comments: