The Hitchhiker's Guide to Asterisk | ||
---|---|---|
<<< Previous | Next >>> |
Welcome to the wonderful world of Asterisk. You are about to discover the most powerful and popular open source PBX available.
Asterisk allows you to craft a telephony system to address your specific requirements. It does this by providing a library of basic telephony functions which you then use as script building-blocks. Calls into the system trigger these functions through digit patterns (referred to as extensions), giving you complete control of complex call routing concepts with relative ease. Common PBX functionality such as voicemail, call queuing, conferencing, music on hold and others are all included. But that's just the beginning. Asterisk is one of the few PBXs in existence that connects legacy telephony technologies such as PRI or Analog trunks through the same switching logic as state of the art VoIP interfaces such as H.323 or SIP. This powerful yet simple core allows complex concepts in other systems to be deployed with ease in Asterisk. For example, building an IVR application or deploying CTI functionality can't be done more inexpensively than with any other system. Why? Because with Asterisk, it's all built right in!
Perhaps Asterisk's most valuable asset is the open nature of the system. As with any open-source application, Asterisk can be further enhanced by the community of people who use it. This powerful concept ensures that Asterisk is prepared to mature in keeping with the demands of the industry. Go ahead and modify the source code to fit your needs, or, better still, contribute to an active and growing development community.
Because Asterisk is so powerful and flexible, in this book we can only begin to cover all the possible uses and configurations. We will therefore focus on the most commonly used features of the system and answer the most frequently asked questions. If you can work through the material we present here, you will be well on your way to becoming a competent Asterisk solutions developer.
We have also included appendices that will serve as excellent reference material, covering subjects such as application programming in C, configuration of various types of hardware, and many samples of configuration files. Also, there is a glossary included to help you find definitions for terms and acronyms used in this book.
Because of the nearly limitless flexibility of Asterisk, successfully configuring a system requires more than a passing familiarity with several technical concepts, most notably Linux Installation and Administration, as well as an understanding of Telephony. In this document, we will only be scraping the surface of these complex technologies as we discuss concepts relevant to Asterisk design, installation and administration. If you desire more knowledge on either subject, we have suggested several sources which will set you on the path towards the required knowledge.
Asterisk is a PBX, and that means that the more Telecommunications knowledge you have, the easier Asterisk will be to learn. If you plan to use analog circuits and telephones, you will want to understand the difference between FXS and FXO interfaces. Digital trunks will require you to be conversant with technologies such as ISDN-PRI (including wiring of T1s). Terms such as PSTN or VoIP should be second nature to you, and you'd do well to obtain an understanding of the concept of analog to digital conversion, and what codecs are.
Before you get overwhelmed, please understand that many excellent references exist to help you obtain this knowledge. A good introductory work is Noll's Introduction to Telephones and Telephone Systems , published by Artech House Publishers. The definitive encyclopaedia of all things Telecom is Newton's Telecom Dictionary , published by CMP Books - this book should be on any telecommunication professional's bookshelf.
You will need an i386-compatible system with Linux installed before you can install and use Asterisk. If you do not have a solid grasp of Linux administration concepts you will want to focus on obtaining those skills before attempting an Asterisk install. On the Internet, The Linux Documentation Project (http://www.tldp.org) provides many great resources for beginners. In the bookstore, Frisch's Essential System Administration along with Nemeth, et al.'s Linux Administration Handbook and Unix System Administration Handbook are recommended. Running Linux by Matt Welch, Lar Kaufman et al. is still one of the all-time most successful Linux introductions. Reading one or two of these books can save a lot of headaches down the road.
Asterisk works on many operating systems, however the main development and the PSTN hardware support is focused on the Linux i386 platform. On other platforms, you are mostly limited to the use of VoIP protocols in your PBX. Some applications will not run without a timer that currently is implemented only on Linux systems. The FreeBSD operating system has recently got a lot of attention by Asterisk developers and Asterisk is running smoothly on that platform with the above mentioned limitations.
Digium's Asterisk server runs on FreeBSD, OpenBSD and OS X, but the drivers do not yet support these platforms. FreeBSD's 'ports' provides drivers for the most recent stable release of Asterisk, and work is progressing on integrating those drivers into Digium's releases.
Support for non-linux platforms is provided by third-parties, and as a result there are various limitations on features, drivers or release dates versus Asterisk on Linux. As that support becomes integrated into Digium's releases, these limitations will go away.
The Asterisk PBX system is a complex piece of software. The learning curve is very steep and simply reading any single resource will not teach you everything that Asterisk is capable of. This resource is an attempt to gather some of the most common issues that new comers to Asterisk encounter. Learning how Asterisk works is very much like learning a new programming language. Many hours need to be spent with Asterisk in order to understand how all the configuration files work with each other to control the many interfaces. The ability to understand the dialplan is a key concept that those new to Asterisk need to fully comprehend. Once this is established the configuration of the many different kinds of interfaces that you would like Asterisk to communicate with work in tandem with the dialplan. This relationship extends throughout Asterisk with many other modules that are not compiled by default. The term KISS (Keep It Super Simple) needs to be applied here with great emphasis. The mistake many people make when first discovering Asterisk presuming a production quality system is possible in only a couple of hours. This may be possible once all the concepts are learned, but few are able to do it their first time out. However the intension of this book is to get you up to speed as quickly as possible.
Asterisk is open source software. The ability to read the source code is its power. Most (if not all) other PBX systems are entirely closed source with only the abilities that have been provided to you. If something does not work quite the way you would expect it to, you are able to change it.
<<< Previous | Home | Next >>> |
Introductory letter from Mark Spencer (hopefully?) | Asterisk Architecture |