From d8908a3f52d4d0c300479fcf88577768ebe149f8 Mon Sep 17 00:00:00 2001 From: "Kevin P. Fleming" <kpfleming@digium.com> Date: Sun, 29 Jan 2006 05:15:24 +0000 Subject: [PATCH] add channel-driver callbacks for variable length DTMF teach ast_write() to call those new callbacks git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@8851 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channel.c | 11 +++++++++-- include/asterisk/channel.h | 6 ++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/channel.c b/channel.c index 3db38b6cc1..c961f575c7 100644 --- a/channel.c +++ b/channel.c @@ -2295,9 +2295,16 @@ int ast_write(struct ast_channel *chan, struct ast_frame *fr) ast_log(LOG_WARNING, "Don't know how to handle control frames yet\n"); break; case AST_FRAME_DTMF_BEGIN: + if (chan->tech->send_digit_begin) + res = chan->tech->send_digit_begin(chan, fr->subclass); + else + res = 0; + break; case AST_FRAME_DTMF_END: - /* nothing to do with these yet */ - res = 0; + if (chan->tech->send_digit_end) + res = chan->tech->send_digit_end(chan); + else + res = 0; break; case AST_FRAME_DTMF: ast_clear_flag(chan, AST_FLAG_BLOCKING); diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h index 59fbee5fff..4b120d8cf2 100644 --- a/include/asterisk/channel.h +++ b/include/asterisk/channel.h @@ -189,6 +189,12 @@ struct ast_channel_tech { /*! Send a literal DTMF digit */ int (* const send_digit)(struct ast_channel *chan, char digit); + /*! Start sending a literal DTMF digit */ + int (* const send_digit_begin)(struct ast_channel *chan, char digit); + + /*! Stop sending the last literal DTMF digit */ + int (* const send_digit_end)(struct ast_channel *chan); + /*! Call a given phone number (address, etc), but don't take longer than timeout seconds to do so. */ int (* const call)(struct ast_channel *chan, char *addr, int timeout); -- GitLab