[Asterisk-code-review] app_read: Add an option to return terminator on empty digits. (asterisk[20])
George Joseph
asteriskteam at digium.com
Mon Feb 27 13:42:39 CST 2023
George Joseph has submitted this change. ( https://gerrit.asterisk.org/c/asterisk/+/19905 )
Change subject: app_read: Add an option to return terminator on empty digits.
......................................................................
app_read: Add an option to return terminator on empty digits.
Adds 'e' option to allow Read() to return the terminator as the
dialed digits in the case where only the terminator is entered.
ie; if "#" is entered, return "#" if the 'e' option is set and ""
if it is not.
ASTERISK-30411
Change-Id: I49f3221824330a193a20c660f99da0f1fc2cbbc5
---
M apps/app_read.c
A doc/CHANGES-staging/app_read_return_terminator.txt
2 files changed, 42 insertions(+), 3 deletions(-)
Approvals:
Joshua Colp: Looks good to me, but someone else must approve
George Joseph: Looks good to me, approved; Approved for Submit
N A: Looks good to me, but someone else must approve
diff --git a/apps/app_read.c b/apps/app_read.c
index f4a965c..e2ac60c 100644
--- a/apps/app_read.c
+++ b/apps/app_read.c
@@ -85,6 +85,13 @@
and you will need to rely on duration and max digits
for ending input.</para>
</option>
+ <option name="e">
+ <para>to read the terminator as the digit string if the
+ only digit read is the terminator. This is for cases
+ where the terminator is a valid digit, but only by itself.
+ ie; <literal>1234</literal> and <literal>#</literal> are
+ valid, but <literal>1234#</literal> is not.</para>
+ </option>
</optionlist>
</parameter>
<parameter name="attempts">
@@ -125,6 +132,7 @@
OPT_INDICATION = (1 << 1),
OPT_NOANSWER = (1 << 2),
OPT_TERMINATOR = (1 << 3),
+ OPT_KEEP_TERMINATOR = (1 << 4),
};
enum {
@@ -138,6 +146,7 @@
AST_APP_OPTION('i', OPT_INDICATION),
AST_APP_OPTION('n', OPT_NOANSWER),
AST_APP_OPTION_ARG('t', OPT_TERMINATOR, OPT_ARG_TERMINATOR),
+ AST_APP_OPTION('e', OPT_KEEP_TERMINATOR),
});
static char *app = "Read";
@@ -261,12 +270,20 @@
}
} else {
res = ast_app_getdata_terminator(chan, arglist.filename, tmp, maxdigits, to, terminator);
- if (res == AST_GETDATA_COMPLETE || res == AST_GETDATA_EMPTY_END_TERMINATED)
+ if (res == AST_GETDATA_COMPLETE) {
status = "OK";
- else if (res == AST_GETDATA_TIMEOUT)
+ } else if (res == AST_GETDATA_EMPTY_END_TERMINATED) {
+ if (ast_test_flag(&flags, OPT_KEEP_TERMINATOR)) {
+ /* if the option is set to do so, read the
+ returned string as the terminator string */
+ ast_copy_string(tmp, terminator, sizeof(tmp));
+ }
+ status = "OK";
+ } else if (res == AST_GETDATA_TIMEOUT) {
status = "TIMEOUT";
- else if (res == AST_GETDATA_INTERRUPTED)
+ } else if (res == AST_GETDATA_INTERRUPTED) {
status = "INTERRUPTED";
+ }
}
if (res > -1) {
pbx_builtin_setvar_helper(chan, arglist.variable, tmp);
diff --git a/doc/CHANGES-staging/app_read_return_terminator.txt b/doc/CHANGES-staging/app_read_return_terminator.txt
new file mode 100644
index 0000000..2987f77
--- /dev/null
+++ b/doc/CHANGES-staging/app_read_return_terminator.txt
@@ -0,0 +1,5 @@
+Subject: app_read
+
+A new option 'e' has been added to allow Read() to return the
+terminator as the dialed digits in the case where only the terminator
+is entered.
--
To view, visit https://gerrit.asterisk.org/c/asterisk/+/19905
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings
Gerrit-Project: asterisk
Gerrit-Branch: 20
Gerrit-Change-Id: I49f3221824330a193a20c660f99da0f1fc2cbbc5
Gerrit-Change-Number: 19905
Gerrit-PatchSet: 2
Gerrit-Owner: Michael Bradeen <mbradeen at sangoma.com>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Joshua Colp <jcolp at sangoma.com>
Gerrit-Reviewer: N A <asterisk at phreaknet.org>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20230227/10abc66f/attachment-0001.html>
More information about the asterisk-code-review
mailing list