This is a fascinating question: what exactly is Asterisk? There are a number of answers, all of which are accurate.
First, Asterisk is a symbol (*). The symbol represents a wildcard in many computer languages. This gives us insight into the developers’ hopes for Asterisk. It is designed to be flexible enough to meet any need in the telephony realm.
Second, Asterisk is open source. It implements communications in software instead of hardware. This allows new features to be rapidly added with minimal effort. You can easily make your own changes or additions. With its included support for internationalization, rich set of configuration files, and open source code, every aspect of Asterisk can be customized to meet your needs.New interfaces and technologies are easily added to Asterisk.
Finally, and most importantly, Asterisk is a framework that allows selection and removal of particular modules, allowing us to create a custom phone system. Asterisk’s well-thought-out architecture gives flexibility by allowing us to create custom modules that extend our phone system, or even serve as drop-in replacements for the default modules. With Asterisk you can take control of your communications.
Asterisk is a PBX
Asterisk is a Private Branch Exchange (PBX). A PBX can be thought of as a private phone switchboard, connecting to one or more telephones on one side, and usually connecting to one or more telephone lines on the other. This is perfect phone systems for business - usually more cost effective than leasing a telephone line for each telephone needed in a business .
Asterisk is an IVR System
IVR (Interactive Voice Response), revolutionizes just about every business it touches. The power and flexibility of a programmable phone system gives us the ability to respond to our customers in meaningful ways.
We can use Asterisk to provide 24-hour service while reducing the workload for our employees at the same time. Asterisk allows us to play back files, read text, and even retrieve information from a database. This is the type of technology you come across in telephone banking or bill payment systems.
When you call your bank you hear a variety of recordings and issue commands usually using a touch tone telephone. For example you may hear greetings and status messages, type in your account number and other personal information or authentication credentials. You will also often hear personalized information, which will be retrieved from a database, such as your last few transactions or your account balance.
Systems such as this can be, and have been, implemented using Asterisk.
Asterisk is a Voicemail Systems
Asterisk has a fully-functional voicemail systems included. The voicemail system is surprisingly powerful. It supports voicemail contexts so that multiple organizations can be hosted from the same server. It supports different time zones so that users can track when their phone calls come in. It even provides the option to notify the recipient of new messages via email: in fact, we can even attach the message audio!
Asterisk gives us the ability to use IP (Internet Protocol ) for phone calls, in tandem with more traditional telephone technologies.
Choosing to use Asterisk does not mean that we can only use VoIP for calls. In fact, many installations of Asterisk do not even use it at all. But each of those systems has the ability to add VoIP easily, at any time, with no additional cost.
Most companies have two networks: one for telephones, and one for computers. What if we could merge these two networks? What would the savings be? The biggest savings are realized by reducing the administrative burden for Information Technology staff. We can now have a few experts on computing and networking, and since telephony will run on top of a computer and over our IP network, the same core knowledge will empower our staff to handle the business phone system.
We will also realize benefits from decreased equipment purchasing in the long run. Computer equipment gets progressively cheaper while proprietary phone systems seem to remain nearly constant in price. Therefore, we may expect the costs for network switches, routers, and other data network equipment to continue to decrease in price. In most current phone systems, extensions can only be as far away as the maximum cabling length permitted by the telephone system manufacturer. While this seems perfectly reasonable, sometimes we would like it not to be so.
When using VoIP system we can have multiple users using the same Asterisk service from a variety of locations. We can have users in the local office using PSTN phones or IP phone system, we can have remote VoIP users, we can even have entire Asterisk systems operated and run completely separately but with integrated routing.
One way to slash overhead is to reduce the amount of office space required. Many businesses use telecommuting for this purpose. This often creates a problem: which number do we use to reach a telecommuter? Imagine the flexibility if telecommuting employees could simply use the same extension when at home as when in the office or even when using their mobile!
VoIP phone service allows us to have an extension anywhere we have a reasonably fast Internet connection. This means employees can have an extension on the phone system at home if they have a broadband connection. Therefore, they will have access to all of the services provided in the office, such as voicemail, long-distance calling, and dialing other employees by extension.
Just as we can bring employees into the PBX from their homes, we can do the same for remote offices. In this way, employees at multiple locations can have consistent features, accessed in exactly the same way, helping to ease the burden of training employees.
But this is not all that VoIP system can give us. We can use an Asterisk server in each office and link them. This means that each office can have its own local lines, but office-to-office communications are tunneled over the Internet. The savings to be realized by avoiding call tolls can be significant. But there’s more.
Once we have our offices linked in such a way, we can handle calls seamlessly, irrespective of which office the employees are in. For instance, if a customer calls Office A to ask about their account, and the accounting department is in Office B, we simply transfer the call to the appropriate person at the other office. We don’t have to care about where that other office is. As long as they have a reliable internet connection, they don’t even have to be in the same country.
We can route calls based on cost. If it is more cost effective, we can send our calls to another office, where the remote Asterisk server will then connect them with the regular phone network. This is commonly referred to as “Toll Bypass”. Another benefit of linking our phone systems together is that we can route calls based upon time. Imagine we have two offices, each in different time zones. Each office will probably be open at different times. To handle our customers effectively, we can transfer calls from a closed office to one that is open. Again, since we are using an Internet connection to link the offices, there is no additional expense involved in doing so.
By linking our offices together using VoIP phones system, we can increase our customer service while decreasing our expenses: a true win-win situation.
The existence of all these options doesn’t necessarily mean we should be using them, but with the versatility of Asterisk we may use and ignore options as it suits our requirements. If we were to use every single line type and feature that Asterisk supports this could lead to a very complicated and difficult-to-administrate system. We should choose the subset that fits our requirements and which would function well within our current communications setup.
What Asterisk Isn’t
By seeing what Asterisk doesn’t do, we can evaluate how important these pieces are to us, to help us determine if Asterisk is right for us.
Asterisk is Not an Off-the-Shelf Phone System
There are phone systems that can be ordered that are so easy to install, configure, and use that anybody without any training could do it. Asterisk is not one of them.
Asterisk’s flexibility and robust feature set necessitate a host of configuration options. The best set of options to use will vary between installations, and sometimes vary within the same installation depending on the use. For instance, some handsets should have call waiting, while for other users, it is nothing but a distraction.
We can configure anything we need to with Asterisk, but there is a learning curve associated. In fact, sometimes there is programming involved in changing an attribute of the phone system. This is certainly something to consider.
While Asterisk in and of itself is not an out-of-the-box solution, there are packages based on Asterisk that are. For instance, a system called Asterisk@home is a single-CD installation that installs Linux, Asterisk, and a number of automated configuration tools. These tools allow the easy configuration of extensions, lines, and a few other features; however, to make this work, certain other features are not available.
Asterisk is also offered by companies that will customize the system specifically for your needs. These companies sell a server, the software, and the handsets at a package price, much as we see with proprietary phone systems. The difference is that the GNU Public License guarantees that we can view and modify the source code.
So, Asterisk in its purest form is not an off-the-shelf telephone system, although it is flexible enough to be used as one. Asterisk is Not a SIP Proxy
Asterisk supports Session Initiation Protocol (SIP) for VoIP system. Calls can be made and received with SIP using Asterisk.
In SIP, devices register with a SIP server. This server allows devices to locate each other to establish communications. When large numbers of SIP devices are used, a SIP Proxy is often employed to handle the registrations and connections in an efficient way.
Asterisk, however, cannot act as a SIP Proxy. SIP devices can register with Asterisk, but as the number of SIP devices increases, Asterisk is not able to scale very well. Therefore, if we intend to use over about 100 SIP devices, Asterisk may not be appropriate.
Asterisk Does Not Run on Windows
At one point, Asterisk had a demonstration CD that worked with Windows; however, Asterisk does not run on the Microsoft platform. Asterisk requires near real-time access to system resources. It also requires hooks into certain resources. As such, Asterisk is built to use Linux- the open source *NIX operating system.
Although a large number of Linux distributions and PC architectures are excellent candidates for Asterisk. The instructions that follow have been made as generic as possible, but you will notice a leaning toward CentOS directory structure and system utilities. We have chosen to focus on CentOS (arguably, the most popular distro for Asterisk) because its command set, directory structure, and so forth are likely to be familiar to a larger percentage of readers (we have found that many Linux administrators are familiar with CentOS, even if they don’t prefer it). This doesn’t mean that CentOS is the only choice, or even the best one for you. A question that often appears on the mailing lists is: “Which distribution of Linux is the best to use with Asterisk?” The multitude of answers generally boils down to “the one you like the best.”