@ -1059,15 +1059,18 @@ static int ast_feature_interpret(struct ast_channel *chan, struct ast_channel *p
struct ast_flags features ;
struct ast_flags features ;
int res = FEATURE_RETURN_PASSDIGITS ;
int res = FEATURE_RETURN_PASSDIGITS ;
struct ast_call_feature * feature ;
struct ast_call_feature * feature ;
const char * dynamic_features = pbx_builtin_getvar_helper ( chan , " DYNAMIC_FEATURES " ) ;
char * dynamic_features ;
char * tmp , * tok ;
char * tmp , * tok ;
if ( sense = = FEATURE_SENSE_CHAN )
if ( sense = = FEATURE_SENSE_CHAN ) {
ast_copy_flags ( & features , & ( config - > features_caller ) , AST_FLAGS_ALL ) ;
ast_copy_flags ( & features , & ( config - > features_caller ) , AST_FLAGS_ALL ) ;
else
dynamic_features = pbx_builtin_getvar_helper ( chan , " DYNAMIC_FEATURES " ) ;
} else {
ast_copy_flags ( & features , & ( config - > features_callee ) , AST_FLAGS_ALL ) ;
ast_copy_flags ( & features , & ( config - > features_callee ) , AST_FLAGS_ALL ) ;
dynamic_features = pbx_builtin_getvar_helper ( peer , " DYNAMIC_FEATURES " ) ;
}
if ( option_debug > 2 )
if ( option_debug > 2 )
ast_log ( LOG_DEBUG , " Feature interpret: chan=%s, peer=%s, sense=%d, features=%d \n " , chan - > name , peer - > name , sense , features . flags ) ;
ast_log ( LOG_DEBUG , " Feature interpret: chan=%s, peer=%s, sense=%d, features=%d dynamic=%s \n " , chan - > name , peer - > name , sense , features . flag s, dynamic_feature s) ;
ast_rwlock_rdlock ( & features_lock ) ;
ast_rwlock_rdlock ( & features_lock ) ;
for ( x = 0 ; x < FEATURES_COUNT ; x + + ) {
for ( x = 0 ; x < FEATURES_COUNT ; x + + ) {