From: Shloime Rosenblum Date: Mon, 20 Sep 2021 16:10:59 +0000 (-0400) Subject: apps/app_playback.c: Add 'mix' option to app_playback X-Git-Tag: 19.1.0-rc1~79 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=154c5927995bbb6cae05941e56d9c0d2df491866;p=thirdparty%2Fasterisk.git apps/app_playback.c: Add 'mix' option to app_playback I am adding a mix option that will play by filename and say.conf unlike say option that will only play with say.conf. It will look on the format of the name, if it is like say it play with say.conf if not it will play the file name. ASTERISK-29662 Change-Id: I815816916a308f0fa8f165140dc15772dcbd547a --- diff --git a/apps/app_playback.c b/apps/app_playback.c index 0c9281aa76..ab6e60e3ee 100644 --- a/apps/app_playback.c +++ b/apps/app_playback.c @@ -62,6 +62,12 @@ be answered before the sound is played. Not all channel types support playing messages while still on hook. + + @@ -446,6 +452,7 @@ static int playback_exec(struct ast_channel *chan, const char *data) char *tmp; int option_skip=0; int option_say=0; + int option_mix=0; int option_noanswer = 0; AST_DECLARE_APP_ARGS(args, @@ -466,6 +473,8 @@ static int playback_exec(struct ast_channel *chan, const char *data) option_skip = 1; if (strcasestr(args.options, "say")) option_say = 1; + if (strcasestr(args.options, "mix")) + option_mix = 1; if (strcasestr(args.options, "noanswer")) option_noanswer = 1; } @@ -486,6 +495,13 @@ static int playback_exec(struct ast_channel *chan, const char *data) while (!res && (front = strsep(&back, "&"))) { if (option_say) res = say_full(chan, front, "", ast_channel_language(chan), NULL, -1, -1); + else if (option_mix){ + /* Check if it is in say format but not remote audio file */ + if (strcasestr(front, ":") && !strcasestr(front, "://")) + res = say_full(chan, front, "", ast_channel_language(chan), NULL, -1, -1); + else + res = ast_streamfile(chan, front, ast_channel_language(chan)); + } else res = ast_streamfile(chan, front, ast_channel_language(chan)); if (!res) { diff --git a/doc/CHANGES-staging/add_mix_option_to_playback.txt b/doc/CHANGES-staging/add_mix_option_to_playback.txt new file mode 100644 index 0000000000..cfc876ce77 --- /dev/null +++ b/doc/CHANGES-staging/add_mix_option_to_playback.txt @@ -0,0 +1,7 @@ +Subject: app_playback +Subject: apps + +A new option 'mix' is added to the Playback application that +will play by filename and say.conf. It will look on the format of the +name, if it is like say format it will play with say.conf if not it +will play the file name. \ No newline at end of file