| |
Back to BOOK PAGE
Table of ContentsPreface Chapter 1: Installing a 'Vanilla' Asterisk Chapter 2: Basic IVR Development: Using the Asterisk DialPlan Chapter 3: More IVR Development: Input, Recordings, and Call Control Chapter 4: A Primer to AGI: Asterisk Gateway Interface Chapter 5: AGI Scripting with PHP Chapter 6: PHPAGI: An AGI Class Library in PHP Chapter 7: FastAGI: AGI as a TCP Server Chapter 8: AMI: The Asterisk Manager Interface Chapter 9: Final Programming Project Chapter 10: Scaling Asterisk Applications Index
- Chapter 1: Installing a 'Vanilla' Asterisk
- Downloading Asterisk
- Zaptel—Zapata Telephony Driver
- DAHDI—Digium Asterisk Hardware Device Interface
- Libpri—ISDN PRI Library
- Asterisk—the open source PBX
- Asterisk-addons—the open source PBX
- Asterisk—SVN source packages
- Obtaining the source code packages from SVN
- Compilation dependencies
- Compiling the source code
- Compiling and installing Zaptel
- Step 1: Configure
- Step 2: Define the options you would like to compile
- Step 3: Compiling and installing
- Compiling and installing DAHDI
- Step 1: Compile the kernel module
- Step 2: Install the dahdi kernel module
- Step 3: Compile the dahdi-tools package
- Step 4: Configure the dahdi-tools to be installed
- Step 5: Compile and install dahdi-tools
- Differences between Zaptel and DAHDI
- Compiling and installing libpri
- Compiling and installing Asterisk
- Step 1: Configure
- Step 2: Define the options you would like to compile
- Step 3: Compiling the code
- Chapter 2: Basic IVR Development: Using the Asterisk DialPlan
- The dialplan is a set of "finite state machines"
- The dialplan syntax
- The extension
- Inclusion of contexts
- The [general] and [global] contexts
- Extension pattern matching
- Special extensions
- Dialplan Switches
- Variables, applications, and functions
- Variables—built-in and custom
- Applications and functions
- Your first IVR application
- Chapter 4: A Primer to AGI: Asterisk Gateway Interface
- How does AGI work?
- EAGI, DeadAGI and FastAGI
- EAGI—Enhanced Asterisk Gateway Interface
- DeadAGI—execution on hangup
- FastAGI—AGI execution via a TCP socket
- AGI scripting frameworks
- The AGI application
- The AGI execution flow
- The AGI methods API
- The ten rules of AGI development
- Rule #1: An AGI script should terminate as fast as possible
- Rule #2: Blocking applications have no place in AGI
- Rule #3: Asterisk channels are stateful—use them
- Rule #4: AGI scripts should manipulate data—no more
- Rule #5: VM based languages are bad for AGI scripting
- Rule #6: Binary-compiled AGI is not always the answer
- Rule #7: Balance your scripts with dialplan logic
- Rule #8: Balance your scripts with web services
- Rule #9: Syslog is your friend—use it
- Rule #10: The Internet is for Asterisk
- A preface to what's coming ahead
- Summary
- Chapter 5: AGI Scripting with PHP
- PHP-CLI vs. PHP-CGI
- The php.ini configuration file
- AGI script permissions
- The structure of a PHP based AGI script
- Communication between Asterisk and AGI
- The AGI Hello-World program
- AGI debugging
- Summary
- Chapter 6: PHPAGI: An AGI Class Library in PHP
- Obtaining PHPAGI
- The file structure of PHPAGI
- A very simple PHPAGI example
- The AGI/Dialplan high-wire act
- Introducing Atomic-AGI
- Atomic-AGI—a dialplan example
- SetSessionID.agi—meet your state maintainer
- agiWrapper.agi—an all purpose AGI execution wrapper
- A slightly more complex PHPAGI example
- db_validate_target.inc.php
- db_register_cdr.inc.php
- AGI Scripts in popular Asterisk applications
- FreePBX™—the most popular Asterisk management GUI
- A2Billing™—a pre-paid calling card system
- Chapter 7: FastAGI: AGI as a TCP Server
- FastAGI argument handling
- Asterisk 1.2.X and 1.4.X
- Asterisk 1.6.X
- FastAGI error handling
- Asterisk 1.2.X
- Asterisk 1.4.X and 1.6.X
- FastAGI with PHPAGI and xinetd
- Introducing xintetd—the Internet services daemon
- Configuring xinetd for FastAGI and PHPAGI
- Configuring PHPAGI for FastAGI
- The fastagiWrapper.php bootstrap
- Performance consideration
- FastAGI with PHPAGI and Google
- FastAGI with other tool kits
- Asterisk::FastAGI—a PERL module for FastAGI handling
- Asterisk-JAVA—a Java package for Asterisk
- Chapter 8: AMI: The Asterisk Manager Interface
- AMI—the history
- How does AMI work?
- AMI with Asterisk 1.0 and 1.2
- AMI with Asterisk 1.4 and 1.6
- AMI–understanding basics
- Events and Actions
- Logging in to the Manager Interface
- Sending actions to the Manager Interface
- Logging off from the Manager Interface
- PHPAGI and the AMI Interface
- Direct AMI interface invocation
- AMI interface invocation via the PHPAGI class
- Interacting with the AMI interface
- Sending actions to the AMI inteface
- Event callbacks from AMI interface
- PHPAGI AMI originate quirk
- Click-2-Call and Web-Callback
- Demystifying the Asterisk Originate manager action
- Welcome to Jabka—the world's favourite Click-2-Call
- AMI proxy servers
- AJAM—AJAX Enabled Manager
- Chapter 9: Final Programming Project
- ACRG—Asterisk Call Recording Gateway
- Requirements
- Network connectivity—PSTN
- Project implementation guide
- Step 1: Analysis of the requirements
- Step 2: Understanding operational constraints
- Step 3: Detailed call flow charts
- Step 4: The Asterisk dialplan context
- Step 5: Develop your human interfaces
- Step 6: Test, test, and test again
- Additional programming projects
- Stateful call masking
- Punk'ed call
- Date rescue call
- Conference bridge
Back to BOOK PAGE
| |
|