aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-09-19 13:47:59 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-09-19 13:47:59 +0000
commit783d1f3f4596867ee6f19d61d37e0122f21129c7 (patch)
treea628f36a6966bcdd9344b066b14a67dede0f10d2 /apps
parent86e28745d001a087c5817cb00ebc71d28909a193 (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.c6
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");