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

Book Cover
Asterisk: The Future of Telephony
By Leif Madsen, Jared Smith, Jim Van Meggelen
...............................................
Publisher: O'Reilly
Pub Date: September 2005
ISBN: 0-596-00962-3
Pages: 404
 

Table of Contents  | Index

    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

Previous Page
Next Page
Asterisk