Asterisk PBX
Encyclopedia
Asterisk is a software implementation of a telephone private branch exchange (PBX); it was created in 1999 by Mark Spencer of Digium
Digium
Digium, Inc. is a privately held communications technology company based in Huntsville, Alabama. Digium specializes in developing and manufacturing communications hardware and telephony software, most notably the open-source telephony platform Asterisk....

. Like any PBX, it allows attached telephone
Telephone
The telephone , colloquially referred to as a phone, is a telecommunications device that transmits and receives sounds, usually the human voice. Telephones are a point-to-point communication system whose most basic function is to allow two people separated by large distances to talk to each other...

s to make calls to one another, and to connect to other telephone services including the public switched telephone network
Public switched telephone network
The public switched telephone network is the network of the world's public circuit-switched telephone networks. It consists of telephone lines, fiber optic cables, microwave transmission links, cellular networks, communications satellites, and undersea telephone cables, all inter-connected by...

 (PSTN) and Voice over Internet Protocol (VoIP) services. Its name comes from the asterisk
Asterisk
An asterisk is a typographical symbol or glyph. It is so called because it resembles a conventional image of a star. Computer scientists and mathematicians often pronounce it as star...

 symbol, “*”.

Asterisk is released under a dual license
Dual license
Multi-licensing is the practice of distributing software under two or more different sets of terms and conditions. This may mean multiple different licenses or sets of licenses. Prefixes may be used to indicate the number of licenses used, e.g...

 model, using the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

 (GPL) as a free software license and a proprietary software license to permit licensees to distribute proprietary
Proprietary software
Proprietary software is computer software licensed under exclusive legal right of the copyright holder. The licensee is given the right to use the software under certain conditions, while restricted from other uses, such as modification, further distribution, or reverse engineering.Complementary...

, unpublished system components.

Originally designed for Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, Asterisk also runs on a variety of different operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

s including NetBSD
NetBSD
NetBSD is a freely available open source version of the Berkeley Software Distribution Unix operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed. The NetBSD project is primarily focused on high quality design,...

, OpenBSD
OpenBSD
OpenBSD is a Unix-like computer operating system descended from Berkeley Software Distribution , a Unix derivative developed at the University of California, Berkeley. It was forked from NetBSD by project leader Theo de Raadt in late 1995...

, FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...

, Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

, and Solaris. A port to Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 is known as AsteriskWin32. Asterisk is especially small enough to run in an embedded environment like Customer-premises equipment
Customer-premises equipment
Customer-premises equipment or customer-provided equipment is any terminal and associated equipment located at a subscriber's premises and connected with a carrier's telecommunication channel at the demarcation point...

-hardware running OpenWrt
OpenWrt
OpenWrt is a Linux distribution primarily targeted at routing on embedded devices. It comprises a set of about 2000 software packages, installed and uninstalled via the opkg package management system. OpenWrt can be configured using the command-line interface of BusyBox ash, or the web interface...

.

Features

The Asterisk software includes many features available in proprietary PBX systems: voice mail, conference call
Conference call
A conference call is a telephone call in which the calling party wishes to have more than one called party listen in to the audio portion of the call. The conference calls may be designed to allow the called party to participate during the call, or the call may be set up so that the called party...

