aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/app_minivm.c2
-rw-r--r--apps/app_playback.c2
-rw-r--r--apps/app_rpt.c2
-rw-r--r--apps/app_voicemail.c4
-rw-r--r--channels/chan_iax2.c138
-rw-r--r--channels/chan_mgcp.c45
-rw-r--r--channels/chan_sip.c58
-rw-r--r--channels/chan_skinny.c54
-rw-r--r--channels/chan_usbradio.c36
-rw-r--r--funcs/func_devstate.c49
-rw-r--r--main/asterisk.c122
-rw-r--r--main/cdr.c17
-rw-r--r--main/pbx.c2
-rw-r--r--main/rtp.c142
-rw-r--r--main/udptl.c147
-rw-r--r--pbx/pbx_ael.c41
-rw-r--r--pbx/pbx_dundi.c139
-rw-r--r--res/res_agi.c95
-rw-r--r--res/res_jabber.c99
19 files changed, 855 insertions, 339 deletions
diff --git a/apps/app_minivm.c b/apps/app_minivm.c
index 148ebf494..ae76f9e89 100644
--- a/apps/app_minivm.c
+++ b/apps/app_minivm.c
@@ -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);
diff --git a/apps/app_playback.c b/apps/app_playback.c
index 21b3ab3eb..b7409957a 100644
--- a/apps/app_playback.c
+++ b/apps/app_playback.c
@@ -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))
diff --git a/apps/app_rpt.c b/apps/app_rpt.c
index 6eb0bfca8..f703aaec0 100644
--- a/apps/app_rpt.c
+++ b/apps/app_rpt.c
@@ -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))
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 8d169061b..7a679a04e 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -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");
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index c393711b9..990ab41fd 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -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"),
diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c
index de7c624be..f4ce2ce6a 100644
--- a/channels/chan_mgcp.c
+++ b/channels/chan_mgcp.c
@@ -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"),
};
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 6408f52aa..40320b1bd 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -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")
};
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index 719258178..b9fe618d2 100644
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -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)"),
};
diff --git a/channels/chan_usbradio.c b/channels/chan_usbradio.c
index 6b2154c82..06f97939d 100644
--- a/channels/chan_usbradio.c
+++ b/channels/chan_usbradio.c
@@ -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),
};
/*
diff --git a/funcs/func_devstate.c b/funcs/func_devstate.c
index 950208be5..220fd50c3 100644
--- a/funcs/func_devstate.c
+++ b/funcs/func_devstate.c
@@ -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 = {
diff --git a/main/asterisk.c b/main/asterisk.c
index 4b899cdd9..187623e71 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -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"),
diff --git a/main/cdr.c b/main/cdr.c
index 85545be62..488eeee1c 100644
--- a/main/cdr.c
+++ b/main/cdr.c
@@ -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)
{
diff --git a/main/pbx.c b/main/pbx.c
index 468aa5425..693c4b8b4 100644
--- a/main/pbx.c
+++ b/main/pbx.c
@@ -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:
diff --git a/main/rtp.c b/main/rtp.c
index b514d33eb..932c6f62e 100644
--- a/main/rtp.c
+++ b/main/rtp.c
@@ -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)
diff --git a/main/udptl.c b/main/udptl.c
index 12de3fd53..6ce344328 100644
--- a/main/udptl.c
+++ b/main/udptl.c
@@ -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)
diff --git a/pbx/pbx_ael.c b/pbx/pbx_ael.c
index cffa65f40..fa4b7d516 100644
--- a/pbx/pbx_ael.c
+++ b/pbx/pbx_ael.c
@@ -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)
diff --git a/pbx/pbx_dundi.c b/pbx/pbx_dundi.c
index 9d30fe24f..b5bd58de3 100644
--- a/pbx/pbx_dundi.c
+++ b/pbx/pbx_dundi.c
@@ -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"),
diff --git a/res/res_agi.c b/res/res_agi.c
index 0fea962fc..70df02c62 100644
--- a/res/res_agi.c
+++ b/res/res_agi.c
@@ -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)
diff --git a/res/res_jabber.c b/res/res_jabber.c
index 8e7a3d2af..4b7dcdd4a 100644
--- a/res/res_jabber.c
+++ b/res/res_jabber.c
@@ -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;
}