Friday, February 18, 2011

Why asterisk sucks

  1. Asterisk has the worst SIP implementation ever (enough for some developers to stop their contribution, look for chan_skinny , the guys stop helping Asterisk because of poor SIP implementation)
  2. Asterisk uses linked-lists to manage its open channels, when used in a threaded application they become very difficult to manage. This leads to horrible situations where one thread may be destroying or masquerading a channel while another is accessing it which will result in a Segmentation Fault which is a fatal error in the program and causes it to instantly halt which, of course means in most cases all your calls will be lost.
  3. Asterisk has no protection of its API. The majority of the functions and data structures are public and can easily be misused or bypassed. The core is anarchy with assumptions about channels having a file descriptor, which is not always necessary in reality but is mandatory for any asterisk channel.
  4. Asterisk cannot properly handle SIP REFERs
  5. DEADLOCKS!!! Deadlock in the queue app. Deadlock in the manager, the list goes on... 
Here are some real life scenarios of why Asterisk sucks:
 ____________________________________

I have a meetme conference setup. When I login with the admin PIN and mute a conference member, asterisk crashes. What kind of crap phone software crashes for no apparent reason like this?
____________________________________
My System: asterisk 1.8.11.0 on debian squeeze
I login to my mailbox from voicemailmain.
Once I am logged in, I get my number of messages announced.
I change the directory of old messages 2 times in a row: 2 1 2 1.
Asterisk exits completely.