Allow tonelist as argument to ReadExten.
ReadExten already supported playing a tonezone from indications.conf. It now has the ability to use a tonelist like 440+480/2000|0/4000 (closes issue #15185) Reported by: jcovert Patches: app_readexten.c.patch uploaded by jcovert (license 551) Tested by: qwell Patch modified by me, to maintain backwards compatibility. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@234776 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
parent
dbd68f2f66
commit
e52ee5c8e6
|
@ -55,7 +55,8 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
|
|||
</option>
|
||||
<option name="i">
|
||||
<para>Play <replaceable>filename</replaceable> as an indication tone from your
|
||||
<filename>indications.conf</filename></para>
|
||||
<filename>indications.conf</filename> or a directly specified list of
|
||||
frequencies and durations.</para>
|
||||
</option>
|
||||
<option name="n">
|
||||
<para>Read digits even if the channel is not answered.</para>
|
||||
|
@ -204,10 +205,21 @@ static int readexten_exec(struct ast_channel *chan, const char *data)
|
|||
ast_playtones_stop(chan);
|
||||
ast_stopstream(chan);
|
||||
|
||||
if (ts && ts->data[0])
|
||||
if (ts && ts->data[0]) {
|
||||
res = ast_playtones_start(chan, 0, ts->data, 0);
|
||||
else if (arglist.filename)
|
||||
res = ast_streamfile(chan, arglist.filename, chan->language);
|
||||
} else if (arglist.filename) {
|
||||
if (ast_test_flag(&flags, OPT_INDICATION) && ast_fileexists(arglist.filename, NULL, chan->language) <= 0) {
|
||||
/*
|
||||
* We were asked to play an indication that did not exist in the config.
|
||||
* If no such file exists, play it as a tonelist. With any luck they won't
|
||||
* have a file named "350+440.ulaw"
|
||||
* (but honestly, who would do something so silly?)
|
||||
*/
|
||||
res = ast_playtones_start(chan, 0, arglist.filename, 0);
|
||||
} else {
|
||||
res = ast_streamfile(chan, arglist.filename, chan->language);
|
||||
}
|
||||
}
|
||||
|
||||
for (x = 0; x < maxdigits; x++) {
|
||||
ast_debug(3, "extension so far: '%s', timeout: %d\n", exten, timeout);
|
||||
|
|
Loading…
Reference in New Issue