In this chapter, we will look 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.
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 which is denoted as *. The symbol represents a wildcard in many computer languages. This gives us an 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 an open source software package. 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. This 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.