[asterisk-dev] [IAX2] Question on unrecoverable race condition and VNAK's Oseq

Mihai Balea mihai at hates.ms
Wed Mar 4 06:20:24 CST 2009


On Mar 3, 2009, at 4:01 PM, David Vossel wrote:

> I've noticed VNAK's seem to always be sent with the same iseq and  
> oseq number.  When a VNAK is received, only packets higher than the  
> VNAK's iseq must be resent. I'd have to look into the code, but I'm  
> not even sure it matters what the oseq number is in a VNAK.  As far  
> as the sequence of events, I don't know why this loop happens.  How  
> often does this occur. Can you get a wireshark log of this?

Actually, the way things work right now, upon receipt of a VNAK, an  
endpoint should retransmit all packets higher OR EQUAL than VNAK's  
iseq should be retransmitted. This is a subtle difference that had me  
pulling my hair before I figured it out.

BTW, section 6.9.3 of the freshly minted IAX2 RFC gets it wrong as  
well.  Or you might look at it the other way around, the RFC is right  
and all current implementations, including chan_iax2 and iaxclient get  
it wrong :)

Mihai




More information about the asterisk-dev mailing list