Book Image

FreeSWITCH 1.0.6

Book Image

FreeSWITCH 1.0.6

Overview of this book

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 skills.This book comes to your rescue, helping you to set up a telephony system fast and easily using FreeSWITCH. It will take you from being a novice to creating a fully-functional telephony system of your own. It is rich with practical examples and will give you all of the information and skills needed to implement your own PBX system.The book begins by introducing the architecture and working of FreeSWITCH before detailing how to plan a telephone system and moving 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.
Table of Contents (18 chapters)
FreeSWITCH 1.0.6
Credits
About the Authors
About the Reviewer
Preface
The History Of FreeSWITCH
Index

The FreeSWITCH design: modular, scalable, and stable


The design goal of FreeSWITCH is to provide a modular, scalable system around a stable switching core, and provide a robust interface for developers to add to and control the system. Various elements in FreeSWITCH are independent of each other and do not have much knowledge about how the other parts are working, other than what is provided in what are called ''exposed functions''. The functionality of FreeSWITCH can also be extended with loadable modules, which tie a particular external technology into the core.

FreeSWITCH has many different module types that revolve around the central core, much like satellites orbiting a planet. The list includes:

Module Type:

Purpose:

Endpoint

Telephone protocols like SIP/H.323 and POTS lines.

Dialplan

Parse the call details and decide where to route the call.

Codec

Translate between audio formats.

Application

Perform a task such as play audio or set data.

Application Programming Interface (API)

Export a function that takes text input and returns text output, which could be used across modules or from an external connection.

File

Provide an interface to extract and play sound from various audio file formats.

Text-To-Speech (TTS)

Interface with text-to-speech engines.

Automated Speech Recognition ASR

Interface with speech recognition systems.

Directory

Connect directory information services, such as LDAP, to a common core lookup API.

Chat

Bridge and exchange various chat protocols.

Say

String together audio files in various languages to provide feedback to say things like phone numbers, time of day, spell words, and so on.

By combining the functionality of the various module interfaces, FreeSWITCH can be configured to connect IP phones, POTS lines, and IP-based telephone service. It can also translate audio formats and interfaces with a custom menu system, which you can create by yourself. You can even control a running FreeSWITCH server from another machine. Let's start by taking a closer look at one of the more widely used modules, namely, the Endpoint module.