[asterisk-dev] [Code Review] Correct the number of available call numbers in IAX2

rmudgett reviewboard at asterisk.org
Mon Jan 28 12:39:39 CST 2013


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/2293/#review7754
-----------------------------------------------------------


Systems compiled with LOW_MEMORY have similar problems with the 2048 callno value.  The way TRUNK_CALL_START is used in a bit test does not work on the 2048 callno value because the tested bit is not set.

The only reason I can find that IAX_MAX_CALLS needs to be a power of 2 is when defining TRUNK_CALL_START and the use of it in a bit test in make_trunk().  Changing make_trunk() to use a compare operator instead of a bit test should remove all requirements that IAX_MAX_CALLS be a power of two.  It should be recommended that IAX_MAX_CALLS be a power of two for ease of distinguishing normal/trunk calls in IAX traces but not required.

TRUNK_CALL_START should also have insulating parentheses around the definition to avoid unexpected operator precedence issues.


- rmudgett


On Jan. 26, 2013, 12:41 p.m., Sean Bright wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/2293/
> -----------------------------------------------------------
> 
> (Updated Jan. 26, 2013, 12:41 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Summary
> -------
> 
> While populating the list of available call numbers in IAX2 when LOW_MEMORY is not defined, we use every number between 2 and 32768 (inclusive).  32768 is a 16 bit number (a 1 followed by 15 0s).  According to the IAX2 RFC, call numbers are 15 bit values, making 32768 invalid.
> 
> This patch reduces the number of allocated call numbers by 1 so that the are all 15 bits.
> 
> I intend to commit this change to Asterisk versions 1.8, 11, and trunk.
> 
> I have another patch to replace the ao2_container usage for call number selection almost ready for RB as well.
> 
> 
> Diffs
> -----
> 
>   /trunk/channels/chan_iax2.c 380158 
> 
> Diff: https://reviewboard.asterisk.org/r/2293/diff
> 
> 
> Testing
> -------
> 
> Ran thousands of test calls (both trunked and non-trunked) between 3 Asterisk servers.
> 
> 
> Thanks,
> 
> Sean
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20130128/a763096f/attachment.htm>


More information about the asterisk-dev mailing list