mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-10 03:48:34 +00:00
Mark channel running the h exten with the soft-hangup flag.
When a bridge is broken, ast_bridge_call() might execute the h exten on
the calling channel. However, that channel may not have been the channel
that broke the bridge by hanging up. The channel executing the h exten
must be in a hung up state so things like AGI run in the correct mode.
* Make sure ast_bridge_call() marks the channel it is executing the h
exten on as hung up. (The AST_SOFTHANGUP_APPUNLOAD flag is used so as to
match the pbx.c main dialplan execution loop when it executes the h
exten.)
(closes issue ASTERISK-18811)
Reported by: David Hajek
Patches:
jira_asterisk_18811_v1.8.patch (license #5621) patch uploaded by rmudgett
Tested by: David Hajek, rmudgett
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@347595 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -4279,6 +4279,12 @@ before_you_go:
|
||||
int found = 0; /* set if we find at least one match */
|
||||
int spawn_error = 0;
|
||||
|
||||
/*
|
||||
* Make sure that the channel is marked as hungup since we are
|
||||
* going to run the "h" exten on it.
|
||||
*/
|
||||
ast_softhangup(chan, AST_SOFTHANGUP_APPUNLOAD);
|
||||
|
||||
autoloopflag = ast_test_flag(chan, AST_FLAG_IN_AUTOLOOP);
|
||||
ast_set_flag(chan, AST_FLAG_IN_AUTOLOOP);
|
||||
if (bridge_cdr && ast_opt_end_cdr_before_h_exten) {
|
||||
|
||||
Reference in New Issue
Block a user