|
|
@ -655,9 +655,10 @@ void ast_cdr_end(struct ast_cdr *cdr)
|
|
|
|
ast_log(LOG_WARNING, "CDR on channel '%s' already posted\n", chan);
|
|
|
|
ast_log(LOG_WARNING, "CDR on channel '%s' already posted\n", chan);
|
|
|
|
if (ast_tvzero(cdr->end))
|
|
|
|
if (ast_tvzero(cdr->end))
|
|
|
|
cdr->end = ast_tvnow();
|
|
|
|
cdr->end = ast_tvnow();
|
|
|
|
if (ast_tvzero(cdr->start))
|
|
|
|
if (ast_tvzero(cdr->start)) {
|
|
|
|
ast_log(LOG_WARNING, "CDR on channel '%s' has not started\n", chan);
|
|
|
|
ast_log(LOG_WARNING, "CDR on channel '%s' has not started\n", chan);
|
|
|
|
else
|
|
|
|
cdr->disposition = AST_CDR_FAILED;
|
|
|
|
|
|
|
|
} else
|
|
|
|
cdr->duration = cdr->end.tv_sec - cdr->start.tv_sec;
|
|
|
|
cdr->duration = cdr->end.tv_sec - cdr->start.tv_sec;
|
|
|
|
if (!ast_tvzero(cdr->answer))
|
|
|
|
if (!ast_tvzero(cdr->answer))
|
|
|
|
cdr->billsec = cdr->end.tv_sec - cdr->answer.tv_sec;
|
|
|
|
cdr->billsec = cdr->end.tv_sec - cdr->answer.tv_sec;
|
|
|
|