Asterisk: The Future of Telephony
Chapter 1. A Telephony Revolution
Section 1.1. VoIP: Bridging the Gap Between Traditional Telephony and Network Telephony
Section 1.2. Massive Change Requires Flexible Technology
Section 1.3. Asterisk: The Hacker's PBX
Section 1.4. Asterisk: The Professional's PBX
Section 1.5. The Asterisk Community
Section 1.6. The Business Case
Section 1.7. This Book
Chapter 2. Preparing a System for Asterisk
Section 2.1. Server Hardware Selection
Section 2.2. Environment
Section 2.3. Telephony Hardware
Section 2.4. Types of Phone
Section 2.5. Linux Considerations
Section 2.6. Conclusion
Chapter 3. Installing Asterisk
Section 3.1. What Packages Do I Need?
Section 3.2. Obtaining the Source Code
Section 3.3. Compiling Zaptel
Section 3.4. Compiling libpri
Section 3.5. Compiling Asterisk
Section 3.6. Installing Additional Prompts
Section 3.7. Updating Your Source Code
Section 3.8. Common Compiling Issues
Section 3.9. Loading Zaptel Modules
Section 3.10. Loading libpri
Section 3.11. Loading Asterisk
Section 3.12. Directories Used by Asterisk
Section 3.13. Conclusion
Chapter 4. Initial Configuration of Asterisk
Section 4.1. What Do I Really Need?
Section 4.2. Working with Interface Configuration Files
Section 4.3. FXO and FXS Channels
Section 4.4. Configuring an FXO Channel
Section 4.5. Configuring an FXS Channel
Section 4.6. Configuring SIP
Section 4.7. Configuring Inbound IAX Connections
Section 4.8. Configuring Outbound IAX Connections
Section 4.9. Debugging
Section 4.10. Conclusion
Chapter 5. Dialplan Basics
Section 5.1. Dialplan Syntax
Section 5.2. A Simple Dialplan
Section 5.3. Adding Logic to the Dialplan
Section 5.4. Conclusion
Chapter 6. More Dialplan Concepts
Section 6.1. Expressions and Variable Manipulation
Section 6.2. Dialplan Functions
Section 6.3. Conditional Branching
Section 6.4. Voicemail
Section 6.5. Macros
Section 6.6. Using the Asterisk Database (AstDB)
Section 6.7. Handy Asterisk Features
Section 6.8. Conclusion
Chapter 7. Understanding Telephony
Section 7.1. Analog Telephony
Section 7.2. Digital Telephony
Section 7.3. The Digital Circuit-Switched Telephone Network
Section 7.4. Packet-Switched Networks
Section 7.5. Conclusion
Chapter 8. Protocols for VoIP
Section 8.1. The Need for VoIP Protocols
Section 8.2. VoIP Protocols
Section 8.3. Codecs
Section 8.4. Quality of Service
Section 8.5. Echo
Section 8.6. Asterisk and VoIP
Section 8.7. Conclusion
Chapter 9. The Asterisk Gateway Interface (AGI)
Section 9.1. Fundamentals of AGI Communication
Section 9.2. Writing AGI Scripts in Perl
Section 9.3. Creating AGI Scripts in PHP
Section 9.4. Writing AGI Scripts in Python
Section 9.5. Debugging in AGI
Section 9.6. Conclusion
Chapter 10. Asterisk for the Über-Geek
Section 10.1. Festival
Section 10.2. Call Detail Recording
Section 10.3. Customizing System Prompts
Section 10.4. Manager
Section 10.5. Call Files
Section 10.6. DUNDi
Section 10.7. Conclusion
Chapter 11. Asterisk: The Future of Telephony
Section 11.1. The Problems with Traditional Telephony
Section 11.2. Paradigm Shift
Section 11.3. The Promise of Open Source Telephony
Section 11.4. The Future of Asterisk
Appendix A. VoIP Channels
Section A.1. IAX
Section A.2. SIP
Appendix B. Application Reference
Appendix C. AGI Reference
Appendix D. Configuration Files
Section D.1. modules.conf
Section D.2. adsi.conf
Section D.3. adtranvofr.conf
Section D.4. agents.conf
Section D.5. alarmreceiver.conf
Section D.6. alsa.conf
Section D.7. asterisk.conf
Section D.8. cdr.conf
Section D.9. cdr_manager.conf
Section D.10. cdr_odbc.conf
Section D.11. cdr_pgsql.conf
Section D.12. cdr_tds.conf
Section D.13. codecs.conf
Section D.14. dnsmgr.conf
Section D.15. dundi.conf
Section D.16. enum.conf
Section D.17. extconfig.conf
Section D.18. extensions.conf
Section D.19. features.conf
Section D.20. festival.conf
Section D.21. iax.conf
Section D.22. iaxprov.conf
Section D.23. indications.conf
Section D.24. logger.conf
Section D.25. manager.conf
Section D.26. meetme.conf
Section D.27. mgcp.conf
Section D.28. modem.conf
Section D.29. musiconhold.conf
Section D.30. osp.conf
Section D.31. oss.conf
Section D.32. phone.conf
Section D.33. privacy.conf
Section D.34. queues.conf
Section D.35. res_odbc.conf
Section D.36. rpt.conf
Section D.37. rtp.conf
Section D.38. sip.conf
Section D.39. sip_notify.conf
Section D.40. skinny.conf
Section D.41. voicemail.conf
Section D.42. vpb.conf
Section D.43. zapata.conf
Section D.44. zaptel.conf
Appendix E. Asterisk Command-Line Interface Reference
Section E.1. add
Section E.2. agi
Section E.3. database
Section E.4. iax2
Section E.5. indication
Section E.6. logger
Section E.7. meetme
Section E.8. pri
Section E.9. remove
Section E.10. restart
Section E.11. set
Section E.12. show
Section E.13. sip
Section E.14. stop
Section E.15. zap
Asterisk is an open source, converged telephony platform, which is designed
primarily to run on Linux. Asterisk combines over 100 years of telephony knowledge
into a robust suite of tightly integrated telecommunications applications. The power
of Asterisk lies in its customizable nature, complemented by unmatched standards-compliance.
No other PBX can be deployed in so many creative ways.
Applications such as voicemail, hosted conferencing, call queuing and agents, music on hold,
and call parking are all standard features built right into the software. Moreover,
Asterisk can integrate with other business technologies in ways that closed, proprietary
PBXs can scarcely dream of.
Asterisk can appear quite daunting and complex to a new user, which is
why documentation is so important to its growth. Documentation lowers the barrier
to entry and helps people contemplate the possibilities.
Produced with the generous support of O'Reilly Media, Asterisk:
The Future of Telephony was inspired by the work started by the Asterisk
Documentation Project. We have come a long way, and this book is the realization
of a desire to deliver documentation which introduces the most fundamental
elements of Asterisk-the things someone new to Asterisk needs to know.
It is the first volume in what we are certain will become a huge library
of knowledge relating to Asterisk.
This book was written for, and by, the Asterisk community.