Cover image for Asterisk Gateway Interface 1.4 and 1.6 Programming.
Asterisk Gateway Interface 1.4 and 1.6 Programming.
Title:
Asterisk Gateway Interface 1.4 and 1.6 Programming.
Author:
Simionovich, Nir.
ISBN:
9781847194473
Personal Author:
Edition:
1st ed.
Physical Description:
1 online resource (234 pages)
Contents:
Asterisk Gateway Interface 1.4 and 1.6 Programming -- Table of Contents -- Asterisk Gateway Interface 1.4 and 1.6 Programming -- Credits -- About the author -- Acknowledgement -- About the reviewers -- Preface -- What this book covers -- What you need for this book -- Who is this book for -- Conventions -- Reader feedback -- Customer support -- Downloading the example code for the book -- Errata -- Piracy -- Questions -- 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 -- Section 1: Applications -- Section 3: Channel drivers -- Step 3: Compiling the code -- Summary -- 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.

Mathematical manipulation -- String manipulation -- Substrings -- String concatenation -- Variables scoping -- Applications and functions -- Your first IVR application -- A simple automatic attendant -- Step 1: Flowchart -- Step 2: Choice of applications -- Application: Answer -- Application: Dial -- Application: Playback -- Application: Background -- Application: WaitExten -- Application: Hangup -- Application: SoftHangup -- Application: EndWhile -- Step 3: The automatic attendant code -- Section 1: The main context body -- Section 2: Dialed extensions management -- Section 3: Error trapping -- Section 4: Debugging -- Step 4: Testing -- Summary -- 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 -- Logical operators -- Comparison operators -- Arithmetic operators -- Regular expressions -- Operator precedence -- Gosub and GosubIf -- Exec, ExecIf, and TryExec -- Macros-Macro and MacroExclusive -- Additional Asterisk applications -- Self exploration -- Summary -- 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 -- Asterisk 1.2.X and 1.4.X -- Asterisk 1.6.X -- FastAGI frameworks -- 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 -- 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 -- File: helloworld.php -- AGI debugging -- Summary -- 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 -- 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 -- httpd.php: -- httpServer.php: -- FastAGI.php: -- fastagiServer.php: -- FastAGI with other tool kits -- Asterisk::FastAGI-a PERL module for FastAGI handling -- Asterisk-JAVA-a Java package for Asterisk -- Summary -- 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 -- phpagi-asmanager.php-Originate function -- PHPAGI Originate for versions 1.0 and 1.2 -- PHPAGI Originate for versions 1.4 and 1.6 -- Asynchronous Originate actions -- 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 -- 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 -- 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 -- Structure of an XML-RPC request and response -- Apache versus Lighttpd -- Virtualization and cloud computing -- Full virtualization -- Hardware-assisted virtualization -- Paravirtualization -- Asterisk in a virtualized environment -- Summary.

Index.
Abstract:
Design and develop Asterisk-based VoIP telephony platforms and services using PHP and PHPAGI.
Local Note:
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2017. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Electronic Access:
Click to View
Holds: Copies: