Asterisk and FreeSWITCH
August 1st, 2008 | Published in Software | 10 Comments
This week I’m using some link bait which discusses a few of the differences between Asterisk and FreeSWITCH. David Greenfield wrote a short blog post discussing one particular case study where FreeSWITCH was used over Asterisk. I wouldn’t say I’m all that crazy-go-nuts over the post but the topic is worth additional discussion since FreeSWITCH and Asterisk are both fantastic pieces of OS telephony software each of which are strong in their own right. This is in no way a comprehensive comparison between the two, but it’s a start.
I think an even better comparison between Asterisk and Freeswitch was written by Anders Brownworth which looks at the differences between the two from a slightly more technical overview. As head of R&D for Bandwidth.com, I’m glad to hear Anders is playing with Open Source software like Asterisk and FreeSWITCH. My last post about Junction Networks discussed the use of OS software in a carrier network, it would be good news for OS-VoIP to learn that a big player like Bandwidth.com also uses OS software somewhere within their infrastructure, and where (they probably do already but won’t admit it like most carriers). Perhaps Mr. Brownworth can shed some light on the topic for another OS-VoIP article???
Most people will agree that Asterisk in its current state has more feature capabilities than FreeSWITCH in its current state. What largely differentiates FreeSWITCH features and Asterisk features is how they operate as you begin to scale a system and the way in which those features and dial plans are managed.
I’m admittedly more biased towards Asterisk because it’s been around longer and well, because my company is a Digium partner, but I’m also not one to ignore new software even if it feels like sleeping on the other side of the bed. That’s the problem with these large stagnant corporate IT infrastructures, it’s that the people in charge of them have largely relied on their proprietary vendors for information about new technology, and have become too comfortable with relying on these folks for the right information. It takes a true IT leader to step out of their comfort zone and see whether there’s a better way of doing things, something other than that which has been spoon fed to them by vendors. A very simple way to prevent this type of comfortable stagnation is to simply read a few select magazines, and/or blogs on a regular basis; just to keep you up to speed with everything. Throw a wrench into the machine; rustle some vendor feathers; go ahead and see what’s new, source some technology solutions from competitors of existing vendors… there’s little to lose- either you find something better or your vendor freaks out enough to offer better pricing, it’s a win win!
Back to FreeSWITCH and Asterisk. So why would one consider using FreeSWITCH and why Asterisk? There’s no easy answer to this question because it truly depends on what you’re trying to do, and since both pieces of software offer near limitless possibilities, I’m left with only the time and patience to discuss just a few. Depending on what you’re trying to achieve, and what you need done, FreeSWITCH and Asterisk in my experience are typically used in a complementary fashion. Since FreeSWITCH was largely designed to satisfy the carrier space, perhaps its biggest advantage over Asterisk is in its distinctly different architecture. The general consensus amongst developers is that FreeSWITCH is capable of handling larger call loads on less hardware yet Asterisk has far more feature capabilities and is therefore perhaps the most suitable of the two in small to mid sized IP PBX deployments.
For anyone who has worked with Open Source VoIP software, they will know that in order to build the most stable VoIP system, you’ll probably end up using a collection of Open Source software (maybe even proprietary software as well). Our rule for production systems is only ever use the software that does the job the best, and if that means proprietary then so be it (most of the time there’s still a perfectly suitable OS alternative). This is the beauty of using software which is highly interoperable. One example in the design of an IP PBX would be using OpenSER for handling routing and load balancing, FreeSWITCH could be used as the IVR media gateway and conferencing, while Asterisk is left to handle the majority of the PBX features. Technically Asterisk could take care of all this but with a little more complexity, especially when handling thousands of simultaneous calls. I would argue that in the ~1000 extension space (still a fairly large system for Open Source VoIP standards) Asterisk may be all you need to build a complete IP PBX.
Asterisk has loads of features and although most work near flawlessly, there’s also a couple that don’t. One simple example is the call barge feature. I work with Polycom phones and wouldn’t have it any other way but the call barge feature for some reason or another does not work properly between Polycom and Asterisk. If anyone at Asterisk/Polycom is reading this, GIT-ER FIXED! So FreeSWITCH can actually be used in such an instance to provide this standard “key system” functionality.
For very specific applications like conferencing and media serving, FreeSWITCH is the clear winner.
As the above quote from Anders Brownsworth states, FreeSWITCH is also excellent for conferencing. In fact Junction Networks, see post, also uses FreeSWITCH for their conferencing service. One of the reasons why FreeSWITCH is so good at conferencing is that call conferencing is a very resource intensive activity. Each call added into a conference requires an exponential amount of computing resources. Although Asterisk handles conferencing quite well, FreeSWITCH can support more calls on less hardware.
I haven’t done much testing on the topic, but from what I hear people saying, typically a single Asterisk server has the capacity to handle ~250-300 simultaneous calls whereas FreeSWITCH users claim that with the same server ~1000 simultaneous calls can be handled. Remember that the purpose behind FreeSWITCH is…well… switching and call control, therefore most of the processes running FreeSWITCH aren’t all that resource intensive hence more calls/less hardware.
At the end of the day, it helps to know where you’re trying to go. If you plan to implement some element of Open Source telephony into your corporate communications infrastructure, you need to know exactly how the system must scale because scaling is one of the most important differentiators for which Open Source VoIP software to use and how you use it. If for example a large corporation decided to replace their entire Avaya infrastructure with Open Source VoIP software, the typical approach is start with a few small locations and eventually migrate everything into one large centrally managed yet geographically dispersed system. The difficult part about this approach is a single office might have 100 users, where Asterisk would be the software of choice, but a larger centrally managed system will likely be built for a much larger user population using a combination of the software I’ve already mentioned. You can’t expect that the lessons learned building a small Asterisk system will map well to a larger clustered system built with various OS VoIP software.
Highly skilled Open Source VoIP engineers are few and far between, my advice to anyone interested in OS VoIP is to either use a highly skilled OS engineering firm, or run your Linux engineers through weeks (if not months) of training. You might say, well what about a consultant? Consultants can be an excellent resource for projects like these, but my experience is that only 1 in 10 really know what they’re doing. There’s a lot of amateurs out there who might have plenty of Trixbox deployments under their belt but the second you say custom development or troubleshoot, they’re stuck with a finger up the bum, wide-eyed, and not a single clue as to what to do. I say all this because every week at SpecialAI some poor business gives me a call because their OS VoIP project got stuck where their consultants IQ ran out. Perhaps I’ll write an article about how to choose the right OS VoIP consultant/freelancer but the responsible move for most organizations with a stretched IT department is to spend the extra money and simply hire the right company with the right support infrastructure to build, deploy, and maintain mission critical OS VoIP systems.




August 1st, 2008at 7:55 pm(#)
Bandwidth.com uses Asterisk and Anders may share more details with you if he has time”
http://www.digium.com/en/mediacenter/viewpress.php?id=Digium-and-Bandwidth.com-Partner
re: Freeswitch conferencing: at last look by a close friend looking at it, he learned:
Freeswitch lacks a number of features for a bridge;
- Simple stuff like a moderator pin. They have participant pins, but cannot lock a conference until the moderator enters.
- They also didn’t support stuff like DTMF/pin entering during prompt play, etc.
It is release 1 and it takes time to get the features all included and stable.
August 4th, 2008at 9:56 pm(#)
Excellent blog.
August 10th, 2008at 12:31 pm(#)
In response to Ben’s comments about FreeSWITCH above - one of its great strengths is the ability to use its capabilities under the control of an external program. We use it for conferencing in such a way, and support barge-in during prompt play, moderators PINs, bridge lock/unlock, multiple moderators, etc.
These features may not be provided by the default conferencing module (I’ve not checked) but, with something external to drive it, you really can do absolutely anything you might reasonably want.
And, in my opinion, that’s a better way: give me the basic building blocks and I’ll build what I want from them, rather than give me a monolithic thing which may or may not do what I want. That said, I’m a developer; an end-user without programming ability might well have a different view.
–Dave
August 10th, 2008at 3:38 pm(#)
You are wrong. Asterisk sucks in many ways, it has flaws, I’ve tried to deploy it and found a million of bugs, which are already reported in mantis.
Not to mention that the SIP implementation in Asterisk sucks (chan_sip). whereas Sofia-SIP in FreeSWITCH is a lot better, and your comment about FreeSWITCH lacking in features is FUD.
Asterisk sucks, long live FS!
August 10th, 2008at 5:16 pm(#)
Some things I would like to have in FS:
1- an easy way to dial out from conferences, from the phone-side.
2- the ability to set per-bridge/leg timeout, along with global timeout.
3- complete IAX/H.323 stack that supports registration, trunking and everything.
4- “sip/iax2 show peer ” to see user settings from the cli.
August 11th, 2008at 3:09 pm(#)
Being the Author of both FreeSWITCH and a long list of Asterisk 1.2 features I can offer up my opinion on the matter for what it’s worth.
I was asked so many times why I bothered with FreeSWITCH that I wrote the following article to explain it:
http://www.freeswitch.org/node/117
Being an Asterisk developer myself who still hosts a bunch of my old asterisk apps, ( http://www.freeswitch.org/node/50 )
my only concern with all this is the perception of some sort of Open Source “turf war” about what software is “better” etc. When I decide what open source software I use I judge it purely on if it’s the *right tool for the job* ™. I decided Asterisk was not the right tool only after 3 years of using it an learning it inside and out hence why I started FreeSWITCH. Many may find Asterisk more than adequate or maybe they use Asterisk, FreeSWITCH and OpenSER all together in an enterprise system. Why should we care? We are all on the same team..The Open Source VoIP team.
September 20th, 2008at 4:15 am(#)
H323 Ip Phone…
Very nice, I like your post….
September 22nd, 2008at 1:32 pm(#)
favorited this one, brother
September 28th, 2008at 6:32 am(#)
favorited this one, dude
October 31st, 2008at 4:58 pm(#)
[...] have nearly the same breadth of capabilities and support found in Asterisk. Take a gander at a comparison I wrote about the two. FreeSWITCH is what sits behind Bandwidth.com’s new PhoneBooth product, [...]