diff --git a/include/asterisk/_private.h b/include/asterisk/_private.h index 4f81421f3a255055b7765f347335f7f4e716d970..65e403fb49936994faaadf88fdfdf8095fdf8667 100644 --- a/include/asterisk/_private.h +++ b/include/asterisk/_private.h @@ -37,6 +37,7 @@ int ast_term_init(void); /*!< Provided by term.c */ int astdb_init(void); /*!< Provided by db.c */ int ast_channels_init(void); /*!< Provided by channel.c */ void ast_builtins_init(void); /*!< Provided by cli.c */ +void ast_cli_channels_init(void); /*!< Provided by cli.c */ int ast_cli_perms_init(int reload); /*!< Provided by cli.c */ void dnsmgr_start_refresh(void); /*!< Provided by dnsmgr.c */ int ast_dns_system_resolver_init(void); /*!< Provided by dns_system_resolver.c */ diff --git a/main/asterisk.c b/main/asterisk.c index 2d70c53abd1fd53c31964655e863793058b9952f..dea849f10c1f0a6fdcd64ebcd9e82fcab0c43e30 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -4269,6 +4269,7 @@ static void asterisk_daemon(int isroot, const char *runuser, const char *rungrou /* loads the cli_permissions.conf file needed to implement cli restrictions. */ ast_cli_perms_init(0); + ast_cli_channels_init(); /* Not always safe to access CLI commands until startup is complete. */ ast_stun_init(); diff --git a/main/cli.c b/main/cli.c index 0c119531a62f848648fc88bd9befe40abe277876..03863358df2028c5a47571fcd1f3c8499f7d406b 100644 --- a/main/cli.c +++ b/main/cli.c @@ -2016,50 +2016,27 @@ static char *handle_help(struct ast_cli_entry *e, int cmd, struct ast_cli_args * static struct ast_cli_entry cli_cli[] = { AST_CLI_DEFINE(handle_commandmatchesarray, "Returns command matches array"), - AST_CLI_DEFINE(handle_nodebugchan_deprecated, "Disable debugging on channel(s)"), - - AST_CLI_DEFINE(handle_chanlist, "Display information on channels"), - - AST_CLI_DEFINE(handle_showcalls, "Display information on calls"), - - AST_CLI_DEFINE(handle_showchan, "Display information on a specific channel"), - - AST_CLI_DEFINE(handle_core_set_debug_channel, "Enable/disable debugging on a channel"), - AST_CLI_DEFINE(handle_debug_category, "Enable/disable debugging categories"), AST_CLI_DEFINE(handle_debug, "Set level of debug chattiness"), AST_CLI_DEFINE(handle_trace, "Set level of trace chattiness"), AST_CLI_DEFINE(handle_verbose, "Set level of verbose chattiness"), - AST_CLI_DEFINE(group_show_channels, "Display active channels with group(s)"), - AST_CLI_DEFINE(handle_help, "Display help list, or specific help on a command"), - AST_CLI_DEFINE(handle_logger_mute, "Toggle logging output to a console"), AST_CLI_DEFINE(handle_modlist, "List modules and info"), - AST_CLI_DEFINE(handle_load, "Load a module by name"), - AST_CLI_DEFINE(handle_reload, "Reload configuration for a module"), - AST_CLI_DEFINE(handle_core_reload, "Global reload"), - AST_CLI_DEFINE(handle_unload, "Unload a module by name"), - AST_CLI_DEFINE(handle_refresh, "Completely unloads and loads a module by name"), AST_CLI_DEFINE(handle_showuptime, "Show uptime information"), - AST_CLI_DEFINE(handle_softhangup, "Request a hangup on a given channel"), - AST_CLI_DEFINE(handle_cli_reload_permissions, "Reload CLI permissions config"), - AST_CLI_DEFINE(handle_cli_show_permissions, "Show CLI permissions"), - AST_CLI_DEFINE(handle_cli_check_permissions, "Try a permissions config for a user"), - AST_CLI_DEFINE(handle_cli_wait_fullybooted, "Wait for Asterisk to be fully booted"), #ifdef HAVE_MALLOC_TRIM @@ -2068,6 +2045,16 @@ static struct ast_cli_entry cli_cli[] = { }; +static struct ast_cli_entry cli_channels_cli[] = { + AST_CLI_DEFINE(handle_nodebugchan_deprecated, "Disable debugging on channel(s)"), + AST_CLI_DEFINE(handle_chanlist, "Display information on channels"), + AST_CLI_DEFINE(handle_showcalls, "Display information on calls"), + AST_CLI_DEFINE(handle_showchan, "Display information on a specific channel"), + AST_CLI_DEFINE(handle_core_set_debug_channel, "Enable/disable debugging on a channel"), + AST_CLI_DEFINE(group_show_channels, "Display active channels with group(s)"), + AST_CLI_DEFINE(handle_softhangup, "Request a hangup on a given channel"), +}; + /*! * Some regexp characters in cli arguments are reserved and used as separators. */ @@ -2239,6 +2226,11 @@ static void cli_shutdown(void) ast_cli_unregister_multiple(cli_cli, ARRAY_LEN(cli_cli)); } +static void cli_channels_shutdown(void) +{ + ast_cli_unregister_multiple(cli_channels_cli, ARRAY_LEN(cli_channels_cli)); +} + /*! \brief initialize the _full_cmd string in * each of the builtins. */ void ast_builtins_init(void) { @@ -2247,6 +2239,12 @@ void ast_builtins_init(void) ast_register_cleanup(cli_shutdown); } +void ast_cli_channels_init(void) +{ + ast_cli_register_multiple(cli_channels_cli, ARRAY_LEN(cli_channels_cli)); + ast_register_cleanup(cli_channels_shutdown); +} + /*! * match a word in the CLI entry. * returns -1 on mismatch, 0 on match of an optional word,