diff options
author | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-09-19 13:47:59 +0000 |
---|---|---|
committer | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-09-19 13:47:59 +0000 |
commit | 783d1f3f4596867ee6f19d61d37e0122f21129c7 (patch) | |
tree | a628f36a6966bcdd9344b066b14a67dede0f10d2 /apps | |
parent | 86e28745d001a087c5817cb00ebc71d28909a193 (diff) |
Protect the CDR record from modification by pbx_exec so that the application data contains the Queue data.
(closes issue #10761)
Reported by: snar
Patches:
app-queue-mixmonitor.patch uploaded by snar (license 245)
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@83074 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps')
-rw-r--r-- | apps/app_queue.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/apps/app_queue.c b/apps/app_queue.c index a5fe870ea..eb5aa8fd2 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -2724,8 +2724,12 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce if (option_debug) ast_log(LOG_DEBUG, "Arguments being passed to MixMonitor: %s\n", mixmonargs); - + /* We purposely lock the CDR so that pbx_exec does not update the application data */ + if (qe->chan->cdr) + ast_set_flag(qe->chan->cdr, AST_CDR_FLAG_LOCKED); ret = pbx_exec(qe->chan, mixmonapp, mixmonargs); + if (qe->chan->cdr) + ast_clear_flag(qe->chan->cdr, AST_CDR_FLAG_LOCKED); } else ast_log(LOG_WARNING, "Asked to run MixMonitor on this call, but cannot find the MixMonitor app!\n"); |