diff options
author | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-03-25 14:42:35 +0000 |
---|---|---|
committer | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-03-25 14:42:35 +0000 |
commit | 781febb687aaf05d7c2c75755b44ed22c4db5b9d (patch) | |
tree | 266c5f56391bd6428c97ff3b94c67b7b917c702b /main | |
parent | 8b046deb31946080398bd8a4a6e845e93708860f (diff) |
Merged revisions 110629 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r110629 | file | 2008-03-25 11:39:45 -0300 (Tue, 25 Mar 2008) | 12 lines
Merged revisions 110628 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r110628 | file | 2008-03-25 11:37:35 -0300 (Tue, 25 Mar 2008) | 4 lines
Add an option (transmit_silence) which transmits silence during both Record() and DTMF generation. The reason this is an option is that in order to transmit silence we have to setup a translation path. This may not be needed/wanted in all cases.
(closes issue #10058)
Reported by: tracinet
........
................
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@110630 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r-- | main/app.c | 9 | ||||
-rw-r--r-- | main/asterisk.c | 4 |
2 files changed, 11 insertions, 2 deletions
diff --git a/main/app.c b/main/app.c index 5c3f8a444..725bd1446 100644 --- a/main/app.c +++ b/main/app.c @@ -244,6 +244,7 @@ int ast_dtmf_stream(struct ast_channel *chan, struct ast_channel *peer, const ch { const char *ptr; int res = 0; + struct ast_silence_generator *silgen = NULL; if (!between) between = 100; @@ -258,6 +259,10 @@ int ast_dtmf_stream(struct ast_channel *chan, struct ast_channel *peer, const ch if (res < 0) return res; + if (ast_opt_transmit_silence) { + silgen = ast_channel_start_silence_generator(chan); + } + for (ptr = digits; *ptr; ptr++) { if (*ptr == 'w') { /* 'w' -- wait half a second */ @@ -284,6 +289,10 @@ int ast_dtmf_stream(struct ast_channel *chan, struct ast_channel *peer, const ch res = -1; } + if (silgen) { + ast_channel_stop_silence_generator(chan, silgen); + } + return res; } diff --git a/main/asterisk.c b/main/asterisk.c index 04b5ccb38..0f194f266 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -2632,8 +2632,8 @@ static void ast_readconfig(void) /* Build transcode paths via SLINEAR, instead of directly */ } else if (!strcasecmp(v->name, "transcode_via_sln")) { ast_set2_flag(&ast_options, ast_true(v->value), AST_OPT_FLAG_TRANSCODE_VIA_SLIN); - /* Transmit SLINEAR silence while a channel is being recorded */ - } else if (!strcasecmp(v->name, "transmit_silence_during_record")) { + /* Transmit SLINEAR silence while a channel is being recorded or DTMF is being generated on a channel */ + } else if (!strcasecmp(v->name, "transmit_silence_during_record") || !strcasecmp(v->name, "transmit_silence")) { ast_set2_flag(&ast_options, ast_true(v->value), AST_OPT_FLAG_TRANSMIT_SILENCE); /* Enable internal timing */ } else if (!strcasecmp(v->name, "internal_timing")) { |