diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-05-18 18:28:52 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-05-18 18:28:52 +0000 |
commit | 3ebfed7cf679f2a4984787b69c71f7071ba7b5b7 (patch) | |
tree | 24fe92e9b1451eb9e1055fae0c67cc2ad41e1552 /apps/app_hasnewvoicemail.c | |
parent | 33a6f646b6ed61f51550f0e605e7c6b45c25b698 (diff) |
Bug 7167 - Fix VMCOUNT if using USE_ODBC_STORAGE (different fix for trunk than for 1.2)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@28300 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_hasnewvoicemail.c')
-rw-r--r-- | apps/app_hasnewvoicemail.c | 33 |
1 files changed, 6 insertions, 27 deletions
diff --git a/apps/app_hasnewvoicemail.c b/apps/app_hasnewvoicemail.c index 2bc730e10..312e18231 100644 --- a/apps/app_hasnewvoicemail.c +++ b/apps/app_hasnewvoicemail.c @@ -79,26 +79,6 @@ static char *hasnewvoicemail_descrip = LOCAL_USER_DECL; -static int hasvoicemail_internal(char *context, char *box, char *folder) -{ - char vmpath[256]; - DIR *vmdir; - struct dirent *vment; - int count=0; - - snprintf(vmpath,sizeof(vmpath), "%s/voicemail/%s/%s/%s", (char *)ast_config_AST_SPOOL_DIR, context, box, folder); - if ((vmdir = opendir(vmpath))) { - /* No matter what the format of VM, there will always be a .txt file for each message. */ - while ((vment = readdir(vmdir))) { - if (!strncmp(vment->d_name + 7, ".txt", 4)) { - count++; - } - } - closedir(vmdir); - } - return count; -} - static int hasvoicemail_exec(struct ast_channel *chan, void *data) { struct localuser *u; @@ -130,11 +110,10 @@ static int hasvoicemail_exec(struct ast_channel *chan, void *data) AST_STANDARD_APP_ARGS(args, input); - if ((vmbox = strsep(&args.vmbox, "@"))) - if (!ast_strlen_zero(args.vmbox)) - context = args.vmbox; - if (!vmbox) - vmbox = args.vmbox; + vmbox = strsep(&args.vmbox, "@"); + + if (!ast_strlen_zero(args.vmbox)) + context = args.vmbox; vmfolder = strchr(vmbox, '/'); if (vmfolder) { @@ -149,7 +128,7 @@ static int hasvoicemail_exec(struct ast_channel *chan, void *data) priority_jump = 1; } - vmcount = hasvoicemail_internal(context, vmbox, vmfolder); + vmcount = ast_app_messagecount2(context, vmbox, vmfolder); /* Set the count in the channel variable */ if (varname) { snprintf(tmp, sizeof(tmp), "%d", vmcount); @@ -198,7 +177,7 @@ static int acf_vmcount_exec(struct ast_channel *chan, char *cmd, char *argsstr, args.folder = "INBOX"; } - snprintf(buf, len, "%d", hasvoicemail_internal(context, args.vmbox, args.folder)); + snprintf(buf, len, "%d", ast_app_messagecount2(context, args.vmbox, args.folder)); LOCAL_USER_REMOVE(u); |