Thu Apr 28 2011 17:16:06

Asterisk developer's documentation


func_db.c File Reference

Functions for interaction with the Asterisk database. More...

#include "asterisk.h"
#include <regex.h>
#include "asterisk/module.h"
#include "asterisk/channel.h"
#include "asterisk/pbx.h"
#include "asterisk/utils.h"
#include "asterisk/app.h"
#include "asterisk/astdb.h"
Include dependency graph for func_db.c:

Go to the source code of this file.

Functions

static void __reg_module (void)
static void __unreg_module (void)
static int function_db_delete (struct ast_channel *chan, const char *cmd, char *parse, char *buf, size_t len)
static int function_db_exists (struct ast_channel *chan, const char *cmd, char *parse, char *buf, size_t len)
static int function_db_read (struct ast_channel *chan, const char *cmd, char *parse, char *buf, size_t len)
static int function_db_write (struct ast_channel *chan, const char *cmd, char *parse, const char *value)
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 = "Database (astdb) related dialplan functions" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, }
static struct ast_module_infoast_module_info = &__mod_info
static struct ast_custom_function db_delete_function
static struct ast_custom_function db_exists_function
static struct ast_custom_function db_function

Detailed Description

Functions for interaction with the Asterisk database.

Author:
Russell Bryant <russelb@clemson.edu>

Definition in file func_db.c.


Function Documentation

static void __reg_module ( void  ) [static]

Definition at line 269 of file func_db.c.

static void __unreg_module ( void  ) [static]

Definition at line 269 of file func_db.c.

static int function_db_delete ( struct ast_channel chan,
const char *  cmd,
char *  parse,
char *  buf,
size_t  len 
) [static]

Definition at line 206 of file func_db.c.

References AST_APP_ARG, ast_db_del(), ast_db_get(), ast_debug, AST_DECLARE_APP_ARGS, ast_log(), AST_NONSTANDARD_APP_ARGS, ast_strlen_zero(), LOG_WARNING, and pbx_builtin_setvar_helper().

{
   AST_DECLARE_APP_ARGS(args,
      AST_APP_ARG(family);
      AST_APP_ARG(key);
   );

   buf[0] = '\0';

   if (ast_strlen_zero(parse)) {
      ast_log(LOG_WARNING, "DB_DELETE requires an argument, DB_DELETE(<family>/<key>)\n");
      return -1;
   }

   AST_NONSTANDARD_APP_ARGS(args, parse, '/');

   if (args.argc < 2) {
      ast_log(LOG_WARNING, "DB_DELETE requires an argument, DB_DELETE(<family>/<key>)\n");
      return -1;
   }

   if (ast_db_get(args.family, args.key, buf, len - 1)) {
      ast_debug(1, "DB_DELETE: %s/%s not found in database.\n", args.family, args.key);
   } else {
      if (ast_db_del(args.family, args.key)) {
         ast_debug(1, "DB_DELETE: %s/%s could not be deleted from the database\n", args.family, args.key);
      }
   }

   pbx_builtin_setvar_helper(chan, "DB_RESULT", buf);

   return 0;
}
static int function_db_exists ( struct ast_channel chan,
const char *  cmd,
char *  parse,
char *  buf,
size_t  len 
) [static]

Definition at line 169 of file func_db.c.

References AST_APP_ARG, ast_db_get(), AST_DECLARE_APP_ARGS, ast_log(), AST_NONSTANDARD_APP_ARGS, ast_strlen_zero(), LOG_WARNING, and pbx_builtin_setvar_helper().

{
   AST_DECLARE_APP_ARGS(args,
      AST_APP_ARG(family);
      AST_APP_ARG(key);
   );

   buf[0] = '\0';

   if (ast_strlen_zero(parse)) {
      ast_log(LOG_WARNING, "DB_EXISTS requires an argument, DB(<family>/<key>)\n");
      return -1;
   }

   AST_NONSTANDARD_APP_ARGS(args, parse, '/');

   if (args.argc < 2) {
      ast_log(LOG_WARNING, "DB_EXISTS requires an argument, DB(<family>/<key>)\n");
      return -1;
   }

   if (ast_db_get(args.family, args.key, buf, len - 1)) {
      strcpy(buf, "0");
   } else {
      pbx_builtin_setvar_helper(chan, "DB_RESULT", buf);
      strcpy(buf, "1");
   }

   return 0;
}
static int function_db_read ( struct ast_channel chan,
const char *  cmd,
char *  parse,
char *  buf,
size_t  len 
) [static]

Definition at line 105 of file func_db.c.

References AST_APP_ARG, ast_db_get(), ast_debug, AST_DECLARE_APP_ARGS, ast_log(), AST_NONSTANDARD_APP_ARGS, ast_strlen_zero(), LOG_WARNING, and pbx_builtin_setvar_helper().

{
   AST_DECLARE_APP_ARGS(args,
      AST_APP_ARG(family);
      AST_APP_ARG(key);
   );

   buf[0] = '\0';

   if (ast_strlen_zero(parse)) {
      ast_log(LOG_WARNING, "DB requires an argument, DB(<family>/<key>)\n");
      return -1;
   }

   AST_NONSTANDARD_APP_ARGS(args, parse, '/');

   if (args.argc < 2) {
      ast_log(LOG_WARNING, "DB requires an argument, DB(<family>/<key>)\n");
      return -1;
   }

   if (ast_db_get(args.family, args.key, buf, len - 1)) {
      ast_debug(1, "DB: %s/%s not found in database.\n", args.family, args.key);
   } else {
      pbx_builtin_setvar_helper(chan, "DB_RESULT", buf);
   }

   return 0;
}
static int function_db_write ( struct ast_channel chan,
const char *  cmd,
char *  parse,
const char *  value 
) [static]

Definition at line 136 of file func_db.c.

References AST_APP_ARG, ast_db_put(), AST_DECLARE_APP_ARGS, ast_log(), AST_NONSTANDARD_APP_ARGS, ast_strlen_zero(), and LOG_WARNING.

{
   AST_DECLARE_APP_ARGS(args,
      AST_APP_ARG(family);
      AST_APP_ARG(key);
   );

   if (ast_strlen_zero(parse)) {
      ast_log(LOG_WARNING, "DB requires an argument, DB(<family>/<key>)=<value>\n");
      return -1;
   }

   AST_NONSTANDARD_APP_ARGS(args, parse, '/');

   if (args.argc < 2) {
      ast_log(LOG_WARNING, "DB requires an argument, DB(<family>/<key>)=value\n");
      return -1;
   }

   if (ast_db_put(args.family, args.key, value)) {
      ast_log(LOG_WARNING, "DB: Error writing value to database.\n");
   }

   return 0;
}
static int load_module ( void  ) [static]
static int unload_module ( void  ) [static]

Variable Documentation

struct ast_module_info __MODULE_INFO_SECTION __mod_info = { __MODULE_INFO_GLOBALS .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "Database (astdb) related dialplan functions" , .key = ASTERISK_GPL_KEY , .buildopt_sum = AST_BUILDOPT_SUM, .load = load_module, .unload = unload_module, } [static]

Definition at line 269 of file func_db.c.

Definition at line 269 of file func_db.c.

Initial value:
 {
   .name = "DB_DELETE",
   .read = function_db_delete,
}

Definition at line 242 of file func_db.c.

Initial value:
 {
   .name = "DB_EXISTS",
   .read = function_db_exists,
}

Definition at line 201 of file func_db.c.

Initial value:
 {
   .name = "DB",
   .read = function_db_read,
   .write = function_db_write,
}

Definition at line 163 of file func_db.c.