mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-30 02:26:23 +00:00
app_dial: Allow macro/gosub pre-bridge execution to occur on priorities
The parsing for the destination of the macro/gosub uses the '^' character to separate out context, extension, and priority. However, the logic for the macro/gosub execution was written such that it would only do the actual macro/gosub jump if a '^' character existed. This doesn't apply when the macro/gosub jump occurs in a priority/priority label. This patch changes the logic so that the parsing still occurs, but the jump will occur even for priorities/priority labels. (issue ASTERISK-23164) Review: https://reviewboard.asterisk.org/r/3154 ........ Merged revisions 407041 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 407074 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407082 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -2877,7 +2877,8 @@ static int dial_exec_full(struct ast_channel *chan, const char *data, struct ast
|
|||||||
/* perform a transfer to a new extension */
|
/* perform a transfer to a new extension */
|
||||||
if (strchr(macro_transfer_dest, '^')) { /* context^exten^priority*/
|
if (strchr(macro_transfer_dest, '^')) { /* context^exten^priority*/
|
||||||
ast_replace_subargument_delimiter(macro_transfer_dest);
|
ast_replace_subargument_delimiter(macro_transfer_dest);
|
||||||
if (!ast_parseable_goto(chan, macro_transfer_dest))
|
}
|
||||||
|
if (!ast_parseable_goto(chan, macro_transfer_dest)) {
|
||||||
ast_set_flag64(peerflags, OPT_GO_ON);
|
ast_set_flag64(peerflags, OPT_GO_ON);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2958,7 +2959,8 @@ static int dial_exec_full(struct ast_channel *chan, const char *data, struct ast
|
|||||||
/* perform a transfer to a new extension */
|
/* perform a transfer to a new extension */
|
||||||
if (strchr(gosub_transfer_dest, '^')) { /* context^exten^priority*/
|
if (strchr(gosub_transfer_dest, '^')) { /* context^exten^priority*/
|
||||||
ast_replace_subargument_delimiter(gosub_transfer_dest);
|
ast_replace_subargument_delimiter(gosub_transfer_dest);
|
||||||
if (!ast_parseable_goto(chan, gosub_transfer_dest))
|
}
|
||||||
|
if (!ast_parseable_goto(chan, gosub_transfer_dest)) {
|
||||||
ast_set_flag64(peerflags, OPT_GO_ON);
|
ast_set_flag64(peerflags, OPT_GO_ON);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user