diff options
author | Joshua Colp <jcolp@digium.com> | 2007-08-06 21:52:30 +0000 |
---|---|---|
committer | Joshua Colp <jcolp@digium.com> | 2007-08-06 21:52:30 +0000 |
commit | 9ef1b0a97495678414991b73af66375c2bf3d84f (patch) | |
tree | b89adfb31308894d6ab44ad8b7232a763dfee84f /main | |
parent | 431c60f8188db3588b6275591633f1f32ce8537b (diff) |
Extend the ast_senddigit and ast_dtmf_stream API calls to allow the duration of the DTMF digit(s) to be specified and make the SendDTMF application have the capability to use it.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@78278 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r-- | main/app.c | 4 | ||||
-rw-r--r-- | main/channel.c | 6 |
2 files changed, 5 insertions, 5 deletions
diff --git a/main/app.c b/main/app.c index 41bbe1c50..d3304b9fd 100644 --- a/main/app.c +++ b/main/app.c @@ -245,7 +245,7 @@ int ast_app_messagecount(const char *context, const char *mailbox, const char *f return 0; } -int ast_dtmf_stream(struct ast_channel *chan, struct ast_channel *peer, const char *digits, int between) +int ast_dtmf_stream(struct ast_channel *chan, struct ast_channel *peer, const char *digits, int between, unsigned int duration) { const char *ptr; int res = 0; @@ -274,7 +274,7 @@ int ast_dtmf_stream(struct ast_channel *chan, struct ast_channel *peer, const ch /* ignore return values if not supported by channel */ ast_indicate(chan, AST_CONTROL_FLASH); } else - ast_senddigit(chan, *ptr); + ast_senddigit(chan, *ptr, duration); /* pause between digits */ if ((res = ast_safe_sleep(chan, between))) break; diff --git a/main/channel.c b/main/channel.c index 4c1dc4b84..5c8de5694 100644 --- a/main/channel.c +++ b/main/channel.c @@ -2657,14 +2657,14 @@ int ast_senddigit_end(struct ast_channel *chan, char digit, unsigned int duratio return 0; } -int ast_senddigit(struct ast_channel *chan, char digit) +int ast_senddigit(struct ast_channel *chan, char digit, unsigned int duration) { if (chan->tech->send_digit_begin) { ast_senddigit_begin(chan, digit); - ast_safe_sleep(chan, AST_DEFAULT_EMULATE_DTMF_DURATION); + ast_safe_sleep(chan, (duration >= AST_DEFAULT_EMULATE_DTMF_DURATION ? duration : AST_DEFAULT_EMULATE_DTMF_DURATION)); } - return ast_senddigit_end(chan, digit, AST_DEFAULT_EMULATE_DTMF_DURATION); + return ast_senddigit_end(chan, digit, (duration >= AST_DEFAULT_EMULATE_DTMF_DURATION ? duration : AST_DEFAULT_EMULATE_DTMF_DURATION)); } int ast_prod(struct ast_channel *chan) |