Asterisk 1.4 : The Professional’s Guide
()
About this ebook
Related to Asterisk 1.4
Related ebooks
Mastering FreeSWITCH Rating: 0 out of 5 stars0 ratingsFreePBX 2.5 Powerful Telephony Solutions Rating: 0 out of 5 stars0 ratingsAsterisk 1.6 Rating: 0 out of 5 stars0 ratingsFreeSWITCH 1.6 Cookbook Rating: 0 out of 5 stars0 ratingsSphinx Search Beginner's Guide Rating: 4 out of 5 stars4/5Microsoft Windows 7 Administrator's Reference: Upgrading, Deploying, Managing, and Securing Windows 7 Rating: 5 out of 5 stars5/5IBM COBOL A Complete Guide - 2021 Edition Rating: 0 out of 5 stars0 ratingsAutoIT Scripting For Beginners Rating: 5 out of 5 stars5/5Amazon Echo: How to Get the Most Out of Your Amazon Echo: User Guide, Tips, Tricks & Commands (Revised, Expanded & Updated for 2016) Rating: 0 out of 5 stars0 ratingsLINUX CLEARLY EXPLAINED Rating: 2 out of 5 stars2/5How to Cheat at Configuring VmWare ESX Server Rating: 0 out of 5 stars0 ratingsSet Up Your Own IPsec VPN, OpenVPN and WireGuard Server: Build Your Own VPN Rating: 5 out of 5 stars5/5Instant Hyper-V Server Virtualization Starter Rating: 0 out of 5 stars0 ratingsASN.1 Second Edition Rating: 0 out of 5 stars0 ratingsMicrosoft Azure IoT A Complete Guide - 2019 Edition Rating: 1 out of 5 stars1/5SuperBASIC: The Manual Rating: 0 out of 5 stars0 ratingsConfiguring IPCop Firewalls: Closing Borders with Open Source Rating: 0 out of 5 stars0 ratingsIP Addressing and Subnetting INC IPV6: Including IPv6 Rating: 0 out of 5 stars0 ratingsWindows Server 2012 Unified Remote Access Planning and Deployment Rating: 0 out of 5 stars0 ratingsSix Minute Guide to IPv6 Rating: 5 out of 5 stars5/5Introduction to Python Network Automation: The First Journey Rating: 0 out of 5 stars0 ratings(No) Value in Unified Communications: There is no value in Unified Communications without a lean approach Rating: 0 out of 5 stars0 ratingsBuilding Telephony Systems with OpenSER Rating: 0 out of 5 stars0 ratingsDemystifying Embedded Systems Middleware Rating: 4 out of 5 stars4/5TrixBox Made Easy Rating: 0 out of 5 stars0 ratingsNavigating Networks: A Comprehensive Guide to IPv4 Addressing for Tech Enthusiasts, CCNA Candidates, and Networking Professionals Rating: 0 out of 5 stars0 ratingsBeginning LoRa Radio Networks with Arduino: Build Long Range, Low Power Wireless IoT Networks Rating: 0 out of 5 stars0 ratingsLearning AWS Rating: 4 out of 5 stars4/5Wireshark Essentials Rating: 0 out of 5 stars0 ratings
Information Technology For You
Health Informatics: Practical Guide Rating: 0 out of 5 stars0 ratingsAWS Certified Cloud Practitioner: Study Guide with Practice Questions and Labs Rating: 5 out of 5 stars5/5How to Write Effective Emails at Work Rating: 4 out of 5 stars4/5Creating Online Courses with ChatGPT | A Step-by-Step Guide with Prompt Templates Rating: 4 out of 5 stars4/5Hacking Essentials - The Beginner's Guide To Ethical Hacking And Penetration Testing Rating: 3 out of 5 stars3/5ChatGPT: The Future of Intelligent Conversation Rating: 4 out of 5 stars4/5Computer Science: A Concise Introduction Rating: 4 out of 5 stars4/5Investigating Child Exploitation and Pornography: The Internet, Law and Forensic Science Rating: 5 out of 5 stars5/5Data Analytics for Beginners: Introduction to Data Analytics Rating: 4 out of 5 stars4/5Practical Ethical Hacking from Scratch Rating: 5 out of 5 stars5/5CODING INTERVIEW: Advanced Methods to Learn and Excel in Coding Interview Rating: 0 out of 5 stars0 ratingsInkscape Beginner’s Guide Rating: 5 out of 5 stars5/5Panda3d 1.7 Game Developer's Cookbook Rating: 0 out of 5 stars0 ratingsHandbook of Digital Forensics and Investigation Rating: 4 out of 5 stars4/5CompTIA Network+ CertMike: Prepare. Practice. Pass the Test! Get Certified!: Exam N10-008 Rating: 0 out of 5 stars0 ratingsMicro Niches Rating: 0 out of 5 stars0 ratingsCompTIA ITF+ CertMike: Prepare. Practice. Pass the Test! Get Certified!: Exam FC0-U61 Rating: 0 out of 5 stars0 ratingsHow To Stay Private Online Protecting Your Online Privacy and Shielding Your Online Presence from Snoopers Rating: 0 out of 5 stars0 ratingsSharePoint Designer Tutorial: Working with SharePoint Websites Rating: 1 out of 5 stars1/5Windows Registry Forensics: Advanced Digital Forensic Analysis of the Windows Registry Rating: 4 out of 5 stars4/5How To Use Chatgpt: Using Chatgpt To Make Money Online Has Never Been This Simple Rating: 0 out of 5 stars0 ratingsAn Ultimate Guide to Kali Linux for Beginners Rating: 3 out of 5 stars3/5The Basics of Hacking and Penetration Testing: Ethical Hacking and Penetration Testing Made Easy Rating: 4 out of 5 stars4/5Data Governance For Dummies Rating: 0 out of 5 stars0 ratingsSummary of Super-Intelligence From Nick Bostrom Rating: 5 out of 5 stars5/5How to Find a Wolf in Siberia (or, How to Troubleshoot Almost Anything) Rating: 0 out of 5 stars0 ratingsARDUINO PROGRAMMING FOR BEGINNERS: Tips and Tricks for the Efficient Use of Arduino Programming Rating: 0 out of 5 stars0 ratingsSupercommunicator: Explaining the Complicated So Anyone Can Understand Rating: 3 out of 5 stars3/5
Reviews for Asterisk 1.4
0 ratings0 reviews
Book preview
Asterisk 1.4 - Colman Carpenter
Table of Contents
Asterisk 1.4
Credits
Foreword
About the Authors
About the Reviewers
Preface
Reviewing the basics
No compromise
What this book covers
Onwards
Conventions
Reader feedback
Customer support
Downloading the example code for the book
Errata
Piracy
Questions
1. The Dialplan
Dialplan location
Extensions and contexts
Pattern matching
Why use contexts?
Call barring made simple
Time and day call routing
Variables
Inheritance of channel variables through the dialplan
Using the AstDB
Dialplan features and additions
func_devstate
What can we use the DEVSTATE() function for?
Outgoing trunk selection
Calling extensions
Setting lights
Boosting outgoing call capacity
Using multiple broadband lines
Configuration overview
Setting up the routing in Linux
Configuring Asterisk
Explanation of the macro
Downsides
System() application
Summary
2. Network Considerations when Implementing Asterisk
Centralized and distributed installations
Centralized installations
Distributed solutions
Latency and jitter
Jitterbuffer
Echo
Do your homework
SLAs are for everyone
Achieving the goal
Backups
To share or not to share
Ensuring quality
When things go wrong
Red
Amber
Green
Increasing resilience
Summary
3. Call Routing with Asterisk
Routing methods
Where to start
Internal calls
Local calls
National calls
International calls
Alternative options
ENUM
DUNDi
Types of routing
Routing techniques
Summary
4. Call Centers—Queues and Recording
Asterisk queues
Queue gotchas
A practical queue
Using queues to cascade calls
Call recording—the issues
Show-stoppers
VoIP recording approaches
Impact of VoIP on recording systems
Hardware convergence
Distributed call centers
Home working
VoIP recording challenges
Routing
Bandwidth
Encryption
Solutions
Asterisk call center solutions
How VICIDIAL works
Handling inbound calls
Installation
Timing sources
Scalability
Summary
5. Asterisk and Speech Technology
Why speech-enable?
Types of speech technologies
Automatic Speech Recognition (ASR)
Isolated Word Recognition
Connected Word Recognition
Natural Language Recognition
Text-to-Speech (TTS)
Speaker Verification and Identification (SVI)
MRCP
Implementation considerations
ASR and Asterisk
Installing LumenVox speech recognition with Asterisk
Checking that things are working
SpeechCreate()
SpeechLoadGrammar (yesno,/etc/lumenvox/Lang/BuiltinGrammars/ABNFBoolean.gram)
SpeechActivateGrammar(yesno)
SpeechBackground(beep)
Verbose(1,Result was ${SPEECH_TEXT(0)})
Verbose(1,Confidence was ${SPEECH_SCORE(0)})
SpeechStart()
SpeechDeactivateGrammar(label)
SpeechUnloadGrammar(label)
SpeechDestroy()
${SPEECH(results)}
Grammar files
Implementation advice for ASR
TTS with Asterisk
Implementation advice for TTS
Summary
6. Call Accounting and Billing
Call Data Records (CDRs)
CDR frontends
Call accounting
Providing termination billing
Every little helps
Selecting a billing platform
Introducing A2Billing
Reasons to consider A2Billing
A2Billing requirements
Monitoring usage
Coding for A2Billing
Billing gotcha!
High call volumes
Other high-call-volume solutions
SER/OpenSER
FreeSWITCH
Summary
7. Resilience and Stability
Increasing availability
Stability
Network
Cables
Switches and routers
Endpoints
Telephony switches and gateways
Server
Environment
Dealing with failure
Network resilience
Server
High availability
Ultra Monkey
Telephony switches/gateways
Redfone foneBRIDGE2
Junghanns ISDNguard
Endpoints
Round robin DNS
Say hello to Rsync
Limiting the number of calls per server
Summary
8. Localization and Practical Security
Tones
Time and date and localization
Changing the language of system prompts
Local telephony interfaces
Analog
Digital
Localizing caller ID signaling on Digium analog interfaces
Checklist
Practical security
Out of hours
Summary
9. Interfacing with Traditional Analog and Digital Telephony
Analog
Digital
ISDN BRI (Basic Rate Interface)
ISDN PRI (Primary Rate Interface)
Choices, choices
Using external adaptors
Using cards
Installing a Digium card
Card installation—physical
Installing the DAHDI software
Configuring the DAHDI files to enable the card
What about the other cards?
framing
coding
Troubleshooting with Digium cards
Summary
10. Integrating Asterisk with Wireless Technologies
Why integrate Asterisk with wireless technologies?
Wireless technology overview
Wi-Fi (only) phones
SIP desk phones with a wireless link
Dual-mode (GSM and SIP) phones and PDA/smart phones
SIP/DECT phones
Connecting Asterisk to mobile networks
Why connect to mobile networks?
The GSM gateway (box)
The GSM card
Configuring wireless devices
Configuring Asterisk to work with wireless technologies
Deployment choices
Neat money saving tricks
Calling a mobile phone
Avoiding those nasty roaming charges that arise from receiving calls
Summary
11. Graphical User Interfaces
Reasons for going GUI
Good to GUI
Ease of administration
Access to enhanced features
Easier upgrade process
Standardized code
GUI, phooey!
Performance
Stability
Restricted functions
FreePBX
How it works
Installation
Configuration
Extensions
Inbound routes
Outbound routes
Trunks
Other records
Summary
A. Selling Your Solution
In the beginning ...
Drivers for changing phone systems
A word on cost
Generating interest
Alliances
Advertising
Search engines
Become an expert
Relationship marketing
Email as a marketing tool
Tracking prospects
Converting the prospect into a sale
Determining your customer's hardware requirements
Choosing the right phones
Tales of woe
Aastra
Linksys
Siemens Gigaset IP DECT phones
Snom M3
Remote support
Make it secure
Do's and don'ts
The do's
First impressions
Get brochures printed
Take notes
Send the quote in a timely manner
Follow up the quote
Target the decision makers, but don't ignore IT
The don'ts
You don't need a fancy office
Don't cut corners on the solution
Don't under price
Don't have a huge margin on handsets
Don't supply a PC as the phone server
Summary
B. Sample Email Content
What is VoIP?
Why should I consider VoIP?
Cost savings
Call costs
Line rental costs
Wiring costs
Reduced infrastructure costs
Centralized management
System integration
Unified messaging
Reliability
Closed and open systems
Superior sound
Fallback solutions
Broadcasting calls
A number for life
Number porting
Local numbers
About XYZ
Our philosophy
Our passion
C. Sample Appointment Sheet
Index
Asterisk 1.4
The Professional's Guide
Colman Carpenter
Ian Plain
David Duffett
Nik Middleton
Asterisk 1.4
The Professional's Guide
Copyright © 2009 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: August 2009
Production Reference: 1030809
Published by Packt Publishing Ltd.
32 Lincoln Road
Olton
Birmingham, B27 6PA, UK.
ISBN 978-1-847194-38-1
www.packtpub.com
Cover Image by Vinayak Chittar (<vinayak.chittar@gmail.com>)
Credits
Authors
Colman Carpenter
David Duffett
Nik Middleton
Ian Plain
Reviewers
Ian Plain
Jared Smith
Philippe Lindheimer
Acquisition Editor
James Lumsden
Technical Editors
Gagandeep Singh
Charumathi Sankaran
Indexer
Rekha Nair
Editorial Team Leader
Gagandeep Singh
Project Team Leader
Lata Basantani
Project Coordinator
Neelkanth Mehta
Proofreader
Laura Booth
Production Coordinator
Aparna Bhagat
Cover Work
Aparna Bhagat
Foreword
Watching Asterisk move from being a personal coding project to a community of tens of thousands of programmers and millions of users has been quite the ride so far! Asterisk is only now hitting its prime, and there are so many more things that creative people are going to do with the code. The growth of the project over the years has stunned and pleased me, and it's amazing that well-written and comprehensive books like this now exist to help more advanced users navigate the waters of larger and more complex Asterisk installations. Asterisk installations are now huge, both in numbers of locations and the unimaginably large size of many of those locations—thousands or tens of thousands of users! Asterisk implementations are rarely limited by the capability of the software but more often by not knowing how to utilize it. Books like this play an important role in getting the experience of those who have already done in the hands of those who want to do.
Hopefully the knowledge here allows you to continue your adventure with Asterisk, moving from the basics of PBX construction to having the ability to quickly implement advanced call logic processes and work with the more exotic telephony and VoIP interfaces. The motto of There's more than one way to do it!
is almost always true with Asterisk—this book seems to contain an excellent cross-section of at least one of those ways to do it
(whatever it
happens to be for your application) and you'll quickly think of many other ways once you've mastered the methods shown.
The authors here have really shown some excellent detailed explanations of how to use Asterisk, and I hope this provides the incentive for you, the reader, to experiment in more wide-ranging ways with Asterisk once you've understood the basics. Most of the Asterisk community has learned with hands-on experimentation, and it's great to see more encouragement of this type of learning as is contained in these pages. Kudos to the authors, especially David Duffett, who has been involved with Asterisk for so long and has taught so many people their first dialplan routines (and hopefully has left them uninjured from his famous habit of throwing candy at people who give correct answers in class or in his talks).
Soon you'll be doing least-cost-routing, integrating your instant messenger system with your mobile phone calls, controlling robots with voice commands via your phone, or dreaming up a new company based on some voice-based service that nobody has tapped into yet. And the best thing about Asterisk is that it remains open source—if you come up with a feature or enhancement that you think must be in Asterisk, then the good news is that it can be! Become a member of the Asterisk community, and your contributed code could be included. We all anxiously await your book, your product, or just your involvement with the Asterisk community.
Mark Spencer
Chairman and CTO of Digium
About the Authors
Colman Carpenter is the MD of Voicespan, a Kent-based company that offers Asterisk-based systems to the SME market across the UK. He is an IT professional of over 20 years standing, with experience in diverse areas such as IBM mid-range software development, Lotus Notes and Domino consultancy, Data Management, E-marketing consultancy, IT Management, Project Management, Wordpress Website Design, and lately, Asterisk consultancy. He is a qualified PRINCE2 practitioner.
Voicespan (http://www.voicespan.co.uk) offers Asterisk-based systems as the cornerstone of a holistic VoIP-telephony service for SMEs. They offer companies a one-stop shop for implementing a VoIP-capable system, encompassing Asterisk-based systems, endpoints, trunks, telephony interfaces and network equipment, and the consultancy necessary to bring it all together into a coherent whole. This is his first book.
I would like to thank my wife, Hazel, and daughters, Caiti and Fay, for their support during the writing of this book. At times it seemed like you believed more than I in my ability to do so!
David Duffett delivers Asterisk training and consultancy around the world through his own company (TeleSpeak Limited, www.telespeak.co.uk), in addition to designing and delivering training for a number of companies, including Digium, Inc.
A keen Asterisk enthusiast, David also enjoys podcasting, radio presenting, and teaching public-speaking skills. He is a Chartered Engineer with experience in fields including Air Traffic Control communications, Wireless Local Loop, Mobile Networks, VoIP, and Asterisk. David has been in the telecoms sector for nearly 20 years and has had a number of computer telephony, VoIP, and Asterisk articles published through various industry publications and web sites.
Nik Middleton has been in wide-area communications since the mid-eighties. He spent most of the nineties working in the US, where he developed a shareware Microsoft mail to SMTP/POP3 connector that sold some 287,000 copies. He spent six years working for DuPont in VA, developing remote monitoring systems for their global Lycra business. In late 2000, he returned to the UK where he held various senior positions in British Telecom, LogicaCMG, and Computer Science Corp.
In 2005, tired of working in London, he set up his own company (Noble Solutions) providing VoIP solutions in rural Devon, where he now lives with his wife Georgina and three children, Mathew, Vicky, and Isabel. A keen amateur pilot, his favorite place when not in the office is flying over the beautiful Devon countryside.
Ian Plain has worked in the telecoms industry since 1981 and has designed some of the largest PBX networks in the UK. Since the late 1990s, he has been involved with VoIP initially for links between systems, and with IP PBX systems since 1999. Since 2003, he has been running a telecoms consultancy based near Bath in the UK, working primarily on high-availability Asterisk-based solutions for corporate customers.
About the Reviewers
Ian Plain: Please see the entry in About the Authors.
Jared Smith is the Training Manager for Digium, Inc. As a long time Asterisk user, contributor, and evangelist, he has spent the last several years helping the Asterisk community. Jared is a dynamic and knowledgeable instructor with several years of experience in leading various Asterisk training classes.
He is also co-author of Asterisk: The Future of Telephony, O'Reilly Media and regularly writes other Asterisk documentation as well.
Jared holds a Bachelors of Science degree in Computer Engineering from the Utah State University and currently lives in Virginia with his wife and two children.
Philippe Lindheimer is the project leader and primary developer of FreePBX and serves as the Open Source Community Director at Bandwidth.com, the corporate sponsor of the FreePBX project (the most widely deployed Asterisk-based PBX/GUI open-source application in the world). He cofounded and runs the Open Telephony Training Seminar providing FreePBX/Asterisk technical and marketing training to resellers and end users. Originally with Hewlett Packard, he has been in the engineering industry for over two decades, working on a range of technical consulting roles with many Fortune 500 Companies.
He has a BS (Hons) in EE/CS from the University of Colorado, Boulder. He now lives in the Seattle, WA area.
Preface
This book is a sequel to Building Telephony Systems with Asterisk, which started you on a journey to the summit of Asterisk knowledge, taking you from base camp to camp two, from being a complete Asterisk newbie to a competent telephony system builder and manager. Now it's time to push to the top, to take your telephony knowledge to a point where you can build high-performance, resilient, and professional PBXs using the most popular open source telephony software in the world—Asterisk.
In that book, the focus was very much on installing and configuring Asterisk for a number of common scenarios, including both home and office use. This it achieved admirably, so you may now wonder why another book is needed. Well, there are three main reasons for writing this book. Firstly, Asterisk is such a highly-capable and configurable telephony engine that the 150-odd pages in the book necessarily had to exclude discussion of some of the more advanced features, which we now have the opportunity to explore. Secondly, Asterisk is invariably implemented as part of an IP network, and further examination of network considerations is warranted. Finally, like all popular open source software, Asterisk is constantly being updated, and while this book still assumes the version 1.4 of Asterisk is in use, we do point out any differences in version 1.6 where relevant, such as the change from Zaptel to DAHDI.
Therefore, the goal of this book is to give you enough knowledge to build and install a telephony system with Asterisk at its core, which will stand comparison with the market-leading commercial IP-enabled systems. Whether you are building such a system as a result of an internal company requirement, or you plan to offer it as an element of a commercial package to customers, this book will take you through all the areas that require consideration. On reading this book you will also be in a position to understand the real-life issues you are likely to experience when deploying such a system, both technical and otherwise.
By its very nature, Asterisk demands that much of the focus of this book be on the technical aspects of building your professional system. However, as with most IT implementations, success will also rely on soft
issues such as managing expectations, understanding and meeting the customer's particular needs, and ensuring delivery is on time and up to the budget. Hence, where appropriate, we make mention of the non-technical aspects that may make a difference to your deployment.
To achieve our goal, this book will build on knowledge already gained by reinforcing that learning and adding extra skills covering:
Security
Networks
Large-scale considerations
Resilience
Scalability
Integration with complementary products
Commercial aspects
Reviewing the basics
If you have not already done so, it is recommended that you read Building Telephony Systems with Asterisk, or achieve a good degree of competence in building basic Asterisk PBXs through other means. These could include commercial training courses (see www.digium.com/en/training for further details) or openly available internet resources such as the excellent VoIP wiki at http://www.voip-info.org.
While most people with a day-to-day exposure to Asterisk systems should stand to gain much from this book, it has been written in the expectation that you will possess the following Asterisk skills and experience, ideally gained through text file configuration:
Connecting Asterisk to analogue and digital PSTN lines, and VoIP services
Configuring different types of terminal equipment (phones, communication devices, other PBXs)
Installing Asterisk, Zaptel and LibPRI
Configuring features (Voicemail, Music On Hold, Queues, Conference Rooms, and so on)
Creating a dialplan, including call distribution
CDRs, call monitoring and recording
Backups and restores
Basic security and load balancing
Once equipped with this knowledge you stand to gain the maximum from the topics covered in this book, enabling you to build professional Asterisk systems to be deployed internally, or to form the cornerstone of a commercial offering.
No compromise
In this book you will, hopefully, learn many new things. At its conclusion you will have the knowledge to build and successfully implement systems that combine great performance, resilience and stability. In order to do so, we will mainly consider pure
Asterisk systems that require a deep understanding of the dialplan and configuration files without the safety-net of a GUI in between. Think of it as learning to become a great car mechanic. You can certainly be a good mechanic earning a good living by learning how to use a laptop plugged into an engine management system. But if you want to take that extra step to being a true master of the trade then you need to understand at a very deep level just how the internal combustion engine works. So it is with Asterisk. It is perfectly feasible to put very good solutions together using GUI-based systems such as the Digium-owned Switchvox, Trixbox (formerly Asterisk@Home) or PBX in a Flash, but to construct the best systems you will need to understand what is happening under the hood
so that you can tweak them appropriately to achieve or exceed the customers' expectations.
One advantage of eschewing the GUI approach is a potential increase in performance and scalability through the use of a highly-optimized dialplan and a reduction in applications running on the server. However, there are many situations where a GUI is at least as appropriate, particularly if the customer wishes to carry out day-to-day management tasks. Therefore, in Chapter 12 we look at the implications of choosing a GUI-based solution over a vanilla
system.
Note
To follow the trusted network
of Asterisk developers please visit: www.asteriskpro.co.uk
What this book covers
As a result of reading this book, you can expect to build on existing knowledge and gain new skills. Each chapter covers a particular topic, but throughout there is a focus on building an Asterisk system that can form the cornerstone of a serious commercial product, capable of matching or even exceeding the performance of well-known licensed products.
Chapter 1 talks about dialplan techniques including modular implementations by using macros, contexts, and so on to both refine the dialplan and improve the security of the system. It also discusses the use of the devstate() function.
Chapter 2 discusses customer network requirements and offers some good advice about potential issues within the customer network and how to resolve them, including the use of VLANs and Quality of Service.
Chapter 3 looks at routing in general, including Least Cost Routing (local, national, and international GSM gateways), fall-back routing, alternate routing, and so on. ENUM and DUNDi are also explained within this context.
Chapter 4 considers call center requirements, including queues, agents, call distribution strategies, performance monitoring and call recording issues. An Asterisk-based call center solution, VICIDIAL, is also discussed in some detail.
Chapter 5 introduces speech technology in the form of ASR, TTS, and SVI; followed by implementation advice and examples. Both Lumenvox and Cepstral packages are explored in detail.
Chapter 6 looks at methods that can be used to implement call accounting and billing solutions for Asterisk. In particular, Asterisk-stat and A2Billing are explored.
Chapter 7 discusses resilience and stability, giving you a guide to implementing highly-available Asterisk solutions for mission-critical applications. Use of failover and load-balancing techniques are explored.
Chapter 8 explores the comprehensive localization options within Asterisk, and also suggests some easily deployed security measures.
Chapter 9 considers interfaces with traditional analogue and digital telephony, giving more in-depth explanations of Libpri and DAHDI (formerly Zaptel), and discussing implementation considerations.
Chapter 10 tackles the good and bad points of using wireless technologies with Asterisk, covering Wi-Fi, dual-mode and DECT handsets. Some suggestions on routing via cell/mobile networks are also offered.
Chapter 11 looks at the good and bad points of Asterisk Graphical User Interfaces (GUIs), focusing on one of the most popular incarnations, FreePBX.
In Appendix A we also explore some of the softer skills required when selling Asterisk-based solutions, suggesting some sales strategies that can help you in a commercial environment.
In Appendix B you will find information you might want to include in sample emails when pitching.
In Appendix C you will find a sample appointment sheet which can be used as a template.
Onwards
So now our campsite has been packed away and it is time for the next part of our journey to begin, for those first purposeful steps to be taken towards the summit. We will start in Chapter 1 by looking at the heart of any Asterisk system, the dialplan. You will already have significant knowledge in this area, but we are about to show you some of the techniques that are used in systems with thousands of extensions that handle many tens of thousands of calls per day. Without these techniques, a dialplan can become an unholy mess as system size increases. However, using these techniques will ensure that complexity is avoided and performance is maintained.
Conventions
In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.
Code words in text are shown as follows: We can include other contexts through the use of the include directive.
A block of code is set as follows:
exten => s,1,Dial(Zap/1,30)
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s,n,Hangup()
exten => s-NOANSWER,1,Voicemail(100,u)
exten => s-BUSY,1,Voicemail(100,b)
exten => i,1,Voicemail(0,s)
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
[default]
exten => s,1,Dial(Zap/1|30)
exten => s,2,Voicemail(u100)
exten => s,102,Voicemail(b100)
exten => i,1,Voicemail(s0)
Any command-line input or output is written as follows:
# cp /usr/src/asterisk-addons/configs/cdr_mysql.conf.sample
/etc/asterisk/cdr_mysql.conf
New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: clicking the Next button moves you to the next screen
.
Note
Warnings or important notes appear in a box like this.
Note
Tips and tricks appear like this.
Reader feedback
Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.
To send us general feedback, simply send an email to <feedback@packtpub.com>, and mention the book title via the subject of your message.
If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or email