[Asterisk-Dev] unreliable handling of rfc2833 events [Was: Re: Asterisk Dev wanted for quick job]

alex at pilosoft.com alex at pilosoft.com
Fri Jan 30 17:53:09 MST 2004


According to rfc2833, what cisco does is technically compliant, since you 
are supposed to 'mix' in the rtp-received tones according to their 
ts/sequence numbers, thus it is 'valid' to send one tone as a multiple 
overlapping tones.

Thus unfortunately, decoding should be smart enough to keep track of
'current tone in progress', do not trust 'END' as a send-digit trigger,
and rely on *absence* of tones for 3*rtt (rfc-specified) as a trigger for
sending the tone through. Either that or have a 'stack' of 'tones in 
progress'....

Ugh.

-alex

On Fri, 30 Jan 2004, James H. Cloos Jr. wrote:

> I spent some time last night on this, but wasn't fully successful..
> 
> Each keypress on my ata186 generates three 2833 packets with
> marker=1, duration=0 and incrementing sequence numbers, followed by
> one packet for each 160 of duration with marker=0 and duration
> 160, 320, ... and then three packets with end=1, marker=0, duration
> constant and incrementing sequence numbers.
> 
> The packet traces on Phil's box showed a similar pattern except that
> the marker packets were not duplicated and the three end packets all
> had the same sequence number.  The packets also arrived out of order.
> 
> My idea was to ignore all 2833 event packets that duplicate ones
> already seen.  Ie, if the tiemstamp, duration and type are the
> same as the last 2833 seen then ignore it.
> 
> The result did eliminate duplicates, but at the cost of loosing the
> occasional digit.  The loss was somewhat predictable: all entries of
> 5 digit vm box and passwd lost at least one digit during our tests.
> 
> I stored the extra state in two extra fields in the ast_rtp struct
> as passed to ast_rtp_read().
> 
> It looks like an idempotency issue, but at this point I'm not sure
> what the proper solution is.
> 
> Any thoughts?
> 
> -JimC
> 
> _______________________________________________
> Asterisk-Dev mailing list
> Asterisk-Dev at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-dev
> To UNSUBSCRIBE or update options visit:
>    http://lists.digium.com/mailman/listinfo/asterisk-dev
> 




More information about the asterisk-dev mailing list