aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cdr.c10
-rw-r--r--pbx.c2
2 files changed, 7 insertions, 5 deletions
diff --git a/cdr.c b/cdr.c
index 6838d619c..8f9c4da0a 100644
--- a/cdr.c
+++ b/cdr.c
@@ -775,16 +775,18 @@ int ast_cdr_update(struct ast_channel *c)
/* Copy account code et-al */
ast_copy_string(cdr->accountcode, c->accountcode, sizeof(cdr->accountcode));
- /* Destination information */
- ast_copy_string(cdr->dst, (ast_strlen_zero(c->macroexten)) ? c->exten : c->macroexten, sizeof(cdr->dst));
- ast_copy_string(cdr->dcontext, (ast_strlen_zero(c->macrocontext)) ? c->context : c->macrocontext, sizeof(cdr->dcontext));
+ if (!ast_check_hangup(c)) {
+ /* Destination information */ /* XXX privilege macro* ? */
+ ast_copy_string(cdr->dst, (ast_strlen_zero(c->macroexten)) ? c->exten : c->macroexten, sizeof(cdr->dst));
+ ast_copy_string(cdr->dcontext, (ast_strlen_zero(c->macrocontext)) ? c->context : c->macrocontext, sizeof(cdr->dcontext));
+ }
}
cdr = cdr->next;
}
return 0;
}
-
+
int ast_cdr_amaflags2int(const char *flag)
{
if (!strcasecmp(flag, "default"))
diff --git a/pbx.c b/pbx.c
index 6b068214c..2b2edc211 100644
--- a/pbx.c
+++ b/pbx.c
@@ -562,7 +562,7 @@ int pbx_exec(struct ast_channel *c, /*!< Channel */
int (*execute)(struct ast_channel *chan, void *data) = app->execute;
if (newstack) {
- if (c->cdr)
+ if (c->cdr && !ast_check_hangup(c))
ast_cdr_setapp(c->cdr, app->name, data);
/* save channel values */