Practical Asterisk 1.4 and 1.6
Using the open source Asterisk platform, you can deploy a state-of-the-art VoIP PBX on a low-cost PC or server for a fraction of the cost of conventional PBX systems. The only drawback to Asterisk is its notoriously poor documentation. Practical Asterisk 1.4 and 1.6 is the solution to that problem....
Otros Autores: | , |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
[Place of publication not identified]
Addison Wesley
2010
|
Edición: | 1st edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009629032106719 |
Tabla de Contenidos:
- Cover
- Contents
- Foreword
- Preface
- Acknowledgments
- About the Authors
- Chapter 1 How to Get the Most Out of This Book
- 1.1 What Is Asterisk?
- 1.2 Who Should Read This Book?
- 1.2.1 The Beginner
- 1.2.2 The Journeyman
- 1.2.3 The Expert
- 1.3 Updates and Versions of the Book
- 1.4 Reader Contributions and Feedback
- 1.5 Additional Resources
- Chapter 2 Installation and "Hello World
- 2.1 Installing Asterisk on the Server
- 2.2 Calling "Hello World" from the CLI
- 2.2.1 Configuring Asterisk
- 2.2.2 Starting Asterisk and Calling "Hello World
- 2.2.3 Stopping Asterisk
- 2.3 Calling "Hello World" with a SIP Phone
- 2.3.1 Configuring the SIP Phone and sip.conf
- 2.3.2 Starting Asterisk and the Phone
- 2.4 Building a Minimal Phone System with Two SIP Phones
- 2.4.1 Configuring Voicemail
- 2.5 Rights Administration with Contexts
- 2.5.1 The Originating Context
- 2.5.2 Call Destination: Contexts in extensions.conf
- 2.6 Calls to and from the Public Switched Telephone Network
- 2.6.1 Calling the PSTN
- 2.6.2 Taking Calls from the PSTN
- Chapter 3 Dialplan Fundamentals
- 3.1 Contexts
- 3.2 Extensions
- 3.2.1 Fundamental Applications
- 3.2.2 Priorities
- 3.3 Pattern Matching
- 3.3.1 Pattern Elements
- 3.3.2 Testing a Pattern Using dialplan show
- 3.3.3 Pattern-Matching Order
- 3.4 Include Statements
- 3.4.1 Order of Execution When Using Include Statements
- 3.4.2 Time-Conditional Include Statements
- 3.5 The {EXTEN} Variable and the {CALLERID(num)} Function
- 3.5.1 {EXTEN}
- 3.5.2 {CALLERID(num)}
- Chapter 4 Case Study: A Typical Business Telephone System
- 4.1 The Numbering Plan
- 4.2 Choosing the Infrastructure
- 4.2.1 Network
- 4.2.2 Server Hardware
- 4.3 Base Configuration
- 4.3.1 A sip.conf for 100 Users
- 4.3.2 The Dialplan
- 4.4 What Next?
- Chapter 5 Dialplan Programming.
- 5.1 Programming "How-To
- 5.1.1 Program Structure
- 5.1.2 Using Set()
- 5.1.3 Labels and Goto()
- 5.1.4 While() Loops
- 5.1.5 GotoIf() Conditional
- 5.1.6 Gosub() Subroutines
- 5.2 Variables
- 5.2.1 Expanding Variables in an Extension
- 5.2.2 General Considerations
- 5.2.3 Defining Global Variables in extensions.conf
- 5.2.4 Defining Variables with Set()
- 5.2.5 Inheritance of Channel Variables
- 5.2.6 System Channel Variables
- 5.2.7 Manipulating Variables
- 5.3 Special Extensions
- 5.3.1 The h Extension
- 5.3.2 The i Extension
- 5.3.3 The o and a Extensions
- 5.3.4 The t and T Extensions
- 5.3.5 The s Extension
- 5.4 Macros
- 5.5 Deprecated Features
- Chapter 6 Asterisk Extension Language
- 6.1 CLI Commands for AEL
- 6.2 aelparse
- 6.3 Comparing extensions.conf with extensions.ael
- 6.3.1 Line Termination
- 6.3.2 Contexts, Extensions, and Priorities
- 6.3.3 Comments
- 6.3.4 Includes
- 6.3.5 Global Variables
- 6.3.6 Expressions and Variable Assignment
- 6.3.7 Labels, goto, and jump
- 6.3.8 Conditionals
- 6.3.9 Loops
- 6.3.10 Macros
- 6.3.11 Hints
- 6.3.12 Filtering by Caller ID
- 6.4 Choosing between extensions.ael and extensions.conf
- Chapter 7 Protocols
- 7.1 Network Protocols
- 7.1.1 Transmission Control Protocol
- 7.1.2 User Datagram Protocol
- 7.2 Channels
- 7.3 Peers, Users, and Friends
- 7.4 IAX Versus SIP
- Chapter 8 Making Connections
- 8.1 Codecs
- 8.1.1 What Does a Codec Do?
- 8.1.2 Performance
- 8.1.3 Configuring Codecs
- 8.1.4 Commonly Used Codecs
- 8.1.5 Bandwidth and Trunking
- 8.2 Integrated Services Digital Network
- 8.2.1 ISDN Basics
- 8.2.2 Choosing an ISDN Card
- 8.2.3 Media Gateways
- 8.3 Analog Telephony
- 8.3.1 Connecting Analog Devices
- 8.3.2 Analog Telephone Adapter
- Chapter 9 Voicemail
- 9.1 Example Implementations
- 9.1.1 An Example Home System.
- 9.1.2 An Example Business System
- 9.3 Dialplan Applications
- 9.3.1 VoiceMail
- 9.3.2 VoiceMailMain
- 9.4 voicemail.conf
- 9.4.1 [general]
- 9.4.2 [zonemessages]
- 9.4.3 Defined Contents
- 9.4.4 Mailboxes
- 9.5 Dial-by-Name
- 9.6 Saving Passwords in voicemail.conf
- Chapter 10 Interactive Voice Response
- 10.1 A Simple IVR
- 10.1.1 Timeouts
- 10.1.2 Invalid Input (the i Extension)
- 10.1.3 Pauses
- 10.2 Multilevel IVR Systems
- 10.3 Text-to-Speech
- 10.3.1 Installing Cepstral TTS
- Chapter 11 The Asterisk Database
- 11.1 The Asterisk Database
- 11.1.1 Writing Values to the Database
- 11.1.2 Reading Values from the Database
- 11.1.3 Deleting Values from the Database
- 11.2 Database Access from the Command-Line Interface
- 11.2.1 Writing Values to the Database
- 11.2.2 Reading Values from the Database
- 11.2.3 Deleting Values from the Database
- 11.2.4 Displaying Database Contents
- 11.3 Database Access from the System Shell
- 11.4 Database Backup
- 11.5 Application Example: Call Forwarding
- 11.5.1 Simple Call Forwarding
- 11.5.2 Complex Call Forwarding
- 11.6 Application Example: Calling Card
- Chapter 12 Queues
- 12.1 Extension for Testing Hold Music
- 12.2 musiconhold.conf
- 12.3 queues.conf
- 12.3.1 Announcement Sound Files
- 12.4 agents.conf
- 12.5 Extensions
- 12.5.1 Sending Callers to the Queue
- 12.5.2 AgentLogin() and AgentCallbackLogin()
- 12.6 Log File
- 12.6.1 Importing the Queue Log into MySQL
- Chapter 13 Features
- 13.1 Call Transfer
- 13.1.1 Blind Transfer
- 13.1.2 Attended Transfer
- 13.2 Call Parking
- Chapter 14 Conferencing
- 14.1 Installation and the Timing Device
- 14.2 Defining Conference Rooms
- 14.3 Access from the Dialplan
- 14.4 Announcing the Number of Conference Participants
- Chapter 15 External Control of Asterisk
- 15.1 asterisk -rx "command
- 15.2 Call Files.
- 15.2.1 Making a Call Automatically
- 15.2.2 Parameters
- 15.2.3 Hotel Wake-Up Call Example
- 15.3 The Asterisk Manager Interface
- 15.3.1 Creating an AMI User
- 15.3.2 Talking to the AMI
- 15.3.3 AMI Commands
- 15.3.4 Getting the Number of Voicemail Messages with Expect
- 15.3.5 StarAstAPI for PHP
- 15.3.6 Getting the Number of Mailbox Messages with PHP
- 15.4 The Asynchronous JavaScript Asterisk Manager
- 15.4.1 Getting the Number of Voicemail Messages with AJAM
- 15.4.2 AJAX and AJAM Considerations
- Chapter 16 Asterisk Gateway Interface
- 16.1 Data Streams
- 16.1.1 STDIN
- 16.1.2 STDOUT
- 16.1.3 STDERR
- 16.2 Examples in Various Programming Languages
- 16.2.1 Perl
- 16.2.2 PHP
- 16.2.3 Ruby and Adhearsion
- 16.2.4 Other Programming Languages
- Chapter 17 Fax Server
- 17.1 Installing IAXmodem
- 17.1.1 Configuring IAXmodem
- 17.1.2 Configuring faxgetty and Logging
- 17.2 Installing Hylafax
- 17.3 Receiving Faxes
- 17.4 Sending Faxes
- 17.5 Sending Received Faxes as E-Mail
- Chapter 18 Busy Lamp Field, Hints, Pickup
- 18.1 Controlling Indicators
- 18.1.1 sip.conf
- 18.1.2 Hints
- 18.2 Subscriptions
- 18.3 Configuring Telephones for BLF
- 18.3.1 BLF on the Aastra 480i
- 18.3.2 Polycom Soundpoint IP 501
- 18.4 Testing the Hints
- 18.5 Configuring Pickup
- 18.5.1 extensions.conf for Pickup
- 18.5.2 Configuring the Phones for Pickup
- 18.5.3 Configuring Group Pickup
- 18.6 Advanced BLF Indicators in Asterisk 1.6
- Appendix A: Installation Instructions for Asterisk 1.4
- A.1 LibPRI
- A.2 DAHDI
- A.3 Asterisk
- Appendix B: Dialplan Applications
- B.1 AbsoluteTimeout()
- B.2 AddQueueMember()
- B.3 ADSIProg()
- B.4 AgentCallbackLogin()
- B.5 AgentLogin()
- B.6 AgentMonitorOutgoing()
- B.7 AGI()
- B.8 AlarmReceiver()
- B.9 AMD()
- B.10 Answer()
- B.11 AppendCDRUserField()
- B.12 Authenticate().
- B.13 Background()
- B.14 BackgroundDetect()
- B.15 Bridge()
- B.16 Busy()
- B.17 ChangeMonitor()
- B.18 ChanIsAvail()
- B.19 ChannelRedirect()
- B.20 ChanSpy()
- B.21 CheckGroup()
- B.22 ClearHash()
- B.23 Congestion()
- B.24 ContinueWhile()
- B.25 ControlPlayback()
- B.26 Curl()
- B.27 Cut()
- B.28 DAHDIBarge()
- B.29 DAHDIRAS()
- B.30 DAHDIScan()
- B.31 DAHDISendKeypadFacility()
- B.32 DateTime()
- B.33 DBdel()
- B.34 DBdeltree()
- B.35 DBget()
- B.36 DBput()
- B.37 DeadAGI()
- B.38 Dial()
- B.39 Dictate()
- B.40 DigitTimeout()
- B.41 Directory()
- B.42 DISA()
- B.43 DumpChan()
- B.44 DUNDiLookup()
- B.45 EAGI()
- B.46 Echo()
- B.47 EndWhile()
- B.48 EnumLookup()
- B.49 Eval()
- B.50 Exec()
- B.51 ExecIf()
- B.52 ExecIfTime()
- B.53 ExitWhile()
- B.54 ExtenSpy()
- B.55 ExternalIVR()
- B.56 FastAGI()
- B.57 Festival()
- B.58 Flash()
- B.59 FollowMe()
- B.60 ForkCDR()
- B.61 GetCPEID()
- B.62 GetGroupCount()
- B.63 GetGroupMatchCount()
- B.64 Gosub()
- B.65 GosubIf()
- B.66 Goto()
- B.67 GotoIf()
- B.68 GotoIfTime()
- B.69 Hangup()
- B.70 HasNewVoicemail()
- B.71 HasVoicemail()
- B.72 IAX2Provision()
- B.73 ICES()
- B.74 ImportVar()
- B.75 Incomplete()
- B.76 JabberSend()
- B.77 JabberStatus()
- B.78 KeepAlive()
- B.79 Log()
- B.80 LookupBlacklist()
- B.81 LookupCIDName()
- B.82 Macro()
- B.83 MacroExclusive()
- B.84 MacroExit()
- B.85 MacroIf()
- B.86 mailboxExists()
- B.87 Math()
- B.88 MD5()
- B.89 MD5Check()
- B.90 MeetMe()
- B.91 MeetMeAdmin()
- B.92 MeetMeChannelAdmin()
- B.93 MeetMeCount()
- B.94 Milliwatt()
- B.95 MinivmAccMess()
- B.96 MinivmDelete()
- B.97 MinivmGreet()
- B.98 MinivmNotify()
- B.99 MinivmRecord()
- B.100 MixMonitor()
- B.101 Monitor()
- B.102 Morsecode()
- B.103 MP3Player()
- B.104 MSet()
- B.105 MusicOnHold()
- B.106 NBScat().
- B.107 NoCDR().