Use your business data to your advantage with the help of Syncfusion’s new data science offerings. Discover how a custom big data solution can provide your company with valuable predictions about key market trends.

FreeSWITCH 1.2

Whether you’re an IT pro or an enthusiast, setting up your own fully-featured telephony system is an exciting challenge, made all the more realistic for beginners by this brilliant book on FreeSWITCH. A 100% practical tutorial.

$26.99

$44.99

RRP $26.99

RRP $44.99

eBook

Print + eBook

Want this title & more?

$21.99 p/month

Subscribe to PacktLib

Enjoy full and instant access to over 2000 books and videos – you’ll find everything you need to stay ahead of the curve and make sure you can always get the job done.

Book Details

ISBN 139781782161004

Paperback428 pages

About This Book

Learn how to install and configure a complete telephony system of your own, even if this is your first time using FreeSWITCHIn-depth discussions of important concepts like the dialplan, user directory, NAT handling, and the powerful FreeSWITCH event socketBest practices and expert tips from the FreeSWITCH experts, including the creator of FreeSWITCH, Anthony Minessale

Who This Book Is For

This book is written for IT professionals and enthusiasts who are interested in quickly getting a powerful telephony system up and running using the free and open source application, FreeSWITCH. Telephony experience will be helpful, but not required.

Table of Contents

Chapter 1: Architecture of FreeSWITCH

A revolution has begun and secrets have been revealed

The FreeSWITCH design – modular, scalable, and stable

Important modules – Endpoint and Dialplan

Complex applications made simple

Summary

Chapter 2: Building and Installation

Setting up the FreeSWITCH environment

Operating system prerequisites

Text editors and XML

Downloading the source

Building from the latest code

Compiling FreeSWITCH for Linux/Unix/Mac OS X

Compiling FreeSWITCH for Windows

Starting FreeSWITCH

Running FreeSWITCH in the background

Summary

Chapter 3: Test Driving the Example Configuration

Important concepts to understand

Putting FreeSWITCH to work

Configuring a SIP phone to work with FreeSWITCH

Testing the example Dialplan

Summary

Chapter 4: SIP and the User Directory

Understanding the FreeSWITCH user directory

Working with the FreeSWITCH user directory

User features

Adding a user

Testing voicemail

Groups of users

Connecting to the world with gateways

SIP profiles and user agents

Summary

Chapter 5: Understanding the XML Dialplan

FreeSWITCH XML Dialplan elements

Contexts

Extensions

Call legs and channel variables

Accessing channel variables

Regular expressions

Actions and anti-actions

How Dialplan processing works

Creating a new extension

Important Dialplan applications

Dialstring formats

Summary

Chapter 6: Using XML IVRs and Phrase Macros

IVR engine overview

IVR XML configuration file

IVR engine overview

Using phrases with IVRs

Advanced routing

Summary

Chapter 7: Dialplan Scripting with Lua

Getting started with Lua

Basic Lua syntax

Building voice applications

Advanced IVR concepts

Scripting tips

Summary

Chapter 8: Advanced Dialplan Concepts

Dialplan overview

General Diaplan concepts

Putting it all together

XML Dialplan module review

Pitfalls to avoid

XML Dialplan applications

Utilizing variables

Global variables

Dialplan functions

Set, export, and legs

Passing variables via call headers

XML Dialplan cookbook

Summary

Chapter 9: Moving Beyond the Static XML Configuration

The mod_xml_curl basics

The mod_xml_curl Dialplan

The mod_xml_curl folder

The mod_xml_curl configuration

The mod_xml_curl summary

Generating configurations dynamically with language bindings

Making calls from the command line interface

Using ESL to execute commands

Summary

Chapter 10: Controlling FreeSWITCH Externally

General overview

Event system architecture

Event-based modules

Sending events

Events from the Dialplan

FreeSWITCH event system commands

FreeSWITCH Console application

Event Socket Library

Events in practice

Summary

Chapter 11: Web-based Call Control with mod_httapi

HTTAPI syntax

mod_httapi configuration file

The demo IVR – in HTTAPI

Summary

Chapter 12: Handling NAT

A brief introduction to NAT

The four pitfalls of NAT

Demystifying NAT settings in FreeSWITCH

Making media flow

Advanced options and settings

FreeSWITCH on the client side

Other creative uses of FreeSWITCH in a NAT situation

Conclusion

Summary

Chapter 13: VoIP Security

Network level protection

Protecting SIP signalling

Protecting audio

Protecting passwords

Summary

Chapter 14: Advanced Features and Further Reading

Multi-user conferencing

Nibblebill

Alternative endpoints

Configuration tools and related projects

Web GUIs

Supporting libraries

Vestec Automatic Speech Recognition

Summary

What You Will Learn

Set up a basic system to make and receive phone calls, make calls between extensions, and utilize basic PBX functionalityDeploy different features of this telephony system with best practices and expert tipsUnderstand the inner workings and architecture of FreeSWITCHUse advanced features to create powerful dialplansOvercome frustrating NAT issuesControl FreeSWITCH remotely with the powerful event socketCreate web-controlled telephony apps with the new HTTAPI systemSecure your VoIP communications

