[asterisk-bugs] [JIRA] (ASTERISK-29204) Directory Application doesn't immedietly accept selection

Michael (JIRA) noreply at issues.asterisk.org
Tue Dec 8 14:41:16 CST 2020


Michael created ASTERISK-29204:
----------------------------------

             Summary: Directory Application doesn't immedietly accept selection
                 Key: ASTERISK-29204
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29204
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Applications/app_directory
    Affects Versions: 18.1.0, 13.38.0
            Reporter: Michael
            Severity: Minor


When using the Directory app with options:
- 'm' to select from menu
- 'e' also read the extension number to the caller

When pressing a digit to select, while hearing the recorded name or character by character, the selection is not accepted because it just goes on to playing the extension due to option 'e'.

suggestion patch:

--- apps/app_directory.c.old	2020-11-19 07:39:40.000000000 -0500
+++ apps/app_directory.c	2020-12-08 15:37:29.118784496 -0500
@@ -296,13 +296,20 @@ static int play_mailbox_owner(struct ast
 	if (res >= 0) {
 		ast_stopstream(chan);
 		/* If Option 'e' was specified, also read the extension number with the name */
-		if (ast_test_flag(flags, OPT_SAYEXTENSION)) {
+		if (res > 0 && ast_test_flag(flags, OPT_SAYEXTENSION)) {
 			ast_stream_and_wait(chan, "vm-extension", AST_DIGIT_ANY);
-			res = ast_say_character_str(chan, ext, AST_DIGIT_ANY, ast_channel_language(chan), AST_SAY_CASE_NONE);
+			ast_say_character_str(chan, ext, AST_DIGIT_ANY, ast_channel_language(chan), AST_SAY_CASE_NONE);
+		} else {
+			ast_stream_and_wait(chan, "vm-extension", AST_DIGIT_ANY);
+			ast_say_character_str(chan, ext, AST_DIGIT_ANY, ast_channel_language(chan), AST_SAY_CASE_NONE);
 		}
 	} else {
 		res = ast_say_character_str(chan, S_OR(name, ext), AST_DIGIT_ANY, ast_channel_language(chan), AST_SAY_CASE_NONE);
-		if (!ast_strlen_zero(name) && ast_test_flag(flags, OPT_SAYEXTENSION)) {
+		/* If Option 'e' was specified, also read the extension number with the name */
+		if (res > 0 && !ast_strlen_zero(name) && ast_test_flag(flags, OPT_SAYEXTENSION)) {
+			ast_stream_and_wait(chan, "vm-extension", AST_DIGIT_ANY);
+			ast_say_character_str(chan, ext, AST_DIGIT_ANY, ast_channel_language(chan), AST_SAY_CASE_NONE);
+		} else {
 			ast_stream_and_wait(chan, "vm-extension", AST_DIGIT_ANY);
 			res = ast_say_character_str(chan, ext, AST_DIGIT_ANY, ast_channel_language(chan), AST_SAY_CASE_NONE);
 		}





--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list