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 int | acf_rand_exec (struct ast_channel *chan, const char *cmd, char *parse, char *buffer, size_t buflen) |
AST_MODULE_INFO_STANDARD (ASTERISK_GPL_KEY,"Random number dialplan function") | |
static int | load_module (void) |
static int | unload_module (void) |
Variables | |
static struct ast_custom_function | acf_rand |
Generate Random Number.
Definition in 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 59 of file func_rand.c.
References args, AST_APP_ARG, ast_debug, AST_DECLARE_APP_ARGS, ast_random(), AST_STANDARD_APP_ARGS, and ast_strlen_zero().
00061 { 00062 int min_int, response_int, max_int; 00063 AST_DECLARE_APP_ARGS(args, 00064 AST_APP_ARG(min); 00065 AST_APP_ARG(max); 00066 ); 00067 00068 AST_STANDARD_APP_ARGS(args, parse); 00069 00070 if (ast_strlen_zero(args.min) || sscanf(args.min, "%30d", &min_int) != 1) 00071 min_int = 0; 00072 00073 if (ast_strlen_zero(args.max) || sscanf(args.max, "%30d", &max_int) != 1) 00074 max_int = RAND_MAX; 00075 00076 if (max_int < min_int) { 00077 int tmp = max_int; 00078 00079 max_int = min_int; 00080 min_int = tmp; 00081 ast_debug(1, "max<min\n"); 00082 } 00083 00084 response_int = min_int + (ast_random() % (max_int - min_int + 1)); 00085 ast_debug(1, "%d was the lucky number in range [%d,%d]\n", response_int, min_int, max_int); 00086 snprintf(buffer, buflen, "%d", response_int); 00087 00088 return 0; 00089 }
AST_MODULE_INFO_STANDARD | ( | ASTERISK_GPL_KEY | , | |
"Random number dialplan function" | ||||
) |
static int load_module | ( | void | ) | [static] |
Definition at line 104 of file func_rand.c.
References ast_custom_function_register.
00105 { 00106 return ast_custom_function_register(&acf_rand); 00107 }
static int unload_module | ( | void | ) | [static] |
Definition at line 97 of file func_rand.c.
References ast_custom_function_unregister().
00098 { 00099 ast_custom_function_unregister(&acf_rand); 00100 00101 return 0; 00102 }
struct ast_custom_function acf_rand [static] |
{ .name = "RAND", .read = acf_rand_exec, .read_max = 12, }
Definition at line 91 of file func_rand.c.