ing, interactive voice response
Interactive voice response
Interactive voice response is a technology that allows a computer to interact with humans through the use of voice and DTMF keypad inputs....

 (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
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

, or by implementing Asterisk Gateway Interface
Asterisk Gateway Interface
Asterisk Gateway Interface is a software interface and communications protocol for application level control of selected features of the Asterisk PBX....

(AGI) programs using any programming language capable of communicating via the standard streams system (stdin and stdout) or by network TCP sockets.

To attach traditional analog telephones to an Asterisk installation, or to connect to PSTN trunk lines, the server must be fitted with special hardware. Digium and a number of other firms sell PCI
Peripheral Component Interconnect
Conventional PCI is a computer bus for attaching hardware devices in a computer...

 cards to attach telephones, telephone lines, T1
T-carrier
In telecommunications, T-carrier, sometimes abbreviated as T-CXR, is the generic designator for any of several digitally multiplexed telecommunications carrier systems originally developed by Bell Labs and used in North America, Japan, and South Korea....

 and E1
E-carrier
In digital telecommunications, where a single physical wire pair can be used to carry many simultaneous voice conversations by time-division multiplexing, worldwide standards have been created and deployed...

 lines, and other analog and digital phone services to a server.

Asterisk supports a wide range of video and Voice over IP
Voice over IP
Voice over Internet Protocol is a family of technologies, methodologies, communication protocols, and transmission techniques for the delivery of voice communications and multimedia sessions over Internet Protocol networks, such as the Internet...

 protocols, including the Session Initiation Protocol
Session Initiation Protocol
The Session Initiation Protocol is an IETF-defined signaling protocol widely used for controlling communication sessions such as voice and video calls over Internet Protocol . The protocol can be used for creating, modifying and terminating two-party or multiparty sessions...

 (SIP), the Media Gateway Control Protocol (MGCP), and H.323
H.323
H.323 is a recommendation from the ITU Telecommunication Standardization Sector that defines the protocols to provide audio-visual communication sessions on any packet network...

. 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
Trunking
In modern communications, trunking is a concept by which a communications system can provide network access to many clients by sharing a set of lines or frequencies instead of providing them individually. This is analogous to the structure of a tree with one trunk and many branches. Examples of...

 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
Comparison of VoIP software
VoIP software is used to conduct telephone-like voice conversations across Internet Protocol based networks. VoIP stands for "Voice over IP". For residential markets, VoIP phone service is often cheaper than traditional public switched telephone network service and can remove geographic...

 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 shop
Call shop
A call shop is a business that provides physical phones for the purpose of making long-distance telephone calls. There are two main types of call shop payment methods; prepaid and postpaid.- Call shop requirements :...

s) 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.

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

To configure Asterisk into an operational system, the administrator must:
  • create channels/devices that allow Asterisk to communicate through a voice path that uses that channel and/or devices. These can be VoIP, or TDM
    Time-division multiplexing
    Time-division multiplexing is a type of digital multiplexing in which two or more bit streams or signals are transferred apparently simultaneously as sub-channels in one communication channel, but are physically taking turns on the channel. The time domain is divided into several recurrent...

    , or analogue telephony devices.
  • compose a 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 has to 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
Scripting language
A scripting language, script language, or extension language is a programming language that allows control of one or more applications. "Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the...

 is used to define the elements of process control, namely variables, procedural macros, contexts, extensions, and actions. A context groups all the valid destination numbering codes which apply to a set of channels on which incoming (to Asterisk) calls can be presented. These numbering codes, called “extensions” (even though they often are not) are the starting points for the scripts which instruct Asterisk how to process calls made to those numbers within that context.

To clarify: contexts define the source of a call, and extensions define its destination.

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 interface
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

s (APIs).

Programming an Asterisk system can also be accomplished via separate, external applications using the Asterisk Gateway Interface
Asterisk Gateway Interface
Asterisk Gateway Interface is a software interface and communications protocol for application level control of selected features of the Asterisk PBX....

. 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
Pipeline (Unix)
In Unix-like computer operating systems , a pipeline is the original software pipeline: a set of processes chained by their standard streams, so that the output of each process feeds directly as input to the next one. Each connection is implemented by an anonymous pipe...

 to control telephony operations on its associated control and voice channels. It is similar to the CGI
Common Gateway Interface
The Common Gateway Interface is a standard method for web servers software to delegate the generation of web pages to executable files...

 feature of web servers in that any language can be used to write the external program which communicates with Asterisk via the standard streams
Standard streams
In Unix and Unix-like operating systems , as well as certain programming language interfaces, the standard streams are preconnected input and output channels between a computer program and its environment when it begins execution...

, stdin and stdout.

There are several graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

s (GUIs) 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 labeled “Asterisk-GUI” is being developed alongside Asterisk by Digium
Digium
Digium, Inc. is a privately held communications technology company based in Huntsville, Alabama. Digium specializes in developing and manufacturing communications hardware and telephony software, most notably the open-source telephony platform Asterisk....

. There are other GUIs, such as FreePBX. Other attempts to simplify Asterisk installation have been made, trixbox
TrixBox
trixbox is a software PBX based on Asterisk.trixbox was initially released under the name Asterisk@Home. In October 2006 it was renamed to trixbox after Digium requested that its developers cease the use of the word "Asterisk"; the renaming was further justified by the fact that the product at...

 (formerly Asterisk at home (A@H)) is a popular distribution of Asterisk that includes Asterisk and FreePBX. PBX in a Flash (PIAF) is another such distribution.

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 the administrator who wishes 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.

