Viewing Issue Simple Details
[ Jump to Notes ]
|
[ View Advanced ]
[ Issue History ]
[ Print ]
|
ID |
Category |
Severity |
Reproducibility |
Date Submitted |
Last Update |
0000413 |
[Yate - Yet Another Telephony Engine] engine |
minor |
always |
2016-08-04 16:47 |
2016-08-04 16:47 |
|
Reporter |
stacy |
View Status |
public |
|
Assigned To |
|
Priority |
normal |
Resolution |
open |
|
Status |
new |
|
Product Version |
SVN |
|
Summary |
0000413: dejitter handling code eats all but first in the series rfc2833 RTP DTMF event packets |
Description |
Dejitter handling code in libs/yrtp/dejitter.cpp throws away all but the first one RTP packets having the same timestamp. This is the correct behaviour when dealing with voice data. But when it comes to handling rfc2833 DTMF events this behaviour causes DTMF decoding code to loose correct duration for the event and also causes sticking together of several identical digits. It is - if yate sees DTMF sequence 345 - it decodes it as 345 but with reduced timing for each digit. If it sees 199 for example it decodes it as 19. If it sees 777 it decodes it as just 7. |
Additional Information |
RFC2833 says "If an event continues for more than one period, the source generating the events should send a new event packet with the RTP timestamp value corresponding to the beginning of the event and the duration of the event increased correspondingly. (The RTP sequence number is incremented by one for each packet.)" This means that the DTMF RTP events containing the same timestap but different duration should not be eaten by dejitter but queued as it was received considering their sequences are increasing. Please find attached the patch that fixes this issue, however it is a quick and dirty fix. This patch won't solve the cause of DTMF packets dups or receiving them out-of-order.
The complete fix will probably require rewriting the dejitter to look not only on timestamps but on seq numbers too. |
Tags |
No tags attached. |
|
Attached Files |
dejitter_dtmf.patch [^] (3,517 bytes) 2016-08-04 16:47 |
|