- remove some calculations that will always result in 0

- if a CDR was never started, don't try to calculate a duration and consider it failed


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@13161 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Russell Bryant
2006-03-15 22:16:15 +00:00
parent eb1b6f313e
commit 4edd97a713

8
cdr.c
View File

@@ -807,11 +807,13 @@ static void post_cdr(struct ast_cdr *cdr)
ast_log(LOG_WARNING, "CDR on channel '%s' already posted\n", chan);
if (ast_tvzero(cdr->end))
ast_log(LOG_WARNING, "CDR on channel '%s' lacks end\n", chan);
if (ast_tvzero(cdr->start))
if (ast_tvzero(cdr->start)) {
ast_log(LOG_WARNING, "CDR on channel '%s' lacks start\n", chan);
cdr->duration = cdr->end.tv_sec - cdr->start.tv_sec + (cdr->end.tv_usec - cdr->start.tv_usec) / 1000000;
cdr->disposition = AST_CDR_FAILED;
} else
cdr->duration = cdr->end.tv_sec - cdr->start.tv_sec;
if (!ast_tvzero(cdr->answer))
cdr->billsec = cdr->end.tv_sec - cdr->answer.tv_sec + (cdr->end.tv_usec - cdr->answer.tv_usec) / 1000000;
cdr->billsec = cdr->end.tv_sec - cdr->answer.tv_sec;
else
cdr->billsec = 0;
ast_set_flag(cdr, AST_CDR_FLAG_POSTED);