]> git.ipfire.org Git - thirdparty/asterisk.git/commit
Merged revisions 163449 via svnmerge from
authorRussell Bryant <russell@russellbryant.com>
Fri, 12 Dec 2008 14:05:01 +0000 (14:05 +0000)
committerRussell Bryant <russell@russellbryant.com>
Fri, 12 Dec 2008 14:05:01 +0000 (14:05 +0000)
commitd94b6eeeaf9bdb3733f7d28fa9527a37fe183555
tree6182ec2c6f1073758bdb45feb902e4096815f81b
parent40a2446502493932cbb24c31a3365e688178a24d
Merged revisions 163449 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r163449 | russell | 2008-12-12 07:55:30 -0600 (Fri, 12 Dec 2008) | 34 lines

Merged revisions 163448 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r163448 | russell | 2008-12-12 07:44:08 -0600 (Fri, 12 Dec 2008) | 26 lines

Resolve issues that could cause DTMF to be processed out of order.

These changes come from team/russell/issue_12658

1) Change autoservice to put digits on the head of the channel's frame readq
   instead of the tail.  If there were frames on the readq that autoservice
   had not yet read, the previous code would have resulted in out of order
   processing.  This required a new API call to queue a frame to the head
   of the queue instead of the tail.

2) Change up the processing of DTMF in ast_read().  Some of the problems
   were the result of having two sources of pending DTMF frames.  There
   was the dtmfq and the more generic readq.  Both were used for pending
   DTMF in various scenarios.  Simplifying things to only use the frame
   readq avoids some of the problems.

3) Fix a bug where a DTMF END frame could get passed through when it
   shouldn't have.  If code set END_DTMF_ONLY in the middle of digit emulation,
   and a digit arrived before emulation was complete, digits would get
   processed out of order.

(closes issue #12658)
Reported by: dimas
Tested by: russell, file
Review: http://reviewboard.digium.com/r/85/

........

................

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@163450 65c4cc65-6c06-0410-ace0-fbb531ad65f3
include/asterisk/channel.h
main/autoservice.c
main/channel.c