[Asterisk-Dev] IAX2 RFC and retries.

SteveK stevek at stevek.com
Fri May 20 16:32:14 MST 2005


On May 20, 2005, at 7:16 PM, Derek Smithies wrote:

> Steve,
>  this confusion can be summarized as::
>
> On one hand, we have the comment in the source code:
> #define AST_IAX_COMMAND_VNAK     18      /* If we receive voice
>                         before valid first voice frame, send this */
>
> On the other hand, we have the searches of the source code you report:
>
>
>> line 6787, if it gets any kind of full frame, before the preceeding
>> full frame.
>> line 7719: if it gets a mini frame before the previous full voice
>> frame (therefore, indicating that a full frame was lost or not
>> received out of order)
>> line 7741: ditto, I think
>> line 6652: same thing for trunking.
>>
>> Therefore, I conclude, that VNAK is designed to request
>> retransmission of _any_ kind of lost frame, presumably to speed up
>> retransmissions so they may be sent earlier than the retransmit  
>> timer.
>>
>
> I do agree with you, VNAK does seem to be the 'catch all' for out of
> sequence issues.
>
> Now you see why I hate the argument that one can just RTFC.
> The code is (on first reading) ambiguous.

Before I say this, let me say that I agree that the code could be  
made easier to understand.   That said, RTFC still works, but this  
example just shows how active development often leads to comments  
which are not kept in sync with the code.

It took less than a minute to search for "vnak" in the code, and see  
what it did.


> ===============================================
> Conclusion: writing the spec has helped flush out an inconsistancy  
> in the
> code. Can you change the comment on VNAK above ? Please ???

Is there some reason you don't want to submit the patch?   
Connectivity problem to bugs.digium.com?


-SteveK




More information about the asterisk-dev mailing list