| Section | Contents |
|---|
Introducing Asterisk | What is a PBX? Asterisk: The Program, Tool Kit, Platform, Product, Project, Community, and Business Ecosystem The History of Asterisk and Open Source The GNU GPL Why do Open Source? What Business Model? Asterisk’s Dual License Model GPL Asterisk Asterisk Business Edition Asterisk OEM License The 9,000 Faces of Asterisk |
Asterisk Architecture | Asterisk & Linux The Big Picture Asterisk Configuration
|
Installing Asterisk | Versions & Releases Repository Asterisk Components Pre-Install Requirements How to get the Source Code What Source Code to get Compile the Code What you get Starting Asterisk Connecting to Asterisk’s CLI
|
Configuring a Basic PBX | Asterisk Call Flow Call Flow Details Configuration Files Adding a phone Adding a SIP Phone Adding an Extension Building a 2 Extension PBX Install X-Lite on your PC
|
Introducing the Dial Plan | What is a dialplan? Dialplan Syntax and Structure Contexts Extensions Priorities Applications Application Syntax The Answer() Application The Playback() Application The Hangup() Application Putting it all together
|
Extending the Dialplan | Making an Interactive dialplan DTMF The Background() Application Background() Example Background() and Timeouts Auto-fallthrough The WaitExten() Application Special Extensions Adding jumps and loops The Goto() Application Goto() Syntax Other Useful Applications Dialing from the Dialplan Voicemail Voicemail.conf Dial-by-name directory The record() application Authenticate your callers VMAuthenticate() Echo() and Milliwatt()
|
VoIP Fundamentals | VoIP Protocols: What are they? VoIP Protocols in Asterisk Codecs Users, Peers and Friends
|
Voice Over IP Fundamentals | SIP IAX: Inter Asterisk Exchange VoIP: The Underlying Network Networking Basics Re-invites
|
More Dialplan Concepts | What are variables? How are variables used? Global Variables Channel Variables Environment variables Global vars for end-points Variables {DIALSTATUS} Pattern Matching Pattern Matching Syntax The wild card match NANPA Toll Fraud The ${EXTEN} Variable Includes Applications II
|
Expressions and Branching | Expressions Dialplan functions Conditional Branching Priority Labels Looping
|
Connecting to the PSTN | History of Open Source Hardware Telephony FXO vs. FXS Analog Signaling Obtaining the Zaptel drivers Compiling Zaptel Systems running udev Configuring zaptel.conf Loading the drivers Ztdummy CallerID over POTS Passing through Caller ID Flash Transfers
|
DUNDi | What is DUNDi? GPA (General Peering Agreement) How does it work? DUNDi call flow Simple Lab Schema Configuration How does it work? Dundi.conf Dialplan (extensions.conf) Channel Configuration file Dundi.conf configuration Extensions.conf Iax.conf Sip.conf DUNDi as a routing protocol
|
Advanced Dialplan Applications | Macros The AstDB database Switches DIDs Asterisk call files
|
Call Queues and ACD Concepts | What are queues? What are agents? Queue Strategies Simple call queues without agents Call queues using agents Configuring agents.conf Logging in agents Adding agents to the queue Queue statistics
|
Debugging your system | Helping yourself to debug |
Digital Telephony with Zaptel | History of Digital Telephony T1/E1 Low-Levels Channelized vs. PRI Advantages/Disadvantages ISDN PRI Connections PRI Advantages/disadvantages Zaptel Configuration Configure Zaptel signaling Zapata.conf configuration Channels connected to phones Zap call groups Asterisk CLI help messages PRI-B Channel Restarts
|
AGI: Beyond the dialplan | What is AGI? Standard Interface Communication STDIN, STDOUT, and STDERR Typical AGI Program Calling AGI Scripts AGI Notes
|
Manager and Realtime | Computer Telephony Integration Manager Basics Manager Commands Manager Applications The Manager Proxy Manage Future Asterisk Realtime Architecture (ARA) Realtime to the rescue APA: Good/Bad/Ugly Realtime Future Other Configuration Options |