Asterisk
The software phone company
Download the whole article as PDF
- 2006-09-01
- Server side | Intermediate
-
Write a full post in response to this!
This content was sponsored by:
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.
Write a full post in response to this!
Similar articles
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.
- Login or register to post comments
- 40030 reads
- Printer friendly version (unavailable!)




Best voted contents
-
Free software heroes: from Stallman to Google, a list of inspiring individuals who made everything possible
Tony Mobily, 2008-06-15 -
Ian Lynch's take on the BECTA fiasco
Tony Mobily, 2008-06-17 -
The Groklaw effect hits Becta. And yes, I am coining a new term
Tony Mobily, 2008-06-15 -
Mail merge in OpenOffice.org
Michael Crider, 2008-06-17
Similar entries
All news
Other sites
- The Top 10 Everything (Dave). The good, the bad and the ugly.
- Free Software news (Dave & Bridget). All about free software -- free as in freedom!
- Book Reviews: Illiterarty (Bridget). Book reviews, blogs, and short stories.
Hot topics - last 60 days
-
A future without Microsoft
Tony Mobily, 2008-06-08 -
Vienna failed to migrate to GNU/Linux: why?
Tony Mobily, 2008-06-09 -
Free software heroes: from Stallman to Google, a list of inspiring individuals who made everything possible
Tony Mobily, 2008-06-15 -
Dubious ads in Free Software Magazine
Tony Mobily, 2008-05-25 -
The Bizarre Cathedral - 6
Ryan Cartwright, 2008-05-25


Dedicated server
CUSTOM BRAND
Submitted by Anonymous visitor on Thu, 2006-08-31 18:43.
Vote!It is possible to take custom brand Asterisk software
Regards,
Raj
www.rtel.ca
raj.thangarajah@rtel.ca
Another excellent GPL'd Softphone
Submitted by Anonymous visitor on Mon, 2006-09-04 21:16.
Vote!Another excellent GPL'd softphone is Twinkle (http://www.twinklephone.com), which is written for Qt. It works well with Asterisk.
Passwords
Submitted by Anonymous visitor on Tue, 2006-11-07 03:42.
Vote!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
use leading digits
Submitted by Anonymous visitor on Sat, 2006-11-18 01:03.
Vote!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.
Hi i have the same problem
Submitted by Anonymous visitor (not verified) on Mon, 2007-07-30 12:27.
Vote!Hi i have the same problem with you. Did you solve your problem? if yes could you please help me about this issue.
Regards,
To interact with Asterisk
Submitted by Anonymous visitor on Fri, 2007-02-23 06:40.
Vote!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
The Asterisk WiFi HotSpot
Submitted by Cleme on Tue, 2007-05-01 14:59.
Vote!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,
Storing of incoming calls
Submitted by Anonymous visitor (not verified) on Thu, 2007-11-01 01:14.
Vote!Just curious is there ever a time an incoming call would not show up?
If so why?