Mon May 14 04:42:58 2007

Asterisk developer's documentation


func_module.c

Go to the documentation of this file.
00001 /*
00002  * Asterisk -- An open source telephony toolkit.
00003  *
00004  * Copyright (C) 1999 - 2006, Digium, Inc.
00005  *
00006  * See http://www.asterisk.org for more information about
00007  * the Asterisk project. Please do not directly contact
00008  * any of the maintainers of this project for assistance;
00009  * the project provides a web site, mailing lists and IRC
00010  * channels for your use.
00011  *
00012  * This program is free software, distributed under the terms of
00013  * the GNU General Public License Version 2. See the LICENSE file
00014  * at the top of the source tree.
00015  */
00016 
00017 /*! \file
00018  *
00019  * \brief Simple module check function
00020  * \author Olle E. Johansson, Edvina.net
00021  */
00022 #include "asterisk.h"
00023 
00024 ASTERISK_FILE_VERSION(__FILE__, "$Revision: 46514 $")
00025 
00026 #include <stdio.h>
00027 #include <stdlib.h>
00028 #include <string.h>
00029 #include <sys/types.h>
00030 #include <sys/stat.h>
00031 
00032 #include "asterisk/module.h"
00033 #include "asterisk/channel.h"
00034 #include "asterisk/pbx.h"
00035 #include "asterisk/logger.h"
00036 #include "asterisk/utils.h"
00037 #include "asterisk/app.h"
00038 #include "asterisk/module.h"
00039 
00040 static int ifmodule_read(struct ast_channel *chan, char *cmd, char *data,
00041           char *buf, size_t len)
00042 {
00043    char *ret = "0";
00044 
00045    *buf = '\0';
00046 
00047    if (data)
00048       if (ast_module_check(data))
00049          ret = "1";
00050 
00051    ast_copy_string(buf, ret, len);
00052 
00053    return 0;
00054 }
00055 
00056 static struct ast_custom_function ifmodule_function = {
00057    .name = "IFMODULE",
00058    .synopsis = "Checks if an Asterisk module is loaded in memory",
00059    .syntax = "IFMODULE(<modulename.so>)",
00060    .read = ifmodule_read,
00061    .desc = "Checks if a module is loaded. Use the full module name\n"
00062       "as shown by the list in \"module list\". \n"
00063       "Returns \"1\" if module exists in memory, otherwise \"0\".\n",
00064 };
00065 
00066 
00067 static int unload_module(void)
00068 {
00069    return ast_custom_function_unregister(&ifmodule_function);
00070 }
00071 
00072 static int load_module(void)
00073 {
00074    return ast_custom_function_register(&ifmodule_function);
00075 }
00076 
00077 AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Checks if Asterisk module is loaded in memory");

Generated on Mon May 14 04:42:58 2007 for Asterisk - the Open Source PBX by  doxygen 1.5.1