Asterisk - The Open Source Telephony Project GIT-master-f36a736
|
Compile symbolic Asterisk Extension Logic into Asterisk extensions, version 2. More...
#include "asterisk.h"
#include <ctype.h>
#include <regex.h>
#include <sys/stat.h>
#include "asterisk/pbx.h"
#include "asterisk/config.h"
#include "asterisk/module.h"
#include "asterisk/logger.h"
#include "asterisk/cli.h"
#include "asterisk/app.h"
#include "asterisk/callerid.h"
#include "asterisk/hashtab.h"
#include "asterisk/ael_structs.h"
#include "asterisk/pval.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_CONTEXTS (1 << 3) |
#define | DEBUG_MACROS (1 << 2) |
#define | DEBUG_READ (1 << 0) |
#define | DEBUG_TOKENS (1 << 1) |
Functions | |
static void | __reg_module (void) |
static void | __unreg_module (void) |
void | add_extensions (struct ael_extension *exten) |
static int | aelsub_exec (struct ast_channel *chan, const char *vdata) |
int | ast_compile_ael2 (struct ast_context **local_contexts, struct ast_hashtab *local_table, struct pval *root) |
void | ast_expr_clear_extra_error_info (void) |
void | ast_expr_register_extra_error_info (char *errmsg) |
struct ast_module * | AST_MODULE_SELF_SYM (void) |
int | check_app_args (pval *appcall, pval *arglist, struct argapp *app) |
void | check_pval (pval *item, struct argapp *apps, int in_globals) |
void | check_pval_item (pval *item, struct argapp *apps, int in_globals) |
void | check_switch_expr (pval *item, struct argapp *apps) |
void | destroy_extensions (struct ael_extension *exten) |
void | destroy_pval (pval *item) |
void | destroy_pval_item (pval *item) |
struct pval * | find_context (char *name) |
static char * | handle_cli_ael_reload (struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) |
static char * | handle_cli_ael_set_debug (struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) |
int | is_empty (char *arg) |
int | is_float (char *arg) |
int | is_int (char *arg) |
static int | load_module (void) |
struct ael_extension * | new_exten (void) |
struct ael_priority * | new_prio (void) |
static int | pbx_load_module (void) |
static int | reload (void) |
void | set_priorities (struct ael_extension *exten) |
static int | unload_module (void) |
Variables | |
static struct ast_module_info | __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "Asterisk Extension Language Compiler" , .key = "This paragraph is copyright (c) 2006 by Digium, Inc. \In order for your module to load, it must return this \key via a function called \"key\". Any code which \includes this paragraph must be licensed under the GNU \General Public License version 2 or later (at your \option). In addition to Digium's general reservations \of rights, Digium expressly reserves the right to \allow other parties to license this paragraph under \different terms. Any use of Digium, Inc. trademarks or \logos (including \"Asterisk\" or \"Digium\") without \express written permission of Digium, Inc. is prohibited.\n" , .buildopt_sum = AST_BUILDOPT_SUM, .support_level = AST_MODULE_SUPPORT_EXTENDED, .load = load_module, .unload = unload_module, .reload = reload, .requires = "res_ael_share", } |
static int | aeldebug = 0 |
static char * | aelsub = "AELSub" |
static const struct ast_module_info * | ast_module_info = &__mod_info |
static struct ast_cli_entry | cli_ael [] |
static char * | config = "extensions.ael" |
static char * | registrar = "pbx_ael" |
Compile symbolic Asterisk Extension Logic into Asterisk extensions, version 2.
Definition in file pbx_ael.c.
void add_extensions | ( | struct ael_extension * | exten | ) |
Definition at line 4213 of file pval.c.
Referenced by ast_compile_ael2().
|
static |
Definition at line 124 of file pbx_ael.c.
References args, AST_APP_ARG, AST_DECLARE_APP_ARGS, AST_STANDARD_RAW_ARGS, ast_strdupa, buf, name, pbx_exec(), and pbx_findapp().
Referenced by load_module().
int ast_compile_ael2 | ( | struct ast_context ** | local_contexts, |
struct ast_hashtab * | local_table, | ||
struct pval * | root | ||
) |
Definition at line 4413 of file pval.c.
Referenced by pbx_load_module().
void ast_expr_clear_extra_error_info | ( | void | ) |
Definition at line 2469 of file ast_expr2f.c.
void ast_expr_register_extra_error_info | ( | char * | errmsg | ) |
Definition at line 2463 of file ast_expr2f.c.
struct ast_module * AST_MODULE_SELF_SYM | ( | void | ) |
Definition at line 2130 of file pval.c.
Referenced by check_pval_item().
Definition at line 2865 of file pval.c.
Referenced by ael2_semantic_check(), and check_pval_item().
Definition at line 2357 of file pval.c.
Referenced by check_pval().
Definition at line 2184 of file pval.c.
Referenced by check_pval_item().
void destroy_extensions | ( | struct ael_extension * | exten | ) |
Definition at line 2978 of file pval.c.
Referenced by ast_compile_ael2().
void destroy_pval | ( | pval * | item | ) |
Definition at line 4940 of file pval.c.
Referenced by destroy_pval_item(), pbx_load_module(), pvalIfTimeSetCondition(), and pvalIncludesAddIncludeWithTimeConstraints().
void destroy_pval_item | ( | pval * | item | ) |
Definition at line 4672 of file pval.c.
Referenced by destroy_pval().
struct pval * find_context | ( | char * | name | ) |
Definition at line 1953 of file pval.c.
Referenced by check_goto(), check_includes(), check_pval_item(), find_first_label_in_current_context(), find_label_in_current_context(), find_pval_goto_item(), and get_goto_target().
|
static |
Definition at line 228 of file pbx_ael.c.
References a, ast_module_reload(), AST_MODULE_RELOAD_SUCCESS, CLI_FAILURE, CLI_GENERATE, CLI_INIT, CLI_SHOWUSAGE, CLI_SUCCESS, ast_cli_entry::command, NULL, pbx_load_module(), and ast_cli_entry::usage.
|
static |
Definition at line 196 of file pbx_ael.c.
References a, aeldebug, ast_cli_entry::args, CLI_GENERATE, CLI_INIT, CLI_SHOWUSAGE, CLI_SUCCESS, ast_cli_entry::command, DEBUG_CONTEXTS, DEBUG_READ, DEBUG_TOKENS, NULL, and ast_cli_entry::usage.
int is_empty | ( | char * | arg | ) |
int is_float | ( | char * | arg | ) |
int is_int | ( | char * | arg | ) |
|
static |
Definition at line 268 of file pbx_ael.c.
References aelsub, aelsub_exec(), ARRAY_LEN, ast_cli_register_multiple, ast_register_application_xml, cli_ael, and pbx_load_module().
struct ael_extension * new_exten | ( | void | ) |
Definition at line 2930 of file pval.c.
Referenced by ast_compile_ael2(), and gen_prios().
struct ael_priority * new_prio | ( | void | ) |
Definition at line 2924 of file pval.c.
Referenced by ast_compile_ael2(), and gen_prios().
|
static |
Definition at line 144 of file pbx_ael.c.
References ael2_parse(), ael2_semantic_check(), ast_alloca, ast_compile_ael2(), ast_config_AST_CONFIG_DIR, ast_context_verify_includes(), ast_debug, ast_hashtab_compare_contexts(), ast_hashtab_create, ast_hashtab_hash_contexts(), ast_hashtab_newsize_java(), ast_hashtab_resize_java(), ast_log, ast_merge_contexts_and_delete(), AST_MODULE_LOAD_DECLINE, AST_MODULE_LOAD_SUCCESS, ast_walk_contexts(), config, destroy_pval(), errs, local_contexts, local_table, LOG_ERROR, LOG_NOTICE, NULL, and registrar.
Referenced by handle_cli_ael_reload(), load_module(), and reload().
|
static |
Definition at line 277 of file pbx_ael.c.
References pbx_load_module().
void set_priorities | ( | struct ael_extension * | exten | ) |
Definition at line 4187 of file pval.c.
Referenced by ast_compile_ael2().
|
static |
Definition at line 258 of file pbx_ael.c.
References aelsub, ARRAY_LEN, ast_cli_unregister_multiple(), ast_context_destroy(), ast_unregister_application(), cli_ael, NULL, and registrar.
|
static |
|
static |
Definition at line 117 of file pbx_ael.c.
Referenced by handle_cli_ael_set_debug().
|
static |
Definition at line 122 of file pbx_ael.c.
Referenced by load_module(), and unload_module().
|
static |
|
static |
Definition at line 253 of file pbx_ael.c.
Referenced by load_module(), and unload_module().
|
static |
Definition at line 77 of file pbx_ael.c.
Referenced by pbx_load_module().
|
static |
Definition at line 78 of file pbx_ael.c.
Referenced by __ast_context_create(), __ast_context_destroy(), ast_add_extension(), ast_add_extension2(), ast_add_extension2_lockopt(), ast_add_extension2_nolock(), ast_add_extension_nolock(), ast_context_add_ignorepat(), ast_context_add_ignorepat2(), ast_context_add_include(), ast_context_add_include2(), ast_context_add_switch(), ast_context_add_switch2(), ast_context_create(), ast_context_destroy(), ast_context_destroy_by_name(), ast_context_find_or_create(), ast_context_remove_extension(), ast_context_remove_extension2(), ast_context_remove_extension_callerid(), ast_context_remove_extension_callerid2(), ast_context_remove_ignorepat(), ast_context_remove_ignorepat2(), ast_context_remove_include(), ast_context_remove_include2(), ast_context_remove_switch(), ast_context_remove_switch2(), ast_merge_contexts_and_delete(), AST_TEST_DEFINE(), context_merge(), context_merge_incls_swits_igps_other_registrars(), ignorepat_alloc(), include_alloc(), localized_add_extension2(), localized_context_add_ignorepat2(), localized_context_add_include2(), localized_context_add_switch2(), localized_context_destroy(), localized_context_find_or_create(), localized_merge_contexts_and_delete(), parking_add_extension(), parking_lot_cfg_create_extensions(), parking_lot_cfg_remove_extensions(), pbx_load_module(), sw_alloc(), and unload_module().