From ac1b520de673f89ca9d1f6f8a3faa8fe66e440ca Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Wed, 3 Dec 2008 17:07:09 +0000 Subject: [PATCH] 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 --- apps/app_queue.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/app_queue.c b/apps/app_queue.c index e670df21f5..39371400cf 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