Synopses & Reviews
This bestselling book is now the standard guide to building phone systems with Asterisk, the open source IP PBX that has traditional telephony providers running scared! Revised for the 1.4 release of the software, the new edition of Asterisk: The Future of Telephony reveals how you can save money on equipment and support, and finally be in control of your telephone system.
If you've worked with telephony in the past, you're familiar with the problem: expensive and inflexible systems that are tuned to the vendor's needs, not yours. Asterisk isn't just a candle in the darkness, it's a whole fireworks show. Because Asterisk is so powerful, configuring it can seem tricky and difficult. This book steps you through the process of installing, configuring, and integrating Asterisk with your existing phone system.
You'll learn how to write dialplans, set up applications including speech synthesis and voice recognition, how to script Asterisk, and much more -- everything you need to design a simple but complete system with little or no Asterisk experience, and no more than rudimentary telecommunications knowledge. The book includes:
- A new chapter on managing/administering your Asterisk system
- A new chapter on using Asterisk with databases
- Coverage of features in Asterisk 1.4
- A new appendix on dialplan functions
- A simplified installation chapter
- New simplified SIP configuration, including examples for several popular SIP clients (soft phones and IP telephones)
- Revised chapters and appendicies reviewed and updated for the latest in features, applications, trends and best-practices
Asterisk is revolutionizing the telecom industry, due in large part to the way it gets along with other network applications. While other PBXs are fighting their inevitable absorption into the network, Asterisk embraces it. If you need to take control of your telephony systems, move to Asterisk and see what the future of telecommunications looks like.
This new edition of a bestselling standard brings the book up to date with the upcoming Asterisk 1.2 release, covering new features like templates that make Asterisk configuration much simpler.
Revised for the upcoming 1.8 release of the Asterisk open source PBX, this bestselling guide provides a complete roadmap for installing, configuring, and integrating this powerful software with existing phone systems. Asterisk: The Definitive Guide has everything you need to know to design a complete VoIP or analog system with little or no Asterisk experience, and no more than rudimentary telecommunications knowledge.
Written for experienced Linux power users and administrators, this book shows you how to write a basic dialplan step-by-step, and quickly gets you up to speed on several features new to Asterisk, including:
- Skype for Asterisk
- Fax capabilities (T.38)
- Clustering with Open AIS
- Jabber integration and XMPP
- Heartbeat cluster infrastructure (LinuxHA, failover)
- ISN and ENUM -- methods of circumventing the PSTN by dialing SIP URIs with numbers
- Security profile for Real-time Transport Protocol (RTP)
- Internet Protocol version 6 (IPv6)
About the Author
Jim Van Meggelen is President and CTO of Core Telecom Innovations, a Canadian-based provider of open-source telephony solutions. He has over fifteen years of enterprise telecom experience, for such companies as Nortel, Williams and Telus, and has has extensive knowledge of both legacy and VoIP equipment from manufacturers such as Nortel, Cisco and Avaya.
Jim was the architect of two of the world's largest managed enterprise voice networks; each solution serving roughly twenty-thousand users in more than one-thousand communities across Canada, providing telecommunications in five different languages, through six time zones, administered completely from a central location. These networks pioneered the use of extensive automation and database control in a branch voice network - functionalities not generally available in proprietary telecommunications systems. Jim has now moved on from the world of proprietary telecom, and is commited to open-source telephony.
Jim is one of the principal contributors to the Asterisk Documentation Project, and is co-author of the bestselling O'Reilly book, Asterisk: The Future of Telephony. He enjoys teaching, public speaking, improvisational acting, and writing.
Jared Smith is a long time member of the Asterisk community, and a co-founder of the Asterisk Documentation Project. Jared has over a decade of systems administration and programming experience, along with several years of professional telephony and voice-over-IP experience. As the architect of one of the world's largest Asterisk installations, he has a wealth of hands-on Asterisk knowledge.Jim Van Meggelen is President and CTO of Core Telecom Innovations, a Canadian-based provider of open-source telephony solutions. He has over fifteen years of enterprise telecom experience, for such companies as Nortel, Williams and Telus, and has extensive knowledge of both legacy and VoIP equipment from manufacturers such as Nortel, Cisco and Avaya. Jim is one of the principal contributors to the Asterisk Documentation Project.Leif Madsen first took an interest in Asterisk while attempting to find a voice conferencing solution for him and his friends. After someone suggested trying Asterisk, the obsession began. Wanting to contribute and be involved with the community, and noticing the lack of Asterisk documentation, he co-founded the Asterisk Documentation Project.
Table of Contents
Foreword; Preface; Audience; Organization; Software; Conventions Used in This Book; Using Code Examples; Safari® Books Online; How to Contact Us; Acknowledgments; Chapter 1: A Telephony Revolution; 1.1 VoIP: Bridging the Gap Between Traditional and Network Telephony; 1.2 Massive Change Requires Flexible Technology; 1.3 Asterisk: The Hacker's PBX; 1.4 Asterisk: The Professional's PBX; 1.5 The Asterisk Community; 1.6 The Business Case; 1.7 This Book; Chapter 2: Preparing a System for Asterisk; 2.1 Server Hardware Selection; 2.2 Environment; 2.3 Telephony Hardware; 2.4 Types of Phones; 2.5 Linux Considerations; 2.6 Conclusion; Chapter 3: Installing Asterisk; 3.1 What Packages Do I Need?; 3.2 Obtaining the Source Code; 3.3 Menuselect; 3.4 Compiling Zaptel; 3.5 Compiling libpri; 3.6 Compiling Asterisk; 3.7 Installing Additional Prompts; 3.8 Common Compiling Issues; 3.9 Loading Asterisk and Zaptel Quickly; 3.10 Loading Zaptel Modules Without Scripts; 3.11 Loading libpri Without Script; 3.12 Starting Asterisk Without Scripts; 3.13 Directories Used by Asterisk; 3.14 AsteriskNOW™; 3.15 Conclusion; Chapter 4: Initial Configuration of Asterisk; 4.1 What Do I Really Need?; 4.2 Working with Interface Configuration Files; 4.3 Setting Up the Dialplan for Some Test Calls; 4.4 FXO and FXS Channels; 4.5 Configuring an FXO Channel for a PSTN Connection; 4.6 Configuring an FXS Channel for an Analog Telephone; 4.7 Configuring SIP Telephones; 4.8 Connecting to a SIP Service Provider; 4.9 Connecting Two Asterisk Boxes Together via SIP; 4.10 Configuring an IAX Softphone; 4.11 Connecting to an IAX Service Provider; 4.12 Connecting Two Asterisk Boxes Together via IAX; 4.13 Using Templates in Your Configuration Files; 4.14 Debugging; 4.15 Conclusion; Chapter 5: Dialplan Basics; 5.1 Dialplan Syntax; 5.2 A Simple Dialplan; 5.3 Building an Interactive Dialplan; 5.4 Conclusion; Chapter 6: More Dialplan Concepts; 6.1 Expressions and Variable Manipulation; 6.2 Dialplan Functions; 6.3 Conditional Branching; 6.4 Voicemail; 6.5 Macros; 6.6 Using the Asterisk Database (AstDB); 6.7 Handy Asterisk Features; 6.8 Conclusion; Chapter 7: Understanding Telephony; 7.1 Analog Telephony; 7.2 Digital Telephony; 7.3 The Digital Circuit-Switched Telephone Network; 7.4 Packet-Switched Networks; 7.5 Conclusion; Chapter 8: Protocols for VoIP; 8.1 The Need for VoIP Protocols; 8.2 VoIP Protocols; 8.3 Codecs; 8.4 Quality of Service; 8.5 Echo; 8.6 Asterisk and VoIP; 8.7 VoIP Security; 8.8 Conclusion; Chapter 9: The Asterisk Gateway Interface (AGI); 9.1 Fundamentals of AGI Communication; 9.2 Writing AGI Scripts in Perl; 9.3 Creating AGI Scripts in PHP; 9.4 Writing AGI Scripts in Python; 9.5 Debugging in AGI; 9.6 Conclusion; Chapter 10: Asterisk Manager Interface (AMI) and Adhearsion; 10.1 The Manager Interface; 10.2 The Flash Operator Panel; 10.3 Asterisk Development with Adhearsion; Chapter 11: The Asterisk GUI Framework; 11.1 Why a GUI for Asterisk?; 11.2 What Is the GUI?; 11.3 Architecture of the Asterisk GUI; 11.4 Installing the Asterisk GUI; 11.5 Developing for the Asterisk GUI; Chapter 12: Relational Database Integration; Introduction; Installing the Database; Installing and Configuring ODBC; Configuring res_odbc for Access to Our Database; Using Realtime; Static Realtime; Dynamic Realtime; Storing Call Detail Records; Getting Funky with func_odbc: Hot-Desking; ODBC Voicemail; Creating the Large Object Type; Configuring voicemail.conf for ODBC Storage; Testing ODBC Voicemail; Conclusion; Chapter 13: Managing Your Asterisk System; 13.1 Call Detail Recording; 13.2 Managing Logs; 13.3 Running Asterisk As a Non-root User; 13.4 Customizing System Prompts; 13.5 Music on Hold; 13.6 Conclusion; Chapter 14: Potpourri; 14.1 Festival; 14.2 Call Files; 14.3 DUNDi; 14.4 Alternative Voicemail Storage Methods; 14.5 Asterisk and Jabber (XMPP); 14.6 Conclusion; Chapter 15: Asterisk: The Future of Telephony; 15.1 The Problems with Traditional Telephony; 15.2 Paradigm Shift; 15.3 The Promise of Open Source Telephony; 15.4 The Future of Asterisk; VoIP Channels; IAX; SIP; Application Reference; AGI Reference; Configuration Files; modules.conf; adsi.conf; adtranvofr.conf; agents.conf; alarmreceiver.conf; alsa.conf; amd.conf; asterisk.conf; cdr.conf; cdr_manager.conf; cdr_odbc.conf; cdr_pgsql.conf; cdr_tds.conf; codecs.conf; dnsmgr.conf; dundi.conf; enum.conf; extconfig.conf; extensions.conf; extensions.ael; features.conf; festival.conf; followme.conf; func_odbc.conf; gtalk.conf; http.conf; iax.conf; iaxprov.conf; indications.conf; jabber.conf; logger.conf; manager.conf; meetme.conf; mgcp.conf; modem.conf; musiconhold.conf; osp.conf; oss.conf; phone.conf; privacy.conf; queues.conf; res_odbc.conf; res_snmp.conf; rpt.conf; rtp.conf; say.conf; sip.conf; sip_notify.conf; skinny.conf; sla.conf; smdi.conf; udptl.conf; users.conf; voicemail.conf; vpb.conf; zapata.conf; zaptel.conf; Asterisk Dialplan Functions; Asterisk Manager Interface Actions; An Example of func_odbc; Colophon;