summaryrefslogtreecommitdiff
path: root/apps/app_voicemail.c
diff options
context:
space:
mode:
authorMatt O'Gorman <mogorman@digium.com>2006-01-12 19:45:38 +0000
committerMatt O'Gorman <mogorman@digium.com>2006-01-12 19:45:38 +0000
commit791370e026758c2cab2f0b5ffa4fd84efcb95713 (patch)
tree5d814d0912d412d62702557c637b2778d65c3931 /apps/app_voicemail.c
parentb86c380a589566a87839506433e1c8c723538f7e (diff)
some error checking added into g and a option
if there is no parens. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@8030 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps/app_voicemail.c')
-rw-r--r--apps/app_voicemail.c35
1 files changed, 19 insertions, 16 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 71112c585..690f8cdc7 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -340,8 +340,7 @@ static char *descrip_vmain =
" g(#) - Use the specified amount of gain when recording a voicemail\n"
" message. The units are whole-number decibels (dB).\n"
" s - Skip checking the passcode for the mailbox.\n"
-" a(#) - Automatically play messages in the specified folder.\n"
-" Defaults to INBOX";
+" a(#) - Skip folder prompt and go directly to folder specified, defaults to 1\n";
static char *synopsis_vm_box_exists =
"Check to see if Voicemail mailbox exists";
@@ -5065,26 +5064,30 @@ static int vm_execmain(struct ast_channel *chan, void *data)
}
if (ast_test_flag(&flags, OPT_RECORDGAIN)) {
int gain;
-
- if (sscanf(opts[OPT_ARG_RECORDGAIN], "%d", &gain) != 1) {
- ast_log(LOG_WARNING, "Invalid value '%s' provided for record gain option\n", opts[OPT_ARG_RECORDGAIN]);
- LOCAL_USER_REMOVE(u);
- return -1;
+ if(opts[OPT_ARG_PLAYFOLDER]) {
+ if (sscanf(opts[OPT_ARG_RECORDGAIN], "%d", &gain) != 1) {
+ ast_log(LOG_WARNING, "Invalid value '%s' provided for record gain option\n", opts[OPT_ARG_RECORDGAIN]);
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ } else {
+ record_gain = (signed char) gain;
+ }
} else {
- record_gain = (signed char) gain;
+ ast_log(LOG_WARNING, "Invalid Gain level set with option g\n");
}
}
if (ast_test_flag(&flags, OPT_AUTOPLAY) ) {
play_auto = 1;
- if (sscanf(opts[OPT_ARG_PLAYFOLDER], "%d", &play_folder) != 1) {
- ast_log(LOG_WARNING, "Invalid value '%s' provided for folder autoplay option\n", opts[OPT_ARG_PLAYFOLDER]);
- LOCAL_USER_REMOVE(u);
- return -1;
- }
- else if ( play_folder > 9 || play_folder < 0) {
+ if(opts[OPT_ARG_PLAYFOLDER]) {
+ if (sscanf(opts[OPT_ARG_PLAYFOLDER], "%d", &play_folder) != 1) {
+ ast_log(LOG_WARNING, "Invalid value '%s' provided for folder autoplay option\n", opts[OPT_ARG_PLAYFOLDER]);
+ }
+ } else {
+ ast_log(LOG_WARNING, "Invalid folder set with option a\n");
+ }
+ if ( play_folder > 9 || play_folder < 0) {
ast_log(LOG_WARNING, "Invalid value '%d' provided for folder autoplay option\n", play_folder);
- LOCAL_USER_REMOVE(u);
- return -1;
+ play_folder = 0;
}
}
} else {