Home Networking-and-servers Building Telephony Systems With Asterisk

Building Telephony Systems With Asterisk

By Barrie Dempster , David Gomillion
books-svg-icon Book
Subscription
$10 p/m for first 3 months. $15.99 p/m after that. Cancel Anytime!
What do you get with a Packt Subscription?
This book & 7000+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook + Subscription?
Download this book in EPUB and PDF formats, plus a monthly download credit
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook?
Download this book in EPUB and PDF formats
Access this title in our online reader
DRM FREE - Read whenever, wherever and however you want
Online reader with customised display settings for better reading experience
What do you get with video?
Download this video in MP4 format
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with video?
Stream this video
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with Audiobook?
Download a zip folder consisting of audio files (in MP3 Format) along with supplementary PDF
What do you get with Exam Trainer?
Flashcards, Mock exams, Exam Tips, Practice Questions
Access these resources with our interactive certification platform
Mobile compatible-Practice whenever, wherever, however you want
BUY NOW $10 p/m for first 3 months. $15.99 p/m after that. Cancel Anytime!
Subscription
What do you get with a Packt Subscription?
This book & 7000+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook + Subscription?
Download this book in EPUB and PDF formats, plus a monthly download credit
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook?
Download this book in EPUB and PDF formats
Access this title in our online reader
DRM FREE - Read whenever, wherever and however you want
Online reader with customised display settings for better reading experience
What do you get with video?
Download this video in MP4 format
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with video?
Stream this video
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with Audiobook?
Download a zip folder consisting of audio files (in MP3 Format) along with supplementary PDF
What do you get with Exam Trainer?
Flashcards, Mock exams, Exam Tips, Practice Questions
Access these resources with our interactive certification platform
Mobile compatible-Practice whenever, wherever, however you want
About this book

Asterisk is a powerful and flexible open source framework for building feature-rich telephony systems. As a Private Branch Exchange (PBX) which connects one or more telephones, and usually connects to one or more telephone lines, Asterisk offers very advanced features, including station-to-station calls, line trunking, call distribution, call detail rerecords, and call recording.

Asterisk can be used to provide Interactive Voice Response (IVR). The power and flexibility of a programmable phone system gives us the ability to respond to our customers in meaningful ways.

Asterisk has also a fully-functional voicemail system included. 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 in audio!

Finally, Asterisk is a Voice Over IP (VoIP) system. The benefits of VoIP are numerous. For instance, 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 phones; we can have remote VoIP users; we can even have entire Asterisk systems operated and run completely separately but with integrated routing; We can have an extension anywhere we have a reasonably fast Internet connection, which means employees can have an extension on the phone system at home if they have a broadband connection. The benefits are too many to list.

Flexibility often means complexity, and this is true in the case of Asterisk. This book is all you need to understand and use Asterisk to build the telephony system that meets your need. You will learn how to use the many features that Asterisk provides you with.

Publication date:
September 2005
Publisher
Packt
Pages
174
ISBN
9781904811152

 

Chapter 1. Introduction to Asterisk

In this chapter, we will be looking at what Asterisk is, and what it can do for us. As we explore features, we can make note of what features will help us to accomplish our goals.

What is Asterisk?

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 software. This means that hundreds, if not thousands, of developers are working every day on Asterisk, extensions of Asterisk, software for Asterisk, and customized installations of Asterisk. A big portion of the product's flexibility comes from the availability of the source code, which means we can modify the behavior of Asterisk to meet our needs.

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.

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 usually more cost effective than leasing a telephone line for each telephone needed in a business.

Station-To-Station Calls

First, as a PBX, Asterisk offers station-to-station calls. This means that users can dial from one phone to another phone. While this seems obvious, elementary phone systems are available (often referred to as Key Systems) that support multiple phones and multiple lines, and allow each phone to use any line. In operation, the handsets do not have individual extensions that can be dialed, and so there is no way to initiate a call from one handset to another. These systems can usually be identified by having all outgoing lines on every telephone, usually with a blinking light. Unlike Key Systems, Asterisk allows for station-to-station calls, allowing directed internal communications.

Consider for a moment the following diagram:

In this diagram, each extension (meaning everything to the left of the PBX) can connect to any other extension by dialing it directly. This means that if a modem were to send a fax to a local fax machine, it would be done by creating a direct connection between the devices through the PBX.

