From 73b93bbc17955d4cd339f4226054b5d7fd88bad9 Mon Sep 17 00:00:00 2001 From: Sean Bright Date: Wed, 1 Feb 2012 15:51:29 +0000 Subject: [PATCH] Resolve an overlap in the ast_audiohook_flags values. AST_AUDIOHOOK_TRIGGER_WRITE and AST_AUDIOHOOK_WANTS_DTMF were overlapping which may have caused unintended side effects. This patch moves AST_AUDIOHOOK_TRIGGER_WRITE, and updates AST_AUDIOHOOK_TRIGGER_MODE to reflect the original intention. This will affect existing modules that use these flags, so be sure to recompile as necessary. (closes issue ASTERISK-19246) Reported by: feyfre ........ Merged revisions 353598 from http://svn.asterisk.org/svn/asterisk/branches/1.8 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@353599 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- include/asterisk/audiohook.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/include/asterisk/audiohook.h b/include/asterisk/audiohook.h index fd1da91dd3..823fe43590 100644 --- a/include/asterisk/audiohook.h +++ b/include/asterisk/audiohook.h @@ -51,10 +51,15 @@ enum ast_audiohook_direction { AST_AUDIOHOOK_DIRECTION_BOTH, /*!< Both reading audio in and writing audio out */ }; +/* + * The flags here have been shifted around due to an unintended overlap between + * AST_AUDIOHOOK_TRIGGER_WRITE and AST_AUDIOHOOK_WANTS_DTMF. In future Asterisk + * releases (Asterisk 11+), these have been reorganized to make more sense. + */ enum ast_audiohook_flags { - AST_AUDIOHOOK_TRIGGER_MODE = (3 << 0), /*!< When audiohook should be triggered to do something */ + AST_AUDIOHOOK_TRIGGER_MODE = ((1 << 6) | (1 << 0)), /*!< When audiohook should be triggered to do something */ AST_AUDIOHOOK_TRIGGER_READ = (1 << 0), /*!< Audiohook wants to be triggered when reading audio in */ - AST_AUDIOHOOK_TRIGGER_WRITE = (2 << 0), /*!< Audiohook wants to be triggered when writing audio out */ + AST_AUDIOHOOK_TRIGGER_WRITE = (1 << 6), /*!< Audiohook wants to be triggered when writing audio out */ AST_AUDIOHOOK_WANTS_DTMF = (1 << 1), /*!< Audiohook also wants to receive DTMF frames */ AST_AUDIOHOOK_TRIGGER_SYNC = (1 << 2), /*!< Audiohook wants to be triggered when both sides have combined audio available */ /*! Audiohooks with this flag set will not allow for a large amount of samples to build up on its @@ -63,6 +68,8 @@ enum ast_audiohook_flags { AST_AUDIOHOOK_SMALL_QUEUE = (1 << 3), AST_AUDIOHOOK_MUTE_READ = (1 << 4), /*!< audiohook should be mute frames read */ AST_AUDIOHOOK_MUTE_WRITE = (1 << 5), /*!< audiohook should be mute frames written */ + + /* IMPORTANT: When adding new flags, start with (1 << 7) */ }; enum ast_audiohook_init_flags {