Asterisk - The Open Source Telephony Project
18.5.0
|
Call Parking Resource. More...
#include "asterisk.h"
#include "parking/res_parking.h"
#include "asterisk/config.h"
#include "asterisk/config_options.h"
#include "asterisk/utils.h"
#include "asterisk/module.h"
#include "asterisk/cli.h"
#include "asterisk/astobj2.h"
#include "asterisk/features.h"
#include "asterisk/manager.h"
#include "asterisk/pbx.h"
Go to the source code of this file.
Data Structures | |
struct | parking_config |
struct | parking_global_config |
Functions | |
static void | __reg_module (void) |
static void | __unreg_module (void) |
static struct parking_lot * | alloc_new_parking_lot (struct parking_lot_cfg *lot_cfg) |
static | AO2_GLOBAL_OBJ_STATIC (globals) |
struct ast_module * | AST_MODULE_SELF_SYM (void) |
static struct parking_lot_cfg * | clone_parkinglot_cfg (struct parking_lot_cfg *source, const char *name) |
CONFIG_INFO_STANDARD (cfg_info, globals, parking_config_alloc,.files=ACO_FILES(&parking_lot_conf),.pre_apply_config=config_parking_preapply,.post_apply_config=link_configured_disable_marked_lots,) | |
static int | config_parking_preapply (void) |
static int | configure_parking_extensions (void) |
static struct parking_lot * | create_dynamic_lot_full (const char *name, struct ast_channel *chan, int forced) |
static void | disable_marked_lots (void) |
static int | extension_is_compatible (struct parking_lot_cfg *lot_cfg, const char *app_type, struct ast_exten *extension) |
const char * | find_channel_parking_lot_name (struct ast_channel *chan) |
Find parking lot name from channel. More... | |
static void | generate_or_link_lots_to_configs (void) |
struct ao2_container * | get_parking_lot_container (void) |
Get a pointer to the parking lot container for purposes such as iteration. More... | |
static void | link_configured_disable_marked_lots (void) |
static int | load_module (void) |
static void | mark_lots_as_disabled (void) |
static void * | named_item_find (struct ao2_container *container, const char *name) |
find an item in a container by its name More... | |
static int | option_handler_findslot (const struct aco_option *opt, struct ast_variable *var, void *obj) |
Custom field handler for the findslot option. More... | |
static int | option_handler_parkedfeature (const struct aco_option *opt, struct ast_variable *var, void *obj) |
Custom field handler for feature mapping on parked call pickup options. More... | |
static int | option_handler_parkpos (const struct aco_option *opt, struct ast_variable *var, void *obj) |
Custom field handler for parking positions. More... | |
static int | parked_user_cmp_fn (void *obj, void *arg, int flags) |
static int | parked_user_sort_fn (const void *obj_left, const void *obj_right, int flags) |
static int | parking_add_extension (struct ast_context *context, int replace, const char *extension, int priority, const char *application, const char *data, const char *registrar) |
static void * | parking_config_alloc (void) |
allocator callback for parking_config. Notice it returns void * since it is only used by the backend config code More... | |
static void | parking_config_destructor (void *obj) |
destructor for parking_config More... | |
struct parking_lot * | parking_create_dynamic_lot (const char *name, struct ast_channel *chan) |
Create a dynamic parking lot. More... | |
struct parking_lot * | parking_create_dynamic_lot_forced (const char *name, struct ast_channel *chan) |
Create a dynamic parking lot without respect to whether they are enabled by configuration. More... | |
int | parking_dynamic_lots_enabled (void) |
Check global configuration to see if dynamic parking is enabled. More... | |
static int | parking_feature_flag_cfg (int *param, const char *var) |
Maps string values for option_handler_parkedfeature to their ENUM values. More... | |
static void | parking_global_config_destructor (void *obj) |
destructor for parking_global_config More... | |
struct parking_lot * | parking_lot_build_or_update (struct parking_lot_cfg *lot_cfg, int dynamic) |
If a parking lot exists in the parking lot list already, update its status to match the provided configuration and return a reference return a reference to it. Otherwise, create a parking lot struct based on a parking lot configuration and return a reference to the new one. More... | |
static void * | parking_lot_cfg_alloc (const char *cat) |
create a parking lot structure More... | |
static int | parking_lot_cfg_cmp_fn (void *obj, void *arg, const int flags) |
struct parking_lot_cfg * | parking_lot_cfg_create (const char *cat) |
Create an empty parking lot configuration structure useful for unit tests. More... | |
int | parking_lot_cfg_create_extensions (struct parking_lot_cfg *lot_cfg) |
Add extensions for a parking lot configuration. More... | |
static void | parking_lot_cfg_destructor (void *obj) |
Destroy a parking lot cfg object. More... | |
static int | parking_lot_cfg_hash_fn (const void *obj, const int flags) |
void | parking_lot_cfg_remove_extensions (struct parking_lot_cfg *lot_cfg) |
Remove extensions belonging to a parking lot configuration. More... | |
static void | parking_lot_destructor (void *obj) |
static void | parking_lot_disable (struct parking_lot *lot) |
struct parking_lot * | parking_lot_find_by_name (const char *lot_name) |
Find a parking lot based on its name. More... | |
int | parking_lot_remove_if_unused (struct parking_lot *lot) |
Remove a parking lot from the usable lists if it is no longer involved in any calls and no configuration currently claims it. More... | |
static int | parking_lot_sort_fn (const void *obj_left, const void *obj_right, int flags) |
static int | reload_module (void) |
static void | remove_all_configured_parking_lot_extensions (void) |
static void | remove_pending_parking_lot_extensions (struct parking_config *cfg_pending) |
static int | unload_module (void) |
static int | verify_default_parking_lot (void) |
Variables | |
static struct ast_module_info | __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_LOAD_ORDER , .description = "Call Parking Resource" , .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 = "30ef0c93b36035ec78c9cfd712d36d9b" , .support_level = AST_MODULE_SUPPORT_CORE, .load = load_module, .unload = unload_module, .reload = reload_module, .load_pri = AST_MODPRI_DEVSTATE_PROVIDER, } |
static const struct ast_module_info * | ast_module_info = &__mod_info |
static struct aco_type | global_option |
struct aco_type * | global_options [] = ACO_TYPES(&global_option) |
struct aco_file | parking_lot_conf |
static struct ao2_container * | parking_lot_container |
static struct aco_type | parking_lot_type |
struct aco_type * | parking_lot_types [] = ACO_TYPES(&parking_lot_type) |
Call Parking Resource.
Definition in file res_parking.c.
|
static |
Definition at line 1295 of file res_parking.c.
|
static |
Definition at line 1295 of file res_parking.c.
|
static |
Definition at line 637 of file res_parking.c.
References ao2_alloc, AO2_ALLOC_OPT_LOCK_RWLOCK, ao2_cleanup, ao2_container_alloc_list, AO2_CONTAINER_ALLOC_OPT_DUPS_REJECT, ast_string_field_init, ast_string_field_set, name, parking_lot_cfg::name, NULL, parked_user_cmp_fn(), parked_user_sort_fn(), parking_lot::parked_users, and parking_lot_destructor().
Referenced by parking_lot_build_or_update().
|
static |
struct ast_module* AST_MODULE_SELF_SYM | ( | void | ) |
Definition at line 1295 of file res_parking.c.
|
static |
Definition at line 939 of file res_parking.c.
References ast_string_field_set, ast_string_fields_copy, parking_lot_cfg::comebackdialtime, parking_lot_cfg::comebacktoorigin, NULL, parking_lot_cfg::parkaddhints, parking_lot_cfg::parkedcallhangup, parking_lot_cfg::parkedcallrecording, parking_lot_cfg::parkedcallreparking, parking_lot_cfg::parkedcalltransfers, parking_lot_cfg::parkedplay, parking_lot_cfg::parkext_exclusive, parking_lot_cfg::parkfindnext, parking_lot_cfg_alloc(), parking_lot_cfg::parking_start, parking_lot_cfg::parking_stop, and parking_lot_cfg::parkingtime.
Referenced by create_dynamic_lot_full().
CONFIG_INFO_STANDARD | ( | cfg_info | , |
globals | , | ||
parking_config_alloc | , | ||
. | files = ACO_FILES(&parking_lot_conf) , |
||
. | pre_apply_config = config_parking_preapply , |
||
. | post_apply_config = link_configured_disable_marked_lots |
||
) |
|
static |
Definition at line 1155 of file res_parking.c.
References configure_parking_extensions(), mark_lots_as_disabled(), and verify_default_parking_lot().
|
static |
Definition at line 1110 of file res_parking.c.
References aco_pending_config(), ao2_cleanup, ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, ast_log, LOG_ERROR, NULL, parking_lot_cfg_create_extensions(), parking_config::parking_lots, RAII_VAR, remove_all_configured_parking_lot_extensions(), and remove_pending_parking_lot_extensions().
Referenced by config_parking_preapply().
|
static |
Definition at line 970 of file res_parking.c.
References ao2_cleanup, ao2_lock, ao2_ref, ao2_unlock, ast_channel_lock, ast_channel_unlock, ast_log, ast_strdupa, ast_string_field_set, ast_strlen_zero, parking_lot::cfg, clone_parkinglot_cfg(), DEFAULT_PARKING_LOT, LOG_ERROR, LOG_NOTICE, NULL, parking_dynamic_lots_enabled(), parking_lot_build_or_update(), parking_lot_cfg_create_extensions(), parking_lot_find_by_name(), parking_lot_cfg::parking_start, parking_lot_cfg::parking_stop, pbx_builtin_getvar_helper(), RAII_VAR, and S_OR.
Referenced by parking_create_dynamic_lot(), and parking_create_dynamic_lot_forced().
|
static |
Definition at line 1170 of file res_parking.c.
References ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, parking_lot::disable_mark, and parking_lot_disable().
Referenced by link_configured_disable_marked_lots().
|
static |
Definition at line 730 of file res_parking.c.
References ast_assert, ast_debug, ast_get_context_name(), ast_get_extension_app(), ast_get_extension_context(), ast_get_extension_name(), ast_get_extension_registrar(), ast_log, BASE_REGISTRAR, LOG_ERROR, and parking_lot_cfg::name.
Referenced by parking_lot_cfg_create_extensions().
const char* find_channel_parking_lot_name | ( | struct ast_channel * | chan | ) |
Find parking lot name from channel.
chan | The channel we want the parking lot name for |
Definition at line 607 of file res_parking.c.
References ast_channel_parkinglot(), ast_strlen_zero, DEFAULT_PARKING_LOT, name, and pbx_builtin_getvar_helper().
Referenced by park_common_setup(), parked_call_app_exec(), and parking_park_call().
|
static |
Definition at line 915 of file res_parking.c.
References ao2_cleanup, ao2_global_obj_ref, ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, globals, parking_lot_build_or_update(), and RAII_VAR.
Referenced by link_configured_disable_marked_lots().
struct ao2_container* get_parking_lot_container | ( | void | ) |
Get a pointer to the parking lot container for purposes such as iteration.
pointer | to the parking lot container. |
Definition at line 596 of file res_parking.c.
References parking_lot_container.
Referenced by cli_display_parking_lot_list(), complete_parking_lot(), manager_parking_lot_list(), manager_parking_status_all_lots(), and metermaidstate().
|
static |
Definition at line 1184 of file res_parking.c.
References disable_marked_lots(), and generate_or_link_lots_to_configs().
|
static |
Definition at line 1207 of file res_parking.c.
References ACO_EXACT, aco_info_init(), aco_option_register, aco_option_register_custom, aco_process_config(), ACO_PROCESS_ERROR, AO2_ALLOC_OPT_LOCK_MUTEX, ao2_container_alloc_list, AO2_CONTAINER_ALLOC_OPT_DUPS_REJECT, AST_MODULE_LOAD_DECLINE, AST_MODULE_LOAD_SUCCESS, error(), FLDSET, load_parking_applications(), load_parking_bridge_features(), load_parking_devstate(), load_parking_manager(), load_parking_tests(), load_parking_ui(), NULL, OPT_BOOL_T, OPT_PARKEDHANGUP, OPT_PARKEDPLAY, OPT_PARKEDRECORDING, OPT_PARKEDREPARKING, OPT_PARKEDTRANSFERS, OPT_STRINGFIELD_T, OPT_UINT_T, option_handler_findslot(), option_handler_parkedfeature(), option_handler_parkpos(), parking_global_config::parkeddynamic, parking_lot_sort_fn(), STRFLDSET, and unload_module().
Referenced by reload_module().
|
static |
Definition at line 1143 of file res_parking.c.
References ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, and parking_lot::disable_mark.
Referenced by config_parking_preapply().
|
static |
find an item in a container by its name
XXX This is actually incredibly generic and might be better placed in something like astobj2 if there isn't already an equivalent
container | ao2container where we want the item from |
key | name of the item wanted to be found |
pointer | to the parking lot if available. NULL if not found. |
Definition at line 496 of file res_parking.c.
References ao2_find, and OBJ_KEY.
Referenced by parking_lot_build_or_update(), and parking_lot_find_by_name().
|
static |
Custom field handler for the findslot option.
Definition at line 525 of file res_parking.c.
References ast_log, LOG_WARNING, parking_lot_cfg::parkfindnext, and ast_variable::value.
Referenced by load_module().
|
static |
Custom field handler for feature mapping on parked call pickup options.
Definition at line 564 of file res_parking.c.
References aco_option_get_flags(), ast_assert, NULL, OPT_PARKEDHANGUP, OPT_PARKEDPLAY, OPT_PARKEDRECORDING, OPT_PARKEDREPARKING, OPT_PARKEDTRANSFERS, parking_lot_cfg::parkedcallhangup, parking_lot_cfg::parkedcallrecording, parking_lot_cfg::parkedcallreparking, parking_lot_cfg::parkedcalltransfers, parking_lot_cfg::parkedplay, parking_feature_flag_cfg(), and ast_variable::value.
Referenced by load_module().
|
static |
Custom field handler for parking positions.
Definition at line 504 of file res_parking.c.
References ast_log, LOG_WARNING, parking_lot_cfg::parking_start, parking_lot_cfg::parking_stop, and ast_variable::value.
Referenced by load_module().
|
static |
Definition at line 435 of file res_parking.c.
References CMP_MATCH, and parked_user::parking_space.
Referenced by alloc_new_parking_lot().
|
static |
Definition at line 447 of file res_parking.c.
References parked_user::parking_space.
Referenced by alloc_new_parking_lot().
|
static |
Definition at line 713 of file res_parking.c.
References ast_add_extension2_nolock(), ast_free_ptr(), ast_strdup, and NULL.
Referenced by parking_lot_cfg_create_extensions().
|
static |
allocator callback for parking_config. Notice it returns void * since it is only used by the backend config code
Definition at line 377 of file res_parking.c.
References ao2_alloc, AO2_ALLOC_OPT_LOCK_MUTEX, ao2_cleanup, ao2_container_alloc_hash, ao2_ref, NULL, parking_config_destructor(), parking_global_config_destructor(), parking_lot_cfg_cmp_fn(), parking_lot_cfg_hash_fn(), and RAII_VAR.
|
static |
destructor for parking_config
Definition at line 363 of file res_parking.c.
References ao2_cleanup, parking_config::global, and parking_config::parking_lots.
Referenced by parking_config_alloc().
struct parking_lot* parking_create_dynamic_lot | ( | const char * | name, |
struct ast_channel * | chan | ||
) |
Create a dynamic parking lot.
name | Dynamic parking lot name to create |
chan | Channel parkee to get dynamic parking lot parameters from |
dynamically | created parking lot on success |
NULL | on error |
Definition at line 1059 of file res_parking.c.
References create_dynamic_lot_full().
Referenced by park_common_setup(), and parking_park_call().
struct parking_lot* parking_create_dynamic_lot_forced | ( | const char * | name, |
struct ast_channel * | chan | ||
) |
Create a dynamic parking lot without respect to whether they are enabled by configuration.
name | Dynamic parking lot name to create |
chan | Channel parkee to get the dynamic parking lot parameters from |
dynamically | created parking lot on success |
NULL | on error |
Definition at line 1064 of file res_parking.c.
References create_dynamic_lot_full().
Referenced by AST_TEST_DEFINE().
int parking_dynamic_lots_enabled | ( | void | ) |
Check global configuration to see if dynamic parking is enabled.
1 | if dynamic parking is enabled |
0 | if dynamic parking is disabled |
Definition at line 928 of file res_parking.c.
References ao2_cleanup, ao2_global_obj_ref, globals, and RAII_VAR.
Referenced by cli_display_parking_global(), and create_dynamic_lot_full().
|
static |
Maps string values for option_handler_parkedfeature to their ENUM values.
Definition at line 544 of file res_parking.c.
References ast_false(), AST_FEATURE_FLAG_BYBOTH, AST_FEATURE_FLAG_BYCALLEE, and AST_FEATURE_FLAG_BYCALLER.
Referenced by option_handler_parkedfeature().
|
static |
destructor for parking_global_config
Definition at line 371 of file res_parking.c.
Referenced by parking_config_alloc().
struct parking_lot* parking_lot_build_or_update | ( | struct parking_lot_cfg * | cfg, |
int | dynamic | ||
) |
If a parking lot exists in the parking lot list already, update its status to match the provided configuration and return a reference return a reference to it. Otherwise, create a parking lot struct based on a parking lot configuration and return a reference to the new one.
cfg | The configuration being used as a reference to build the parking lot from. |
dynamic | non-zero if creating a dynamic parking lot with this. Don't replace existing parking lots. Ever. |
A | reference to the new parking lot |
NULL | if it was not found and could not be allocated |
Definition at line 868 of file res_parking.c.
References alloc_new_parking_lot(), ao2_cleanup, ao2_link, ao2_ref, ast_log, parking_lot::cfg, parking_lot::disable_mark, LOG_ERROR, parking_lot::mode, parking_lot_cfg::name, named_item_find(), NULL, PARKINGLOT_DYNAMIC, and PARKINGLOT_NORMAL.
Referenced by create_dynamic_lot_full(), generate_or_link_lots_to_configs(), and generate_test_parking_lot().
|
static |
create a parking lot structure
cat | name given to the parking lot |
NULL | failure |
non-NULL | successfully allocated parking lot |
Definition at line 461 of file res_parking.c.
References ao2_alloc, ao2_cleanup, ast_string_field_init, ast_string_field_set, name, NULL, and parking_lot_cfg_destructor().
Referenced by clone_parkinglot_cfg(), parking_lot_cfg_create(), and verify_default_parking_lot().
|
static |
Definition at line 338 of file res_parking.c.
References CMP_MATCH, CMP_STOP, parking_lot_cfg::name, OBJ_KEY, OBJ_PARTIAL_KEY, and OBJ_POINTER.
Referenced by parking_config_alloc().
struct parking_lot_cfg* parking_lot_cfg_create | ( | const char * | cat | ) |
Create an empty parking lot configuration structure useful for unit tests.
cat | name given to the parking lot |
NULL | failure |
non-NULL | successfully allocated parking lot |
Definition at line 481 of file res_parking.c.
References parking_lot_cfg_alloc().
Referenced by AST_TEST_DEFINE(), and generate_test_parking_lot().
int parking_lot_cfg_create_extensions | ( | struct parking_lot_cfg * | lot_cfg | ) |
Add extensions for a parking lot configuration.
lot_cfg | parking lot configuration to generate extensions for |
0 | on success |
non-zero | on failure |
Definition at line 758 of file res_parking.c.
References ast_context_find_or_create(), ast_free, ast_get_extension_registrar(), ast_log, AST_MAX_EXTENSION, ast_str_buffer(), ast_str_create, ast_str_set(), ast_string_field_build, ast_strlen_zero, ast_unlock_context(), ast_unlock_contexts(), ast_wrlock_context(), ast_wrlock_contexts(), BASE_REGISTRAR, E_MATCH, extension_is_compatible(), LOG_ERROR, parking_lot_cfg::name, NULL, PARK_APPLICATION, parking_lot_cfg::parkaddhints, PARKED_CALL_APPLICATION, parking_lot_cfg::parkext, parking_lot_cfg::parkext_exclusive, parking_add_extension(), parking_lot_cfg::parking_con, parking_lot_cfg::parking_start, pbx_find_extension(), PRIORITY_HINT, RAII_VAR, registrar, parking_lot_cfg::registrar, and pbx_find_info::stacklen.
Referenced by configure_parking_extensions(), create_dynamic_lot_full(), and generate_test_parking_lot().
|
static |
Destroy a parking lot cfg object.
Definition at line 427 of file res_parking.c.
References ast_string_field_free_memory, and parking_lot_cfg_remove_extensions().
Referenced by parking_lot_cfg_alloc().
|
static |
Definition at line 320 of file res_parking.c.
References ast_assert, ast_str_hash(), parking_lot_cfg::name, OBJ_KEY, OBJ_PARTIAL_KEY, and OBJ_POINTER.
Referenced by parking_config_alloc().
void parking_lot_cfg_remove_extensions | ( | struct parking_lot_cfg * | lot_cfg | ) |
Remove extensions belonging to a parking lot configuration.
lot_cfg | parking lot configuratin to remove extensions from |
Definition at line 663 of file res_parking.c.
References ast_context_destroy(), ast_string_field_set, ast_strlen_zero, NULL, registrar, and parking_lot_cfg::registrar.
Referenced by parking_lot_cfg_destructor(), remove_all_configured_parking_lot_extensions(), and remove_pending_parking_lot_extensions().
|
static |
Definition at line 625 of file res_parking.c.
References ao2_cleanup, ast_bridge_destroy(), ast_string_field_free_memory, parking_lot::cfg, parking_lot::parked_users, and parking_lot::parking_bridge.
Referenced by alloc_new_parking_lot().
|
static |
Definition at line 414 of file res_parking.c.
References parking_lot::disable_mark, parking_lot::mode, parking_lot_remove_if_unused(), PARKINGLOT_DISABLED, and PARKINGLOT_DYNAMIC.
Referenced by disable_marked_lots().
struct parking_lot* parking_lot_find_by_name | ( | const char * | lot_name | ) |
Find a parking lot based on its name.
lot_name | Name of the parking lot sought |
The | parking lot if found |
NULL | if no parking lot with the name specified exists |
Definition at line 601 of file res_parking.c.
References named_item_find().
Referenced by AST_TEST_DEFINE(), cli_display_parking_lot(), create_dynamic_lot_full(), dispose_test_lot(), func_get_parkingslot_channel(), manager_parking_status_single_lot(), park_common_setup(), parked_call_app_exec(), and parking_park_call().
int parking_lot_remove_if_unused | ( | struct parking_lot * | lot | ) |
Remove a parking lot from the usable lists if it is no longer involved in any calls and no configuration currently claims it.
lot | Which parking lot is being checked for elimination |
0 | if the parking lot was removed |
-1 | if the parking lot wasn't removed. |
Definition at line 400 of file res_parking.c.
References ao2_container_count(), ao2_unlink, parking_lot::mode, parking_lot::parked_users, and PARKINGLOT_DISABLED.
Referenced by dispose_test_lot(), parking_lot_disable(), parking_lot_retrieve_parked_user(), and unpark_parked_user().
|
static |
Definition at line 244 of file res_parking.c.
References parking_lot::name, OBJ_KEY, OBJ_PARTIAL_KEY, and OBJ_POINTER.
Referenced by load_module().
|
static |
Definition at line 1280 of file res_parking.c.
References aco_process_config(), ACO_PROCESS_ERROR, AST_MODFLAG_LOAD_ORDER, AST_MODPRI_DEVSTATE_PROVIDER, AST_MODULE_INFO(), AST_MODULE_LOAD_DECLINE, AST_MODULE_SUPPORT_CORE, ASTERISK_GPL_KEY, load_module(), reload(), and unload_module().
|
static |
Definition at line 678 of file res_parking.c.
References ao2_cleanup, ao2_global_obj_ref, ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, ast_context_destroy(), BASE_REGISTRAR, parking_lot::cfg, globals, NULL, parking_lot_cfg_remove_extensions(), and RAII_VAR.
Referenced by configure_parking_extensions(), and unload_module().
|
static |
Definition at line 1095 of file res_parking.c.
References ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, ast_context_destroy(), BASE_REGISTRAR, NULL, parking_lot_cfg_remove_extensions(), and parking_config::parking_lots.
Referenced by configure_parking_extensions().
|
static |
Definition at line 1190 of file res_parking.c.
References aco_info_destroy(), ao2_cleanup, ao2_global_obj_release, globals, NULL, remove_all_configured_parking_lot_extensions(), unload_parking_applications(), unload_parking_bridge_features(), unload_parking_devstate(), unload_parking_manager(), unload_parking_tests(), and unload_parking_ui().
Referenced by load_module(), and reload_module().
|
static |
Definition at line 1071 of file res_parking.c.
References aco_pending_config(), aco_set_defaults(), ao2_cleanup, ao2_find, ao2_link, ast_log, AST_LOG_NOTICE, ast_string_field_set, DEFAULT_PARKING_EXTEN, DEFAULT_PARKING_LOT, NULL, OBJ_KEY, parking_lot_cfg_alloc(), parking_config::parking_lots, and RAII_VAR.
Referenced by config_parking_preapply().
|
static |
Definition at line 1295 of file res_parking.c.
|
static |
Definition at line 1295 of file res_parking.c.
|
static |
Definition at line 285 of file res_parking.c.
struct aco_type* global_options[] = ACO_TYPES(&global_option) |
Definition at line 293 of file res_parking.c.
struct aco_file parking_lot_conf |
Definition at line 307 of file res_parking.c.
|
static |
All parking lots that are currently alive in some fashion can be obtained from here
Definition at line 266 of file res_parking.c.
Referenced by get_parking_lot_container().
|
static |
Definition at line 295 of file res_parking.c.
struct aco_type* parking_lot_types[] = ACO_TYPES(&parking_lot_type) |
Definition at line 305 of file res_parking.c.