mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-20 11:43:52 +00:00
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
This commit is contained in:
2
CHANGES
2
CHANGES
@@ -28,6 +28,8 @@ Applications
|
|||||||
------------
|
------------
|
||||||
* Scheduled meetme conferences may now have their end times extended by
|
* Scheduled meetme conferences may now have their end times extended by
|
||||||
using MeetMeAdmin.
|
using MeetMeAdmin.
|
||||||
|
* app_authenticate now gives the ability to select a prompt other than
|
||||||
|
the default.
|
||||||
|
|
||||||
Miscellaneous
|
Miscellaneous
|
||||||
-------------
|
-------------
|
||||||
|
@@ -58,7 +58,7 @@ static char *app = "Authenticate";
|
|||||||
static char *synopsis = "Authenticate a user";
|
static char *synopsis = "Authenticate a user";
|
||||||
|
|
||||||
static char *descrip =
|
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"
|
"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"
|
"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"
|
"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"
|
" maxdigits have been entered (without requiring the user to\n"
|
||||||
" press the '#' key).\n"
|
" press the '#' key).\n"
|
||||||
" Defaults to 0 - no limit - wait for the user 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)
|
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(password);
|
||||||
AST_APP_ARG(options);
|
AST_APP_ARG(options);
|
||||||
AST_APP_ARG(maxdigits);
|
AST_APP_ARG(maxdigits);
|
||||||
|
AST_APP_ARG(prompt);
|
||||||
);
|
);
|
||||||
|
|
||||||
if (ast_strlen_zero(data)) {
|
if (ast_strlen_zero(data)) {
|
||||||
@@ -115,6 +118,12 @@ static int auth_exec(struct ast_channel *chan, void *data)
|
|||||||
maxdigits = sizeof(passwd) - 2;
|
maxdigits = sizeof(passwd) - 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!ast_strlen_zero(arglist.prompt)) {
|
||||||
|
prompt = arglist.prompt;
|
||||||
|
} else {
|
||||||
|
prompt = "agent-pass";
|
||||||
|
}
|
||||||
|
|
||||||
/* Start asking for password */
|
/* Start asking for password */
|
||||||
for (retries = 0; retries < 3; retries++) {
|
for (retries = 0; retries < 3; retries++) {
|
||||||
if ((res = ast_app_getdata(chan, prompt, passwd, maxdigits, 0)) < 0)
|
if ((res = ast_app_getdata(chan, prompt, passwd, maxdigits, 0)) < 0)
|
||||||
|
Reference in New Issue
Block a user