Asterisk introduction

Asterisk is an open source software PBX, created by Digium, Inc. and a continuously growing user and developer base. Digium invests in both developing the Asterisk source code and low cost telephony hardware that works with Asterisk. Asterisk runs on Linux and other Unix platforms with OR without hardware that connects your server to the traditional global telephony network, the PSTN

Asterisk gives you real-time connectivity on both PSTN and VoIP networks

With Asterisk as your telephony switching platform, PBX, you'll not only have a high-class PBX replacement. Asterisk is much more than the standard PBX. With Asterisk in your network, you can do telephony in new ways.
  • Connecting employees working from home to the office PBX over broadband connections
  • Connecting offices in various states over VoIP, Internet or a private IP network
  • Giving all employees voicemail, integrated with the Web and their E-mail
  • Building interactive voice applications, that connect to your ordering system or other inhouse applications
  • Giving access to the company PBX for business travellers, connecting over VPN from airport or hotel WLAN hotspots
  • ...and much more

Asterisk includes many features only found in top-of-the-line unified messaging systems, like
  • Music-on-hold for customers waiting in queues, supporting streaming media as well as MP3 music
  • Call queues where call agents jointly handle answering incoming calls and monitor the queue
  • Text-to-speech system integration (the Festival Open Source and Cepstral Swift speech synthesis software can be integrated)
  • Call data record (CDR) generation for integration with billing systems
  • Voice recognition system integration (such as the Sphinx Open Source voice recognition software)
  • The ability to interface with normal telephone lines, ISDN basic rate and primary rate interfaces

This document is an introduction to the Asterisk architecture, to guide you as you discover this complex, yet so powerful, open source software.

Channels - telephony connections to the PBX

Asterisk channels are drivers for various kinds of connections, both to VoIP protocols like SIP, IAX, MGCP and H.323 and to hardware that connect to the PSTN, like Zaptel, ISDN BRI and PRI and other devices.

Telephones and software phones connect to a channel. Some of them log in, or "register" to show that they are reachable, on line. Channels also register for outbound connections to other VoIP server, with SIP to the Free World Dialup network or to SIP providers like Nufone, Vonage and Siphone or with IAX to

More information:

Protocols - bits and bolts of Voice over IP or Internet Telephony

Asterisk supports many protocols for voice over IP. Both signalling protocols like H.323 and SIP and media transport protocols like RTP are included. Each channel supports one or more protocols. The media streams, the actual voice over the net, can be coded with many different algorithms, ranging from alaw/ulaw (G.711) to GSM and ILBC.


To connect incoming calls to outbound connections or other local users asterisk consist of many applications, command you use to create a working PBX. From simple logic like goto to more complex applications like voicemail and conference calls.

More information:

Connecting it all - The dial plan

The dial plan is stored in a text file, the configuration file extensions.conf. In this file actions are connected to extensions. Each extension belongs to a context, either the default context or a specific context you create, like incoming sip calls, long-distance outbound PSTN calls, local calls, inter-office calls or something else. Users connecting to asterisk all belong to a context (specified in the channel configuration file), which is where asterisk looks for advice on how to handle the calls placed by that user, checking the access rights to expensive lines, with different rule sets for local users and contacts calling from an outside line.

In the dial plan, you set up all actions and situations that the PBX should handle. You can configure contexts that work only during part of the day or night-time. You can include context from other context and either simplify or make a very complicated dial plan...

Examples of what you can do is:
  • Connect a call to voicemail if a user does not answer primary or secondary phone within 20 seconds
  • Connect a call to a multi-party conference
  • Transfer calls to another Asterisk pbx
  • Block calls from an unidentified or unwanted caller
  • Look up data in a database based on a query on the callers ID, decide which group of agents that should answer the call
  • Create call queues and let group of agents handle the incoming calls

More information:

Managing asterisk - the manager's interface

Asterisk runs in the background of a Linux or Unix system FreeBSD or OpenBSD. Most functionality today is based on Linux. As a manager, you can connect to a running Asterisk PBX with a command line interface, or one of serveral graphical interfaces.

The CLI gives the manager the power to
  • Follow what happens in the PBX on line
  • Debug various protocols as clients connect and place calls
  • See active users and active calls
  • Change data in the asterisk database
  • Reload configurations into the running PBX

There's also an TCP/IP based interface for management, that the Asterisk addon applications use. This gives the manager or user an opportunity to watch the Asterisk server in real-time, see connections coming up and shutting down as well as the ability to originate connections.

More information:

Asterisk - a platform for enterprise wide telephony

Asterisk servers are able to set up trunking connections between the various offices using a special Inter-Asterisk exchange protocol (IAX). This protocol supports many simultaneous connections and easily work over NAT connections. This way, you can build least-cost-routing for calls and have load-balancing between the Asterisk servers in your network.

Asterisk configuration

All of Asterisk is configured in text files, the Asterisk config files, that are placed in the /etc/asterisk directory on a standard install. In the standard distribution, there are sample files with a lot of comments, explaining various configuration options.

More information:

Development and scripting

If you want to add on to Asterisk, there are many ways to add functionality.
  • Using the applications in the dial plan to build solutions. There are scripting commands like gotoif, variables to test and set and string handling functions to control what happens when a user dials an extension
  • agi: The application interface for extending the dialplan with your functionality in the language you choose - PHP, Perl, C, Java, Unix Shell and others
  • manager: The manager API for connecting to the PBX from your application
  • And the C API, documented in the source codes and documentation you generate from within the source code tree

Note that Asterisk is licensed by Digium with the GPL license. This means that you are free to modify the code and distribute your solution to customers, but you must also make the modifications available under the GPL. If you want your modifications to become part of the official Asterisk code repository, you need to waive the rights to the code to Digium. Many developers from all over the world contribute to Asterisk, you are most welcome to join. Since Digium has the copyright for the full source code to Asterisk, if you want to keep you code modifications from becoming GPL and still need to distribute it to clients, you can contact Digium for a special license.

More information:
  • Documentation, IRC, bug tracker, links, cvs download information
  • Digium: Hardware, licensing, commercial support, links to commercial partners


Digium has a draft Asterisk handbook, a PDF file you can download and read. It is a good introduction to Asterisk, the configuration files and dial plan contexts. More up to date reference information on applications and a lot of tricks and tips are found on this web site, the Voip-info Wiki.

Asterisk Users Conferences are open to all -

Where to start

You start on the Asterisk home page - - and choose the download item in the menu. There you'll find information on how to get releases from the FTP server or download to the latest development source code in the CVS repository. After that continue with the installation tips. If you're in a hurry to get started, check the quickstart page.

Get connected with other Asterisk users worldwide

If you mean business

See also

Created by: oej, Last modification: Sat 28 of Jan, 2017 (11:19) by dakota
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+