]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merge changes from team/mvanbaak/cli-command-audit
authorRussell Bryant <russell@russellbryant.com>
Fri, 8 Feb 2008 21:26:32 +0000 (21:26 +0000)
committerRussell Bryant <russell@russellbryant.com>
Fri, 8 Feb 2008 21:26:32 +0000 (21:26 +0000)
(closes issue #8925)

About a year ago, as Leif Madsen and Jim van Meggelen were going over the CLI
commands in Asterisk 1.4 for the next version of their book, they documented
a lot of inconsistencies.  This set of changes addresses all of these issues
and has been reviewed by Leif.

While this does introduce even more changes to the CLI command structure, it
makes everything consistent, which is the most important thing.

Thanks to all that helped with this one!

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@103171 65c4cc65-6c06-0410-ace0-fbb531ad65f3

19 files changed:
apps/app_minivm.c
apps/app_playback.c
apps/app_rpt.c
apps/app_voicemail.c
channels/chan_iax2.c
channels/chan_mgcp.c
channels/chan_sip.c
channels/chan_skinny.c
channels/chan_usbradio.c
funcs/func_devstate.c
main/asterisk.c
main/cdr.c
main/pbx.c
main/rtp.c
main/udptl.c
pbx/pbx_ael.c
pbx/pbx_dundi.c
res/res_agi.c
res/res_jabber.c

index 148ebf49493f2177fe62d395a5dc6a3287076a12..ae76f9e8973774d582326a790d399f67197ba6cf 100644 (file)
@@ -2602,7 +2602,7 @@ static char *handle_minivm_show_zones(struct ast_cli_entry *e, int cmd, struct a
                return NULL;
        }
 
-       if (a->argc != 3)
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
 
        AST_LIST_LOCK(&minivm_zones);
index 21b3ab3eba197a97b288efe2ad697a546c3c5470..b7409957acb45e8075f23ee89cc1ba4c9d5f781f 100644 (file)
@@ -374,7 +374,7 @@ static char *__say_cli_init(struct ast_cli_entry *e, int cmd, struct ast_cli_arg
        if (a->argc == 2) {
                ast_cli(a->fd, "say mode is [%s]\n", old_mode);
                return CLI_SUCCESS;
-       } else if (a->argc != 3)
+       } else if (a->argc != e->args)
                return CLI_SHOWUSAGE;
        mode = a->argv[2];
        if (!strcmp(mode, old_mode))
index 6eb0bfca86aa14fb1920e0906b53029f10c6e2d4..f703aaec0a5bfbe4ae318700424337d7dc491ef3 100644 (file)
@@ -1090,7 +1090,7 @@ static char *handle_cli_rpt_debug_level(struct ast_cli_entry *e, int cmd, struct
        case CLI_GENERATE:
                return NULL;
        }
-       if (a->argc != 4)
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
        newlevel = myatoi(a->argv[3]);
        if ((newlevel < 0) || (newlevel > 7))
index 8d169061b3556b0dfb9af7c31ec14526285d9edc..7a679a04e136d342db022e2ea919df3588dd42cc 100644 (file)
@@ -7859,7 +7859,7 @@ static char *handle_voicemail_show_zones(struct ast_cli_entry *e, int cmd, struc
                return NULL;
        }
 
-       if (a->argc != 3)
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
 
        AST_LIST_LOCK(&zones);
@@ -7891,7 +7891,7 @@ static char *handle_voicemail_reload(struct ast_cli_entry *e, int cmd, struct as
                return NULL;
        }
 
-       if (a->argc != 2)
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
 
        ast_cli(a->fd, "Reloading voicemail configuration...\n");       
index c393711b981072f69e370f4ad77df8427f292bdb..990ab41fddfca8a4777418a2173fddf47d1e4116 100644 (file)
@@ -5262,117 +5262,158 @@ static char *handle_cli_iax2_show_netstats(struct ast_cli_entry *e, int cmd, str
        return CLI_SUCCESS;
 }
 
-static char *handle_cli_iax2_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_cli_iax2_set_debug_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "iax2 set debug";
+               e->command = "iax2 set debug [off]";
                e->usage =
-                       "Usage: iax2 set debug\n"
-                       "       Enables dumping of IAX packets for debugging purposes.\n";
+                       "Usage: iax2 set debug [off]\n"
+                       "       Enables/Disables dumping of IAX packets for debugging purposes.\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
-       if (a->argc < 2 || a->argc > 3)
+       if (a->argc < 3 || a->argc > 4)
                return CLI_SHOWUSAGE;
-       iaxdebug = 1;
-       ast_cli(a->fd, "IAX2 Debugging Enabled\n");
+       if (a->argc == 3) {
+               iaxdebug = 1;
+               ast_cli(a->fd, "IAX2 Debugging Enabled\n");
+       } else {
+               iaxdebug = 0;
+               ast_cli(a->fd, "IAX2 Debugging Disabled\n");
+       }
        return CLI_SUCCESS;
 }
 
-static char *handle_cli_iax2_set_debug_off(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_cli_iax2_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "iax2 set debug off";
+               e->command = "iax2 set debug {on|off}";
                e->usage =
-                       "Usage: iax2 set debug off\n"
-                       "       Disables dumping of IAX packets for debugging purposes.\n";
+                       "Usage: iax2 set debug {on|off}\n"
+                       "       Enables/Disables dumping of IAX packets for debugging purposes.\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
-       if (a->argc < 3 || a->argc > 4)
+
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
-       iaxdebug = 0;
-       ast_cli(a->fd, "IAX2 Debugging Disabled\n");
+
+       if (!strncasecmp(a->argv[e->args -1], "on", 2)) {
+               iaxdebug = 1;
+               ast_cli(a->fd, "IAX2 Debugging Enabled\n");
+       } else {
+               iaxdebug = 0;
+               ast_cli(a->fd, "IAX2 Debugging Disabled\n");
+       }
        return CLI_SUCCESS;
 }
 
-static char *handle_cli_iax2_set_debug_trunk(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+
+static char *handle_cli_iax2_set_debug_trunk_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "iax2 set debug trunk";
+               e->command = "iax2 set debug trunk [off]";
                e->usage =
-                       "Usage: iax2 set debug trunk\n"
-                       "       Requests current status of IAX trunking\n";
+                       "Usage: iax2 set debug trunk [off]\n"
+                       "       Enables/Disables debugging of IAX trunking\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
-       if (a->argc < 3 || a->argc > 4)
+
+       if (a->argc < 4 || a->argc > 5)
                return CLI_SHOWUSAGE;
-       iaxtrunkdebug = 1;
-       ast_cli(a->fd, "IAX2 Trunk Debugging Requested\n");
+
+       if (a->argc == 4) {
+               iaxtrunkdebug = 1;
+               ast_cli(a->fd, "IAX2 Trunk Debugging Enabled\n");
+       } else {
+               iaxtrunkdebug = 0;
+               ast_cli(a->fd, "IAX2 Trunk Debugging Disabled\n");
+       }
        return CLI_SUCCESS;
 }
 
