dect
/
asterisk
Archived
13
0
Fork 0

Remove use of privacy.conf by the Privacy app.

Reported by: eliel
Patch by: eliel
(Closes issue #11344)


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@93066 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
tilghman 2007-12-14 19:27:54 +00:00
parent 7e035d675e
commit ef6f7af8ad
4 changed files with 10 additions and 40 deletions

View File

@ -237,6 +237,8 @@ Other Dialplan Application Changes
READSTATUS to ERROR, which you can catch and handle separately.
* Added 'm' option to Directory, which lists out names, 8 at a time, instead
of asking for verification of each name, one at a time.
* Privacy() no longer uses privacy.conf, as all options are specifyable as
direct options to the app.
Music On Hold Changes
---------------------

View File

@ -84,6 +84,8 @@ Applications:
* Read() now sets a READSTATUS variable on exit. It does NOT automatically
return -1 (and hangup) anymore on error. If you want to hangup on error,
you need to do so explicitly in your dialplan.
* Privacy() no longer uses privacy.conf, so any options must be specified
directly in the application arguments.
Dialplan Functions:

View File

@ -41,24 +41,18 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/app.h"
#include "asterisk/config.h"
#define PRIV_CONFIG "privacy.conf"
static char *app = "PrivacyManager";
static char *synopsis = "Require phone number to be entered, if no CallerID sent";
static char *descrip =
" PrivacyManager([maxretries[,minlength[,options]]]): If no Caller*ID \n"
" PrivacyManager([maxretries][,minlength]): If no Caller*ID \n"
"is sent, PrivacyManager answers the channel and asks the caller to\n"
"enter their phone number. The caller is given 3 attempts to do so.\n"
"enter their phone number. The caller is given 'maxretries' attempts to do so.\n"
"The application does nothing if Caller*ID was received on the channel.\n"
" Configuration file privacy.conf contains two variables:\n"
" maxretries default 3 -maximum number of attempts the caller is allowed \n"
" to input a callerid.\n"
" minlength default 10 -minimum allowable digits in the input callerid number.\n"
"If you don't want to use the config file and have an i/o operation with\n"
"every call, you can also specify maxretries and minlength as application\n"
"parameters. Doing so supercedes any values set in privacy.conf.\n"
"The application sets the following channel variable upon completion: \n"
"PRIVACYMGRSTATUS The status of the privacy manager's attempt to collect \n"
" a phone number from the user. A text string that is either:\n"
@ -73,11 +67,8 @@ static int privacy_exec (struct ast_channel *chan, void *data)
int maxretries = 3;
int minlength = 10;
int x = 0;
const char *s;
char phone[30];
struct ast_config *cfg = NULL;
char *parse = NULL;
struct ast_flags config_flags = { 0 };
AST_DECLARE_APP_ARGS(args,
AST_APP_ARG(maxretries);
AST_APP_ARG(minlength);
@ -114,34 +105,14 @@ static int privacy_exec (struct ast_channel *chan, void *data)
}
if (!x)
{
/*Read in the config file*/
cfg = ast_config_load(PRIV_CONFIG, config_flags);
if (cfg && (s = ast_variable_retrieve(cfg, "general", "maxretries"))) {
if (sscanf(s, "%d", &x) == 1)
maxretries = x;
else
ast_log(LOG_WARNING, "Invalid max retries argument\n");
}
if (cfg && (s = ast_variable_retrieve(cfg, "general", "minlength"))) {
if (sscanf(s, "%d", &x) == 1)
minlength = x;
else
ast_log(LOG_WARNING, "Invalid min length argument\n");
}
}
/*Play unidentified call*/
/* Play unidentified call */
res = ast_safe_sleep(chan, 1000);
if (!res)
res = ast_streamfile(chan, "privacy-unident", chan->language);
if (!res)
res = ast_waitstream(chan, "");
/*Ask for 10 digit number, give 3 attempts*/
/* Ask for 10 digit number, give 3 attempts */
for (retries = 0; retries < maxretries; retries++) {
if (!res)
res = ast_streamfile(chan, "privacy-prompt", chan->language);
@ -154,7 +125,7 @@ static int privacy_exec (struct ast_channel *chan, void *data)
if (res < 0)
break;
/*Make sure we get at least digits*/
/* Make sure we get at least digits */
if (strlen(phone) >= minlength )
break;
else {
@ -164,7 +135,7 @@ static int privacy_exec (struct ast_channel *chan, void *data)
}
}
/*Got a number, play sounds and send them on their way*/
/* Got a number, play sounds and send them on their way */
if ((retries < maxretries) && res >= 0 ) {
res = ast_streamfile(chan, "privacy-thankyou", chan->language);
if (!res)
@ -184,8 +155,6 @@ static int privacy_exec (struct ast_channel *chan, void *data)
} else {
pbx_builtin_setvar_helper(chan, "PRIVACYMGRSTATUS", "FAILED");
}
if (cfg)
ast_config_destroy(cfg);
}
return 0;

View File

@ -1,3 +0,0 @@
[general]
maxretries = 2 ;How many chances the caller has to enter their number