PacktLib: FreeSWITCH 1.2

FreeSWITCH 1.2

Credits

About the Authors

About the Reviewers

www.PacktPub.com

Preface

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

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

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

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

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

Using XML IVRs and Phrase Macros

IVR engine overview

IVR XML configuration file

IVR engine overview

Using phrases with IVRs

Advanced routing

Summary

Dialplan Scripting with Lua

Getting started with Lua

Basic Lua syntax

Building voice applications

Advanced IVR concepts

Scripting tips

Summary

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

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

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

Web-based Call Control with mod_httapi

HTTAPI syntax

mod_httapi configuration file

The demo IVR – in HTTAPI

Summary

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

VoIP Security

Network level protection

Protecting SIP signalling

Protecting audio

Protecting passwords

Summary

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

The FreeSWITCH Online Community

The FreeSWITCH Online Community

The FreeSWITCH Online Community

The FreeSWITCH Online Community

The FreeSWITCH Online Community

Migrating from Asterisk to FreeSWITCH

Migrating from Asterisk to FreeSWITCH

Migrating from Asterisk to FreeSWITCH

Migrating from Asterisk to FreeSWITCH

Migrating from Asterisk to FreeSWITCH

Migrating from Asterisk to FreeSWITCH

The History of FreeSWITCH

The History of FreeSWITCH

The History of FreeSWITCH

The History of FreeSWITCH

The History of FreeSWITCH

Index