Line Trunking

Secondly, Asterisk offers line trunking. In its simplest form, line trunking simply shares access to multiple telephone lines. These telephone lines are usually used to connect to the global telephone network, known as the Public Switched Telephone Network, or PSTN, but can also be private lines to other phone systems.

These connections can be a single analog trunk, multiple analog trunks, or high-capacity digital connections that allow multiple concurrent calls to be carried on a single connection.

Telco Features

Asterisk supports all of the "standard" features we would expect from any telephone company (or telco). Asterisk supports sending and receiving Caller ID, and even allows us to route calls based on the Caller ID. Using Caller ID with the PSTN requires us to subscribe to that feature with our PSTN connection provider.

Asterisk also supports other features as expected, such as call waiting, call return (*69), distinctive ring, transferring calls, call forwarding, and so on. These basic features and more are provided by Asterisk.

Advanced Call Distribution

Asterisk can receive a phone call, look at attributes of the call, and make routing decisions based on that. If enough information is not supplied by our PSTN connection provider, then we can ask the caller to input the information, using a touch-tone phone.

Once we make a decision how to route a call, we can send them to a single extension, a group of extensions, a recording, a voicemail box, or even a group of telephone agents who can roam from phone to phone. We can use call queues to more effectively serve our customers while maintaining operational efficiency.

This flexibility gives us the ability to move from just having a phone system to creating powerful solutions that are accessed through the telephone. Advanced Call Distribution (ACD) empowers us to serve our customers in the best way possible.

One major differentiating factor between Asterisk and other PBX systems that support ACD is that Asterisk does not require the purchase of a special license to enable any of these features. The limit on how many call queues, for example, is determined only by the hardware we use.

Call Detail Records

Asterisk keeps complete Call Detail Records (CDR). We can store this information in a flat file, or preferably a database for efficient look up and storage. Using this information we can monitor the usage of the Asterisk system, looking for patterns or anomalies that may have an impact on business.

We can compare these records to the bill that the phone company sends out. They allow us to analyze call traffic, say to run a report to find the ten most commonly dialed phone numbers. We could also determine the exchange that calls us most frequently so that we can target our marketing to the right area.

Even more than that, we can look at how long phone calls are taking. We can count how many calls a specific agent answers and compare with the average. The uses of this feature are many.

Using this information, we can also identify abuses of our long-distance calling service. Employees all around the world steal long distance and time from employers; Asterisk gives us the tools to detect these possible causes of waste. The importance of calling records should not be underestimated: this information is invaluable for a variety of business functions. As many countries operate a national do-not-call list, we can quickly determine if we have called anyone on the list to ensure that our verification and checking processes are adequate.

Call Recording

Asterisk gives us the ability to record calls that are placed through the PBX. We can use this to provide training materials, as examples of calls that went badly or went well. This can also be used to prove call content to satisfy customers or partners as well as being potentially helpful in a legal situation. It's important to consider this feature when setting up your Asterisk service as you may have substantial hardware and storage issues to address if your PBX is destined to handle and record a substantial number of calls.

As a word of warning: Asterisk provides the feature. It is up to us to determine if it is legal, appropriate, and helpful to employ it in our particular circumstances.

Asterisk is an IVR System

Interactive Voice Response, or IVR, 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 System

Asterisk has a fully-functional voicemail system 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 is a Voice over IP (VoIP) System

Asterisk gives us the ability to use Internet Protocol (IP) for phone calls, in tandem with more traditional telephone technologies.

Choosing to use Asterisk does not mean that we can only use Voice over IP 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 Voice over IP 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 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 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 phones, 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!

Voice over IP 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 Voice over IP 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 Voice over IP, 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 is Asterisk?


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 software. This means that hundreds, if not thousands, of developers are working every day on Asterisk, extensions of Asterisk, software for Asterisk, and customized installations of Asterisk. A big portion of the product's flexibility comes from the availability of the source code, which means we can modify the behavior of Asterisk to meet our needs.

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.

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 usually more cost effective than leasing a telephone line for each telephone needed in a business.

Station-To-Station Calls

First, as a PBX, Asterisk offers station-to-station calls. This means that users can dial from one phone to another phone. While this seems obvious, elementary phone systems are available (often referred to as Key Systems) that support multiple phones and multiple lines, and allow each phone to use any line. In operation, the handsets do not have individual extensions that can be dialed, and so there is no way to initiate a call from one handset to another. These systems can usually be identified by having all outgoing lines on every telephone, usually with a blinking light. Unlike Key Systems, Asterisk allows for station-to-station calls, allowing directed internal communications.

Consider for a moment the following diagram:

In this diagram, each extension (meaning everything to the left of the PBX) can connect to any other extension by dialing it directly. This means that if a modem were to send a fax to a local fax machine, it would be done by creating a direct connection between the devices through the PBX.

Line Trunking

Secondly, Asterisk offers line trunking. In its simplest form, line trunking simply shares access to multiple telephone lines. These telephone lines are usually used to connect to the global telephone network, known as the Public Switched Telephone Network, or PSTN, but can also be private lines to other phone systems.

These connections can be a single analog trunk, multiple analog trunks, or high-capacity digital connections that allow multiple concurrent calls to be carried on a single connection.

Telco Features

Asterisk supports all of the "standard" features we would expect from any telephone company (or telco). Asterisk supports sending and receiving Caller ID, and even allows us to route calls based on the Caller ID. Using Caller ID with the PSTN requires us to subscribe to that feature with our PSTN connection provider.

Asterisk also supports other features as expected, such as call waiting, call return (*69), distinctive ring, transferring calls, call forwarding, and so on. These basic features and more are provided by Asterisk.

Advanced Call Distribution

Asterisk can receive a phone call, look at attributes of the call, and make routing decisions based on that. If enough information is not supplied by our PSTN connection provider, then we can ask the caller to input the information, using a touch-tone phone.

Once we make a decision how to route a call, we can send them to a single extension, a group of extensions, a recording, a voicemail box, or even a group of telephone agents who can roam from phone to phone. We can use call queues to more effectively serve our customers while maintaining operational efficiency.

This flexibility gives us the ability to move from just having a phone system to creating powerful solutions that are accessed through the telephone. Advanced Call Distribution (ACD) empowers us to serve our customers in the best way possible.

One major differentiating factor between Asterisk and other PBX systems that support ACD is that Asterisk does not require the purchase of a special license to enable any of these features. The limit on how many call queues, for example, is determined only by the hardware we use.

Call Detail Records

Asterisk keeps complete Call Detail Records (CDR). We can store this information in a flat file, or preferably a database for efficient look up and storage. Using this information we can monitor the usage of the Asterisk system, looking for patterns or anomalies that may have an impact on business.

We can compare these records to the bill that the phone company sends out. They allow us to analyze call traffic, say to run a report to find the ten most commonly dialed phone numbers. We could also determine the exchange that calls us most frequently so that we can target our marketing to the right area.

Even more than that, we can look at how long phone calls are taking. We can count how many calls a specific agent answers and compare with the average. The uses of this feature are many.

Using this information, we can also identify abuses of our long-distance calling service. Employees all around the world steal long distance and time from employers; Asterisk gives us the tools to detect these possible causes of waste. The importance of calling records should not be underestimated: this information is invaluable for a variety of business functions. As many countries operate a national do-not-call list, we can quickly determine if we have called anyone on the list to ensure that our verification and checking processes are adequate.

Call Recording

Asterisk gives us the ability to record calls that are placed through the PBX. We can use this to provide training materials, as examples of calls that went badly or went well. This can also be used to prove call content to satisfy customers or partners as well as being potentially helpful in a legal situation. It's important to consider this feature when setting up your Asterisk service as you may have substantial hardware and storage issues to address if your PBX is destined to handle and record a substantial number of calls.

As a word of warning: Asterisk provides the feature. It is up to us to determine if it is legal, appropriate, and helpful to employ it in our particular circumstances.

Asterisk is an IVR System

Interactive Voice Response, or IVR, 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 System

Asterisk has a fully-functional voicemail system 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 is a Voice over IP (VoIP) System

Asterisk gives us the ability to use Internet Protocol (IP) for phone calls, in tandem with more traditional telephone technologies.

Choosing to use Asterisk does not mean that we can only use Voice over IP 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 Voice over IP 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 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 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 phones, 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!

Voice over IP 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 Voice over IP 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 Voice over IP, 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


Now that we've discussed what Asterisk is, we need to discuss 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. 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.

