Asterisk

The software phone company

Download the whole article as PDF

Write a full post in response to this!


Asterisk is a phone system in software. It can replace large and expensive business phone systems, powering thousands of extensions, or it can help home users save money on long distance. Because it’s implemented in software, it is extremely versatile, easy to customize, and easy to extend.

The need for Asterisk

You’re probably familiar with the concept of a Private Branch Exchange (PBX) already, though you might not know it. Almost every medium or large business has one. A PBX is, basically, a simplified version of a telephone company’s exchange. Most PBXs provide features such as direct touch-tone dialing of extensions, routing of calls onto the public telephone network, and voice mail services. If you’re accustomed to dialing 9 to place an outside call, or dialing a simple 3- or 4-digit number to reach another extension, you’re using a PBX.

There are a few other things common to traditional PBX systems. First, they can be very expensive. Even a moderate-sized system could easily exceed $100,000. A system to support a large organization could easily cost millions of dollars. Secondly, they have limited flexibility. While more expensive PBXs may be able to use technologies such as voice mail, advanced call queueing, and the like, these are often add-on products that can be cumbersome to integrate. If you want integration with other data systems, such as a billing database to give callers an account balance, your job becomes that much more difficult.

The Asterisk way

Asterisk is different for several reasons. The most important is that it’s an all-software approach. Instead of switching analog lines in hardware, it routes and manipulates Voice Over Internet Protocol (VoIP) packets in software. The backbone of your phone system usually becomes Ethernet, and phones can hook into that Ethernet backbone. Older analog phones can still be supported by using gateway devices.

Asterisk provides an all-software approach. Instead of switching analog lines in hardware, it routes and manipulates Voice Over Internet Protocol (VoIP) packets in software

Asterisk provides more than you’d expect from a PBX. You get all the usual features, such as voice mail, call routing, and support for multiple extensions. On top of that, you get interfaces to the operating system and programming languages for the extreme in power, optional web-based administration interfaces, configuration in flat files or SQL databases, detailed call logging into a database, and many more features.

With Asterisk, you can:

  • Provide basic service to analog or digital phones
  • Develop call-routing logic to choose the least expensive way to route a particular call
  • Route incoming and outgoing calls over standard voice lines or the internet
  • Provide voice mail and teleconferencing services
  • Capture detailed logging information for analysis or billing
  • Develop simple or complex interactive menus
  • Call other programs on the system (for instance, you could write an application to read a weather forecast over the phone based on an XML-RPC call)
  • Call into the phone system from other programs. You could have a message played to someone’s cell phone when a machine goes down, or simply check your voice mail from a web browser.
  • Operate small or large queues for call centers, announcing estimated hold times to callers.

The complete Asterisk system

A complete Asterisk-based phone system will have several components to it. You may not see all of these in any single installation, but you probably want to be aware of your options anyway. Keep in mind that it’s possible to have a fully-functioning Asterisk system without spending any money. All you need is a Linux PC.

It’s possible to have a fully-functioning Asterisk system without spending any money

The Asterisk server

The Asterisk server itself is the heart of the installation. Whenever a call is made, Asterisk figures out how to route it. Asterisk also manages things such as voice mail, teleconferencing, queues, and hold music.

Hard phones

Several companies manufacture hardware digital phones. These phones tend to resemble traditional office desk phones. Instead of a telephone jack, have an Ethernet jack. They will communicate with your Asterisk server using the SIP protocol over Ethernet. This type of phone is called a “hard phone”.

Hard phones can be purchased for as little as $60 for a basic version. Business-class hard phones typically cost anywhere from $150 to $700, depending on features.

Wireless hard phones have recently started appearing on the market. These phones communicate with your Asterisk server over an 802.11b Wifi network, and can generally roam with the same ease as a laptop can on a Wifi network. Wireless phones typically cost around $150 to $350.

Soft phones

Soft phones are SIP phones that are implemented entirely in software. To use a soft phone, you would usually use a microphone and earpiece (or a headset) attached to a PC. Soft phones exist for all popular operating systems. Linux users frequently use the GPL’d linphone program.

In addition to the obvious cost savings, some users prefer soft phones to help avoid desk clutter. Some soft phones also offer features that are unavailable in all but the most expensive hard phones.

ATAs

