From 5737650a672ff2b1e2fdd8b76de345d12ede81c8 Mon Sep 17 00:00:00 2001 From: Kevin Harwell Date: Thu, 9 Apr 2015 22:03:17 +0000 Subject: res_pjsip: add CLI command to show global and system configuration Added a new CLI command for res_pjsip that shows both global and system configuration settings: pjsip show settings ASTERISK-24918 #close Reported by: Scott Griepentrog Review: https://reviewboard.asterisk.org/r/4597/ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434527 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- res/res_pjsip/config_system.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'res/res_pjsip/config_system.c') diff --git a/res/res_pjsip/config_system.c b/res/res_pjsip/config_system.c index a41af90ed..473eca818 100644 --- a/res/res_pjsip/config_system.c +++ b/res/res_pjsip/config_system.c @@ -26,6 +26,7 @@ #include "include/res_pjsip_private.h" #include "asterisk/threadpool.h" #include "asterisk/dns.h" +#include "asterisk/res_pjsip_cli.h" #define TIMER_T1_MIN 100 #define DEFAULT_TIMER_T1 500 @@ -112,6 +113,40 @@ static int system_apply(const struct ast_sorcery *system_sorcery, void *obj) return 0; } +static struct system_config *get_system_cfg(void) +{ + struct system_config *cfg; + struct ao2_container *systems; + systems = ast_sorcery_retrieve_by_fields(system_sorcery, "system", + AST_RETRIEVE_FLAG_MULTIPLE | AST_RETRIEVE_FLAG_ALL, NULL); + + if (!systems) { + return NULL; + } + + cfg = ao2_find(systems, NULL, 0); + ao2_ref(systems, -1); + return cfg; +} + +int sip_cli_print_system(struct ast_sip_cli_context *context) +{ + struct system_config *cfg = get_system_cfg(); + + if (!cfg) { + cfg = ast_sorcery_alloc(system_sorcery, "system", NULL); + if (!cfg) { + return -1; + } + } + + ast_str_append(&context->output_buffer, 0, "\nSystem Settings:\n\n"); + ast_sip_cli_print_sorcery_objectset(cfg, context, 0); + + ao2_ref(cfg, -1); + return 0; +} + int ast_sip_initialize_system(void) { RAII_VAR(struct ao2_container *, system_configs, NULL, ao2_cleanup); -- cgit v1.2.3