I've been noticing a pattern in the free-software world. Product A becomes a flagship implementation of something. Sendmail for smtp, Apache for http and so on. These are early implementors, lots of people get behind the project, a hundred different paths are taken. In the mean-time there are lots of experimenting, tweaking, and reworking to the entire suite/stack for that something, which get rolled into the original implementation. This results in a giant, lumbering beast of an application. It contains this collective history of the entire movement. All the abortive bits, blind alleys, weird idiosyncracies must be kept, because someone, somewhere depends on it.
All the old timers think this is the bee's knees. Everyone else however gets sick of the giant, and you get exim or nginx, in a hundred varieties that perform better for certain common (or uncommon) subsets of use. These better performing "lightweight" versions shed the cruft and are widely adopted by those who no longer care about say, http servers, and instead just want a simple strut.
Anyway my point is: is it at all surprising that FreeSWITCH has come in to do fill the Asterisk role as a voip strut?
I've been an Asterisk user, Admin and Coder since 2003 Asterisk's internals has some issues to be truly concerned about. The MOST concerning part is the attitude of the community-- it's not longer a fun loving open source community but more of a "How can I make more money from this?" At least that's my opinion and experience while trying to hammer out some changes to chan_sip this last month.
Anyone diving inside the chan_sip is a brave, brave man. My general feeling from working with asterisk code is that if you ever, in any situation see code like this:
The code basically translates to - "as long as noone freed our important structure's owner-owner (but someone works on it) unlock our owner for a split-second so we don't deadlock and pray we don't crash" (if you want to know why we don't crash, ask oej, because he's the only person who can actually explain who holds which lock at this point and why the owner won't be freed - which of course leads to other people making modifications that break this rule).
I'm quite interested in getting into the business of switching local small businesses from proprietary PBX systems to open VoIP hardware. Anyone got some tips for getting into the field? I'm a competent programmer and system admin but my but I have little knowledge of telephony.
BTW, my impression of Asterisk vs Freeswitch matches the article. Asterisk is pretty ugly in terms of implementation and configuration. However, at this point Asterisk has much more (still small) traction in the marketplace.
If you want real integration possibilities, look at Yate too. It's got a bit steeper learning curve, but seeing the whole PBX as lots of completely independent modules and the core as a message synchronisation engine only is very refreshing. After having fun with all three solutions, Yate is my favourite (even if it has a much smaller development group and community currently - these guys are serious about what they do).
You can also integrate with everything, because the external module interface is a simple text protocol (no - a sane one - not sip kind of simple). Use php, perl, bash, python, java, etc. as you want - helper libraries are provided.
All the old timers think this is the bee's knees. Everyone else however gets sick of the giant, and you get exim or nginx, in a hundred varieties that perform better for certain common (or uncommon) subsets of use. These better performing "lightweight" versions shed the cruft and are widely adopted by those who no longer care about say, http servers, and instead just want a simple strut.
Anyway my point is: is it at all surprising that FreeSWITCH has come in to do fill the Asterisk role as a voip strut?