diff options
author | Matt O'Gorman <mogorman@digium.com> | 2006-01-12 19:45:38 +0000 |
---|---|---|
committer | Matt O'Gorman <mogorman@digium.com> | 2006-01-12 19:45:38 +0000 |
commit | 791370e026758c2cab2f0b5ffa4fd84efcb95713 (patch) | |
tree | 5d814d0912d412d62702557c637b2778d65c3931 /apps/app_voicemail.c | |
parent | b86c380a589566a87839506433e1c8c723538f7e (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.c | 35 |
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 { |