@ -311,6 +311,7 @@ int ast_cdr_setvar(struct ast_cdr *cdr, const char *name, const char *value, int
}
for ( ; cdr ; cdr = recur ? cdr - > next : NULL ) {
if ( ! ast_test_flag ( cdr , AST_CDR_FLAG_LOCKED ) ) {
headp = & cdr - > varshead ;
AST_LIST_TRAVERSE_SAFE_BEGIN ( headp , newvariable , entries ) {
if ( ! strcasecmp ( ast_var_name ( newvariable ) , name ) ) {
@ -327,6 +328,7 @@ int ast_cdr_setvar(struct ast_cdr *cdr, const char *name, const char *value, int
AST_LIST_INSERT_HEAD ( headp , newvariable , entries ) ;
}
}
}
return 0 ;
}
@ -693,6 +695,7 @@ void ast_cdr_answer(struct ast_cdr *cdr)
{
for ( ; cdr ; cdr = cdr - > next ) {
if ( ! ast_test_flag ( cdr , AST_CDR_FLAG_LOCKED ) ) {
check_post ( cdr ) ;
if ( cdr - > disposition < AST_CDR_ANSWERED )
cdr - > disposition = AST_CDR_ANSWERED ;
@ -700,6 +703,7 @@ void ast_cdr_answer(struct ast_cdr *cdr)
cdr - > answer = ast_tvnow ( ) ;
}
}
}
void ast_cdr_busy ( struct ast_cdr * cdr )
{
@ -842,6 +846,7 @@ int ast_cdr_init(struct ast_cdr *cdr, struct ast_channel *c)
void ast_cdr_end ( struct ast_cdr * cdr )
{
for ( ; cdr ; cdr = cdr - > next ) {
if ( ! ast_test_flag ( cdr , AST_CDR_FLAG_LOCKED ) ) {
check_post ( cdr ) ;
if ( ast_tvzero ( cdr - > end ) )
cdr - > end = ast_tvnow ( ) ;
@ -853,6 +858,7 @@ void ast_cdr_end(struct ast_cdr *cdr)
cdr - > billsec = ast_tvzero ( cdr - > answer ) ? 0 : cdr - > end . tv_sec - cdr - > answer . tv_sec ;
}
}
}
char * ast_cdr_disp2str ( int disposition )
{