mirror of
https://github.com/asterisk/asterisk.git
synced 2026-07-28 00:10:25 -07:00
Revert change to res_rtp_asterisk committed in r373236 (1.8)
The change committed in r373236 attempted to account for endpoints that increased their RTP timestamp in DTMF end of event re-transmissions. This change attempted to make Asterisk continue to work with endpoints that failed to follow the RFC while maintaining the fix that allowed for out of order DTMF to be handled. Unfortunately, there is no free lunch, and this patch broke any system that sent DTMF immediately after an RTP session was established or when an SSRC is updated. As such, that patch is being reverted for the previous behavior. Endpoints that erroneously increase the RTP timestamp in DTMF end of event packets will not work properly with Asterisk. (issue ASTERISK-20424) ........ Merged revisions 373504 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 373505 from http://svn.asterisk.org/svn/asterisk/branches/10 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@373508 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -2859,9 +2859,7 @@ static void process_dtmf_rfc2833(struct ast_rtp_instance *instance, unsigned cha
|
||||
new_duration = (new_duration & ~0xFFFF) | samples;
|
||||
|
||||
if (event_end & 0x80) {
|
||||
/* End event. Absorb re-transmits, and account for some endpoints
|
||||
* that erroneously increment the timestamp during re-transmissions */
|
||||
if ((seqno != rtp->last_seqno) && (timestamp > rtp->last_end_timestamp + 320)) {
|
||||
if ((seqno != rtp->last_seqno) && (timestamp > rtp->last_end_timestamp)) {
|
||||
rtp->last_end_timestamp = timestamp;
|
||||
rtp->dtmf_duration = new_duration;
|
||||
rtp->resp = resp;
|
||||
|
||||
Reference in New Issue
Block a user