Internationalization

While initially developed in the United States
United States
The United States of America is a federal constitutional republic comprising fifty states and a federal district...

, 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 http://downloads.asterisk.org/pub/telephony/sounds/ for the Interactive voice response
Interactive voice response
Interactive voice response is a technology that allows a computer to interact with humans through the use of voice and DTMF keypad inputs....

 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.

Development

Major Releases:
  • 1.0 - Released on 23 September 2004
  • 1.2 - Released on 15 November 2005
  • 1.4 - Released on 26 December 2006
  • 1.6 - Released on 2 October 2008
  • 1.8 - Released on 21 October 2010

Derived products

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 TrixBox
TrixBox
trixbox is a software PBX based on Asterisk.trixbox was initially released under the name Asterisk@Home. In October 2006 it was renamed to trixbox after Digium requested that its developers cease the use of the word "Asterisk"; the renaming was further justified by the fact that the product at...

 and Elastix
Elastix
Elastix is an open source Unified Communications Server software that brings together IP PBX, email, IM, faxing and collaboration functionality. It has a Web interface and includes capabilities such as a Call Center software with predictive dialing....

.

Asterisk is also included in the LinuxMCE
LinuxMCE
LinuxMCE is a free and open source software platform with a 10-foot user interface designed to allow a computer to act as a home theater PC for the living-room TV, personal video recorder, and home automation system. It allows control of everything in the home, from lighting and climate to...

 home entertainment/automation system.

See also

  • Comparison of VoIP software
    Comparison of VoIP software
    VoIP software is used to conduct telephone-like voice conversations across Internet Protocol based networks. VoIP stands for "Voice over IP". For residential markets, VoIP phone service is often cheaper than traditional public switched telephone network service and can remove geographic...

  • DUNDi
  • List of SIP software
  • Inter-Asterisk eXchange
  • IP PBX
    IP PBX
    An IP PBX is a business telephone system designed to deliver voice or video over a data network and interoperate with the normal Public Switched Telephone Network ....

  • Voice modem
  • VoIP
  • 2600hz IPBX
    2600hz
    2600hz is a collection of free and open-source software for communications configuration and management. It provides projects that help small and large businesses manage Voice over IP systems. Its core project, named blue.box, includes a fully functional GUI and framework for building web-based...

  • Cipango (sip server)
    Cipango (sip server)
    Cipango is a VoIP extension to the Jetty HTTP Servlets container . It is one of the three Open Source SIP Servlets container compliant with the latest SIP Servlets 1.1 standard . It also offers support of Diameter protocol.-External links:*...

  • FreeSWITCH IPBX
    Freeswitch
    FreeSWITCH is a free and open source communications software for the creation of voice and messaging products. It is licensed under the Mozilla Public License , a free software license...

  • GateKeeper h263
    GNU Gatekeeper
    The GNU Gatekeeper is an open-sourced project that implements an H.323 gatekeeper based on the OpenH323 or H323Plus stack...

  • GNU SIP Witch
    GNU SIP Witch
    GNU SIP Witch is a free SIP server software with Peer-to-peer capabilities from the GNU Project.It is the GNU implementation of the Session Initiation Protocol , which is being used for the routing of the calls.- Availability :...

  • Linux MCE
    LinuxMCE
    LinuxMCE is a free and open source software platform with a 10-foot user interface designed to allow a computer to act as a home theater PC for the living-room TV, personal video recorder, and home automation system. It allows control of everything in the home, from lighting and climate to...

  • SIP Express Router
  • Sippy B2BUA
    Sippy B2BUA
    Sippy B2BUA is a RFC3261-compliant Session Initiation Protocol Back-to-back user agent software distributed under the terms of GPL Free Software license.-Features:* 5,000-10,000 simultaneous sessions per server;...

  • Trixbox
    TrixBox
    trixbox is a software PBX based on Asterisk.trixbox was initially released under the name Asterisk@Home. In October 2006 it was renamed to trixbox after Digium requested that its developers cease the use of the word "Asterisk"; the renaming was further justified by the fact that the product at...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK