FreeSWITCH, a Second-Generation Open-Source Communications Platform

Here's a relative newcomer: scalable, multi-function server software that can go far beyond merely managing VoIP phone calls.

 By Carla Schroder
Page of   |  Back to Page 1
Print Article

While we're looking at Asterisk alternatives, we're going to take a tour of FreeSWITCH. Aside from the annoying capitalization, which is a contagious disease in the computer world, it's a first-class softswitch and telephony platform.

FreeSWITCH comes in two forms: a tarball containing just FreeSWITCH, and triXswitch, a bundle that includes FreeSWITCH, CentOS Linux, and WikiPBX, which is a sleek Web GUI control panel. triXswitch is the friendliest way to get acquainted with FreeSWITCH.

FreeSWITCH runs on Linux and other Unix-type operating systems—and Windows. The Windows version must be built from source code, and it comes with a nice helper application that makes it almost as easy as a binary installation. Once you get it installed, then what?


FreeSWITCH has a genuine modular architecture. It installs with a basic set of modules for the usual iPBX tasks, and then additional features come from whatever modules you can find or code on your own. There is a core executable and library, which can be used in other applications as a high-speed switching engine.

Something to keep in mind is that the VoIP space is still very young, and there is a sizable number of open-source applications and projects to choose from. The biggest opportunities and most potential for progress are in the programming space. Don't get locked in to some proprietary vendor who wants to own you and control what you can do—she who writes the code rules the world. Many open-source projects, like FreeSWITCH, are designed to welcome third-party modules and extensions. This makes it easy to customize your applications without having to start from scratch, or requiring a big team of super-elite coders. If you have super-elite coders then you can modify any part of it.

So even without having ace coders on call, FreeSWITCH can fill a lot of roles: media gateway, media server, PBX, session border controller, and wherever your ingenuity leads you. If you need a single phrase to describe it, call it "an open source communications platform."

FreeSWITCH already supports a whole lot of features, codecs, and protocols:

  •  SIP, H.323, IAX2
  •  GoogleTalk and Jabber support
  •  Centralized user and domain directory
  •  Stereo call recording
  •  Software-based conferencing
  •  Configuration files and call records in XML
  •  Interactive voice recording and call attendant
  •  Narrow and wideband codecs
  •  Voicemail-to-podcast
  •  Urgent message tags
  •  Multiple SIP registrations per user account (I like this one—very handy for testing!)
  •  Multi-tenancy
  •  NAT support
  •  STUN support
  •  Message-waiting indicator
  •  Presence, SLA (shared line appearance), and BLF (busy line field)
  •  Zaptel and Sangoma hardware support
  •  Shoutcast streams
  •  OpenZAP, a common driver and interface for TDM (analog-to-digital) hardware such as Sangoma and Zaptel
And of course lots more. In addition to a rich feature set, FreeSWITCH is a powerhouse that handles large loads. There are all kinds of success stories, such as replacing a ten-node Asterisk cluster with a single FreeSWITCH server, and moving such large traffic loads the upstream service provider cries Uncle. The FAQ says "With current modern CPUus you should be able to do 6000 channels per chassis."

How it all began

The driving force behind FreeSWITCH is Anthony Minessale, aidid by a sturdy band of programmers, testers, and bug-finders. Mr. Minessale was an Asterisk developer, and by the time version 1.2 was released he (and other Asterisk developers) felt that Asterisk's existing code base was in need of a deep overhaul. Various options were discussed, and eventually the decision was made to continue with the existing code and not make any radical core changes.

So Mr. Minessale had all these ideas just sitting around in his head, and ended up writing a new type of application that is more than just a PBX, but is a flexible modern communications platform.

The Asterisk 1.2 release was a bit of a watershed, because that was also when a number of other Asterisk developers left and forked Asterisk into OpenPBX, which is now called CallWeaver.

There are a number of issues with Asterisk: It's inflexible, CPU-intensive, has some core architectural limitations, and it doesn't scale up without a lot of help. Does this mean you should avoid Asterisk or Asterisk-based products? The definitive answer is "it depends." Asterisk is a popular product with a lot of support and an established company behind it, and it is the core of a lot of polished, fully featured application suites.

It is always smart to keep a little test lab going with alternatives such as CallWeaver and FreeSWITCH so you can stay current and judge their worthiness for yourself. But don't forget to also look at what's behind whatever projects you are evaluating: Is there an active developer and user community? Is it well-maintained and well-documented? Is it large enough so that it won't be derailed by the departure of one key person? The open source world is full of one-man-bands and abandoned, half-baked projects. Which is not a bad thing; the good projects bubble to the top, and the rest sink to the bottom and make a nourishing mulch. Or something poetic like that.

At any rate, I predict that FreeSWITCH is here to stay, so watch this space for some how-tos and interesting FreeSWITCH news.


This article was originally published on Apr 14, 2008
Get the Latest Scoop with Networking Update Newsletter