Our PBX/IVR web-based generator Telfa has been moved from Asterisk to Freeswitch. Why?
Asterisk just seems to come from a different world than what I am used to. Inflexible and problematic. Very long configuration files with ancient syntax. Now I’m far from pretending I’ve used Asterisk enough to understand it pros and cons well, but I have a decent software development experience and I can tell when something “smells.” I didn’t want to build our system (that I want to be flexible and scale well) on some old technology that is only living from its past.
And (most importantly) there are many people experienced with both Asterisk and Freeswitch favoring the latter: Anders Brownworth, Jonathan Palley (creator of Telegraph, a Rails plugin that lets you talk to Freeswitch), or of course the creator of Freeswitch (and former Asterisk developer!) Anthony Minessale himself.
9 Comments
Well,
Having used both applications, I can honestly say that they differ completely. While Asterisk is a highly comprehensive, highly versatile, robust and flexible Application Creation environment – FreeSwitch isn’t yet.
I admit that from a developer’s stand point, FreeSwitch seems more organized and more “developer” friendly, with its XML based configuration and modern approach – however, having developed applications for both – I can easily say that Asterisk is easier to maintain and develop with.
Your statement: Now I’m far from pretending I’ve used Asterisk enough to understand it pros and cons well, but I have a decent software development experience and I can tell when something “smells.” – shows that you simply scratched Asterisk in the surface, and that’s it. While channel configurations are fairly old fashioned (ok, I’ll grant you that), the dialplan configuration (where the entire application logic sits) is available in a multitude of tools. Ranging from the good old fashioned extension language (INI style), through AEL (an Asterisk type scripting language) and recently the introduction of LUA – that makes things easier.
You’re seeking frameworks? Check out AdHearsion, or if you’re a PHP guy like myself – PHPAGI will usually give you all the needs to require.
I’ve built Asterisk based systems that scaled to over 3000 concurrent channels, so saying that Asterisk doesn’t scale well – is a load of c***. Plan your system right from day one, and scalability is no longer an issue.
If you’d like, I’ll be happy to teach you some proper Asterisk application development techniques to make your life easier.
Nir, thanks for your feedback.
I’m always looking for the right tool for the job and decided to go with Freeswitch this time.
I do plan to use Asterisk to connect hardware to, for example.
Regarding flexibility – by inflexible I meant it’s really hard to maintain the configuration in Asterisk, maybe not a good word chosen.
Regarding scalability – I took other’s words for it; quite natural in my situation.
I did use Adhearsion and am using the socket interface of Freeswitch now.
[.. The below was posted on http://www.simionovich.com .. http://www.simionovich.com/?p=132#comments ..]
Hi Jan,
Well, now that I’m relaxed (I read your post last night after a length call with a fairly annoying person – I guess your post got the better of me) – I can comment again.
A. In my view, when one conveys his/her opinion in a way that suggests that there is only a single solution – that man/woman in my book is a purist. Purism comes in many forms, one of them is the willing to stick to something, based upon partial knowledge.
B. OK, I’ll grant you that managing the configuration files in Asterisk can sometimes be a mess. However, if you’d like, I can send you my SVN post-commit hooks that make life much easier for managing Asterisk configuration files (Yes, I use SVN to manage my Asterisk configuration files).
C. Scalability is a direct result of a simple equation. Planning + Design + Experience = Scalability. Asterisk based platforms can easily be scaled to support thousands of concurrent calls, it’s just a matter of planning it right. Let’s take for example one of my automatic dialers, which had been tested to hold up to 3,000 concurrent outbound calls! Well, don’t expect to get that on a single server, of course, I’m not sure even FreeSwitch can handle that number on a single server, but careful planning on the Asterisk side, enabled me to reach a throughput of 35 call initiations per second (top speed) and running with 6 servers and VMWARE I was able to generate up to 3000 concurrent outbound calls.
One more thing that I’ll grant you, the title is a bit harsh – I’ll rephrase it.
Nir
Fair enough, all good points.
I’m far from suggesting there is only a single solution; I’m saying it here if it’s not clear from the post.
Regarding partial knowledge – well I don’t know more now, but need to make a decision.
I’ll definitely be in touch if I need some help with Asterisk.
Thanks for the inspiring discussion.
I use asterisk still to for some legacy stuff that I made years ago so if it ain’t broke, don’t fix it.
Everyone should use whatever software they want there is no point in zealotry. But I sense you are sorta defending asterisk way to much to claim to be neutral on the matter.
I am not going even bother beating the dead horse about the internal scalability issues in asterisk, I know them first hand as a long time developer for the project and trust me my findings are not based on partial knowledge. I am confident some day all the issues in asterisk will be addressed. Maybe asterisk should have a bake sale.
I don’t care who uses FreeSWITCH and who doesn’t but c’mon? keep the FUD to a minimum please.
“I re-developed the applications on FreeSwitch from scratch, however, FreeSwitch’s somewhat annoying XML configuration structures made it a hell for me to develop something that I would ask my customers to put their money on.”
Was that necessary? Hardly objective, you are welcome to an opinion but hiding your orange pom poms and then needlessly taking your own issues with xml out on FreeSWITCH is not nice. I’ve helped you more than once on both asterisk and FS issues.
“I’m not sure even FreeSwitch can handle that number on a single server.”
Just to clarify, since, after all you would not want to be called a purist by your own book by judging something based on partial knowledge…….
UP 0 years, 0 days, 0 hours, 3 minutes, 16 seconds, 151 milliseconds, 906 microseconds
4023 session(s) since startup
3001 session(s) 0/3000
Anthony makes a good point: use what *WORKS* for you. I might still be using Asterisk today if I hadn’t stumbled upon FreeSWITCH. For *my* needs, FS fits the bill in most cases. I still use Asterisk for tasks for which it is suited. Example: back-to-back Ast-to-FS PRI spans for testing various things with OpenZAP (the TDM API that FS uses).
Again, use what works. That’s the beauty of OSS. Download it, try it, use it. And then donate to Anthony’s paypal because he’s so cool. :)
-MC
FreeSWITCH kicks Asterisk ass in every possible way.
The only thing I don’t like about FS is it’s VAD module.
It’s not very efficient, I hope they will replace it with something that works better soon.
I wish coppice will make some great VAD algorithm for FS, he is very talented =D.
One Trackback/Pingback
[...] Chose Freeswitch over Asterisk [...]