Merged revisions 301504 via svnmerge from
authorJeff Peeler <jpeeler@digium.com>
Wed, 12 Jan 2011 18:12:31 +0000 (18:12 +0000)
committerJeff Peeler <jpeeler@digium.com>
Wed, 12 Jan 2011 18:12:31 +0000 (18:12 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r301504 | jpeeler | 2011-01-12 12:12:08 -0600 (Wed, 12 Jan 2011) | 26 lines

  Merged revisions 301503 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2

  ................
    r301503 | jpeeler | 2011-01-12 12:11:49 -0600 (Wed, 12 Jan 2011) | 19 lines

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

    ........
      r301502 | jpeeler | 2011-01-12 12:10:42 -0600 (Wed, 12 Jan 2011) | 12 lines

      Fix CPU spike when pressing DTMF after agent login.

      The problem here is that DTMF was being continuously deferred and requeued
      since ast_safe_sleep is called in a loop. There are serveral other places in the
      code that sleeps and then loops in a similar fashion. Because of this fact I
      opted to not defer DTMF any more, which will not affect the original fix:

      https://reviewboard.asterisk.org/r/674

      (closes issue #18130)
      Reported by: rgj
    ........
  ................
................

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@301505 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/channel.c

index 723d60e..87a192d 100644 (file)
@@ -1732,13 +1732,13 @@ int ast_is_deferrable_frame(const struct ast_frame *frame)
         * be queued up or not.
         */
        switch (frame->frametype) {
-       case AST_FRAME_DTMF_END:
        case AST_FRAME_CONTROL:
        case AST_FRAME_TEXT:
        case AST_FRAME_IMAGE:
        case AST_FRAME_HTML:
                return 1;
 
+       case AST_FRAME_DTMF_END:
        case AST_FRAME_DTMF_BEGIN:
        case AST_FRAME_VOICE:
        case AST_FRAME_VIDEO: