aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_queue.c
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-12-03 17:09:27 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-12-03 17:09:27 +0000
commit24c72c5608eab8f03079c6e21494ef2590444194 (patch)
treecd543018e71a0b11b22f837e13af14e88cc2df6d /apps/app_queue.c
parentd8d0dacb2380c3b5210e86f57c26e4964650e819 (diff)
Merged revisions 160555 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r160555 | mmichelson | 2008-12-03 11:07:09 -0600 (Wed, 03 Dec 2008) | 11 lines 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: http://svn.digium.com/svn/asterisk/branches/1.6.0@160556 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_queue.c')
-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 04f522c91..80579a11e 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -3760,9 +3760,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) {
@@ -3779,8 +3779,8 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
}
}
if (gosub_args) {
- res = pbx_exec(qe->chan, app, gosub_args);
- ast_pbx_run(qe->chan);
+ res = pbx_exec(peer, app, gosub_args);
+ ast_pbx_run(peer);
free(gosub_args);
if (option_debug)
ast_log(LOG_DEBUG, "Gosub exited with status %d\n", res);