Skip to content
Snippets Groups Projects
Commit 31d28c25 authored by BJ Weschke's avatar BJ Weschke
Browse files

Give app_authenticate the ability to select a prompt other than the default.

 (closes issue #13734)
 reported and patched by: jvandal



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@150887 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 09e9b5d2
No related branches found
No related tags found
No related merge requests found
......@@ -28,6 +28,8 @@ Applications
------------
* Scheduled meetme conferences may now have their end times extended by
using MeetMeAdmin.
* app_authenticate now gives the ability to select a prompt other than
the default.
Miscellaneous
-------------
......
......@@ -58,7 +58,7 @@ static char *app = "Authenticate";
static char *synopsis = "Authenticate a user";
static char *descrip =
" Authenticate(password[,options[,maxdigits]]): This application asks the caller\n"
" Authenticate(password[,options[,maxdigits[,prompt]]]): This application asks the caller\n"
"to enter a given password in order to continue dialplan execution. If the password\n"
"begins with the '/' character, it is interpreted as a file which contains a list of\n"
"valid passwords, listed 1 password per line in the file.\n"
......@@ -76,6 +76,8 @@ static char *descrip =
" maxdigits have been entered (without requiring the user to\n"
" press the '#' key).\n"
" Defaults to 0 - no limit - wait for the user press the '#' key.\n"
" prompt - Override the agent-pass prompt file.\n"
;
;
static int auth_exec(struct ast_channel *chan, void *data)
......@@ -88,6 +90,7 @@ static int auth_exec(struct ast_channel *chan, void *data)
AST_APP_ARG(password);
AST_APP_ARG(options);
AST_APP_ARG(maxdigits);
AST_APP_ARG(prompt);
);
if (ast_strlen_zero(data)) {
......@@ -115,6 +118,12 @@ static int auth_exec(struct ast_channel *chan, void *data)
maxdigits = sizeof(passwd) - 2;
}
if (!ast_strlen_zero(arglist.prompt)) {
prompt = arglist.prompt;
} else {
prompt = "agent-pass";
}
/* Start asking for password */
for (retries = 0; retries < 3; retries++) {
if ((res = ast_app_getdata(chan, prompt, passwd, maxdigits, 0)) < 0)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment