mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 18:55:19 +00:00 
			
		
		
		
	don't calculate a duration if the CDR wasn't started, as it will result in a
totally bogus value. Thanks, Luigi! :) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@13132 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		
							
								
								
									
										7
									
								
								cdr.c
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								cdr.c
									
									
									
									
									
								
							| @@ -653,11 +653,12 @@ void ast_cdr_end(struct ast_cdr *cdr) | |||||||
| 		chan = !ast_strlen_zero(cdr->channel) ? cdr->channel : "<unknown>"; | 		chan = !ast_strlen_zero(cdr->channel) ? cdr->channel : "<unknown>"; | ||||||
| 		if (ast_test_flag(cdr, AST_CDR_FLAG_POSTED)) | 		if (ast_test_flag(cdr, AST_CDR_FLAG_POSTED)) | ||||||
| 			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->start)) |  | ||||||
| 			ast_log(LOG_WARNING, "CDR on channel '%s' has not started\n", chan); |  | ||||||
| 		if (ast_tvzero(cdr->end)) | 		if (ast_tvzero(cdr->end)) | ||||||
| 			cdr->end = ast_tvnow(); | 			cdr->end = ast_tvnow(); | ||||||
| 		cdr->duration = cdr->end.tv_sec - cdr->start.tv_sec; | 		if (ast_tvzero(cdr->start)) | ||||||
|  | 			ast_log(LOG_WARNING, "CDR on channel '%s' has not started\n", chan); | ||||||
|  | 		else | ||||||
|  | 			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; | ||||||
| 		else | 		else | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user