While we’re looking at Asterisk alternatives, we’re going to take a tour of
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
- Urgent message tags
- Multiple SIP registrations per user account (I like this one—very
handy for testing!)
- 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
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.