[Asterisk-Dev] IAX2 RFC and retries.

tim panton tpanton at attglobal.net
Fri May 20 08:28:05 MST 2005


On 20 May 2005, at 15:00, Steve Kann wrote:

> tim panton wrote:
>
>
>> I am implementing the IAX2 protocol in pure Java.
>> I am trying to use the RFC as a protocol description
>> - not the code!
>>
>> The good news is that I have a usable phone with acceptable
>> performance if I am on a quiet LAN.
>>
>> However....
>> I am now trying to implement the retry mechanism for full frames.
>> I can't get it to work right against asterisk 1.0.3
>> The RFC says:
>>
>> An ACK must have both a source
>> call number and destination call number. It must also increment
>> the sequence number counters, and return the same timestamp it
>> received. This allows the originating peer to determine to which
>> message the ACK is responding.
>>
>> But this seems not to be the case. I am seeing acks with timestamps
>> that are the time they were sent, not that of the original message.
>>
>> Before I rip my code apart again, could someone tell me if the
>> RFC represents what Asterisk 1.0.3 actually does ?
>>
>
>
> The timestamp of an ACK really is meaningless; It's the seqno that  
> tells the receiver what has been acknowledged.

Thanks, but I'm still a bit in the dark...
Which seqno? What is the comparison that has to be true for a match?
if I have 2 packets  'ack' (an acknowledgement) and 'sent' ( a packet  
that was
sent and has not yet been acknowledged)
do I test for

ack.iseq == sent.oseq

or
ack.oseq == sent.iseq

?

>
> I think that asterisk _does_ set the timestamp of an ACK to be  
> equal to the timestamp of the frame it's acknowledging, but it's  
> redundant.

It looks like 1.0.3 doesn't.

Tim.

>
> -SteveK
>



More information about the asterisk-dev mailing list