mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 11:58:52 +00:00
app.c: Allow ampersands in playback lists to be escaped.
Any function or application that accepts a `&`-separated list of filenames can now include a literal `&` in a filename by wrapping the entire filename in single quotes, e.g.: ``` exten = _X.,n,Playback('https://example.com/sound.cgi?a=b&c=d'&hello-world) ``` Fixes #172 UpgradeNote: Ampersands in URLs passed to the `Playback()`, `Background()`, `SpeechBackground()`, `Read()`, `Authenticate()`, or `Queue()` applications as filename arguments can now be escaped by single quoting the filename. Additionally, this is also possible when using the `CONFBRIDGE` dialplan function, or configuring various features in `confbridge.conf` and `queues.conf`.
This commit is contained in:
@@ -205,7 +205,7 @@ enum ast_getdata_result ast_app_getdata_terminator(struct ast_channel *c, const
|
||||
prompt = "";
|
||||
|
||||
filename = ast_strdupa(prompt);
|
||||
while ((front = strsep(&filename, "&"))) {
|
||||
while ((front = ast_strsep(&filename, '&', AST_STRSEP_STRIP | AST_STRSEP_TRIM))) {
|
||||
if (!ast_strlen_zero(front)) {
|
||||
res = ast_streamfile(c, front, ast_channel_language(c));
|
||||
if (res)
|
||||
|
Reference in New Issue
Block a user