-static char *handle_cli_iax2_set_debug_trunk_off(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_cli_iax2_set_debug_trunk(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "iax2 set debug trunk off";
+               e->command = "iax2 set debug trunk {on|off}";
                e->usage =
-                       "Usage: iax2 set debug trunk off\n"
-                       "       Disables debugging of IAX trunking\n";
+                       "Usage: iax2 set debug trunk {on|off}\n"
+                       "       Enables/Disables debugging of IAX trunking\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
-       if (a->argc < 4 || a->argc > 5)
+
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
-       iaxtrunkdebug = 0;
-       ast_cli(a->fd, "IAX2 Trunk Debugging Disabled\n");
+
+       if (!strncasecmp(a->argv[e->args - 1], "on", 2)) {
+               iaxtrunkdebug = 1;
+               ast_cli(a->fd, "IAX2 Trunk Debugging Enabled\n");
+       } else {
+               iaxtrunkdebug = 0;
+               ast_cli(a->fd, "IAX2 Trunk Debugging Disabled\n");
+       }
        return CLI_SUCCESS;
 }
 
-static char *handle_cli_iax2_set_debug_jb(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_cli_iax2_set_debug_jb_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "iax2 set debug jb";
+               e->command = "iax2 set debug jb [off]";
                e->usage =
-                       "Usage: iax2 set debug jb\n"
-                       "       Enables jitterbuffer debugging information\n";
+                       "Usage: iax2 set debug jb [off]\n"
+                       "       Enables/Disables jitterbuffer debugging information\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
-       if (a->argc < 3 || a->argc > 4)
+
+       if (a->argc < 4 || a->argc > 5)
                return CLI_SHOWUSAGE;
-       jb_setoutput(jb_error_output, jb_warning_output, jb_debug_output);
-       ast_cli(a->fd, "IAX2 Jitterbuffer Debugging Enabled\n");
+       
+       if (a->argc == 4) {
+               jb_setoutput(jb_error_output, jb_warning_output, jb_debug_output);
+               ast_cli(a->fd, "IAX2 Jitterbuffer Debugging Enabled\n");
+       } else {
+               jb_setoutput(jb_error_output, jb_warning_output, NULL);
+               ast_cli(a->fd, "IAX2 Jitterbuffer Debugging Disabled\n");
+       }
        return CLI_SUCCESS;
 }
 
-static char *handle_cli_iax2_set_debug_jb_off(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_cli_iax2_set_debug_jb(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "iax2 set debug jb off";
+               e->command = "iax2 set debug jb {on|off}";
                e->usage =
-                       "Usage: iax2 set debug jb off\n"
-                       "       Disables jitterbuffer debugging information\n";
+                       "Usage: iax2 set debug jb {on|off}\n"
+                       "       Enables/Disables jitterbuffer debugging information\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
-       if (a->argc < 4 || a->argc > 5)
+
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
-       jb_setoutput(jb_error_output, jb_warning_output, NULL);
-       ast_cli(a->fd, "IAX2 Jitterbuffer Debugging Disabled\n");
+       
+       if (!strncasecmp(a->argv[e->args -1], "on", 2)) {
+               jb_setoutput(jb_error_output, jb_warning_output, jb_debug_output);
+               ast_cli(a->fd, "IAX2 Jitterbuffer Debugging Enabled\n");
+       } else {
+               jb_setoutput(jb_error_output, jb_warning_output, NULL);
+               ast_cli(a->fd, "IAX2 Jitterbuffer Debugging Disabled\n");
+       }
        return CLI_SUCCESS;
 }
 
@@ -11474,17 +11515,18 @@ static struct ast_switch iax2_switch =
 #endif
 */
 
+static struct ast_cli_entry cli_iax2_set_debug_deprecated = AST_CLI_DEFINE(handle_cli_iax2_set_debug_deprecated, "Enable/Disable IAX debugging");
+static struct ast_cli_entry cli_iax2_set_debug_trunk_deprecated = AST_CLI_DEFINE(handle_cli_iax2_set_debug_trunk_deprecated, "Enable/Disable IAX debugging");
+static struct ast_cli_entry cli_iax2_set_debug_jb_deprecated = AST_CLI_DEFINE(handle_cli_iax2_set_debug_jb_deprecated, "Enable/Disable IAX debugging");
+
 static struct ast_cli_entry cli_iax2[] = {
        AST_CLI_DEFINE(handle_cli_iax2_provision,           "Provision an IAX device"),
        AST_CLI_DEFINE(handle_cli_iax2_prune_realtime,      "Prune a cached realtime lookup"),
        AST_CLI_DEFINE(handle_cli_iax2_reload,              "Reload IAX configuration"),
        AST_CLI_DEFINE(handle_cli_iax2_set_mtu,             "Set the IAX systemwide trunking MTU"),
-       AST_CLI_DEFINE(handle_cli_iax2_set_debug,           "Enable IAX debugging"),
-       AST_CLI_DEFINE(handle_cli_iax2_set_debug_trunk,     "Enable IAX trunk debugging"),
-       AST_CLI_DEFINE(handle_cli_iax2_set_debug_jb,        "Enable IAX jitterbuffer debugging"),
-       AST_CLI_DEFINE(handle_cli_iax2_set_debug_off,       "Disable IAX debugging"),
-       AST_CLI_DEFINE(handle_cli_iax2_set_debug_trunk_off, "Disable IAX trunk debugging"),
-       AST_CLI_DEFINE(handle_cli_iax2_set_debug_jb_off,    "Disable IAX jitterbuffer debugging"),
+       AST_CLI_DEFINE(handle_cli_iax2_set_debug,           "Enable/Disable IAX debugging", .deprecate_cmd = &cli_iax2_set_debug_deprecated),
+       AST_CLI_DEFINE(handle_cli_iax2_set_debug_trunk,     "Enable/Disable IAX trunk debugging", .deprecate_cmd = &cli_iax2_set_debug_trunk_deprecated),
+       AST_CLI_DEFINE(handle_cli_iax2_set_debug_jb,        "Enable/Disable IAX jitterbuffer debugging", .deprecate_cmd = &cli_iax2_set_debug_jb_deprecated),
        AST_CLI_DEFINE(handle_cli_iax2_show_cache,          "Display IAX cached dialplan"),
        AST_CLI_DEFINE(handle_cli_iax2_show_channels,       "List active IAX channels"),
        AST_CLI_DEFINE(handle_cli_iax2_show_firmware,       "List available IAX firmware"),
index de7c624be0106e318803300b36f7053b86bb42ed..f4ce2ce6a2e161021136b73bd7e535cb123138ec 100644 (file)
@@ -1139,51 +1139,64 @@ static char *handle_mgcp_audit_endpoint(struct ast_cli_entry *e, int cmd, struct
        return CLI_SUCCESS;
 }
 
-static char *handle_mgcp_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_mgcp_set_debug_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "mgcp set debug";
+               e->command = "mgcp set debug [off]";
                e->usage =
-                       "Usage: mgcp set debug\n"
-                       "       Enables dumping of MGCP packets for debugging purposes\n";      
+                       "Usage: mgcp set debug [off]\n"
+                       "       Enables/Disables dumping of MGCP packets for debugging purposes\n";     
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
 
-       if (a->argc != 3)
+       if (a->argc < 3 || a->argc > 4)
                return CLI_SHOWUSAGE;
-       mgcpdebug = 1;
-       ast_cli(a->fd, "MGCP Debugging Enabled\n");
+       if (a->argc == 3) {
+               mgcpdebug = 1;
+               ast_cli(a->fd, "MGCP Debugging Enabled\n");
+       } else if (!strncasecmp(a->argv[3], "off", 3)) {
+               mgcpdebug = 0;
+               ast_cli(a->fd, "MGCP Debugging Disabled\n");
+       }
        return CLI_SUCCESS;
 }
 
-static char *handle_mgcp_set_debug_off(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_mgcp_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "mgcp set debug off";
+               e->command = "mgcp set debug {on|off}";
                e->usage =
-                       "Usage: mgcp set debug off\n"
-                       "       Disables dumping of MGCP packets for debugging purposes\n";
+                       "Usage: mgcp set debug {on|off}\n"
+                       "       Enables/Disables dumping of MGCP packets for debugging purposes\n";     
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
 
-       if (a->argc != 4)
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
-       mgcpdebug = 0;
-       ast_cli(a->fd, "MGCP Debugging Disabled\n");
+
+       if (!strncasecmp(a->argv[e->args - 1], "on", 2)) {
+               mgcpdebug = 1;
+               ast_cli(a->fd, "MGCP Debugging Enabled\n");
+       } else if (!strncasecmp(a->argv[3], "off", 3)) {
+               mgcpdebug = 0;
+               ast_cli(a->fd, "MGCP Debugging Disabled\n");
+       } else {
+               return CLI_SHOWUSAGE;
+       }
        return CLI_SUCCESS;
 }
 
+static struct ast_cli_entry cli_mgcp_set_debug_deprecated = AST_CLI_DEFINE(handle_mgcp_set_debug_deprecated, "Enable/Disable MGCP debugging");
 static struct ast_cli_entry cli_mgcp[] = {
        AST_CLI_DEFINE(handle_mgcp_audit_endpoint, "Audit specified MGCP endpoint"),
        AST_CLI_DEFINE(handle_mgcp_show_endpoints, "List defined MGCP endpoints"),
-       AST_CLI_DEFINE(handle_mgcp_set_debug, "Enable MGCP debugging"),
-       AST_CLI_DEFINE(handle_mgcp_set_debug_off, "Disable MGCP debugging"),
+       AST_CLI_DEFINE(handle_mgcp_set_debug, "Enable/Disable MGCP debugging", .deprecate_cmd = &cli_mgcp_set_debug_deprecated),
        AST_CLI_DEFINE(mgcp_reload, "Reload MGCP configuration"),
 };
 
index 6408f52aad424e469646f52e478f61555068d9fd..40320b1bdc0f85d5bba1efa63d428d13c77a3d20 100644 (file)
@@ -1853,8 +1853,8 @@ static char *sip_do_debug_ip(int fd, char *arg);
 static char *sip_do_debug_peer(int fd, char *arg);
 static char *sip_do_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
 static char *sip_notify(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
-static char *sip_do_history(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
-static char *sip_no_history(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
+static char *sip_do_history_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
+static char *sip_set_history(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
 static int sip_dtmfmode(struct ast_channel *chan, void *data);
 static int sip_addheader(struct ast_channel *chan, void *data);
 static int sip_do_reload(enum channelreloadreason reason);
@@ -13243,7 +13243,7 @@ static char *sip_show_history(struct ast_cli_entry *e, int cmd, struct ast_cli_a
        if (a->argc != 4)
                return CLI_SHOWUSAGE;
        if (!recordhistory)
-               ast_cli(a->fd, "\n***Note: History recording is currently DISABLED.  Use 'sip history' to ENABLE.\n");
+               ast_cli(a->fd, "\n***Note: History recording is currently DISABLED.  Use 'sip set history on' to ENABLE.\n");
        len = strlen(a->argv[3]);
        dialoglist_lock();
        for (cur = dialoglist; cur; cur = cur->next) {
@@ -13652,49 +13652,63 @@ static char *sip_notify(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a
        return CLI_SUCCESS;
 }
 
-/*! \brief Enable SIP History logging (CLI) */
-static char *sip_do_history(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+/*! \brief Enable/Disable SIP History logging (CLI) - deprecated. use sip_set_history instead */
+static char *sip_do_history_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "sip history";
+               e->command = "sip history [off]";
                e->usage =
-                       "Usage: sip history\n"
-                       "       Enables recording of SIP dialog history for debugging purposes.\n"
+                       "Usage: sip history [off]\n"
+                       "       Enables/Disables recording of SIP dialog history for debugging purposes.\n"
                        "       Use 'sip show history' to view the history of a call number.\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
 
-       if (a->argc != 2) {
+       if (a->argc < 2 || a->argc > 3) {
                return CLI_SHOWUSAGE;
        }
-       recordhistory = TRUE;
-       ast_cli(a->fd, "SIP History Recording Enabled (use 'sip show history')\n");
+       if (a->argc == 2) {
+               recordhistory = TRUE;
+               ast_cli(a->fd, "SIP History Recording Enabled (use 'sip show history')\n");
+       } else {
+               if (strncasecmp(a->argv[2], "off", 3))
+                       return CLI_SHOWUSAGE;
+               recordhistory = FALSE;
+               ast_cli(a->fd, "SIP History Recording Disabled\n");
+       }
        return CLI_SUCCESS;
 }
 
-/*! \brief Disable SIP History logging (CLI) */
-static char *sip_no_history(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+/*! \brief Enable/Disable SIP History logging (CLI) */
+static char *sip_set_history(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
-
        switch (cmd) {
        case CLI_INIT:
-               e->command = "sip history off";
+               e->command = "sip set history {on|off}";
                e->usage =
-                       "Usage: sip history off\n"
-                       "       Disables recording of SIP dialog history for debugging purposes\n";     
+                       "Usage: sip history {on|off}\n"
+                       "       Enables/Disables recording of SIP dialog history for debugging purposes.\n"
+                       "       Use 'sip show history' to view the history of a call number.\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
 
-       if (a->argc != 3) {
+       if (a->argc != e->args)
+               return CLI_SHOWUSAGE;
+
+       if (!strncasecmp(a->argv[e->args - 1], "on", 2)) {
+               recordhistory = TRUE;
+               ast_cli(a->fd, "SIP History Recording Enabled (use 'sip show history')\n");
+       } else if (!strncasecmp(a->argv[e->args - 1], "off", 3)) {
+               recordhistory = FALSE;
+               ast_cli(a->fd, "SIP History Recording Disabled\n");
+       } else {
                return CLI_SHOWUSAGE;
        }
-       recordhistory = FALSE;
-       ast_cli(a->fd, "SIP History Recording Disabled\n");
        return CLI_SUCCESS;
 }
 
@@ -21102,6 +21116,7 @@ static int reload(void)
        return 1;
 }
 
+static struct ast_cli_entry cli_sip_do_history_deprecated = AST_CLI_DEFINE(sip_do_history_deprecated, "Enable/Disable SIP history");
 /*! \brief SIP Cli commands definition */
 static struct ast_cli_entry cli_sip[] = {
        AST_CLI_DEFINE(sip_show_channels, "List active SIP channels/subscriptions"),
@@ -21120,8 +21135,7 @@ static struct ast_cli_entry cli_sip[] = {
        AST_CLI_DEFINE(sip_show_user, "Show details on specific SIP user"),
        AST_CLI_DEFINE(sip_prune_realtime, "Prune cached Realtime users/peers"),
        AST_CLI_DEFINE(sip_do_debug, "Enable/Disable SIP debugging"),
-       AST_CLI_DEFINE(sip_do_history, "Enable SIP history"),
-       AST_CLI_DEFINE(sip_no_history, "Disable SIP history"),
+       AST_CLI_DEFINE(sip_set_history, "Enable/Disable SIP history", .deprecate_cmd = &cli_sip_do_history_deprecated),
        AST_CLI_DEFINE(sip_reload, "Reload SIP configuration"),
        AST_CLI_DEFINE(sip_show_tcp, "List TCP Connections")
 };
index 7192581784cc7903b4e9e4566065b7f5ebee53b5..b9fe618d23038cbb4b7d4b9427bc38a8163d81d0 100644 (file)
@@ -2371,46 +2371,62 @@ static struct ast_rtp_protocol skinny_rtp = {
        .set_rtp_peer = skinny_set_rtp_peer,
 };
 
-static char *handle_skinny_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_skinny_set_debug_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "skinny set debug";
+               e->command = "skinny set debug [off]";
                e->usage =
-                       "Usage: skinny set debug\n"
-                       "       Enables dumping of Skinny packets for debugging purposes\n";
+                       "Usage: skinny set debug [off]\n"
+                       "       Enables/Disables dumping of Skinny packets for debugging purposes\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
        
-       if (a->argc != 3)
+       if (a->argc < 3 || a->argc > 4)
                return CLI_SHOWUSAGE;
 
-       skinnydebug = 1;
-       ast_cli(a->fd, "Skinny Debugging Enabled\n");
-       return CLI_SUCCESS;
+       if (a->argc == 3) {
+               skinnydebug = 1;
+               ast_cli(a->fd, "Skinny Debugging Enabled\n");
+               return CLI_SUCCESS;
+       } else if (!strncasecmp(a->argv[3], "off", 3)) {
+               skinnydebug = 0;
+               ast_cli(a->fd, "Skinny Debugging Disabled\n");
+               return CLI_SUCCESS;
+       } else {
+               return CLI_SHOWUSAGE;
+       }
 }
 
-static char *handle_skinny_set_debug_off(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_skinny_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "skinny set debug off";
+               e->command = "skinny set debug {on|off}";
                e->usage =
-                       "Usage: skinny set debug off\n"
-                       "       Disables dumping of Skinny packets for debugging purposes\n";
+                       "Usage: skinny set debug {on|off}\n"
+                       "       Enables/Disables dumping of Skinny packets for debugging purposes\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
-
-       if (a->argc != 4)
+       
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
 
-       skinnydebug = 0;
-       ast_cli(a->fd, "Skinny Debugging Disabled\n");
-       return CLI_SUCCESS;
+       if (!strncasecmp(a->argv[e->args - 1], "on", 2)) {
+               skinnydebug = 1;
+               ast_cli(a->fd, "Skinny Debugging Enabled\n");
+               return CLI_SUCCESS;
+       } else if (!strncasecmp(a->argv[e->args - 1], "off", 3)) {
+               skinnydebug = 0;
+               ast_cli(a->fd, "Skinny Debugging Disabled\n");
+               return CLI_SUCCESS;
+       } else {
+               return CLI_SHOWUSAGE;
+       }
 }
 
 static char *complete_skinny_devices(const char *word, int state)
@@ -2841,14 +2857,14 @@ static char *handle_skinny_show_settings(struct ast_cli_entry *e, int cmd, struc
        return CLI_SUCCESS;
 }
 
+static struct ast_cli_entry cli_skinny_set_debug_deprecated = AST_CLI_DEFINE(handle_skinny_set_debug_deprecated, "Enable/Disable Skinny debugging");
 static struct ast_cli_entry cli_skinny[] = {
        AST_CLI_DEFINE(handle_skinny_show_devices, "List defined Skinny devices"),
        AST_CLI_DEFINE(handle_skinny_show_device, "List Skinny device information"),
        AST_CLI_DEFINE(handle_skinny_show_lines, "List defined Skinny lines per device"),       
        AST_CLI_DEFINE(handle_skinny_show_line, "List Skinny line information"),
        AST_CLI_DEFINE(handle_skinny_show_settings, "List global Skinny settings"),
-       AST_CLI_DEFINE(handle_skinny_set_debug, "Enable Skinny debugging"),
-       AST_CLI_DEFINE(handle_skinny_set_debug_off, "Disable Skinny debugging"),
+       AST_CLI_DEFINE(handle_skinny_set_debug, "Enable/Disable Skinny debugging", .deprecate_cmd = &cli_skinny_set_debug_deprecated),
        AST_CLI_DEFINE(handle_skinny_reset, "Reset Skinny device(s)"),
 };
 
index 6b2154c82793dceb1d260b3d2c70cab49a7bc8e9..06f97939d5acfd8f6505f80556e5d2d9421a405f 100644 (file)
@@ -1622,7 +1622,7 @@ static int set_txctcss_level(struct chan_usbradio_pvt *o)
 /*
        CLI debugging on and off
 */
-static char *handle_cli_radio_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_cli_radio_set_debug_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        struct chan_usbradio_pvt *o = NULL;
 
@@ -1652,11 +1652,43 @@ static char *handle_cli_radio_set_debug(struct ast_cli_entry *e, int cmd, struct
        return CLI_SUCCESS;
 }
 
+static char *handle_cli_radio_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       struct chan_usbradio_pvt *o = NULL;
+
+       switch (cmd) {
+       case CLI_INIT:
+               e->command = "radio set debug {on|off}";
+               e->usage =
+                       "Usage: radio set debug {on|off}\n"
+                       "       Enable/Disable radio debugging.\n";
+       case CLI_GENERATE:
+               return NULL;
+       }
+
+       if (a->argc != e->args)
+               return CLI_SHOWUSAGE;
+
+       o = find_desc(usbradio_active);
+
+       if (!strncasecmp(a->argv[e->args - 1], "on", 2))
+               o->debuglevel = 1;
+       else if (!strncasecmp(a->argv[e->args - 1], "off", 3))
+               o->debuglevel = 0;
+       else
+               return CLI_SHOWUSAGE;
+
+       ast_cli(a->fd, "USB Radio debugging %s.\n", o->debuglevel ? "enabled" : "disabled");
+
+       return CLI_SUCCESS;
+}
+
+static struct ast_cli_entry cli_radio_set_debug_deprecated = AST_CLI_DEFINE(handle_cli_radio_set_debug_deprecated, "Enable/Disable Radio Debugging");
 static struct ast_cli_entry cli_usbradio[] = {
        AST_CLI_DEFINE(handle_cli_radio_key,       "Simulate Rx Signal Present"),
        AST_CLI_DEFINE(handle_cli_radio_unkey,     "Simulate Rx Signal Lusb"),
        AST_CLI_DEFINE(handle_cli_radio_tune,      "Radio Tune"),
-       AST_CLI_DEFINE(handle_cli_radio_set_debug, "Enable/Disable Radio Debugging"),
+       AST_CLI_DEFINE(handle_cli_radio_set_debug, "Enable/Disable Radio Debugging", .deprecate_cmd = &cli_radio_set_debug_deprecated),
 };
 
 /*
index 950208be5e37b6c45ec65b490f4737143aa6f22a..220fd50c3c798c9b4fd6c1d7fbfcad04a1e286bd 100644 (file)
@@ -127,7 +127,7 @@ static enum ast_device_state custom_devstate_callback(const char *data)
        return ast_devstate_val(buf);
 }
 
-static char *cli_funcdevstate_list(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_cli_funcdevstate_list(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        struct ast_db_entry *db_entry, *db_tree;
 
@@ -171,8 +171,53 @@ static char *cli_funcdevstate_list(struct ast_cli_entry *e, int cmd, struct ast_
        return CLI_SUCCESS;
 }
 
+static char *handle_cli_devstate_list(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       struct ast_db_entry *db_entry, *db_tree;
+
+       switch (cmd) {
+       case CLI_INIT:
+               e->command = "devstate list";
+               e->usage =
+                       "Usage: devstate list\n"
+                       "       List all custom device states that have been set by using\n"
+                       "       the DEVICE_STATE dialplan function.\n";
+               return NULL;
+       case CLI_GENERATE:
+               return NULL;
+       }
+
+       if (a->argc != e->args)
+               return CLI_SHOWUSAGE;
+
+       ast_cli(a->fd, "\n"
+               "---------------------------------------------------------------------\n"
+               "--- Custom Device States --------------------------------------------\n"
+               "---------------------------------------------------------------------\n"
+               "---\n");
+
+       db_entry = db_tree = ast_db_gettree(astdb_family, NULL);
+       for (; db_entry; db_entry = db_entry->next) {
+               const char *dev_name = strrchr(db_entry->key, '/') + 1;
+               if (dev_name <= (const char *) 1)
+                       continue;
+               ast_cli(a->fd, "--- Name: 'Custom:%s'  State: '%s'\n"
+                              "---\n", dev_name, db_entry->data);
+       }
+       ast_db_freetree(db_tree);
+       db_tree = NULL;
+
+       ast_cli(a->fd,
+               "---------------------------------------------------------------------\n"
+               "---------------------------------------------------------------------\n"
+               "\n");
+
+       return CLI_SUCCESS;
+}
+
+static struct ast_cli_entry cli_funcdevstate_list_deprecated = AST_CLI_DEFINE(handle_cli_funcdevstate_list, "List currently known custom device states");
 static struct ast_cli_entry cli_funcdevstate[] = {
-       AST_CLI_DEFINE(cli_funcdevstate_list, "List currently known custom device states"),
+       AST_CLI_DEFINE(handle_cli_devstate_list, "List currently known custom device states", .deprecate_cmd = &cli_funcdevstate_list_deprecated),
 };
 
 static struct ast_custom_function devstate_function = {
index 4b899cdd97b3a807dc1c36daf6ff1a78761efab5..187623e71f515c881561c68fc90ee28515999fce 100644 (file)
@@ -1535,28 +1535,36 @@ static char *handle_stop_now(struct ast_cli_entry *e, int cmd, struct ast_cli_ar
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "stop now";
+               e->command = "core stop now";
                e->usage = 
-                       "Usage: stop now\n"
+                       "Usage: core stop now\n"
                        "       Shuts down a running Asterisk immediately, hanging up all active calls .\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
 
-       if (a->argc != 2)
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
        quit_handler(0, 0 /* Not nice */, 1 /* safely */, 0 /* not restart */);
        return CLI_SUCCESS;
 }
 
+static char *handle_stop_now_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       char *res = handle_stop_now(e, cmd, a);
+       if (cmd == CLI_INIT)
+               e->command = "stop now";
+       return res;
+}
+
 static char *handle_stop_gracefully(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "stop gracefully";
+               e->command = "core stop gracefully";
                e->usage = 
-                       "Usage: stop gracefully\n"
+                       "Usage: core stop gracefully\n"
                        "       Causes Asterisk to not accept new calls, and exit when all\n"
                        "       active calls have terminated normally.\n";
                return NULL;
@@ -1564,39 +1572,55 @@ static char *handle_stop_gracefully(struct ast_cli_entry *e, int cmd, struct ast
                return NULL;
        }
 
-       if (a->argc != 2)
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
        quit_handler(0, 1 /* nicely */, 1 /* safely */, 0 /* no restart */);
        return CLI_SUCCESS;
 }
 
+static char *handle_stop_gracefully_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       char *res = handle_stop_gracefully(e, cmd, a);
+       if (cmd == CLI_INIT)
+               e->command = "stop gracefully";
+       return res;
+}
+
 static char *handle_stop_when_convenient(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "stop when convenient";
+               e->command = "core stop when convenient";
                e->usage = 
-                       "Usage: stop when convenient\n"
+                       "Usage: core stop when convenient\n"
                        "       Causes Asterisk to perform a shutdown when all active calls have ended.\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
 
-       if (a->argc != 3)
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
        ast_cli(a->fd, "Waiting for inactivity to perform halt\n");
        quit_handler(0, 2 /* really nicely */, 1 /* safely */, 0 /* don't restart */);
        return CLI_SUCCESS;
 }
 
+static char *handle_stop_when_convenient_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       char *res = handle_stop_when_convenient(e, cmd, a);
+       if (cmd == CLI_INIT)
+               e->command = "stop when convenient";
+       return res;
+}
+
 static char *handle_restart_now(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "restart now";
+               e->command = "core restart now";
                e->usage = 
-                       "Usage: restart now\n"
+                       "Usage: core restart now\n"
                        "       Causes Asterisk to hangup all calls and exec() itself performing a cold\n"
                        "       restart.\n";
                return NULL;
@@ -1604,19 +1628,27 @@ static char *handle_restart_now(struct ast_cli_entry *e, int cmd, struct ast_cli
                return NULL;
        }
 
-       if (a->argc != 2)
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
        quit_handler(0, 0 /* not nicely */, 1 /* safely */, 1 /* restart */);
        return CLI_SUCCESS;
 }
 
+static char *handle_restart_now_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       char *res = handle_restart_now(e, cmd, a);
+       if (cmd == CLI_INIT)
+               e->command = "restart now";
+       return res;
+}
+
 static char *handle_restart_gracefully(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "restart gracefully";
+               e->command = "core restart gracefully";
                e->usage = 
-                       "Usage: restart gracefully\n"
+                       "Usage: core restart gracefully\n"
                        "       Causes Asterisk to stop accepting new calls and exec() itself performing a cold\n"
                        "       restart when all active calls have ended.\n";
                return NULL;
@@ -1624,39 +1656,55 @@ static char *handle_restart_gracefully(struct ast_cli_entry *e, int cmd, struct
                return NULL;
        }
 
-       if (a->argc != 2)
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
        quit_handler(0, 1 /* nicely */, 1 /* safely */, 1 /* restart */);
        return CLI_SUCCESS;
 }
 
+static char *handle_restart_gracefully_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       char *res = handle_restart_gracefully(e, cmd, a);
+       if (cmd == CLI_INIT)
+               e->command = "restart gracefully";
+       return res;
+}
+
 static char *handle_restart_when_convenient(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "restart when convenient";
+               e->command = "core restart when convenient";
                e->usage = 
-                       "Usage: restart when convenient\n"
+                       "Usage: core restart when convenient\n"
                        "       Causes Asterisk to perform a cold restart when all active calls have ended.\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
 
-       if (a->argc != 3)
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
        ast_cli(a->fd, "Waiting for inactivity to perform restart\n");
        quit_handler(0, 2 /* really nicely */, 1 /* safely */, 1 /* restart */);
        return CLI_SUCCESS;
 }
 
+static char *handle_restart_when_convenient_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       char *res = handle_restart_when_convenient(e, cmd, a);
+       if (cmd == CLI_INIT)
+               e->command = "restart when convenient";
+       return res;
+}
+
 static char *handle_abort_shutdown(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "abort shutdown";
+               e->command = "core abort shutdown";
                e->usage = 
-                       "Usage: abort shutdown\n"
+                       "Usage: core abort shutdown\n"
                        "       Causes Asterisk to abort an executing shutdown or restart, and resume normal\n"
                        "       call operations.\n";
                return NULL;
@@ -1664,13 +1712,21 @@ static char *handle_abort_shutdown(struct ast_cli_entry *e, int cmd, struct ast_
                return NULL;
        }
 
-       if (a->argc != 2)
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
        ast_cancel_shutdown();
        shuttingdown = 0;
        return CLI_SUCCESS;
 }
 
+static char *handle_abort_shutdown_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       char *res = handle_abort_shutdown(e, cmd, a);
+       if (cmd == CLI_INIT)
+               e->command = "abort shutdown";
+       return res;
+}
+
 static char *handle_bang(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
@@ -1770,14 +1826,24 @@ static char *show_license(struct ast_cli_entry *e, int cmd, struct ast_cli_args
 
 #define ASTERISK_PROMPT2 "%s*CLI> "
 
+/* deprecated cli entries */
+static struct ast_cli_entry cli_abort_shutdown_deprecated = AST_CLI_DEFINE(handle_abort_shutdown_deprecated, "Cancel a running shutdown.");
+static struct ast_cli_entry cli_stop_now_deprecated = AST_CLI_DEFINE(handle_stop_now_deprecated, "Shut down Asterisk immediately.");
+static struct ast_cli_entry cli_stop_gracefully_deprecated = AST_CLI_DEFINE(handle_stop_gracefully_deprecated, "Gracefully shut down Asterisk.");
+static struct ast_cli_entry cli_stop_when_convenient_deprecated = AST_CLI_DEFINE(handle_stop_when_convenient_deprecated, "Shut down Asterisk at empty call volume.");
+static struct ast_cli_entry cli_restart_now_deprecated = AST_CLI_DEFINE(handle_restart_now_deprecated, "Restart Asterisk immediately.");
+static struct ast_cli_entry cli_restart_gracefully_deprecated = AST_CLI_DEFINE(handle_restart_gracefully_deprecated, "Restart Asterisk gracefully.");
+static struct ast_cli_entry cli_restart_when_convenient_deprecated = AST_CLI_DEFINE(handle_restart_when_convenient_deprecated, "Restart Asterisk at empty call volume.");
+/* end deprecated cli entries */
+
 static struct ast_cli_entry cli_asterisk[] = {
-       AST_CLI_DEFINE(handle_abort_shutdown, "Cancel a running shutdown"),
-       AST_CLI_DEFINE(handle_stop_now, "Shut down Asterisk immediately"),
-       AST_CLI_DEFINE(handle_stop_gracefully, "Gracefully shut down Asterisk"),
-       AST_CLI_DEFINE(handle_stop_when_convenient, "Shut down Asterisk at empty call volume"),
-       AST_CLI_DEFINE(handle_restart_now, "Restart Asterisk immediately"), 
-       AST_CLI_DEFINE(handle_restart_gracefully, "Restart Asterisk gracefully"),
-       AST_CLI_DEFINE(handle_restart_when_convenient, "Restart Asterisk at empty call volume"),
+       AST_CLI_DEFINE(handle_abort_shutdown, "Cancel a running shutdown", .deprecate_cmd = &cli_abort_shutdown_deprecated),
+       AST_CLI_DEFINE(handle_stop_now, "Shut down Asterisk immediately", .deprecate_cmd = &cli_stop_now_deprecated),
+       AST_CLI_DEFINE(handle_stop_gracefully, "Gracefully shut down Asterisk", .deprecate_cmd = &cli_stop_gracefully_deprecated),
+       AST_CLI_DEFINE(handle_stop_when_convenient, "Shut down Asterisk at empty call volume", .deprecate_cmd = &cli_stop_when_convenient_deprecated),
+       AST_CLI_DEFINE(handle_restart_now, "Restart Asterisk immediately", .deprecate_cmd = &cli_restart_now_deprecated), 
+       AST_CLI_DEFINE(handle_restart_gracefully, "Restart Asterisk gracefully", .deprecate_cmd = &cli_restart_gracefully_deprecated),
+       AST_CLI_DEFINE(handle_restart_when_convenient, "Restart Asterisk at empty call volume", .deprecate_cmd = &cli_restart_when_convenient_deprecated),
        AST_CLI_DEFINE(show_warranty, "Show the warranty (if any) for this copy of Asterisk"),
        AST_CLI_DEFINE(show_license, "Show the license(s) for this copy of Asterisk"),
        AST_CLI_DEFINE(handle_version, "Display version info"),
index 85545be62b1c53331242db6272a83a04472a8907..488eeee1c0674f79a3f59438704f938bde019010 100644 (file)
@@ -1236,16 +1236,16 @@ static char *handle_cli_status(struct ast_cli_entry *e, int cmd, struct ast_cli_
 
        switch (cmd) {
        case CLI_INIT:
-               e->command = "cdr status";
+               e->command = "cdr show status";
                e->usage = 
-                       "Usage: cdr status\n"
+                       "Usage: cdr show status\n"
                        "       Displays the Call Detail Record engine system status.\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
 
-       if (a->argc > 2)
+       if (a->argc > 3)
                return CLI_SHOWUSAGE;
 
        ast_cli(a->fd, "CDR logging: %s\n", enabled ? "enabled" : "disabled");
@@ -1274,6 +1274,14 @@ static char *handle_cli_status(struct ast_cli_entry *e, int cmd, struct ast_cli_
        return CLI_SUCCESS;
 }
 
+static char *handle_cli_status_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       char *res = handle_cli_status(e, cmd, a);
+       if (cmd == CLI_INIT)
+               e->command = "cdr status";
+       return res;
+}
+
 static char *handle_cli_submit(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
@@ -1296,7 +1304,8 @@ static char *handle_cli_submit(struct ast_cli_entry *e, int cmd, struct ast_cli_
 }
 
 static struct ast_cli_entry cli_submit = AST_CLI_DEFINE(handle_cli_submit, "Posts all pending batched CDR data");
-static struct ast_cli_entry cli_status = AST_CLI_DEFINE(handle_cli_status, "Display the CDR status");
+static struct ast_cli_entry cli_status_deprecated = AST_CLI_DEFINE(handle_cli_status_deprecated, "Display the CDR status");
+static struct ast_cli_entry cli_status = AST_CLI_DEFINE(handle_cli_status, "Display the CDR status", .deprecate_cmd = &cli_status_deprecated);
 
 static int do_reload(int reload)
 {
index 468aa5425accec988c1733c559bb5d2ce45ce682..693c4b8b454d62dafe6e242e721ed2f025d75702 100644 (file)
@@ -4645,7 +4645,7 @@ static char *handle_show_dialplan(struct ast_cli_entry *e, int cmd, struct ast_c
        case CLI_INIT:
                e->command = "dialplan show";
                e->usage = 
-                       "Usage: dialplan show [exten@][context]\n"
+                       "Usage: dialplan show [[exten@]context]\n"
                        "       Show dialplan\n";
                return NULL;
        case CLI_GENERATE:      
index b514d33eb57ba964e89699267cb0d18fb9be4ac2..932c6f62e851d7a771e8f2b1f760bdea914a3f79 100644 (file)
@@ -3898,7 +3898,7 @@ static char *rtcp_do_debug_ip(struct ast_cli_args *a)
        return CLI_SUCCESS;
 }
 
-static char *handle_cli_rtp_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_cli_rtp_debug_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
@@ -3933,7 +3933,40 @@ static char *handle_cli_rtp_debug(struct ast_cli_entry *e, int cmd, struct ast_c
        return CLI_SUCCESS;
 }
 
-static char *handle_cli_rtcp_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_cli_rtp_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       switch (cmd) {
+       case CLI_INIT:
+               e->command = "rtp set debug {on|off|ip}";
+               e->usage =
+                       "Usage: rtp set debug {on|off|ip host[:port]}\n"
+                       "       Enable/Disable dumping of all RTP packets. If 'ip' is\n"
+                       "       specified, limit the dumped packets to those to and from\n"
+                       "       the specified 'host' with optional port.\n";
+               return NULL;
+       case CLI_GENERATE:
+               return NULL;
+       }
+
+       if (a->argc == e->args) { /* set on or off */
+               if (!strncasecmp(a->argv[e->args-1], "on", 2)) {
+                       rtpdebug = 1;
+                       memset(&rtpdebugaddr, 0, sizeof(rtpdebugaddr));
+                       ast_cli(a->fd, "RTP Debugging Enabled\n");
+                       return CLI_SUCCESS;
+               } else if (!strncasecmp(a->argv[e->args-1], "off", 3)) {
+                       rtpdebug = 0;
+                       ast_cli(a->fd, "RTP Debugging Disabled\n");
+                       return CLI_SUCCESS;
+               }
+       } else if (a->argc == e->args +1) { /* ip */
+               return rtp_do_debug_ip(a);
+       }
+
+       return CLI_SHOWUSAGE;   /* default, failure */
+}
+
+static char *handle_cli_rtcp_debug_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
@@ -3968,7 +4001,40 @@ static char *handle_cli_rtcp_debug(struct ast_cli_entry *e, int cmd, struct ast_
        return CLI_SUCCESS;
 }
 
-static char *handle_cli_rtcp_stats(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_cli_rtcp_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       switch (cmd) {
+       case CLI_INIT:
+               e->command = "rtcp set debug {on|off|ip}";
+               e->usage =
+                       "Usage: rtcp set debug {on|off|ip host[:port]}\n"
+                       "       Enable/Disable dumping of all RTCP packets. If 'ip' is\n"
+                       "       specified, limit the dumped packets to those to and from\n"
+                       "       the specified 'host' with optional port.\n";
+               return NULL;
+       case CLI_GENERATE:
+               return NULL;
+       }
+
+       if (a->argc == e->args) { /* set on or off */
+               if (!strncasecmp(a->argv[e->args-1], "on", 2)) {
+                       rtcpdebug = 1;
+                       memset(&rtcpdebugaddr, 0, sizeof(rtcpdebugaddr));
+                       ast_cli(a->fd, "RTCP Debugging Enabled\n");
+                       return CLI_SUCCESS;
+               } else if (!strncasecmp(a->argv[e->args-1], "off", 3)) {
+                       rtcpdebug = 0;
+                       ast_cli(a->fd, "RTCP Debugging Disabled\n");
+                       return CLI_SUCCESS;
+               }
+       } else if (a->argc == e->args +1) { /* ip */
+               return rtcp_do_debug_ip(a);
+       }
+
+       return CLI_SHOWUSAGE;   /* default, failure */
+}
+
+static char *handle_cli_rtcp_stats_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
@@ -3991,7 +4057,34 @@ static char *handle_cli_rtcp_stats(struct ast_cli_entry *e, int cmd, struct ast_
        return CLI_SUCCESS;
 }
 
-static char *handle_cli_stun_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_cli_rtcp_set_stats(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       switch (cmd) {
+       case CLI_INIT:
+               e->command = "rtcp set stats {on|off}";
+               e->usage =
+                       "Usage: rtcp set stats {on|off}\n"
+                       "       Enable/Disable dumping of RTCP stats.\n";
+               return NULL;
+       case CLI_GENERATE:
+               return NULL;
+       }
+
+       if (a->argc != e->args)
+               return CLI_SHOWUSAGE;
+
+       if (!strncasecmp(a->argv[e->args-1], "on", 2))
+               rtcpstats = 1;
+       else if (!strncasecmp(a->argv[e->args-1], "off", 3))
+               rtcpstats = 0;
+       else
+               return CLI_SHOWUSAGE;
+
+       ast_cli(a->fd, "RTCP Stats %s\n", rtcpstats ? "Enabled" : "Disabled");
+       return CLI_SUCCESS;
+}
+
+static char *handle_cli_stun_debug_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
@@ -4015,11 +4108,44 @@ static char *handle_cli_stun_debug(struct ast_cli_entry *e, int cmd, struct ast_
        return CLI_SUCCESS;
 }
 
+static char *handle_cli_stun_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       switch (cmd) {
+       case CLI_INIT:
+               e->command = "stun set debug {on|off}";
+               e->usage =
+                       "Usage: stun set debug {on|off}\n"
+                       "       Enable/Disable STUN (Simple Traversal of UDP through NATs)\n"
+                       "       debugging\n";
+               return NULL;
+       case CLI_GENERATE:
+               return NULL;
+       }
+
+       if (a->argc != e->args)
+               return CLI_SHOWUSAGE;
+
+       if (!strncasecmp(a->argv[e->args-1], "on", 2))
+               stundebug = 1;
+       else if (!strncasecmp(a->argv[e->args-1], "off", 3))
+               stundebug = 0;
+       else
+               return CLI_SHOWUSAGE;
+
+       ast_cli(a->fd, "STUN Debugging %s\n", stundebug ? "Enabled" : "Disabled");
+       return CLI_SUCCESS;
+}
+
+static struct ast_cli_entry cli_rtp_debug_deprecated = AST_CLI_DEFINE(handle_cli_rtp_debug_deprecated,  "Enable/Disable RTP debugging");
+static struct ast_cli_entry cli_rtcp_debug_deprecated = AST_CLI_DEFINE(handle_cli_rtcp_debug_deprecated, "Enable/Disable RTCP debugging");
+static struct ast_cli_entry cli_rtcp_stats_deprecated = AST_CLI_DEFINE(handle_cli_rtcp_stats_deprecated, "Enable/Disable RTCP stats");
+static struct ast_cli_entry cli_stun_debug_deprecated = AST_CLI_DEFINE(handle_cli_stun_debug_deprecated, "Enable/Disable STUN debugging");
+
 static struct ast_cli_entry cli_rtp[] = {
-       AST_CLI_DEFINE(handle_cli_rtp_debug,  "Enable/Disable RTP debugging"),
-       AST_CLI_DEFINE(handle_cli_rtcp_debug, "Enable/Disable RTCP debugging"),
-       AST_CLI_DEFINE(handle_cli_rtcp_stats, "Enable/Disable RTCP stats"),
-       AST_CLI_DEFINE(handle_cli_stun_debug, "Enable/Disable STUN debugging"),
+       AST_CLI_DEFINE(handle_cli_rtp_set_debug,  "Enable/Disable RTP debugging", .deprecate_cmd = &cli_rtp_debug_deprecated),
+       AST_CLI_DEFINE(handle_cli_rtcp_set_debug, "Enable/Disable RTCP debugging", .deprecate_cmd = &cli_rtcp_debug_deprecated),
+       AST_CLI_DEFINE(handle_cli_rtcp_set_stats, "Enable/Disable RTCP stats", .deprecate_cmd = &cli_rtcp_stats_deprecated),
+       AST_CLI_DEFINE(handle_cli_stun_set_debug, "Enable/Disable STUN debugging", .deprecate_cmd = &cli_stun_debug_deprecated),
 };
 
 static int __ast_rtp_reload(int reload)
index 12de3fd531ffd9ac93623c1ffa6c575ed36cc7eb..6ce34432821c719c3b7b8d185ce53c7978a8243f 100644 (file)
@@ -1087,7 +1087,7 @@ int ast_udptl_bridge(struct ast_channel *c0, struct ast_channel *c1, int flags,
        return -1;
 }
 
-static char *handle_cli_udptl_debug_ip(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_cli_udptl_debug_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        struct hostent *hp;
        struct ast_hostent ahp;
@@ -1097,89 +1097,122 @@ static char *handle_cli_udptl_debug_ip(struct ast_cli_entry *e, int cmd, struct
 
        switch (cmd) {
        case CLI_INIT:
-               e->command = "udptl debug ip";
-               e->usage =
-                       "Usage: udptl debug [ip host[:port]]\n"
-                       "       Enable dumping of all UDPTL packets to and from host.\n";
+               e->command = "udptl debug [off|ip]";
+               e->usage = 
+                       "Usage: udptl debug [off]|[ip host[:port]]\n"
+                       "       Enable or disable dumping of UDPTL packets.\n"
+                       "       If ip is specified, limit the dumped packets to those to and from\n"
+                       "       the specified 'host' with optional port.\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
 
-       port = 0;
-
-       if (a->argc != 4)
-               return CLI_SHOWUSAGE;
-       arg = a->argv[3];
-       p = strstr(arg, ":");
-       if (p) {
-               *p = '\0';
-               p++;
-               port = atoi(p);
-       }
-       hp = ast_gethostbyname(arg, &ahp);
-       if (hp == NULL)
+       if (a->argc < 2 || a->argc > 4)
                return CLI_SHOWUSAGE;
-       udptldebugaddr.sin_family = AF_INET;
-       memcpy(&udptldebugaddr.sin_addr, hp->h_addr, sizeof(udptldebugaddr.sin_addr));
-       udptldebugaddr.sin_port = htons(port);
-       if (port == 0)
-               ast_cli(a->fd, "UDPTL Debugging Enabled for IP: %s\n", ast_inet_ntoa(udptldebugaddr.sin_addr));
-       else
-               ast_cli(a->fd, "UDPTL Debugging Enabled for IP: %s:%d\n", ast_inet_ntoa(udptldebugaddr.sin_addr), port);
-       udptldebug = 1;
-       return CLI_SUCCESS;
-}
 
-static char *handle_cli_udptl_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
-{
-       switch (cmd) {
-       case CLI_INIT:
-               e->command = "udptl debug";
-               e->usage =
-                       "Usage: udptl debug\n"
-                       "       Enable dumping of all UDPTL packets.\n";
-               return NULL;
-       case CLI_GENERATE:
-               return NULL;
+       if (a->argc == 2) { 
+               udptldebug = 1;
+               memset(&udptldebugaddr, 0, sizeof(udptldebugaddr));
+               ast_cli(a->fd, "UDPTL Debugging Enabled\n");
+       } else if (a->argc == 3) {
+               if (strncasecmp(a->argv[2], "off", 3))
+                       return CLI_SHOWUSAGE;
+               udptldebug = 0;
+               ast_cli(a->fd, "UDPTL Debugging Disabled\n");
+       } else {
+               if (strncasecmp(a->argv[2], "ip", 2))
+                       return CLI_SHOWUSAGE;
+               port = 0;
+               arg = a->argv[3];
+               p = strstr(arg, ":");
+               if (p) {
+                       *p = '\0';
+                       p++;
+                       port = atoi(p);
+               }
+               hp = ast_gethostbyname(arg, &ahp);
+               if (hp == NULL)
+                       return CLI_SHOWUSAGE;
+               udptldebugaddr.sin_family = AF_INET;
+               memcpy(&udptldebugaddr.sin_addr, hp->h_addr, sizeof(udptldebugaddr.sin_addr));
+               udptldebugaddr.sin_port = htons(port);
+               if (port == 0)
+                       ast_cli(a->fd, "UDPTL Debugging Enabled for IP: %s\n", ast_inet_ntoa(udptldebugaddr.sin_addr));
+               else
+                       ast_cli(a->fd, "UDPTL Debugging Enabled for IP: %s:%d\n", ast_inet_ntoa(udptldebugaddr.sin_addr), port);
+               udptldebug = 1;
        }
 
-       if (a->argc != 2)
-               return CLI_SHOWUSAGE;
-
-       udptldebug = 1;
-       memset(&udptldebugaddr, 0, sizeof(udptldebugaddr));
-
-       ast_cli(a->fd, "UDPTL Debugging Enabled\n");
        return CLI_SUCCESS;
 }
 
-static char *handle_cli_udptl_debug_off(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_cli_udptl_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
+       struct hostent *hp;
+       struct ast_hostent ahp;
+       int port;
+       char *p;
+       char *arg;
+
        switch (cmd) {
        case CLI_INIT:
-               e->command = "udptl debug off";
-               e->usage =
-                       "Usage: udptl debug off\n"
-                       "       Disable dumping of all UDPTL packets.\n";
+               e->command = "udptl set debug {on|off|ip}";
+               e->usage = 
+                       "Usage: udptl set debug {on|off|ip host[:port]}\n"
+                       "       Enable or disable dumping of UDPTL packets.\n"
+                       "       If ip is specified, limit the dumped packets to those to and from\n"
+                       "       the specified 'host' with optional port.\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
 
-       if (a->argc != 3)
+       if (a->argc < 4 || a->argc > 5)
                return CLI_SHOWUSAGE;
 
-       udptldebug = 0;
+       if (a->argc == 4) {
+               if (!strncasecmp(a->argv[3], "on", 2)) {
+                       udptldebug = 1;
+                       memset(&udptldebugaddr, 0, sizeof(udptldebugaddr));
+                       ast_cli(a->fd, "UDPTL Debugging Enabled\n");
+               } else if (!strncasecmp(a->argv[3], "off", 3)) {
+                       udptldebug = 0;
+                       ast_cli(a->fd, "UDPTL Debugging Disabled\n");
+               } else {
+                       return CLI_SHOWUSAGE;
+               }
+       } else {
+               if (strncasecmp(a->argv[3], "ip", 2))
+                       return CLI_SHOWUSAGE;
+               port = 0;
+               arg = a->argv[4];
+               p = strstr(arg, ":");
+               if (p) {
+                       *p = '\0';
+                       p++;
+                       port = atoi(p);
+               }
+               hp = ast_gethostbyname(arg, &ahp);
+               if (hp == NULL)
+                       return CLI_SHOWUSAGE;
+               udptldebugaddr.sin_family = AF_INET;
+               memcpy(&udptldebugaddr.sin_addr, hp->h_addr, sizeof(udptldebugaddr.sin_addr));
+               udptldebugaddr.sin_port = htons(port);
+               if (port == 0)
+                       ast_cli(a->fd, "UDPTL Debugging Enabled for IP: %s\n", ast_inet_ntoa(udptldebugaddr.sin_addr));
+               else
+                       ast_cli(a->fd, "UDPTL Debugging Enabled for IP: %s:%d\n", ast_inet_ntoa(udptldebugaddr.sin_addr), port);
+               udptldebug = 1;
+       }
 
-       ast_cli(a->fd, "UDPTL Debugging Disabled\n");
        return CLI_SUCCESS;
 }
 
+static struct ast_cli_entry cli_handle_udptl_debug_deprecated = AST_CLI_DEFINE(handle_cli_udptl_debug_deprecated, "Enable/Disable UDPTL debugging");
+
 static struct ast_cli_entry cli_udptl[] = {
-       AST_CLI_DEFINE(handle_cli_udptl_debug,     "Enable UDPTL debugging"),
-       AST_CLI_DEFINE(handle_cli_udptl_debug_ip,  "Enable UDPTL debugging on IP"),
-       AST_CLI_DEFINE(handle_cli_udptl_debug_off, "Disable UDPTL debugging")
+       AST_CLI_DEFINE(handle_cli_udptl_set_debug, "Enable/Disable UDPTL debugging", .deprecate_cmd = &cli_handle_udptl_debug_deprecated)
 };
 
 static void __ast_udptl_reload(int reload)
index cffa65f40361333d0e625933bc25a230caaa7071..fa4b7d5167a9dc0abcf6f73be9bd195ffe87c341 100644 (file)
@@ -146,7 +146,7 @@ static int pbx_load_module(void)
 }
 
 /* CLI interface */
-static char *handle_cli_ael_debug_multiple(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *handle_cli_ael_debug_multiple_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
@@ -180,6 +180,40 @@ static char *handle_cli_ael_debug_multiple(struct ast_cli_entry *e, int cmd, str
        return CLI_SUCCESS;
 }
 
+static char *handle_cli_ael_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       switch (cmd) {
+       case CLI_INIT:
+               e->command = "ael set debug {read|tokens|macros|contexts|off}";
+               e->usage =
+                       "Usage: ael debug {read|tokens|macros|contexts|off}\n"
+                       "       Enable AEL read, token, macro, or context debugging,\n"
+                       "       or disable all AEL debugging messages.  Note: this\n"
+                       "       currently does nothing.\n";
+               return NULL;
+       case CLI_GENERATE:
+               return NULL;
+       }
+
+       if (a->argc != e->args)
+               return CLI_SHOWUSAGE;
+
+       if (!strcasecmp(a->argv[3], "read"))
+               aeldebug |= DEBUG_READ;
+       else if (!strcasecmp(a->argv[3], "tokens"))
+               aeldebug |= DEBUG_TOKENS;
+       else if (!strcasecmp(a->argv[3], "macros"))
+               aeldebug |= DEBUG_MACROS;
+       else if (!strcasecmp(a->argv[3], "contexts"))
+               aeldebug |= DEBUG_CONTEXTS;
+       else if (!strcasecmp(a->argv[3], "off"))
+               aeldebug = 0;
+       else
+               return CLI_SHOWUSAGE;
+
+       return CLI_SUCCESS;
+}
+
 static char *handle_cli_ael_reload(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
@@ -199,9 +233,10 @@ static char *handle_cli_ael_reload(struct ast_cli_entry *e, int cmd, struct ast_
        return (pbx_load_module() ? CLI_FAILURE : CLI_SUCCESS);
 }
 
+static struct ast_cli_entry cli_ael_debug_multiple_deprecated = AST_CLI_DEFINE(handle_cli_ael_debug_multiple_deprecated, "Enable AEL debugging flags");
 static struct ast_cli_entry cli_ael[] = {
-       AST_CLI_DEFINE(handle_cli_ael_reload,         "Reload AEL configuration"),
-       AST_CLI_DEFINE(handle_cli_ael_debug_multiple, "Enable AEL debugging flags")
+       AST_CLI_DEFINE(handle_cli_ael_reload,    "Reload AEL configuration"),
+       AST_CLI_DEFINE(handle_cli_ael_set_debug, "Enable AEL debugging flags", .deprecate_cmd = &cli_ael_debug_multiple_deprecated)
 };
 
 static int unload_module(void)
index 9d30fe24fa04b9db20bc94cbf5c8c25c1e17dc96..b5bd58de30e697b6ef751f0440b1890616231517 100644 (file)
@@ -2179,42 +2179,106 @@ static int start_network_thread(void)
        return 0;
 }
 
-static char *dundi_do_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *dundi_do_debug_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "dundi debug";
+               e->command = "dundi [no] debug";
                e->usage = 
-                       "Usage: dundi debug\n"
-                       "       Enables dumping of DUNDi packets for debugging purposes\n";
+                       "Usage: dundi [no] debug\n"
+                       "       Enables/Disables dumping of DUNDi packets for debugging purposes\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
-       if (a->argc != 2)
+       if (a->argc < 2 || a->argc > 3)
                return CLI_SHOWUSAGE;
-       dundidebug = 1;
-       ast_cli(a->fd, "DUNDi Debugging Enabled\n");
+       if (a->argc == 2) {
+               dundidebug = 1;
+               ast_cli(a->fd, "DUNDi Debugging Enabled\n");
+       } else {
+               dundidebug = 0;
+               ast_cli(a->fd, "DUNDi Debugging Disabled\n");
+       }
+       return CLI_SUCCESS;
+}
+
+static char *dundi_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       switch (cmd) {
+       case CLI_INIT:
+               e->command = "dundi set debug {on|off}";
+               e->usage = 
+                       "Usage: dundi set debug {on|off}\n"
+                       "       Enables/Disables dumping of DUNDi packets for debugging purposes\n";
+               return NULL;
+       case CLI_GENERATE:
+               return NULL;
+       }
+
+       if (a->argc != e->args)
+               return CLI_SHOWUSAGE;
+
+       if (!strncasecmp(a->argv[e->args -1], "on", 2)) {
+               dundidebug = 1;
+               ast_cli(a->fd, "DUNDi Debugging Enabled\n");
+       } else {
+               dundidebug = 0;
+               ast_cli(a->fd, "DUNDi Debugging Disabled\n");
+       }
        return CLI_SUCCESS;
 }
 
-static char *dundi_do_store_history(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *dundi_do_store_history_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "dundi store history";
+               e->command = "dundi [no] store history";
                e->usage = 
-                       "Usage: dundi store history\n"
-                       "       Enables storing of DUNDi requests and times for debugging\n"
+                       "Usage: dundi [no] store history\n"
+                       "       Enables/Disables storing of DUNDi requests and times for debugging\n"
                        "purposes\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
-       if (a->argc != 3)
+       if (a->argc < 3 || a->argc > 4)
                return CLI_SHOWUSAGE;
-       global_storehistory = 1;
-       ast_cli(a->fd, "DUNDi History Storage Enabled\n");
+       
+       if (a->argc == 3) {
+               global_storehistory = 1;
+               ast_cli(a->fd, "DUNDi History Storage Enabled\n");
+       } else {
+               global_storehistory = 0;
+               ast_cli(a->fd, "DUNDi History Storage Disabled\n");
+       }
+       return CLI_SUCCESS;
+}
+
+static char *dundi_store_history(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       switch (cmd) {
+       case CLI_INIT:
+               e->command = "dundi store history {on|off}";
+               e->usage = 
+                       "Usage: dundi store history {on|off}\n"
+                       "       Enables/Disables storing of DUNDi requests and times for debugging\n"
+                       "purposes\n";
+               return NULL;
+       case CLI_GENERATE:
+               return NULL;
+       }
+
+       if (a->argc != e->args)
+               return CLI_SHOWUSAGE;
+       
+       if (!strncasecmp(a->argv[e->args -1], "on", 2)) {
+               global_storehistory = 1;
+               ast_cli(a->fd, "DUNDi History Storage Enabled\n");
+       } else {
+               global_storehistory = 0;
+               ast_cli(a->fd, "DUNDi History Storage Disabled\n");
+       }
        return CLI_SUCCESS;
 }
 
@@ -2263,45 +2327,6 @@ static char *dundi_flush(struct ast_cli_entry *e, int cmd, struct ast_cli_args *
        return CLI_SUCCESS;
 }
 
-static char *dundi_no_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
-{
-       switch (cmd) {
-       case CLI_INIT:
-               e->command = "dundi no debug";
-               e->usage = 
-                       "Usage: dundi no debug\n"
-                       "       Disables dumping of DUNDi packets for debugging purposes\n";
-               return NULL;
-       case CLI_GENERATE:
-               return NULL;
-       }
-       if (a->argc != 3)
-               return CLI_SHOWUSAGE;
-       dundidebug = 0;
-       ast_cli(a->fd, "DUNDi Debugging Disabled\n");
-       return CLI_SUCCESS;
-}
-
-static char *dundi_no_store_history(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
-{
-       switch (cmd) {
-       case CLI_INIT:
-               e->command = "dundi no store history";
-               e->usage =
-                       "Usage: dundi no store history\n"
-                       "       Disables storing of DUNDi requests and times for debugging\n"
-                       "purposes\n";
-               return NULL;
-       case CLI_GENERATE:
-               return NULL;
-       }
-       if (a->argc != 4)
-               return CLI_SHOWUSAGE;
-       global_storehistory = 0;
-       ast_cli(a->fd, "DUNDi History Storage Disabled\n");
-       return CLI_SUCCESS;
-}
-
 static char *model2str(int model)
 {
        switch(model) {
@@ -2817,11 +2842,11 @@ static char *dundi_show_precache(struct ast_cli_entry *e, int cmd, struct ast_cl
 #undef FORMAT2
 }
 
+static struct ast_cli_entry cli_dundi_do_debug_deprecated = AST_CLI_DEFINE(dundi_do_debug_deprecated, "Enable/Disable DUNDi debugging");
+static struct ast_cli_entry cli_dundi_do_store_history_deprecated = AST_CLI_DEFINE(dundi_do_store_history_deprecated, "Enable/Disable DUNDi historic records");
 static struct ast_cli_entry cli_dundi[] = {
-       AST_CLI_DEFINE(dundi_do_debug, "Enable DUNDi debugging"),
-       AST_CLI_DEFINE(dundi_no_debug, "Disable DUNDi debugging"),
-       AST_CLI_DEFINE(dundi_do_store_history, "Enable DUNDi historic records"),
-       AST_CLI_DEFINE(dundi_no_store_history, "Disable DUNDi historic records"),
+       AST_CLI_DEFINE(dundi_set_debug, "Enable/Disable DUNDi debugging", .deprecate_cmd = &cli_dundi_do_debug_deprecated),
+       AST_CLI_DEFINE(dundi_store_history, "Enable/Disable DUNDi historic records", .deprecate_cmd = &cli_dundi_do_store_history_deprecated),
        AST_CLI_DEFINE(dundi_flush, "Flush DUNDi cache"),
        AST_CLI_DEFINE(dundi_show_peers, "Show defined DUNDi peers"),
        AST_CLI_DEFINE(dundi_show_trans, "Show active DUNDi transactions"),
index 0fea962fce601de5d7395697dad7565b9a96d2e7..70df02c62af1354a4e9328234d8cd549efed700e 100644 (file)
@@ -1655,9 +1655,9 @@ static char *handle_cli_agi_debug(struct ast_cli_entry *e, int cmd, struct ast_c
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "agi debug [off]";
+               e->command = "agi set debug [on|off]";
                e->usage =
-                       "Usage: agi debug [off]\n"
+                       "Usage: agi set debug [on|off]\n"
                        "       Enables/disables dumping of AGI transactions for\n"
                        "       debugging purposes.\n";
                return NULL;
@@ -1665,16 +1665,16 @@ static char *handle_cli_agi_debug(struct ast_cli_entry *e, int cmd, struct ast_c
        case CLI_GENERATE:
                return NULL;
        }
-       if (a->argc < e->args - 1 || a->argc > e->args )
+
+       if (a->argc != e->args)
                return CLI_SHOWUSAGE;
-       if (a->argc == e->args - 1) {
+
+       if (strncasecmp(a->argv[3], "off", 3) == 0) {
+               agidebug = 0;
+       } else if (strncasecmp(a->argv[3], "on", 2) == 0) {
                agidebug = 1;
        } else {
-               if (strncasecmp(a->argv[e->args - 1], "off", 3) == 0) {
-                       agidebug = 0;
-               } else {
-                       return CLI_SHOWUSAGE;
-               }
+               return CLI_SHOWUSAGE;
        }
        ast_cli(a->fd, "AGI Debugging %sabled\n", agidebug ? "En" : "Dis");
        return CLI_SUCCESS;
@@ -2767,30 +2767,14 @@ static void write_html_escaped(FILE *htmlfile, char *str)
        return;
 }
 
-static char *handle_cli_agi_dumphtml(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static int write_htmldump(char *filename)
 {
        struct agi_command *command;
        char fullcmd[80];
        FILE *htmlfile;
 
-       switch (cmd) {
-       case CLI_INIT:
-               e->command = "agi dumphtml";
-               e->usage =
-                       "Usage: agi dumphtml <filename>\n"
-                       "       Dumps the AGI command list in HTML format to the given\n"
-                       "       file.\n";
-               return NULL;
-       case CLI_GENERATE:
-               return NULL;
-       }
-       if (a->argc < e->args + 1)
-               return CLI_SHOWUSAGE;
-
-       if (!(htmlfile = fopen(a->argv[2], "wt"))) {
-               ast_cli(a->fd, "Could not create file '%s'\n", a->argv[2]);
-               return CLI_SHOWUSAGE;
-       }
+       if (!(htmlfile = fopen(filename, "wt")))
+               return -1;
 
        fprintf(htmlfile, "<HTML>\n<HEAD>\n<TITLE>AGI Commands</TITLE>\n</HEAD>\n");
        fprintf(htmlfile, "<BODY>\n<CENTER><B><H1>AGI Commands</H1></B></CENTER>\n\n");
@@ -2828,10 +2812,57 @@ static char *handle_cli_agi_dumphtml(struct ast_cli_entry *e, int cmd, struct as
        AST_RWLIST_UNLOCK(&agi_commands);
        fprintf(htmlfile, "</TABLE>\n</BODY>\n</HTML>\n");
        fclose(htmlfile);
+       return 0;
+}
+
+static char *handle_cli_agi_dumphtml_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       switch (cmd) {
+       case CLI_INIT:
+               e->command = "agi dumphtml";
+               e->usage =
+                       "Usage: agi dumphtml <filename>\n"
+                       "       Dumps the AGI command list in HTML format to the given\n"
+                       "       file.\n";
+               return NULL;
+       case CLI_GENERATE:
+               return NULL;
+       }
+       if (a->argc < e->args + 1)
+               return CLI_SHOWUSAGE;
+
+       if (write_htmldump(a->argv[2]) < 0) {
+               ast_cli(a->fd, "Could not create file '%s'\n", a->argv[2]);
+               return CLI_SHOWUSAGE;
+       }
        ast_cli(a->fd, "AGI HTML commands dumped to: %s\n", a->argv[2]);
        return CLI_SUCCESS;
 }
 
+static char *handle_cli_agi_dump_html(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+       switch (cmd) {
+       case CLI_INIT:
+               e->command = "agi dump html";
+               e->usage =
+                       "Usage: agi dump html <filename>\n"
+                       "       Dumps the AGI command list in HTML format to the given\n"
+                       "       file.\n";
+               return NULL;
+       case CLI_GENERATE:
+               return NULL;
+       }
+       if (a->argc != e->args + 1)
+               return CLI_SHOWUSAGE;
+
+       if (write_htmldump(a->argv[e->args]) < 0) {
+               ast_cli(a->fd, "Could not create file '%s'\n", a->argv[e->args]);
+               return CLI_SHOWUSAGE;
+       }
+       ast_cli(a->fd, "AGI HTML commands dumped to: %s\n", a->argv[e->args]);
+       return CLI_SUCCESS;
+}
+
 static int agi_exec_full(struct ast_channel *chan, void *data, int enhanced, int dead)
 {
        enum agi_result res;
@@ -2941,11 +2972,13 @@ static int deadagi_exec(struct ast_channel *chan, void *data)
        return agi_exec(chan, data);
 }
 
+static struct ast_cli_entry cli_agi_dumphtml_deprecated = AST_CLI_DEFINE(handle_cli_agi_dumphtml_deprecated, "Dumps a list of AGI commands in HTML format");
+
 static struct ast_cli_entry cli_agi[] = {
        AST_CLI_DEFINE(handle_cli_agi_add_cmd,   "Add AGI command to a channel in Async AGI"),
-       AST_CLI_DEFINE(handle_cli_agi_debug,    "Enable/Disable AGI debugging"),
-       AST_CLI_DEFINE(handle_cli_agi_show,     "List AGI commands or specific help"),
-       AST_CLI_DEFINE(handle_cli_agi_dumphtml, "Dumps a list of AGI commands in HTML format")
+       AST_CLI_DEFINE(handle_cli_agi_debug,     "Enable/Disable AGI debugging"),
+       AST_CLI_DEFINE(handle_cli_agi_show,      "List AGI commands or specific help"),
+       AST_CLI_DEFINE(handle_cli_agi_dump_html, "Dumps a list of AGI commands in HTML format", .deprecate_cmd = &cli_agi_dumphtml_deprecated)
 };
 
 static int unload_module(void)
index 8e7a3d2af59aef6d1b0a85ec09a82011963e5022..4b7dcdd4a84f3aac5a36cea9f92c4b850c4fb134 100644 (file)
@@ -87,9 +87,9 @@ static void *aji_recv_loop(void *data);
 static int aji_initialize(struct aji_client *client);
 static int aji_client_connect(void *data, ikspak *pak);
 static void aji_set_presence(struct aji_client *client, char *to, char *from, int level, char *desc);
-static char *aji_do_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
+static char *aji_do_debug_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
+static char *aji_do_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
 static char *aji_do_reload(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
-static char *aji_no_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
 static char *aji_show_clients(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
 static char *aji_show_buddies(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
 static char *aji_test(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
@@ -114,9 +114,9 @@ static int aji_register_transport(void *data, ikspak *pak);
 static int aji_register_transport2(void *data, ikspak *pak);
 */
 
+static struct ast_cli_entry cli_aji_do_debug_deprecated = AST_CLI_DEFINE(aji_do_debug_deprecated, "Enable/disable jabber debugging");
 static struct ast_cli_entry aji_cli[] = {
-       AST_CLI_DEFINE(aji_do_debug, "Enable jabber debugging"),
-       AST_CLI_DEFINE(aji_no_debug, "Disable Jabber debug"),
+       AST_CLI_DEFINE(aji_do_set_debug, "Enable/Disable Jabber debug", .deprecate_cmd = &cli_aji_do_debug_deprecated),
        AST_CLI_DEFINE(aji_do_reload, "Reload Jabber configuration"),
        AST_CLI_DEFINE(aji_show_clients, "Show state of clients and components"),
        AST_CLI_DEFINE(aji_show_buddies, "Show buddy lists of our clients"),
@@ -2330,77 +2330,104 @@ static void aji_set_presence(struct aji_client *client, char *to, char *from, in
 }
 
 /*!
- * \brief Turn on console debugging.
+ * \brief Turn on/off console debugging.
  * \return CLI_SUCCESS.
  */
-static char *aji_do_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *aji_do_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
-
        switch (cmd) {
        case CLI_INIT:
-               e->command = "jabber debug";
+               e->command = "jabber set debug {on|off}";
                e->usage =
-                       "Usage: jabber debug\n"
-                       "       Enables dumping of Jabber packets for debugging purposes.\n";
+                       "Usage: jabber set debug {on|off}\n"
+                       "       Enables/disables dumping of Jabber packets for debugging purposes.\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
 
-       ASTOBJ_CONTAINER_TRAVERSE(&clients, 1, {
-               ASTOBJ_RDLOCK(iterator); 
-               iterator->debug = 1;
-               ASTOBJ_UNLOCK(iterator);
-       });
-       ast_cli(a->fd, "Jabber Debugging Enabled.\n");
-       return CLI_SUCCESS;
+       if (a->argc != e->args)
+               return CLI_SHOWUSAGE;
+
+       if (!strncasecmp(a->argv[e->args - 1], "on", 2)) {
+               ASTOBJ_CONTAINER_TRAVERSE(&clients, 1, {
+                       ASTOBJ_RDLOCK(iterator); 
+                       iterator->debug = 1;
+                       ASTOBJ_UNLOCK(iterator);
+               });
+               ast_cli(a->fd, "Jabber Debugging Enabled.\n");
+               return CLI_SUCCESS;
+       } else if (!strncasecmp(a->argv[e->args - 1], "off", 3)) {
+               ASTOBJ_CONTAINER_TRAVERSE(&clients, 1, {
+                       ASTOBJ_RDLOCK(iterator); 
+                       iterator->debug = 0;
+                       ASTOBJ_UNLOCK(iterator);
+               });
+               ast_cli(a->fd, "Jabber Debugging Disabled.\n");
+               return CLI_SUCCESS;
+       }
+       return CLI_SHOWUSAGE; /* defaults to invalid */
 }
 
 /*!
- * \brief Reload jabber module.
+ * \brief Turn on/off console debugging (deprecated, use aji_do_set_debug).
  * \return CLI_SUCCESS.
  */
-static char *aji_do_reload(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *aji_do_debug_deprecated(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
+
        switch (cmd) {
        case CLI_INIT:
-               e->command = "jabber reload";
+               e->command = "jabber debug [off]";
                e->usage =
-                       "Usage: jabber reload\n"
-                       "       Reloads the Jabber module.\n";
+                       "Usage: jabber debug [off]\n"
+                       "       Enables/disables dumping of Jabber packets for debugging purposes.\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
 
-       aji_reload(1);
-       ast_cli(a->fd, "Jabber Reloaded.\n");
-       return CLI_SUCCESS;
+       if (a->argc == 2) {
+               ASTOBJ_CONTAINER_TRAVERSE(&clients, 1, {
+                       ASTOBJ_RDLOCK(iterator); 
+                       iterator->debug = 1;
+                       ASTOBJ_UNLOCK(iterator);
+               });
+               ast_cli(a->fd, "Jabber Debugging Enabled.\n");
+               return CLI_SUCCESS;
+       } else if (a->argc == 3) {
+               if (!strncasecmp(a->argv[2], "off", 3)) {
+                       ASTOBJ_CONTAINER_TRAVERSE(&clients, 1, {
+                               ASTOBJ_RDLOCK(iterator); 
+                               iterator->debug = 0;
+                               ASTOBJ_UNLOCK(iterator);
+                       });
+                       ast_cli(a->fd, "Jabber Debugging Disabled.\n");
+                       return CLI_SUCCESS;
+               }
+       }
+       return CLI_SHOWUSAGE; /* defaults to invalid */
 }
 
 /*!
- * \brief Turn off console debugging.
+ * \brief Reload jabber module.
  * \return CLI_SUCCESS.
  */
-static char *aji_no_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+static char *aji_do_reload(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
 {
        switch (cmd) {
        case CLI_INIT:
-               e->command = "jabber debug off";
+               e->command = "jabber reload";
                e->usage =
-                       "Usage: jabber debug off\n"
-                       "       Disables dumping of Jabber packets for debugging purposes.\n";
+                       "Usage: jabber reload\n"
+                       "       Reloads the Jabber module.\n";
                return NULL;
        case CLI_GENERATE:
                return NULL;
        }
 
-       ASTOBJ_CONTAINER_TRAVERSE(&clients, 1, {
-               ASTOBJ_RDLOCK(iterator);
-               iterator->debug = 0;
-               ASTOBJ_UNLOCK(iterator);
-       });
-       ast_cli(a->fd, "Jabber Debugging Disabled.\n");
+       aji_reload(1);
+       ast_cli(a->fd, "Jabber Reloaded.\n");
        return CLI_SUCCESS;
 }