From d634012c4e22037962bc4eb5cd502f26e3b120f0 Mon Sep 17 00:00:00 2001 From: tilghman Date: Thu, 21 Sep 2006 19:35:29 +0000 Subject: Remove deprecated apps and funcs git-svn-id: http://svn.digium.com/svn/asterisk/trunk@43439 f38db490-d61c-443f-a65b-d21fe96a405b --- funcs/func_vmcount.c | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 funcs/func_vmcount.c (limited to 'funcs/func_vmcount.c') diff --git a/funcs/func_vmcount.c b/funcs/func_vmcount.c new file mode 100644 index 000000000..10ff000c7 --- /dev/null +++ b/funcs/func_vmcount.c @@ -0,0 +1,104 @@ +/* + * Asterisk -- An open source telephony toolkit. + * + * Copyright (c) 2006 Tilghman Lesher. All rights reserved. + * + * Tilghman Lesher + * + * See http://www.asterisk.org for more information about + * the Asterisk project. Please do not directly contact + * any of the maintainers of this project for assistance; + * the project provides a web site, mailing lists and IRC + * channels for your use. + * + * This program is free software, distributed under the terms of + * the GNU General Public License Version 2. See the LICENSE file + * at the top of the source tree. + */ + +/*! \file + * + * \brief VMCOUNT dialplan function + * + * \author Tilghman Lesher + * + * \ingroup functions + */ + +#include "asterisk.h" + +ASTERISK_FILE_VERSION(__FILE__, "$Revision$") + +#include +#include +#include +#include +#include +#include + +#include "asterisk/file.h" +#include "asterisk/channel.h" +#include "asterisk/pbx.h" +#include "asterisk/module.h" +#include "asterisk/lock.h" +#include "asterisk/utils.h" +#include "asterisk/app.h" +#include "asterisk/options.h" + +static int acf_vmcount_exec(struct ast_channel *chan, char *cmd, char *argsstr, char *buf, size_t len) +{ + struct ast_module_user *u; + char *context; + AST_DECLARE_APP_ARGS(args, + AST_APP_ARG(vmbox); + AST_APP_ARG(folder); + ); + + u = ast_module_user_add(chan); + + buf[0] = '\0'; + + AST_STANDARD_APP_ARGS(args, argsstr); + + if (strchr(args.vmbox, '@')) { + context = args.vmbox; + args.vmbox = strsep(&context, "@"); + } else { + context = "default"; + } + + if (ast_strlen_zero(args.folder)) { + args.folder = "INBOX"; + } + + snprintf(buf, len, "%d", ast_app_messagecount(context, args.vmbox, args.folder)); + + ast_module_user_remove(u); + + return 0; +} + +struct ast_custom_function acf_vmcount = { + .name = "VMCOUNT", + .synopsis = "Counts the voicemail in a specified mailbox", + .syntax = "VMCOUNT(vmbox[@context][|folder])", + .desc = + " context - defaults to \"default\"\n" + " folder - defaults to \"INBOX\"\n", + .read = acf_vmcount_exec, +}; + +static int unload_module(void) +{ + int res = ast_custom_function_unregister(&acf_vmcount); + ast_module_user_hangup_all(); + + return res; +} + +static int load_module(void) +{ + return ast_custom_function_register(&acf_vmcount); +} + +AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Indicator for whether a voice mailbox has messages in a given folder."); -- cgit v1.2.3