Saturday, June 8, 2013

Book Review: FreeSWITCH 1.2

FreeSWITCH 1.2 Second Edition
Build robust, high-performance telephony systems 
using FreeSWITCH

I raised my hand when the reviewers for the new FreeSWITCH book  were wanted and hence this is my very first effort in writing a book review on FreeSWITCH which I really like and love to work with.

Anthony Minessale The Father of FreeSWITCH , Michael S Collins from Barracuda Networks, Darren Schreiber CEO & Co-founder 2600Hz, and Raymond Chandler also from Barracuda Networks are the authors of this book.

What is FreeSWITCH:
Quoting from the book,
FreeSWITCH 1.2
"FreeSWITCH is a scalable softswitch. In practical terms, this means that it can do anything a traditional PBX can do and much more. It can (and does) act as the core switching software for commercial carriers. It can scale up to handle thousands of simultaneous calls. It can also scale down to act as a simple softphone for your laptop or personal computer. It can also work in a cluster of servers. FreeSWITCH is the telephony engine that powers the CudaTel Communication Server from Barracuda Networks. "

What FreeSWITCH is NOT:
Again quoting the authors here,
"FreeSWITCH is not a proxy server. If you need proxy server functionality, then consider OpenSIPS, Kamailio, Repro, or other similar software. FreeSWITCH is a back-to-back user agent or B2BUA. In this regard, it is similar to Asterisk and other IP PBX software."

Compared to the previous book, FreeSWITCH 1.0.6, which was released three years ago, this one contains updates which happened all these years. FreeSWITCH is getting more feature rich, scalable, and reliable as the opensource community grows and hence this book is essentially an updated revision of the previous book. There are new chapters covering more details like mod_xml_curl is now a separate chapter explaining its usage for creating dynamic configurations. Similarly the mod_httapi is detailed in chapter 11 this module is developed last year.

I really appreciate the addition of chapter 12,13 on Handling NAT and VoIP Security respectively. I believe these two chapters are more important for beginners on FreeSWITCH as they face NAT issues right when they start using FreeSWITCH, and once they do get through this stage the insecure nature of their deployment becomes their top most priority. A very good detailed explanation on how to secure the Server at Network layer, and Application layer with separate methods to secure the Signalling and Media.

As expected and naturally the first chapter deals with the introduction of the application's architecture and how different module types are connected to the central core and there are further loadable modules which enable their respective functionality into the system.
The image on the right is self explanatory on how different modules are independent of each other and this modular approach enables FreeSWITCH to be a scalable system where the core handles the switching part only. In next chapter Installation, and starting up of FS is detailed on different operating systems including Windows.

If you're a beginner and want to understand the working of FS then you need to attend to Chapter 3 very carefully. I personally refreshed some very basic but important concepts related to XML dialplan and use of channel variables from this chapter. This chapter teaches us exactly how to interact with FreeSWITCH using it Command Line Interface plus Sort of Hello-world configuration handling in the form of:
•  Configuring different phones to work with FreeSWITCH
•  Calling various default extensions in the system

I really like the way the chapters are written progressing step by step, I enjoyed adding up a new SIP user in the User Directory. Defining user groups, routing to newly created dialplan in XML, testing the voicemail really made me smile. Looking at the gateway configurations, integrating my test FreeSWITCH with my CISCO gateway and making calls IN/OUT was fun. Chapter 4 was indeed addition to my knowledge and skills related to FS.
[Tip: execute 'sofia profile external restart reloadxml' to add the gateway.]

I was impressed to know that FreeSWITCH has more than 140 Dialplan applications.

LUA is one of my favorite language and honestly I got introduced to LUA from FreeSWITCH. Since then I enjoy writing complex FreeSWITCH application using LUA. We do however need some XML in our deployments but most of the time I find myself working in LUA. I was happy to see full chapters on both LUA and XML advance concepts. Click on the book thumbnail to Preview the chapter on Dialplan scripting with LUA.

I really appreciate the effort put in by the authors and reviewers, a very big help for anyone who wish to get closer to the FreeSWITCH VoIP Servers. A very well written book focusing every step required to start using the FS without hurdles.

Looking forward to read books like these from OpenSource VoIP community. I hope to implement the given examples myself in upcoming weekends and post my experiences.

1 comment: