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.
Modularity and ability to integrate with almost anything(socket, events, http etc - that's just a guess) simply fascinated me.
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.
It's a pretty saturated and rapidly commoditising business. I wouldn't bother.
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.
while(pkt->owner->owner && ast_channel_trylock(pkt->owner->owner)) {
sip_pvt_unlock(pkt->owner);
usleep(1);
sip_pvt_lock(pkt->owner);
}
run! Run away and don't look back!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).