[Asterisk-Dev] IAX2 RFC and retries.

Derek Smithies derek at indranet.co.nz
Fri May 20 15:37:26 MST 2005


> 
> 
> You can't ack the wrong packet. If you get a packet out-of-order, you 
> must not ack it (I think you send VNAK in this case).
> 
> I.e. you get seqs 0, 1, 2, 3, 5.
> So, as you get 0,1,2,3 you ack them. Then, when you get 5, you send a 
> VNAK, and you otherwise drop the packet. Since you never acked 4, the 
> other side would eventually re-send it, and then re-send 5 (since you 
> haven't acked that either).
> 

Nope.
According to the spec from splurge.peoples-wireless.com/iax/iax.txt

 a VNAK is a "Video/Voice retransmit request"

>From the code,
#define AST_IAX_COMMAND_VNAK     18      /* If we receive voice before valid first voice frame, send this */

Conclusion:: VNAK is not what you send if you receive out of order frames.  
You simply ignore the out of order frames. The iax2 resend mechanism will
eventually get the right one to you.


-- 
Derek Smithies Ph.D.                         
IndraNet Technologies Ltd.                
Email: derek at indranet.co.nz         
ph +64 3 365 6485                          
Web: http://www.indranet-technologies.com/  




More information about the asterisk-dev mailing list