In Detail

FreeSWITCH is an open source telephony platform designed to facilitate the creation of voice and chat-driven products, scaling from a soft-phone to a PBX and even up to an enterprise-class soft-switch. It is always exciting to design and build your own telephony system to suit your needs, but the task is time-consuming and involves a lot of technical skill."FreeSWITCH 1.2" comes to your rescue to help you set up a telephony system quickly and securely using FreeSWITCH. It is rich with practical examples and will give you all of the information and skills needed to implement your own PBX system.You will start with a detailed description of the FreeSWITCH system architecture. Thereafter you will receive step-by-step instructions on how to set up basic and advanced features for your telephony platform.The book begins by introducing the architecture and workings of FreeSWITCH before detailing how to plan a telephone system and then moves on to the installation, configuration, and management of a feature-packed PBX. You will learn about maintaining a user directory, XML dial plan, and advanced dial plan concepts, call routing, and the extremely powerful Event Socket. You will finally learn about the online community and history of FreeSWITCH."FreeSWITCH 1.2" is an indispensable tool for novice and expert alike.

Authors

Anthony Minessale

Anthony Minessale has been working with computers for nearly 30 years. He is the primary author of FreeSWITCH and Director of Engineering for CudaTEL at Barracuda Networks.
He created and continues to run the ClueCon Telephony Developers Conference, held every August in Chicago.
He has extensive experience in the Internet industry and VoIP. Before creating FreeSWITCH, he contributed heavily to the Asterisk open source project, producing many features that are still in use today. At Barracuda Networks, Anthony oversees the production and development of the CudaTEL PBX appliance that uses FreeSWITCH as its core telephony engine.

Michael S Collins

Michael S Collins is a telephony and open source software enthusiast. He is a PBX veteran, having worked as a PBX technician for five years and as the head of IT for a call center for more than nine years. He is an active member of the FreeSWITCH community and has co-authored FreeSWITCH Cookbook, Packt Publishing. He resides in Central California with his wife and two children and currently works for Barracuda Networks, Inc.

Darren Schreiber

Darren Schreiber is the CEO and Co-founder of 2600 Hz. He began working heavily in open source voice with the FreeSWITCH project, where he engaged with Brian, Mike, and Anthony. His projects have since evolved into two enterprise VoIP platforms that allow a multitude of development of voice, SMS, and video applications to be delivered to customers.

He has 15 years of voice and IT experience including developing multiple enterprise SaaS infrastructures for hosting and remotely managing IT, voice, and e-commerce services. He is a guest lecturer at major universities on VoIP technology and leads paid international VoIP trainings. As a serious telephony enthusiast since a young age, he has worked extensively with VoIP technologies. He graduated from Rensselaer Polytechnic Institute with a degree in Computer Science and Business Management.

He is also a co-author of FreeSWITCH Cookbook, Packt Publishing.

Raymond Chandler

Raymond Chandler(@intralanman) has been working with, and contributing to, open source projects for over a decade. Raymond's VoIP experience started with a small CLEC/ITSP using SER for call routing, and Asterisk for voicemail and advanced services. After encountering limits in Asterisk and looking for features not easily found in SER, he moved to using OpenSER and CallWeaver (then known as OpenPBX.org). While that combination was better, he still had not found his perfect solution.
In 2006, he was introduced to FreeSWITCH. Since then, he's been using FreeSWITCH and regularly contributing to the community. He is the author of mod_lcr and several utility PHP/Perl scripts. He now works with Anthony Minessale as a CudaTel Software Engineer at Barracuda Networks (@CudaTel and @Barracuda). In the spring of 2011, he was among the founding members of the Open Source Telephony Advancement Group (@OSTAG), whose mission is to advance open source telephony to new heights by funding open source projects through funds received by generous contributions and grants from those who share the OSTAG vision.

Alerts & Offers

Series & Level

We understand your time is important. Uniquely amongst the major publishers, we seek to develop and publish the broadest range of learning and information products on each technology. Every Packt product delivers a specific learning pathway, broadly defined by the Series type. This structured approach enables you to select the pathway which best suits your knowledge level, learning style and task objectives.

Learning

As a new user, these step-by-step tutorial guides will give you all the practical skills necessary to become competent and efficient.

Beginner's Guide

Friendly, informal tutorials that provide a practical introduction using examples, activities, and challenges.

Essentials

Fast paced, concentrated introductions showing the quickest way to put the tool to work in the real world.

Cookbook

A collection of practical self-contained recipes that all users of the technology will find useful for building more powerful and reliable systems.

Blueprints

Guides you through the most common types of project you'll encounter, giving you end-to-end guidance on how to build your specific solution quickly and reliably.

Mastering

Take your skills to the next level with advanced tutorials that will give you confidence to master the tool's most powerful features.

Starting

Accessible to readers adopting the topic, these titles get you into the tool or technology so that you can become an effective user.

Progressing

Building on core skills you already have, these titles share solutions and expertise so you become a highly productive power user.