]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Tweak CDR change in r369351
authorMatthew Jordan <mjordan@digium.com>
Mon, 25 Jun 2012 19:24:55 +0000 (19:24 +0000)
committerMatthew Jordan <mjordan@digium.com>
Mon, 25 Jun 2012 19:24:55 +0000 (19:24 +0000)
As Tilghman pointed out on review 1996, the check to see if a CDR end time has
been set is sufficient to know whether or not the duration value can be used.
The check-in done for r369351 forgot to include this change.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@369366 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/cdr.c

index 8a738d14fb9d86bf0f9c55a931187ad2e93623e7..b73ed2ad7a44f82b7b849a325fe3e1e2223f31b9 100644 (file)
@@ -294,7 +294,7 @@ void ast_cdr_getvar(struct ast_cdr *cdr, const char *name, char **ret, char *wor
        else if (!strcasecmp(name, "end"))
                cdr_get_tv(cdr->end, raw ? NULL : fmt, workspace, workspacelen);
        else if (!strcasecmp(name, "duration")) {
-               snprintf(workspace, workspacelen, "%ld", cdr->duration || !ast_tvzero(cdr->end) ? cdr->duration : (long)ast_tvdiff_ms(ast_tvnow(), cdr->start) / 1000);
+               snprintf(workspace, workspacelen, "%ld", cdr->end.tv_sec != 0 ? cdr->duration : (long)ast_tvdiff_ms(ast_tvnow(), cdr->start) / 1000);
        } else if (!strcasecmp(name, "billsec"))
                snprintf(workspace, workspacelen, "%ld", cdr->billsec || cdr->answer.tv_sec == 0 ? cdr->billsec : (long)ast_tvdiff_ms(ast_tvnow(), cdr->answer) / 1000);
        else if (!strcasecmp(name, "disposition")) {