While Asterisk is not a SIP proxy, Asterisk can be configured to use one for registrations. One commonly used proxy is SIP Express Router, or SER. SER is an open-source SIP proxy that helps Asterisk scale in very large installations.

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.

 

Is Asterisk a Good Fit for Me?


Looking at what Asterisk is and is not, the natural question follows: is Asterisk right for me? This is a vitally important question that should be given serious consideration. Let's take a moment and look at some of the considerations we must explore before we commit to using Asterisk.

Trade-Offs

There are a series of trade-offs we must consider with Asterisk. Choosing Asterisk will lock us into certain choices, while others will be available whether we install an Asterisk server or not. We will now examine some of these trade-offs so that we can gauge the impact they have on us.

Flexibility versus Ease of Use

Asterisk is a very powerful framework into which we can install almost anything. We can configure each piece of Asterisk to the minutest detail. This gives us an amazing amount of flexibility.

This flexibility does not come without a price. Each of these details must be researched, understood, and tried. Each change we make affects other parts of the phone system, whether for good or for bad. Asterisk is not an easy-to-use platform, especially for the beginner.

There is a learning curve, but it is one that can be surmounted. Many developers have become experts in telephony; many telephony experts have mastered server administration. But each of us must decide what we expect from our phone system. I like to think of it in three major categories, as outlined in the following table:

Description

Solution

I want to plug the telephone system in and never think about it again. I want someone to call when things are not working. I do not plan to add anything to the system once it is set up.

A proprietary phone system is probably your best bet. Many offer a pre-configured system, and when changes are made, a certified consultant will be required.

I don't know much about phone systems, but I want to learn. I need a phone system soon. I'd like to have flexibility and additional features, and may change the configuration of my phone system from time to time.

Either use a packaged version of Asterisk or have a consultant build a customized Asterisk server. Learn to use Asterisk. Build a couple of Asterisk servers just to explore. Add features as necessary.

I want to learn and build my own phone system. I am interested in creating a custom solution for my problems. I am willing to accept the responsibility if something doesn't work, and take the time to figure out why.

Build an Asterisk server from the ground up. Much will be learned in the process, and the result will be an extremely powerful business tool.

These are, of course, not distinct categories. We each fall into a continuum. It is important to realize that Asterisk, as great as it is, is not the right solution for everybody. Like any technology we implement, we must consider its impact on the business, and decide whether it will become something useful that enables us to work better, or whether it will require too much maintenance and other work to make it an efficient addition. This depends entirely on our purposes and the other technology we have that requires our attention.

Graphical versus Configuration File Management

Asterisk currently uses plain text files to configure most options. This is a very simple way to create, back up, and modify configurations for those who are comfortable with command-line tools.

Some PBX systems offer a Graphical User Interface (GUI) to update the configurations. Others don't allow the configuration to be changed except by dialing cryptic codes on telephone handsets. Still others cannot be configured at all, except by certified technicians who receive the required software and cables from the phone system manufacturer.

A few good open-source tools are being created to ease the management of Asterisk. However, to get the full ability to customize Asterisk, editing of text files is still required. To help get used to this method of configuration, this book focuses on the text files and does not rely on any GUI package.

As we evaluate Asterisk, we must ask ourselves if we are happy about working with text configuration files to configure our phone system. If we are unwilling or unable to do so, Asterisk may not be the best choice.

Calculating Total Cost of Ownership

Asterisk is distributed as free, open-source software. The only costs involved with Asterisk are hardware, right? Well, maybe not.

As we have been discussing, Asterisk is very flexible. Determining how best to use the flexibility can quickly become a huge time-sink. Compatible handsets are also not free. If we are going to use the G.729 protocol, which compresses VoIP traffic by a factor of eight while maintaining excellent voice quality, we will also have to pay licensing fees.

With commercial phone systems, the costs are typically higher than with Asterisk; however, they are a fixed, known constant. Depending on the way we use Asterisk, costs can vary greatly.

The total cost of owning Asterisk can also include downtime. If we choose to support Asterisk on our own, and have to work to try to get Asterisk back up after a failure, there is an opportunity cost involved in the calls we should have received. This is why we should only choose to support our phone system internally if we have the appropriate resources to back that up.

Total Cost of Ownership (TCO) is not an easy calculation to make. It involves assumptions of how many times it will break, how long it will take us to get it back up and running, and how much consultants will charge us if we need their services.

