]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
automerge commit
authorAutomerge Script <automerge@asterisk.org>
Wed, 2 May 2007 21:18:33 +0000 (21:18 +0000)
committerAutomerge Script <automerge@asterisk.org>
Wed, 2 May 2007 21:18:33 +0000 (21:18 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2-netsec@62782 65c4cc65-6c06-0410-ace0-fbb531ad65f3

cdr.c
pbx.c

diff --git a/cdr.c b/cdr.c
index 6838d619c93b0b03db50e1fbabebc06e98cb8749..8f9c4da0afac10ce2afa540959e48fd96da90e69 100644 (file)
--- 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 6b068214ce604c75513acfca615490b11a4262cd..2b2edc211043350194349df3df8e8f372db8879e 100644 (file)
--- 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 */