No subject

Thu Jul 12 09:23:04 CDT 2007

        * include/asterisk/dlinkedlists.h (added), channels/chan_iax2.c:
          Merge changes from team/russell/iax2_find_callno and
          iax2_find_callno_1.4 These changes address a critical performance
          issue introduced in the latest release. The fix for the latest
          security issue included a change that made Asterisk randomly
          choose call numbers to make them more difficult to guess by
          attackers. However, due to some inefficient (this is by far, an
          understatement) code, when Asterisk chose high call numbers,
          chan_iax2 became unusable after just a small number of calls. On
          a small embedded platform, it would not be able to handle a
          single call. On my Intel Core 2 Duo @ 2.33 GHz, I couldn't run
          more than about 16 IAX2 channels. Ouch. These changes address
          some performance issues of the find_callno() function that have
          bothered me for a very long time. On every incoming media frame,
          it iterated through every possible call number trying to find a
          matching active call. This involved a mutex lock and unlock for
          each call number checked. So, if the random call number chosen
          was 20000, then every media frame would cause 20000 locks and
          unlocks. Previously, this problem was not as obvious since
          Asterisk always chose the lowest call number it could. A second
          container for IAX2 pvt structs has been added. It is an astobj2
          hash table. When we know the remote side's call number, the pvt
          goes into the hash table with a hash value of the remote side's
          call number. Then, lookups for incoming media frames are a very
          fast hash lookup instead of an absolutely insane array traversal.
          In a quick test, I was able to get more than 3600% more IAX2
          channels on my machine with these changes.

On Thu, Apr 24, 2008 at 6:51 AM, Mike Clark <mike at> wrote:
> I upgraded one of our servers to last evening, but ended up
>  having to drop back because of  IAX calls failing at a near 50 % rate.
>  Here is the message that we would receive on the console (multiple
>  times),  and then it would hangup the call.
>  Avoiding IAX destroy deadlock
>  Anyone else having similar problems?
>  Thanks,
>  Mike Clark
>  _______________________________________________
>  -- Bandwidth and Colocation Provided by --
>  asterisk-users mailing list
>  To UNSUBSCRIBE or update options visit:

More information about the asterisk-users mailing list