[Mac-telephony-list] Asterisk vs. OpenPBX

Benjamin Kowarsch via List mac-telephony-list at mactelephony.net
Thu Dec 21 05:32:43 JST 2006


On Dec 21, 2006, at 4:29 AM, Colin Anderson via List wrote:

>> There are simply too many people who share the same views on what is
>> wrong with the Asterisk code base for you to come along and dismiss
>> this as a mere "scratch an itch" or ego thing.
>
> Whoa, touched a nerve there. All I meant to convey was that OpenPBX  
> is a
> fork (it is) and it came about largely because of Digium's  
> recitience to
> change (it did). I didn't mean to say openpbx is crap (it's not) or  
> openpbx
> developers are buttheads (they aren't) and actually the personality  
> comment
> I directed at Digium and specifically Mark, who seems to have a 400lb
> gorilla approach to new ideas (a good example: his hatred of XML  
> has hobbled
> the retarded Manager interface until finally XML support was added  
> in 1.2 -
> now Asterisk can communicate with heterogenus platforms and it is  
> possible
> to expose the Manager API with SOAP or XMLRPC or XML$FOO without a  
> shim -
> but apparently it was tough to convince Mark that this was a good  
> way to go,
> even though it was blatantly obvious that this was a good feature)
>
> Sorry didn't mean to offend.

Fair enough. No offense taken ;-)

To be honest, the reason I jumped on this is the public record in the  
list archive. I felt it was important to prevent any possible doubt  
that this defection of former asterisk developers was about window  
dressing and peanuts.

Many people instinctively assume that this is about features, but it  
isn't.

Asterisk has very serious issues. Most of it is implemented in such a  
naive and sloppy way that it is frightening.

By naive I mean that when you study the choice of algorithms used,  
you will all too often find text book example algorithms and methods  
that are described in the text book only to introduce a concept, they  
are mostly educational-only. Nobody in their right mind would  
actually use them for real in scenarios where Asterisk uses them.

Most prominent example of this is the use of singly-linked lists as a  
universal storage mechanism for everything Asterisk needs to keep  
track of. That is just insane and there is no excuse for this  
insanity. You wouldn't pass any exam at any university or college if  
you presented this as a solution.

Anthony Minessale who used to be one of the top contributors to  
Asterisk tried to change this particular bit simply because it is so  
wide ranging, having a negative impact on everything else. He wrote a  
custom hashtable storage library specifically for Asterisk to replace  
the linked-list nonsense. It was rejected like so many other things  
that would have made a huge difference. He did have a disclaimer on  
file, so it wasn't a licensing problem.

This is one example, there are many other such issues. This is not  
about some pet feature somebody liked and somebody else didn't. These  
are major issues. If you ignore these issues, experienced developers  
will want to address them. If you ignore those developers, then many  
will leave your project and either join another project or fork or  
start a new one.

Anthony eventually left the Asterisk project and started Freeswitch.  
One year on, Freeswitch handles 3000+ concurrent phone calls  
(signaling and media) on a vanilla Intel server while Asterisk starts  
getting into trouble at about 200+ concurrent calls. How did  
Anthony's crew do it? They simply avoided all that which they had  
criticised Asterisk for. The results they are getting shows that  
their criticisms were spot on.

The OpenPBX.org community shares these criticisms. All of them. Lock,  
stock and barrel. The difference is the approach taken how to get  
from here to there. Freeswitch is being developed from scratch.  
OpenPBX.org is about gradual change which should provide a smoother  
migration path, at least that's the idea.

The lessons to be learned from both projects are that Asterisk is  
broken. Unfortunately, Digium doesn't acknowledge that. And that is  
why there are defectionsand for as long as Digium continues on this  
path there will continue to be defections.

rgds
benjk


More information about the mac-telephony-list mailing list