diff options
author | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-03-15 22:16:15 +0000 |
---|---|---|
committer | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-03-15 22:16:15 +0000 |
commit | d7a656d1175abffde2d71a62a09484c42907fa66 (patch) | |
tree | 153988bd26266668ac7879f74271d9b12f062756 | |
parent | 643a07780ab639376e31187482f79391fa35bf1a (diff) |
- 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: http://svn.digium.com/svn/asterisk/branches/1.2@13161 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | cdr.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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); |