summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorMark Michelson <mmichelson@digium.com>2008-12-03 17:07:09 +0000
committerMark Michelson <mmichelson@digium.com>2008-12-03 17:07:09 +0000
commitac1b520de673f89ca9d1f6f8a3faa8fe66e440ca (patch)
treecc6573bcf5d308d11c46f9511c8e6eb9b95e12ae /apps
parentefa00e7038dcd1c3a1ecbf5e99837f3ff965abb9 (diff)
When investigating issue #13548, I found that gosub
handling in app_queue was just completely wrong, mostly because the channel operations being performed were being done on the incorrect channel. With this set of changes, a gosub will correctly run on the answering queue member's channel. There are still crash issues which occur if there are dialplan syntax errors, so I cannot yet close the referenced issue. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@160555 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps')
-rw-r--r--apps/app_queue.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/apps/app_queue.c b/apps/app_queue.c
index e670df21f..39371400c 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -3971,9 +3971,9 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
char *gosub_args, *gosub_argstart;
/* Set where we came from */
- ast_copy_string(qe->chan->context, "app_dial_gosub_virtual_context", sizeof(qe->chan->context));
- ast_copy_string(qe->chan->exten, "s", sizeof(qe->chan->exten));
- qe->chan->priority = 0;
+ ast_copy_string(peer->context, "app_queue_gosub_virtual_context", sizeof(peer->context));
+ ast_copy_string(peer->exten, "s", sizeof(peer->exten));
+ peer->priority = 0;
gosub_argstart = strchr(gosubexec, ',');
if (gosub_argstart) {
@@ -3990,8 +3990,8 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
}
}
if (gosub_args) {
- res = pbx_exec(qe->chan, application, gosub_args);
- ast_pbx_run(qe->chan);
+ res = pbx_exec(peer, application, gosub_args);
+ ast_pbx_run(peer);
free(gosub_args);
ast_debug(1, "Gosub exited with status %d\n", res);
} else