An Analog Telephone Adapter (ATA) is used to hook up conventional analog telephony equipment to a digital phone system such as Asterisk. ATAs come in two varieties. Some ATAs are designed to simulate a phone company line; that is, they provide dialtone, read DTMF digits, and provide ring voltage to a standard analog telephone. These ATAs are said to provide FXS (Foreign Exchange Station) ports.

Other ATAs are designed to simulate a standard telephone. These units let you add analog lines from the phone company to Asterisk. They can place outgoing calls by sending DTMF digits to the phone company, or can receive incoming calls by placing SIP calls when ring voltage is detected. These ATAs are said to provide FXO (Foreign Exchange Office) ports.

Both types of ATA look like just another SIP device to Asterisk. An FXS device can be treated just like any other SIP phone, and indeed, appears that way to Asterisk. An FXO device can also work that way, but can additionally be sent a phone number to dial.

ATAs are typically used to handle a small number of lines. They’re normally used in residential or small office settings. Larger environments will usually use analog channel banks, discussed below.

Don't miss out on the other pages!
12next ›last »

Write a full post in response to this!

Similar articles

0

Do you like this post?
Vote for it!

Copyright information

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available at http://www.gnu.org/copyleft/fdl.html.

Biography

John Goerzen: John Goerzen is an avid programmer, developer for the Debian GNU/Linux project, and a systems administrator. He is the author of several books, including the recent Foundations of Python Network Programming. John is currently the president of Software in the Public Interest, Inc., the legal parent organization of Debian.

Anonymous visitor's picture

CUSTOM BRAND

Submitted by Anonymous visitor on Thu, 2006-08-31 18:43.

Vote!
0

It is possible to take custom brand Asterisk software

Regards,
Raj

www.rtel.ca
raj.thangarajah@rtel.ca

Anonymous visitor's picture

Another excellent GPL'd Softphone

Submitted by Anonymous visitor on Mon, 2006-09-04 21:16.

Vote!
0

Another excellent GPL'd softphone is Twinkle (http://www.twinklephone.com), which is written for Qt. It works well with Asterisk.

Anonymous visitor's picture

Passwords

Submitted by Anonymous visitor on Tue, 2006-11-07 03:42.

Vote!
0

i am running asterisk with FreePBX. The problem that i facing is that any user can walk into any desk, pick up the phone and make the calls. the call will charged under the owner of the phone not the caller.

is there anyway i can lock the phone with a code or allow any user to make any calls from any phone but charged to their accounts instead of charging to the phone they are using

zakaio
SOPAC Secretariat
Fiji Islands

Anonymous visitor's picture

use leading digits

Submitted by Anonymous visitor on Sat, 2006-11-18 01:03.

Vote!
0

you can assign leading digits to users. and make them different.
The problem with this is that you force users to press 1,2,3,4,..,9 before they start the real number. If you have lot of users, then give them 2 digits prefix. in your dial plan you can add the digits to ignore-path so asterisk keeps the dial tone up for the real numbers. Adding password will alienate your customers since you are asking them to enter a password all the time. Just remember to allow 911 (or equivalent) calls through without any password or prefixes.

Anonymous visitor's picture

Hi i have the same problem

Submitted by Anonymous visitor (not verified) on Mon, 2007-07-30 12:27.

Vote!
0

Hi i have the same problem with you. Did you solve your problem? if yes could you please help me about this issue.

Regards,

Anonymous visitor's picture

To interact with Asterisk

Submitted by Anonymous visitor on Fri, 2007-02-23 06:40.

Vote!
0

I would like to know how we can communicate with Asterisk i.e. teeeling it to make a call and receiving the events sent by it. Is there any predefined packet structure to communicate. Anybody please help me out. Thanks in advance.

Thanx,
Rani

Cleme's picture

The Asterisk WiFi HotSpot

Submitted by Cleme on Tue, 2007-05-01 14:59.

Vote!
0

Does Asterisk WiFi HotSpot Finder retrieve name and address information for all Wi-Fi Hot Spots not only for zip code in the United States? I'm from Croatia, and I'm trying to save some money with this software.
Cleme,

Anonymous visitor's picture

Storing of incoming calls

Submitted by Anonymous visitor (not verified) on Thu, 2007-11-01 01:14.

Vote!
0

Just curious is there ever a time an incoming call would not show up?
If so why?