Mon Aug 31 12:30:37 2015

Asterisk developer's documentation


func_rand.c File Reference

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

Detailed Description

Generate Random Number.

Author:
Claude Patry <cpatry@gmail.com>
Tilghman Lesher ( http://asterisk.drunkcoder.com/ )

Definition in file func_rand.c.


Function Documentation

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 }


Variable Documentation

struct ast_custom_function acf_rand [static]
Initial value:
 {
   .name = "RAND",
   .read = acf_rand_exec,
   .read_max = 12,
}

Definition at line 91 of file func_rand.c.


Generated on 31 Aug 2015 for Asterisk - The Open Source Telephony Project by  doxygen 1.6.1