Asterisk
Asterisk Bootcamp is an intensive 5-day training course providing in-depth coverage of the key points of Asterisk installation, configuration and administration. The course (designed by Sokol & Associates) begins with a comprehensive review of Asterisk as an application, a project and a community. Students will learn to download, compile, install, and tune Asterisk, to connect it with both end-user devices (phones) and the outside world. Students will learn to create dialplans, to implement applications, and to make use of the long list of features included with Asterisk. At the end of the course, students will be able to create a working Asterisk system from a standard Linux computer, configure the system to support end users connected via multiple technologies, and to handle all necessary adds, moves and changes. If you want to learn how to implement a working Asterisk system, Asterisk Bootcamp is your class.
What You’ll Learn
Upon completion of Asterisk, the student will be able to:
Asterisk Bootcamp
- Be comfortable working within the Linux shell, at least to the degree that they can navigate to the appropriate directories and edit files with the nano editor.
- Understand the various components of Asterisk which are involved in each call (i.e. the channel, the channel configuration, the dial plan, the applications, etc.).
- Be able to add a new users to the system (channel entry, extension, voice mailbox, etc.) delete users from the system, and alter user configurations.
- Be able to configure several common models of SIP phones.
- Be able to create IAX2 or SIP links to service providers.
- Be able to alter basic parameters for Zaptel devices (both FXS and FXO).
- Be able to add DIDs and direct them to users.
- Be able to implement new features (i.e. add MeetMe rooms, a DID for DISA, access to voicemail, etc.).
- Be able to build IVR menus with proper loop-prevention, error handling, etc.
- Be able to record prompts for IVR menus, audio text messages, etc.
- Understand the Asterisk ACD (queue/agent) system and be able to implement queues.
- Be able to build a dial plan which provides the appropriate level of access to each user on the system.
- Be able to back up the system’s core configuration components.
- Understand the issues with NAT and how that can impact remote users. Understand the strategies which can eliminate these issues.
- Be able to check on system health and wellbeing from the shell/CLI.
- Understand the general security threats which can impact an Asterisk system and how best to prevent/avoid them.
- Understand how call routing works in Asterisk and be able to implement a basic Least Cost Routing structure in the Dial Plan.
- Recognize the potential issues related to emergency handling (911/E-911) and how best to configure a system to securely handle such calls.
Asterisk Syllabus
| Asterisk |
Click to Hide |
| 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
|
Requirements
For best results, students should have previous programming experience and basic Linux experience.
For students interested in more advance preparation, we recommend Asterisk: The Future of Telephony, by Jim Van Meggelen, Jared Smith, and Leif Madsen.
For information or to enroll in a class in North America: (404) 478-9005
For information or to enroll in a class in Europe: +49 (9333) 903 901
For information or to enroll in a class in Asia Pacific: (404) 478-9005