Asterisk (PBX)
| This article relies on references to primary sources. (July 2011) |
| Developer(s) | Digium |
|---|---|
| Stable release |
11.2.1 (22 January 2013) [±] 1.8.20.1 (22 January 2013) [±] |
| Preview release |
11.2.0-rc1 (December 10, 2012) [±] 1.8.20.0-rc1 (December 10, 2012) [±] |
| Written in | C |
| Operating system | Cross-platform |
| Type | Voice over Internet Protocol |
| License | GNU General Public License / Proprietary |
| Website | www.asterisk.org |
Asterisk is a software implementation of a telephone private branch exchange (PBX); it was created in 1999 by Mark Spencer of Digium. Like any PBX, it allows attached telephones to make calls to one another, and to connect to other telephone services, such as the public switched telephone network (PSTN) and Voice over Internet Protocol (VoIP) services. Its name comes from the asterisk symbol, *.
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.
Originally designed for Linux, Asterisk also runs on a variety of different operating systems including NetBSD, OpenBSD, FreeBSD, Mac OS X, and Solaris. A port to Microsoft Windows is known as AsteriskWin32.[1] Asterisk is small enough to run in an embedded environment like Customer-premises equipment-hardware running OpenWrt.[2]
Contents |
Features [edit]
The Asterisk software includes many features available in 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 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.
Special hardware must be installed in Asterisk servers to attach traditional analog telephones, or to connect to PSTN lines. 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.
Asterisk supports a wide range of video[3] and Voice over IP protocols, including the Session Initiation Protocol (SIP), the Media Gateway Control Protocol (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. The Inter-Asterisk eXchange (IAX2), a native protocol in Asterisk provides efficient trunking of calls among Asterisk PBXes, in addition to distributed configuration logic, and call completion to VoIP service providers who support it. Some telephones support the IAX2 protocol directly (see Comparison of VoIP software for examples).
By supporting a mix of traditional and VoIP telephony services, Asterisk allows deployers to build new telephone systems, or gradually migrate existing systems to new technologies. Some sites are using Asterisk servers to replace proprietary PBXes; others to provide additional features (such as voice mail or voice response menus, or virtual call shops) or to reduce costs by carrying long-distance calls over the Internet (toll bypass).
Asterisk was one of the first open source PBX software packages.[4]
In addition to VoIP protocols, Asterisk supports many traditional circuit-switching protocols such as ISDN and SS7. This requires appropriate hardware interface cards supporting such protocols, marketed by third-party vendors. Each protocol requires the installation of software modules such as Zaptel, Libpri, Libss7, chanss7, wanpipe and others. With these features, Asterisk provides a wide spectrum of communications options.
Configuration [edit]
Asterisk must be properly configured to function as a useful operational system. This includes:
- creating channels/devices that allow Asterisk to communicate through a voice path that uses that channel and/or devices. These can be VoIP, or TDM, or analogue telephony devices.
- composing the dial plan, written in the Asterisk control language, to express the algorithm or control flow Asterisk uses to respond when calls are presented to it over these channels. Asterisk can be used for many specific applications and a customized dial plan must be created specifically for each purpose, such as the functionality of a PBX. Asterisk is thus a 'construction kit' for building PBXs, rather than a PBX in itself, as is commonly thought.
Asterisk is configured by a set of configuration text files. One of these, extensions.conf, contains the operational flow logic of Asterisk. A native scripting language is used to define the elements of process control, namely variables, procedural macros, contexts, extensions, and actions. A context groups the valid destination codes that apply to a set of channels on which calls can be presented. These numbering codes, called extensions, are the starting points for the programming steps that process calls.
Because each channel declares a context, the dial plan restricts and permits which extensions and facilities its device may access. Extensions consist of possibly multiple steps of execution, each performing either logical operations, directing program flow, or executing one of the many included applications available in Asterisk.
Applications are loadable modules that perform specialized operations, such as dial a telephone number or another internal extension (app_dial), perform conferencing services (app_meetme), or handle the operations of voice mail (app_voicemail). The plethora of applications available provide a unique capability and tool set to formulate algorithms that can perform a large array of different, customized telephony scenarios. Applications control the Asterisk core functions through a set of internal operation primitives, that are organized in an extensible fashion through a modular architecture and application programming interfaces (APIs).
Controlling an Asterisk system can also be accomplished via separate, external applications using the Asterisk Gateway Interface. The Asterisk Gateway Interface (AGI) is a software interface and communications protocol for inter-process communication with Asterisk. In this, external, user-written programs, are launched from the Asterisk dial plan via pipes to control telephony operations on its associated control and voice channels. It is similar to the CGI feature of web servers in that any language can be used to write the external program, which communicates with Asterisk via the standard streams, stdin and stdout.
Several graphical user interfaces (GUIs) have been developed for Asterisk. These interfaces allow administrators to view, edit, and change various aspects of Asterisk via a web interface. As of version 1.8, a GUI called Asterisk-GUI is being developed for Asterisk by Digium. Other attempts to simplify Asterisk installation have been made, TrixBox (formerly Asterisk at home (A@H)) is a popular distribution of Asterisk that includes Asterisk and FreePBX. However, trixbox support was ceased by Fonality. Other GUI applications are PBX in a Flash (PIAF), Elastix, and the FreePBX Distro.
Digium has also packaged a variant entitled AsteriskNow, which is a customized Linux installation and includes FreePBX and all ancillary software to provide an off-the-shelf PBX, requiring only that the user prepare the requisite dial plans (see above) and connect the necessary hardware. The target market for AsteriskNow is administrators who wish to set up a PBX using Asterisk, but who may not have the experience in server configuration to perform the initial setup of a base Asterisk installation.
Kerio Technologies also has a packaged Asterisk system, called Kerio Operator, which comes complete with web-based configuration and management tools. In addition to providing standard linux installation packages, Kerio offers Operator as a virtual appliance or as a rack-mount appliance that can also accept PSTN expansion cards from Digium.
Development [edit]
Major Releases:
| Release Series | Release date | Security Fixes Only |
EOL | Features |
|---|---|---|---|---|
| 1.0.X | 2004-09-23[5] | ??? | ??? |
|
| 1.2.X | 2005-11-21[6][7] | 2007-08-07 | 2010-11-21 |
New features include:
|
| 1.4.X | 2006-12-23[8] | 2011-04-21 | 2012-04-21 |
Specific enhancements featured in Asterisk 1.4 include:
Additionally, Asterisk 1.4 now includes variable length DTMF support (touch-tone signaling for IVR applications), the option for programming shared line appearance, centralized RADIUS storage for call detail records, a built-in web manager interface and a simplified, single user configuration for SOHO/SMB users. Asterisk 1.4 also offers increased memory usage and performance improvements such as improved interoperability of SIP call transfers, IAX2 scalability improvements, enhanced IAX2 media stream capabilities (enabling direct audio communication between IAX devices while eliminating server involvement and maintaining billing and control functionalities), Cisco® SCCP support, SNMP monitoring, and RTP native bridging capabilities. |
| 1.6.0.X | 2008-10-01[9][10] | 2010-05-01 | 2010-10-01 |
A few hundred major changes in the following areas:
|
| 1.6.1.X | 2009-04-27[11] | 2010-05-01 | 2011-04-27 |
??? |
| 1.6.2.X | 2009-12-18[12] | 2011-04-21 | 2012-04-21 |
??? |
| 1.8.X | 2010-10-21[13][14] | 2014-10-21 | 2015-10-21 |
|
| 10.X | 2011-12-15[17][18] | 2012-12-15 | 2013-12-15 |
Asterisk 10 introduces a number of new features since the previous 1.8 release. Highlights include:
|
| 11.X | 2012-10-31[20] | ??? | ??? |
As a Long Term Support release, Asterisk 11 is primarily focused on stability, performance and security, with a relatively short list of new features. LTS releases receive four years of support, with an additional year of security maintenance. Under this release plan, Asterisk 11 will be supported through 2016. Significant new features include:
|
| 12.X | ??? | ??? | ??? |
Below are projects planned for Asterisk 12: [23]
|
Internationalization [edit]
While initially developed in the United States, Asterisk has become a popular VoIP PBX worldwide because it is freely available under open source licensing, and has a modular, extensible design. The American-English, French and Mexican Spanish female voices along with other new prompts like Australian-English [1] for the Interactive voice response and voice mail features of Asterisk are frequently updated with submissions from developers in many different languages and dialects. Additionally, voice sets are offered for commercial sale in different languages, dialects and genders.
Derived products [edit]
Asterisk is a core component in many PABX in a box commercial products and open-source projects. Some of the commercial products are hardware and software bundles, for which the manufacturer supports and releases the software as open source. Examples are Kerio Operator, TrixBox, and Elastix.
Asterisk is also included in the LinuxMCE home entertainment/automation system.
See also [edit]
- Comparison of VoIP software
- List of SIP software
- 2600hz IPBX
- Cipango (sip server)
- DUNDi
- FreeSWITCH IPBX
- GateKeeper H.323
- GNU SIP Witch
- IP PBX
- Linux MCE
- SIP Express Router
- Sippy B2BUA
- Voice modem
- NinjaTel Van
References [edit]
- ^ "Asterisk Win32 website". Archived from the original on 16 February 2009. Retrieved 2009-02-23.
- ^ "Asterisk on OpenWrt". Retrieved 2011-10-09.
- ^ "Video support in Asterisk". Asterisk.org. Archived from the original on 23 June 2010. Retrieved 2010-06-18.
- ^ VoIP Now (2007-04-16). "74 Open Source VoIP Apps & Resources". Archived from the original on 25 December 2007. Retrieved 2007-12-22.
- ^ "Asterisk 1.0 released". TMCnet. September 23, 2004. Retrieved 2009-03-26.
- ^ https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions
- ^ Keating, Tom (November 16, 2005). "Asterisk 1.2 released". TMCnet. Retrieved 2009-03-26.
- ^ "Asterisk 1.4.0 released". Asterisk.org. December 20, 2006. Archived from the original on 6 April 2009. Retrieved 2009-03-26.
- ^ https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions
- ^ "Asterisk 1.6.0 released". Asterisk.org. October 2, 2008. Archived from the original on 30 March 2009. Retrieved 2009-03-26.
- ^ https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions
- ^ https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions
- ^ https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions
- ^ "Asterisk 1.8.0 Now Available!". Asterisk.org. October 21, 2010. Archived from the original on 30 October 2010. Retrieved 2010-10-24.[dead link]
- ^ http://www.asterisk.org/downloads/asterisk-news/asterisk-180-released
- ^ http://svn.asterisk.org/svn/asterisk/tags/1.8.0/asterisk-1.8.0-summary.txt
- ^ https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions
- ^ "Asterisk 10.0.0 Is Released!". Asterisk.org. December 15, 2011. Retrieved 2011-12-26.[dead link]
- ^ https://wiki.asterisk.org/wiki/display/AST/New+in+10
- ^ "Asterisk 11, Now Available". digium. October 31, 2012. Retrieved 2012-11-05.
- ^ http://www.bizjournals.com/prnewswire/press_releases/2012/10/31/NE03622
- ^ https://wiki.asterisk.org/wiki/display/AST/New+in+11
- ^ https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+Projects
External links [edit]
- Asterisk home page
- Asterisk Wiki
- Asterisk Documentation Project (download the O'Reilly book for free)
- Forbes article about Mark Spencer and Asterisk
- #asterisk on freenode
- Interview with Mark Spencer on Leo Laporte's TWIT.TV FLOSS Weekly podcast
- Selector Free MeetMe GUI
- AppKonference High-performance Asterisk conferencing module, is a fork of ("MeetMe" alternative)