Generate Random Number. More...
#include "asterisk.h"#include "asterisk/module.h"#include "asterisk/channel.h"#include "asterisk/pbx.h"#include "asterisk/utils.h"#include "asterisk/app.h"
Go to the source code of this file.
Functions | |
| static void | __reg_module (void) |
| static void | __unreg_module (void) |
| static int | acf_rand_exec (struct ast_channel *chan, const char *cmd, char *parse, char *buffer, size_t buflen) |
| static int | load_module (void) |
| static int | unload_module (void) |
Variables | |
| static struct ast_module_info __MODULE_INFO_SECTION | __mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "Random number dialplan function" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, } |
| static struct ast_custom_function | acf_rand |
| static struct ast_module_info * | ast_module_info = &__mod_info |
Generate Random Number.
Definition in file func_rand.c.
| static void __reg_module | ( | void | ) | [static] |
Definition at line 104 of file func_rand.c.
| static void __unreg_module | ( | void | ) | [static] |
Definition at line 104 of file func_rand.c.
| static int acf_rand_exec | ( | struct ast_channel * | chan, |
| const char * | cmd, | ||
| char * | parse, | ||
| char * | buffer, | ||
| size_t | buflen | ||
| ) | [static] |
Definition at line 55 of file func_rand.c.
References AST_APP_ARG, ast_debug, AST_DECLARE_APP_ARGS, ast_random(), AST_STANDARD_APP_ARGS, and ast_strlen_zero().
{
int min_int, response_int, max_int;
AST_DECLARE_APP_ARGS(args,
AST_APP_ARG(min);
AST_APP_ARG(max);
);
AST_STANDARD_APP_ARGS(args, parse);
if (ast_strlen_zero(args.min) || sscanf(args.min, "%30d", &min_int) != 1)
min_int = 0;
if (ast_strlen_zero(args.max) || sscanf(args.max, "%30d", &max_int) != 1)
max_int = RAND_MAX;
if (max_int < min_int) {
int tmp = max_int;
max_int = min_int;
min_int = tmp;
ast_debug(1, "max<min\n");
}
response_int = min_int + (ast_random() % (max_int - min_int + 1));
ast_debug(1, "%d was the lucky number in range [%d,%d]\n", response_int, min_int, max_int);
snprintf(buffer, buflen, "%d", response_int);
return 0;
}
| static int load_module | ( | void | ) | [static] |
Definition at line 99 of file func_rand.c.
References ast_custom_function_register.
{
return ast_custom_function_register(&acf_rand);
}
| static int unload_module | ( | void | ) | [static] |
Definition at line 92 of file func_rand.c.
References ast_custom_function_unregister().
{
ast_custom_function_unregister(&acf_rand);
return 0;
}
struct ast_module_info __MODULE_INFO_SECTION __mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "Random number dialplan function" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, } [static] |
Definition at line 104 of file func_rand.c.
struct ast_custom_function acf_rand [static] |
{
.name = "RAND",
.read = acf_rand_exec,
}
Definition at line 87 of file func_rand.c.
struct ast_module_info* ast_module_info = &__mod_info [static] |
Definition at line 104 of file func_rand.c.