| | | Copyright |
| | | Foreword |
| | | Preface |
| | | | Audience |
| | | | Organization |
| | | | Software |
| | | | Conventions Used in This Book |
| | | | Using Code Examples |
| | | | Safari Enabled |
| | | | How to Contact Us |
| | | | Acknowledgments |
| | | Chapter 1. A Telephony Revolution |
| | | | Section 1.1. VoIP: Bridging the Gap Between Traditional Telephony and Network Telephony |
| | | | Section 1.2. Massive Change Requires Flexible Technology |
| | | | Section 1.3. Asterisk: The Hacker's PBX |
| | | | Section 1.4. Asterisk: The Professional's PBX |
| | | | Section 1.5. The Asterisk Community |
| | | | Section 1.6. The Business Case |
| | | | Section 1.7. This Book |
| | | Chapter 2. Preparing a System for Asterisk |
| | | | Section 2.1. Server Hardware Selection |
| | | | Section 2.2. Environment |
| | | | Section 2.3. Telephony Hardware |
| | | | Section 2.4. Types of Phone |
| | | | Section 2.5. Linux Considerations |
| | | | Section 2.6. Conclusion |
| | | Chapter 3. Installing Asterisk |
| | | | Section 3.1. What Packages Do I Need? |
| | | | Section 3.2. Obtaining the Source Code |
| | | | Section 3.3. Compiling Zaptel |
| | | | Section 3.4. Compiling libpri |
| | | | Section 3.5. Compiling Asterisk |
| | | | Section 3.6. Installing Additional Prompts |
| | | | Section 3.7. Updating Your Source Code |
| | | | Section 3.8. Common Compiling Issues |
| | | | Section 3.9. Loading Zaptel Modules |
| | | | Section 3.10. Loading libpri |
| | | | Section 3.11. Loading Asterisk |
| | | | Section 3.12. Directories Used by Asterisk |
| | | | Section 3.13. Conclusion |
| | | Chapter 4. Initial Configuration of Asterisk |
| | | | Section 4.1. What Do I Really Need? |
| | | | Section 4.2. Working with Interface Configuration Files |
| | | | Section 4.3. FXO and FXS Channels |
| | | | Section 4.4. Configuring an FXO Channel |
| | | | Section 4.5. Configuring an FXS Channel |
| | | | Section 4.6. Configuring SIP |
| | | | Section 4.7. Configuring Inbound IAX Connections |
| | | | Section 4.8. Configuring Outbound IAX Connections |
| | | | Section 4.9. Debugging |
| | | | Section 4.10. Conclusion |
| | | Chapter 5. Dialplan Basics |
| | | | Section 5.1. Dialplan Syntax |
| | | | Section 5.2. A Simple Dialplan |
| | | | Section 5.3. Adding Logic to the Dialplan |
| | | | Section 5.4. Conclusion |
| | | Chapter 6. More Dialplan Concepts |
| | | | Section 6.1. Expressions and Variable Manipulation |
| | | | Section 6.2. Dialplan Functions |
| | | | Section 6.3. Conditional Branching |
| | | | Section 6.4. Voicemail |
| | | | Section 6.5. Macros |
| | | | Section 6.6. Using the Asterisk Database (AstDB) |
| | | | Section 6.7. Handy Asterisk Features |
| | | | Section 6.8. Conclusion |
| | | Chapter 7. Understanding Telephony |
| | | | Section 7.1. Analog Telephony |
| | | | Section 7.2. Digital Telephony |
| | | | Section 7.3. The Digital Circuit-Switched Telephone Network |
| | | | Section 7.4. Packet-Switched Networks |
| | | | Section 7.5. Conclusion |
| | | Chapter 8. Protocols for VoIP |
| | | | Section 8.1. The Need for VoIP Protocols |
| | | | Section 8.2. VoIP Protocols |
| | | | Section 8.3. Codecs |
| | | | Section 8.4. Quality of Service |
| | | | Section 8.5. Echo |
| | | | Section 8.6. Asterisk and VoIP |
| | | | Section 8.7. Conclusion |
| | | Chapter 9. The Asterisk Gateway Interface (AGI) |
| | | | Section 9.1. Fundamentals of AGI Communication |
| | | | Section 9.2. Writing AGI Scripts in Perl |
| | | | Section 9.3. Creating AGI Scripts in PHP |
| | | | Section 9.4. Writing AGI Scripts in Python |
| | | | Section 9.5. Debugging in AGI |
| | | | Section 9.6. Conclusion |
| | | Chapter 10. Asterisk for the ber-Geek |
| | | | Section 10.1. Festival |
| | | | Section 10.2. Call Detail Recording |
| | | | Section 10.3. Customizing System Prompts |
| | | | Section 10.4. Manager |
| | | | Section 10.5. Call Files |
| | | | Section 10.6. DUNDi |
| | | | Section 10.7. Conclusion |
| | | Chapter 11. Asterisk: The Future of Telephony |
| | | | Section 11.1. The Problems with Traditional Telephony |
| | | | Section 11.2. Paradigm Shift |
| | | | Section 11.3. The Promise of Open Source Telephony |
| | | | Section 11.4. The Future of Asterisk |
| | | Appendix A. VoIP Channels |
| | | | Section A.1. IAX |
| | | | Section A.2. SIP |
| | | Appendix B. Application Reference |
| | | | AbsoluteTimeout( ) |
| | | | AddQueueMember( ) |
| | | | ADSIProg( ) |
| | | | AgentCallbackLogin( ) |
| | | | AgentLogin( ) |
| | | | AgentMonitorOutgoing( ) |
| | | | AGI( ) |
| | | | AlarmReceiver( ) |
| | | | Answer( ) |
| | | | AppendCDRUserField( ) |
| | | | Authenticate( ) |
| | | | Background( ) |
| | | | BackgroundDetect( ) |
| | | | Busy( ) |
| | | | CallingPres( ) |
| | | | ChangeMonitor( ) |
| | | | ChanIsAvail( ) |
| | | | CheckGroup( ) |
| | | | Congestion( ) |
| | | | ControlPlayback( ) |
| | | | Curl( ) |
| | | | Cut( ) |
| | | | DateTime( ) |
| | | | DBdel( ) |
| | | | DBdeltree( ) |
| | | | DBget( ) |
| | | | DBput( ) |
| | | | DeadAGI( ) |
| | | | Dial( ) |
| | | | DigitTimeout( ) |
| | | | Directory( ) |
| | | | DISA( ) |
| | | | DumpChan( ) |
| | | | DUNDiLookup( ) |
| | | | EAGI( ) |
| | | | Echo( ) |
| | | | EndWhile( ) |
| | | | ENUMLookup( ) |
| | | | Eval( ) |
| | | | Exec( ) |
| | | | ExecIf( ) |
| | | | FastAGI( ) |
| | | | Festival( ) |
| | | | Flash( ) |
| | | | ForkCDR( ) |
| | | | GetCPEID( ) |
| | | | GetGroupCount( ) |
| | | | GetGroupMatchCount( ) |
| | | | Goto( ) |
| | | | GotoIf( ) |
| | | | GotoIfTime( ) |
| | | | Hangup( ) |
| | | | HasNewVoicemail( ) |
| | | | HasVoicemail( ) |
| | | | IAX2Provision( ) |
| | | | ImportVar( ) |
| | | | LookupBlacklist( ) |
| | | | LookupCIDName( ) |
| | | | Macro( ) |
| | | | MailboxExists( ) |
| | | | Math( ) |
| | | | MeetMe ( ) |
| | | | MeetMeAdmin( ) |
| | | | MeetMeCount( ) |
| | | | Milliwatt( ) |
| | | | Monitor( ) |
| | | | MP3Player( ) |
| | | | MusicOnHold( ) |
| | | | NBScat( ) |
| | | | NoCDR( ) |
| | | | NoOp( ) |
| | | | Park( ) |
| | | | ParkAndAnnounce( ) |
| | | | ParkedCall( ) |
| | | | PauseQueueMember( ) |
| | | | Playback( ) |
| | | | Playtones( ) |
| | | | Prefix( ) |
| | | | PrivacyManager( ) |
| | | | Progress( ) |
| | | | Queue( ) |
| | | | Random( ) |
| | | | Read( ) |
| | | | RealTime |
| | | | RealTimeUpdate( ) |
| | | | Record( ) |
| | | | RemoveQueueMember( ) |
| | | | ResetCDR( ) |
| | | | ResponseTimeout( ) |
| | | | RetryDial( ) |
| | | | Ringing( ) |
| | | | SayAlpha( ) |
| | | | SayDigits( ) |
| | | | SayNumber( ) |
| | | | SayPhonetic( ) |
| | | | SayUnixTime( ) |
| | | | SendDTMF( ) |
| | | | SendImage( ) |
| | | | SendText( ) |
| | | | SendURL( ) |
| | | | Set( ) |
| | | | SetAccount( ) |
| | | | SetAMAFlags( ) |
| | | | SetCallerID( ) |
| | | | SetCallerPres( ) |
| | | | SetCDRUserField( ) |
| | | | SetCIDName( ) |
| | | | SetCIDNum( ) |
| | | | SetGlobalVar( ) |
| | | | SetGroup( ) |
| | | | SetLanguage( ) |
| | | | SetMusicOnHold( ) |
| | | | SetRDNIS( ) |
| | | | SetVar( ) |
| | | | SIPAddHeader( ) |
| | | | SIPDtmfMode( ) |
| | | | SIPGetHeader( ) |
| | | | SoftHangup( ) |
| | | | StopMonitor( ) |
| | | | StopPlaytones( ) |
| | | | StripLSD( ) |
| | | | StripMSD( ) |
| | | | SubString( ) |
| | | | Suffix( ) |
| | | | System( ) |
| | | | Transfer( ) |
| | | | TrySystem( ) |
| | | | TXTCIDName( ) |
| | | | UnpauseQueueMember( ) |
| | | | UserEvent( ) |
| | | | Verbose( ) |
| | | | VMAuthenticate( ) |
| | | | VoiceMail( ) |
| | | | VoiceMailMain( ) |
| | | | Wait( ) |
| | | | WaitExten( ) |
| | | | WaitForRing( ) |
| | | | WaitForSilence( ) |
| | | | WaitMusicOnHold( ) |
| | | | While( ) |
| | | | Zapateller( ) |
| | | | ZapBarge( ) |
| | | | ZapRAS( ) |
| | | | ZapScan( ) |
| | | Appendix C. AGI Reference |
| | | | ANSWER |
| | | | CHANNEL STATUS |
| | | | DATABASE DEL |
| | | | DATABASE DELTREE |
| | | | DATABASE GET |
| | | | DATABASE PUT |
| | | | EXEC |
| | | | GET DATA |
| | | | GET FULL VARIABLE |
| | | | GET OPTION |
| | | | GET VARIABLE |
| | | | HANGUP |
| | | | NOOP |
| | | | RECEIVE CHAR |
| | | | RECORD FILE |
| | | | SAY ALPHA |
| | | | SAY DATE |
| | | | SAY DATETIME |
| | | | SAY DIGITS |
| | | | SAY NUMBER |
| | | | SAY PHONETIC |
| | | | SAY TIME |
| | | | SEND IMAGE |
| | | | SEND TEXT |
| | | | SET AUTOHANGUP |
| | | | SET CALLERID |
| | | | SET CONTEXT |
| | | | SET EXTENSION |
| | | | SET MUSIC ON |
| | | | SET PRIORITY |
| | | | SET VARIABLE |
| | | | STREAM FILE |
| | | | TDD MODE |
| | | | VERBOSE |
| | | | WAIT FOR DIGIT |
| | | Appendix D. Configuration Files |
| | | | Section D.1. modules.conf |
| | | | Section D.2. adsi.conf |
| | | | Section D.3. adtranvofr.conf |
| | | | Section D.4. agents .conf |
| | | | Section D.5. alarmreceiver.conf |
| | | | Section D.6. alsa.conf |
| | | | Section D.7. asterisk.conf |
| | | | Section D.8. cdr.conf |
| | | | Section D.9. cdr_manager.conf |
| | | | Section D.10. cdr_odbc.conf |
| | | | Section D.11. cdr_pgsql.conf |
| | | | Section D.12. cdr_tds.conf |
| | | | Section D.13. codecs.conf |
| | | | Section D.14. dnsmgr.conf |
| | | | Section D.15. dundi.conf |
| | | | Section D.16. enum.conf |
| | | | Section D.17. extconfig .conf |
| | | | Section D.18. extensions.conf |
| | | | Section D.19. features.conf |
| | | | Section D.20. festival.conf |
| | | | Section D.21. iax.conf |
| | | | Section D.22. iaxprov.conf |
| | | | Section D.23. indications .conf |
| | | | Section D.24. logger.conf |
| | | | Section D.25. manager.conf |
| | | | Section D.26. meetme.conf |
| | | | Section D.27. mgcp.conf |
| | | | Section D.28. modem.conf |
| | | | Section D.29. musiconhold.conf |
| | | | Section D.30. osp.conf |
| | | | Section D.31. oss.conf |
| | | | Section D.32. phone.conf |
| | | | Section D.33. privacy.conf |
| | | | Section D.34. queues.conf |
| | | | Section D.35. res_odbc.conf |
| | | | Section D.36. rpt.conf |
| | | | Section D.37. rtp.conf |
| | | | Section D.38. sip.conf |
| | | | Section D.39. sip_notify.conf |
| | | | Section D.40. skinny.conf |
| | | | Section D.41. voicemail.conf |
| | | | Section D.42. vpb.conf |
| | | | Section D.43. zapata.conf |
| | | | Section D.44. zaptel.conf |
| | | Appendix E. Asterisk Command-Line Interface Reference |
| | | | ! |
| | | | abort halt |
| | | | Section E.1. add |
| | | | Section E.2. agi |
| | | | Section E.3. database |
| | | | Section E.4. iax2 |
| | | | Section E.5. indication |
| | | | Section E.6. logger |
| | | | Section E.7. meetme |
| | | | Section E.8. pri |
| | | | Section E.9. remove |
| | | | Section E.10. restart |
| | | | Section E.11. set |
| | | | Section E.12. show |
| | | | Section E.13. sip |
| | | | Section E.14. stop |
| | | | Section E.15. zap |
| | | Colophon |
| | | | About the Authors |
| | | | Colophon |
| | | Index |