Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
FreeSWITCH 1.0.6

You're reading from  FreeSWITCH 1.0.6

Product type Book
Published in Jul 2010
Publisher Packt
ISBN-13 9781847199966
Pages 320 pages
Edition 1st Edition
Languages

Table of Contents (18) Chapters

FreeSWITCH 1.0.6
Credits
About the Authors
About the Reviewer
Preface
1. Architecture of FreeSWITCH 2. Building and Installation 3. Test Driving the Default Configuration 4. SIP and the User Directory 5. Understanding the XML Dialplan 6. Using the Built-in XML IVR Engine 7. Building IVR Applications with Lua 8. Advanced Dialplan Concepts 9. Controlling FreeSWITCH Externally 10. Advanced Features and Further Reading The FreeSWITCH Online Community The History Of FreeSWITCH
Index

Chapter 10. Advanced Features and Further Reading

There are two general categories of applications that can utilize FreeSWITCH—ones that are built in C as modules that live inside FreeSWITCH, and ones which control or manage FreeSWITCH externally. Both topics will be covered briefly in this chapter.

FreeSWITCH contains a variety of application modules that provide functionality and features that direct calls and otherwise make switching decisions while calls are in progress. These modules range from Caller ID lookup modules to real-time billing modules to multi-party conferencing modules. Modules can be used with each other to enrich the general Dialplan application set, to supervise calls, or to provide other functionality.

In addition, an entire community of open source FreeSWITCH applications has grown to provide various software programs that can fully (or partially) manage FreeSWITCH.

In this chapter, we'll presume you already have some basic understanding of how FreeSWITCH operates. We...

Multi-user conferencing


FreeSWITCH includes a powerful built-in multi-user conferencing module mod_conference, which allows the mixing of audio channels between callers in a multi-user audio conferencing system. This system also allows for full control of all audio mixing and caller interaction features, such as detection of touch-tones, management of send and receive audio paths per channel, volume controls, gain controls, and more. You can create as many conferences as you like, as long as there still are free system resources (that is, memory, CPU cycles, and so forth) left.

Configuration

mod_conference is configured in the conference section of the XML files. This is generally located in the autoload_configs/conference.conf.xml file. The configuration defines how conferences behave, through a series of profiles. These profiles can be applied to conferences when they are created via the Dialplan.

The conference configuration file is divided into several sections, each with its own set of...

Nibblebill


mod_nibblebill is a credit/debit module for FreeSWITCH. The module was initially written by Darren Schreiber to fill the gaps of a professional grade trunking system that lacked the ability to detect fraud real-time. Its purpose is to allow real-time debiting of credit or cash from a database while calls are in progress. Darren had the following goals:

  • Debit credit/cash from accounts real-time

  • Allow for billing at different rates during a single call

  • Allow for warning callers when their balance is low (via audio, in-channel)

  • Allow for disconnecting or re-routing calls when balance is depleted

  • Allow billing functions listed above to operate with multiple concurrent calls

Use cases

mod_nibblebill can be used in a variety of use cases, some of which are listed below.

Billing (pre-pay)

You can allow people to put cash into an account and "nibble" away at it. In addition, when callers have almost depleted their account, a tone or other message can play (or another action can occur...

XML/Curl


mod_xml_curl can be used to dynamically control the behavior of FreeSWITCH. mod_xml_curl hooks into FreeSWITCH at times when configuration files or sections of configuration files are requested. Instead of retrieving the data for those requested configuration options from the in-memory XML structure, mod_xml_curl will look to see if the configuration category matches a known mod_xml_curl category and will then attempt to retrieve the configuration data, real-time, from an external source. By using mod_xml_curl you can provide configurations to multiple instances of FreeSWITCH without having to duplicate the configuration, and the configurations can be served up by any software program that can generate XML. The software does not even need to be on the same server that FreeSWITCH is on. This solution is very helpful when building out robust, multi-server platforms.

mod_xml_curl can be used to get any information that would normally be in freeswitch.xml. XML configuration section...

Alternative endpoints


While most users of FreeSWITCH will use SIP (and thus mod_sofia), there are other ways for FreeSWITCH to communicate with the world. Here are brief descriptions of three methods that you may wish to investigate further.

Skype and GSM endpoints

Not everyone has the budget to buy hardware or services to connect to the Skype and GSM (Global System for Mobile Communications) networks, especially when first learning a new technology. FreeSWITCH has an alternative to offer to those willing to do a little work: a pair of endpoints (that is, channel drivers) that allow inbound and outbound voice calls and messaging (chatting, SMSs) in the cheapest possible way.

Both mod_skypopen and mod_gsmopen support full integration with all the FreeSWITCH features, have CLI commands for diagnostic and control, full events interaction, and can be used in the same way as the Sofia SIP workhorse endpoint module.

Both the mod_skypopen and mod_gsmopen modules have the same general structure: they...

Configuration tools and related projects


The FreeSWITCH community has grown tremendously over the past few years with many different people using the software for a variety of purposes. These purposes range from running small home PBXs to large telephone companies. Along the way a variety of people have created different bits of code that allow you to save time or allow FreeSWITCH to operate in unique ways. Contributions range from complete open-source GUIs and frameworks to small single-purposes libraries. We briefly discuss some of these items below.

Web GUIs

There are a number of Web Graphical User Interfaces (GUIs) available for FreeSWITCH today. Some are graphical tools that generate XML configuration files while others take the approach of abstracting the switch configuration completely and providing simplified but flexible user interfaces to end-users. We cover some of the more popular ones below.

Note that choosing the right PBX is really a personal decision based on your preferences...

Summary


FreeSWITCH provides a powerful toolset for creating rich applications. The modules bundled with FreeSWITCH today are an early example of what you can do with the powerful internal APIs that are available. In addition, a thriving community of FreeSWITCH enthusiasts is taking the software development available to the next level. Expect many hosted, cloud and premise-based solutions to thrive in the coming years for various purposes in the VoIP and communications space, based on the FreeSWITCH core.

lock icon The rest of the chapter is locked
You have been reading a chapter from
FreeSWITCH 1.0.6
Published in: Jul 2010 Publisher: Packt ISBN-13: 9781847199966
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}