Packt Publishing Community Experience, Distilled

Asterisk Gateway Interface 1.4 and 1.6 Programming Table of Contents

HomeBooksSupportFreeAuthorsAward
WELCOME YOUR ACCOUNT NEWSLETTERS ARTICLES ABOUT US

 
Asterisk Gateway Interface 1.4 and 1.6 Programming Table of Contents
Back to BOOK PAGE

Table of Contents

Preface
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
    • Summary
    • 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
      • Summary
      • Chapter 3: More IVR Development: Input, Recordings, and Call Control
        • Grabbing and processing user input
          • The Read application
          • Branching—Goto, GotoIf, Gosub, and GosubIf
            • Goto and GotoIf
            • Writing expressions
            • Regular expressions
            • Gosub and GosubIf
            • Exec, ExecIf, and TryExec
          • Macros—Macro and MacroExclusive
            • Additional Asterisk applications
          • Self exploration
        • Summary
        • 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
              • Summary
              • 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
                • Summary
                • 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
                  • Summary
                  • 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
                      • Click-2-Call
                        • Jajah.Com
                      • Stateful call masking
                      • Punk'ed call
                      • Date rescue call
                      • Conference bridge
                    • Summary
                    • Chapter 10: Scaling Asterisk Applications
                      • Scaling Asterisk platforms
                        • Database query caching
                          • Starting up
                          • Using it in a script
                        • Utilization of web services
                          • Introduction to XML-RPC
                        • Apache versus Lighttpd
                          • Virtualization and cloud computing
                      • Summary
                      Back to BOOK PAGE

                         




                      © Packt Publishing Ltd 2010

                      RSS