@ -479,6 +479,7 @@ int ast_masq_park_call(struct ast_channel *rchan, struct ast_channel *peer, int
# define FEATURE_RETURN_PASSDIGITS 21
# define FEATURE_RETURN_STOREDIGITS 22
# define FEATURE_RETURN_SUCCESS 23
# define FEATURE_RETURN_KEEPTRYING 24
# define FEATURE_SENSE_CHAN (1 << 0)
# define FEATURE_SENSE_PEER (1 << 1)
@ -966,7 +967,7 @@ static int feature_exec_app(struct ast_channel *chan, struct ast_channel *peer,
if ( sense = = FEATURE_SENSE_CHAN ) {
if ( ! ast_test_flag ( feature , AST_FEATURE_FLAG_BYCALLER ) )
return FEATURE_RETURN_ PASSDIGITS ;
return FEATURE_RETURN_ KEEPTRYING ;
if ( ast_test_flag ( feature , AST_FEATURE_FLAG_ONSELF ) ) {
work = chan ;
idle = peer ;
@ -976,7 +977,7 @@ static int feature_exec_app(struct ast_channel *chan, struct ast_channel *peer,
}
} else {
if ( ! ast_test_flag ( feature , AST_FEATURE_FLAG_BYCALLEE ) )
return FEATURE_RETURN_ PASSDIGITS ;
return FEATURE_RETURN_ KEEPTRYING ;
if ( ast_test_flag ( feature , AST_FEATURE_FLAG_ONSELF ) ) {
work = peer ;
idle = chan ;
@ -1090,8 +1091,11 @@ static int ast_feature_interpret(struct ast_channel *chan, struct ast_channel *p
if ( option_verbose > 2 )
ast_verbose ( VERBOSE_PREFIX_3 " Feature Found: %s exten: %s \n " , feature - > sname , tok ) ;
res = feature - > operation ( chan , peer , config , code , sense , feature ) ;
AST_LIST_UNLOCK ( & feature_list ) ;
break ;
if ( res ! = FEATURE_RETURN_KEEPTRYING ) {
AST_LIST_UNLOCK ( & feature_list ) ;
break ;
}
res = FEATURE_RETURN_PASSDIGITS ;
} else if ( ! strncmp ( feature - > exten , code , strlen ( code ) ) )
res = FEATURE_RETURN_STOREDIGITS ;