TCO is only useful when comparing phone systems to each other. The following elements should be included when comparing TCO of multiple phone systems:

  • Procurement Cost: This is the cost to buy the PBX. In the case of Asterisk, it is only the cost of the hardware; other systems will include an element of licensing.

  • Installation Cost: This is the cost to configure and deploy the PBX. Some companies choose to do the deployment in-house; in such instances, there is still a cost, and to enable fair comparisons, it should be included.

  • Licensing Cost (one-time): This is the cost of any one-time licensing fees. Some PBX systems will require a license to perform administration, maintenance, connect to a Primary Rate ISDN line (PRI), etc. In Asterisk, this would include the G.729 licensing cost, if required.

  • Annual Support Cost: This is the estimated cost of ongoing maintenance. Of course some assumptions will have to be made. To keep the comparison fair, the same assumptions should be carried over between vendors.

  • Annual Licensing Cost: Some phone systems will have an annual cost to license the software on the handsets, as well as a license to be able to connect those handsets to the PBX.

When we have created the table, we can calculate the TCO for one year, two years, and so on. We can then evaluate our business and decide what costs we're willing to incur for our phone system.

Return on Investment

The cost of owning a phone system is only one piece of the Return on Investment (ROI) puzzle. ROI attempts to quantify an expenditure's effect on the bottom line, usually used to justify a large capital outlay.

Just as an example, one phone system that I installed went into an existing business. Its existing phone system had an automated attendant that had the unfortunate habit of hanging up on customers if they pressed the 0 key, or if they didn't press any key for 5 seconds.

What was the ROI for moving to a new phone system? Not having angry customers who got hung up on is a hard value to calculate. According to one of the owners of the business, that value was infinite. That made the cost of Asterisk very easy to justify!

ROI is basically the TCO subtracted from the quantification of the benefit (in money) to the business. So, if we calculated that a new phone system would save $5000 and cost $4000, then the ROI would be $1000.

Another interesting calculation to make, which is also categorized as ROI, is the time for the cost to be recouped. This calculation is one that I find helpful in making a business case for Asterisk.

Suppose a phone system costs $5000 to install. Using toll bypass, you can save a net $500 per month. In 10 months, the cost of installing the system will be swallowed up in the savings.

These are simple examples, but Return on Investment can help to justify replacing an existing phone system. By having these numbers prepared before proposing to replace the phone system, we can have a more professional appearance and be more likely to succeed in starting our Asterisk project.

 

Summary


Asterisk is a powerful and flexible framework, based on open-source software. It can be used to create a customized PBX for almost any environment. But it is not always the best choice for reasons we have just explored. We must consider this carefully in order to be confident that Asterisk is the right choice for our situation and ensure that the time and money invested in setting up the Asterisk service is a worthwhile outlay.

About the Authors
  • Barrie Dempster

    Barrie Dempster is currently employed as a Senior Security Consultant for NGS Software Ltd a world-renowned security consultancy well known for their focus in enterprise-level application vulnerability research and database security. He has a background in Infrastructure and Information Security in a number of specialised environments such as financial services institutions, telecommunications companies, call centres, and other organisations across multiple continents. Barrie has experience in the integration of network infrastructure and telecommunications systems requiring high calibre secure design, testing and management. He has been involved in a variety of projects from the design and implementation of Internet banking systems to large-scale conferencing and telephony infrastructure, as well as penetration testing and other security assessments of business critical infrastructure.

    Browse publications by this author
  • David Gomillion

    David Gomillion currently serves as Director of Information Technology for the Eye Center of North Florida. There, he orchestrates all of the technological undertakings of this four-location medical practice, including computers, software (off-the-shelf and custom development), server systems, telephony, networking, as well as specialized diagnostic and treatment systems. David received a Bachelor's of Science in Computer Science from Brigham Young University in August, 2005. There he learned the theory behind his computer experience, and became a much more efficient programmer. David has worked actively in the Information Technology sector since his freshman year at BYU. He has been a Networking Assistant, an Assistant Network Administrator, a Supervisor of a large Network and Server Operations unit, a Network Administrator, and finally a Director of Information Technology. Through his increasing responsibilities, he has learned to prioritize needs and wants, and applies this ability to his Asterisk installations.

    Browse publications by this author
Building Telephony Systems With Asterisk
Unlock this book and the full library FREE for 7 days
Start now