summaryrefslogtreecommitdiff
path: root/include/asterisk/bridge_channel.h
diff options
context:
space:
mode:
authorKevin Harwell <kharwell@digium.com>2015-03-26 17:13:26 +0000
committerKevin Harwell <kharwell@digium.com>2015-03-26 17:13:26 +0000
commitab674f67b515e78ae73237cf500236135f7ebd21 (patch)
tree959bb05171ec49a1c0f824db7226ebff0c38edfd /include/asterisk/bridge_channel.h
parente953d1522345bdc6116348ae52185a4e60599790 (diff)
app_confbridge: file playback blocks dtmf
Attempting to execute DTMF in a confbridge while file playback (prompt, announcement, etc) is occurring is not allowed. You have to wait until the sound file has completed before entering DTMF. This patch fixes it so that app_confbridge now monitors for dtmf key presses during menu driven file playback. If a key is pressed playback stops and it executes the matched menu option. ASTERISK-24864 #close Reported by: Steve Pitts Review: https://reviewboard.asterisk.org/r/4510/ ........ Merged revisions 433445 from http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged revisions 433446 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@433447 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include/asterisk/bridge_channel.h')
-rw-r--r--include/asterisk/bridge_channel.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/asterisk/bridge_channel.h b/include/asterisk/bridge_channel.h
index c53848511..66f9be6e5 100644
--- a/include/asterisk/bridge_channel.h
+++ b/include/asterisk/bridge_channel.h
@@ -656,11 +656,26 @@ int ast_bridge_channel_write_park(struct ast_bridge_channel *bridge_channel, con
void ast_bridge_channel_kick(struct ast_bridge_channel *bridge_channel, int cause);
/*!
+ * \brief Add a DTMF digit to the collected digits.
+ * \since 13.3.0
+ *
+ * \param bridge_channel Channel that received a DTMF digit.
+ * \param digit DTMF digit to add to collected digits
+ *
+ * \note Neither the bridge nor the bridge_channel locks should be held
+ * when entering this function.
+ *
+ * \note This is can only be called from within DTMF bridge hooks.
+ */
+void ast_bridge_channel_feature_digit_add(struct ast_bridge_channel *bridge_channel, int digit);
+
+/*!
* \brief Add a DTMF digit to the collected digits to match against DTMF features.
* \since 12.8.0
*
* \param bridge_channel Channel that received a DTMF digit.
* \param digit DTMF digit to add to collected digits or 0 for timeout event.
+ * \param clear_digits clear the digits array prior to calling hooks
*
* \note Neither the bridge nor the bridge_channel locks should be held
* when entering this function.
@@ -668,6 +683,10 @@ void ast_bridge_channel_kick(struct ast_bridge_channel *bridge_channel, int caus
* \note This is intended to be called by bridge hooks and the
* bridge channel thread.
*
+ * \note This is intended to be called by non-DTMF bridge hooks and the bridge
+ * channel thread. Calling from a DTMF bridge hook can potentially cause
+ * unbounded recursion.
+ *
* \return Nothing
*/
void ast_bridge_channel_feature_digit(struct ast_bridge_channel *bridge_channel, int digit);