Asterisk
Asterisk Asterisk
Contents

Asterisk - The Open Source VoIP PBX

Previous Page Next Page
 
Asterisk: The Future of Telephony
Table of Contents
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
SYMBOL
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
Previous Page
Next Page


Index


[SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z]

CAC (Carrier Access Corporation) ground start signaling
call files
call parking
call transfer, configuring on FXO channel
call waiting
     configuring for FXO channel
     on analog line
Caller ID
     configuring for FXO channel
     LookupCIDName( )
     SetCallerID( ) application
CALLERIDNUM channel variable
CallingPres( ) application
Carrier Access Corporation (CAC) ground start signaling
CAS (Channel Associated Signaling)
CBR (constant bitrate) encoding (MP3 files)
cdr.conf file
cdr_manager.conf file
cdr_odbc.conf file
cdr_pgsql.conf file
cdr_tds.conf file
CDRs (Call Detail Records)
     challenges to obtaining
     recording
     storage directory
     storing in a database
Celeron processors, Asterisk lab systems on
cellular telephone networks, end of
central office (CO), signaling incoming call on analog phone
Cepstral text-to-speech engine
chan_h323.so module
chan_iax2.so module
chan_mgcp.so module
chan_oh323.so module
chan_sip.so module
chan_zap (channel module)
ChangeMonitor( ) application
ChanIsAvail( ) application
Channel Associated Signaling (CAS)
channel banks
     CAC, FXS ground start signaling
CHANNEL STATUS command
channel variables
     ${EXTEN}
     CALLERIDNUM
channels
     configuration
     FXO and FXS
         configuring FXS
         FXO configuration
     hardware, signaling methods and options
     separation of B- and D- channels in ISDN
     SIP, configuring
     STDIN, STDOUT, and STDERR
     timeouts, setting
     VoIP (Voice over IP) channels
CheckGroup( ) application
checkresult function 2nd
checkresult subroutine
chkconfig --add asterisk command
chkconfig command
circuit-switched telephone networks 2nd
     BRI ISDN
circuits
     OC (optical carrier)
     types in PSTN
         DS-0
         T-carrier
Cisco VoIP proprietary protocol (SCCP)
CLI (command-line interface)
     reference
client, configuration in SIP
clocking mechanism (ztdummy)
closed thinking in telecommunications industry
codecs 2nd
     compressed, DSP load on system
     configuring for IAX
     G.711
     G.723.1
     G.726
     G.729 codec
     G.729A
     GSM
     IAX outbound connections
     iLBC (Internet Low Bitrate Codec)
     MP3
     quick reference
     Speex
     VoIP
codecs.conf file
command line, storing values from in AstDB
comment tags (/* */) in zconfig.h file
commoditization of telephony hardware and software
communications terminals
companding
     A-law, in E-1 circuits
     G.711 codec
     m-law algorithm, on T-1 circuits
compiler, GCC
compiling
     Asterisk
         alternative make arguments
         common issues
         Makefile options
         precompiled binaries, using
     libpri
     Zapata drivers, telephony
     Zaptel drivers
         zconfig.h file
         ztdummy
     Zaptel, common problems
complexity of open systems
computer power supplies
concatenating destinations for Dial( )
conditional branching
     GotoIf( ) application
     time-based, with GotoIfTime( )
conference rooms
conferencing
     MeetMe( ) application
     MeetMeCount( ) application
     system requirements and
     timing source
     video-conferencing
CONFIG_CALC_XLAW
configuration
     initial, of Asterisk
         debugging
         FXO and FXS channels
         IAX connections, inbound
         IAX connections, outbound
         interface configuration files
         SIP channel
configuration files
     /etc/asterisk/ directory
     Asterisk, disabling overwrites
     default, installing for Asterisk
     voicemail.conf
Congestion( ) application 2nd
Conjugate-Structure Algebraic-Code-Excited Linear Prediction (CS-ACELP)
connections, maximum number to be supported by the system
console
     connecting to Asterisk console
     Linux, specifying for Asterisk CLI output
     remote console on TTY9
constant bitrate (CBR) encoding (MP3 files)
contexts
     [globals]
     adding to dialplan for internal calls
     adding to dialplan for long-distance calls
     calls entering without specific destination extension
     dialplan
         [general]
         defining extensions
     DUNDi, creating and mapping to dialplan contexts
     FXS channel
     IAX FWD incoming calls
     incoming calls on FXO interface
     internal, FXS channel
     outbound dialing, adding to dialplan
     peer connections and
     SIP channel
     using within another context, via includes
     voicemail 2nd
ControlPlayback( ) application
cords
core file, dumping after Asterisk crash
     safe_asterisk script
countries, phone system sounds for
CPUs
     choosing for Asterisk system
     performance effects on Asterisk system
     performance information, web sites
crash notifications
CRLF, terminating lines in commands to Manager
cryptographic library, Asterisk, requirement of OpenSSL
CSV (Comma Separated Values) file, CDR details
CSV format (CDRs)
Curl( ) application
Cut( ) application
CVS
     obtaining Asterisk source code from
     stable CVS branch vs. releases


Previous Page
Next Page
Asterisk