[asterisk-commits] kpfleming: trunk r43212 - in /trunk: apps/
channels/ include/asterisk/ main/ ...
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Mon Sep 18 12:54:19 MST 2006
Author: kpfleming
Date: Mon Sep 18 14:54:18 2006
New Revision: 43212
URL: http://svn.digium.com/view/asterisk?rev=43212&view=rev
Log:
merge qwell's CLI verbification work
Modified:
trunk/apps/app_meetme.c
trunk/apps/app_mixmonitor.c
trunk/apps/app_osplookup.c
trunk/apps/app_playback.c
trunk/apps/app_queue.c
trunk/apps/app_realtime.c
trunk/apps/app_rpt.c
trunk/apps/app_voicemail.c
trunk/channels/chan_agent.c
trunk/channels/chan_alsa.c
trunk/channels/chan_features.c
trunk/channels/chan_h323.c
trunk/channels/chan_iax2.c
trunk/channels/chan_local.c
trunk/channels/chan_mgcp.c
trunk/channels/chan_misdn.c
trunk/channels/chan_oss.c
trunk/channels/chan_sip.c
trunk/channels/chan_skinny.c
trunk/channels/chan_zap.c
trunk/channels/iax2-provision.c
trunk/include/asterisk/cli.h
trunk/main/asterisk.c
trunk/main/astmm.c
trunk/main/cdr.c
trunk/main/channel.c
trunk/main/cli.c
trunk/main/config.c
trunk/main/db.c
trunk/main/dnsmgr.c
trunk/main/file.c
trunk/main/frame.c
trunk/main/http.c
trunk/main/image.c
trunk/main/logger.c
trunk/main/manager.c
trunk/main/pbx.c
trunk/main/rtp.c
trunk/main/translate.c
trunk/main/udptl.c
trunk/pbx/pbx_ael.c
trunk/pbx/pbx_config.c
trunk/pbx/pbx_dundi.c
trunk/res/res_agi.c
trunk/res/res_clioriginate.c
trunk/res/res_config_pgsql.c
trunk/res/res_convert.c
trunk/res/res_crypto.c
trunk/res/res_features.c
trunk/res/res_indications.c
trunk/res/res_jabber.c
trunk/res/res_musiconhold.c
trunk/res/res_odbc.c
Modified: trunk/apps/app_meetme.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_meetme.c?rev=43212&r1=43211&r2=43212&view=diff
==============================================================================
--- trunk/apps/app_meetme.c (original)
+++ trunk/apps/app_meetme.c Mon Sep 18 14:54:18 2006
@@ -661,13 +661,6 @@
return cnf;
}
-static int confs_show(int fd, int argc, char **argv)
-{
- ast_cli(fd, "Deprecated! Please use 'meetme' instead.\n");
-
- return RESULT_SUCCESS;
-}
-
/*! \brief CLI command for showing SLAs */
static int sla_show(int fd, int argc, char *argv[])
{
@@ -693,23 +686,7 @@
return RESULT_SUCCESS;
}
-static char show_confs_usage[] =
-"Deprecated! Please use 'meetme' instead.\n";
-
-static struct ast_cli_entry cli_show_confs = {
- { "show", "conferences", NULL }, confs_show,
- "Show status of conferences", show_confs_usage, NULL };
-
-
-static char sla_show_usage[] =
-"Usage: sla show\n"
-" Lists status of all shared line appearances\n";
-
-static struct ast_cli_entry cli_sla_show = {
- { "sla", "show", NULL }, sla_show,
- "Show status of Shared Line Appearances", sla_show_usage, NULL };
-
-static int conf_cmd(int fd, int argc, char **argv)
+static int meetme_cmd(int fd, int argc, char **argv)
{
/* Process the command */
struct ast_conference *cnf;
@@ -853,7 +830,7 @@
return 0;
}
-static char *complete_confcmd(const char *line, const char *word, int pos, int state)
+static char *complete_meetmecmd(const char *line, const char *word, int pos, int state)
{
static char *cmds[] = {"lock", "unlock", "mute", "unmute", "kick", "list", NULL};
@@ -915,13 +892,23 @@
return NULL;
}
-static char conf_usage[] =
-"Usage: meetme (un)lock|(un)mute|kick|list [concise] <confno> <usernumber>\n"
+static char meetme_usage[] =
+"Usage: meetme (un)lock|(un)mute|kick|list [concise] <confno> <usernumber>\n"
" Executes a command for the conference or on a conferee\n";
-static struct ast_cli_entry cli_conf = {
- {"meetme", NULL, NULL }, conf_cmd,
- "Execute a command on a conference or conferee", conf_usage, complete_confcmd};
+static char sla_show_usage[] =
+"Usage: sla show\n"
+" Lists status of all shared line appearances\n";
+
+static struct ast_cli_entry cli_meetme[] = {
+ { { "sla", "show", NULL },
+ sla_show, "Show status of Shared Line Appearances",
+ sla_show_usage, NULL },
+
+ { { "meetme", NULL, NULL },
+ meetme_cmd, "Execute a command on a conference or conferee",
+ meetme_usage, complete_meetmecmd },
+};
static void conf_flush(int fd, struct ast_channel *chan)
{
@@ -3072,10 +3059,8 @@
{
int res = 0;
- res |= ast_cli_unregister(&cli_show_confs);
- res |= ast_cli_unregister(&cli_sla_show);
- res |= ast_cli_unregister(&cli_conf);
- res |= ast_manager_unregister("MeetmeMute");
+ ast_cli_unregister_multiple(cli_meetme, sizeof(cli_meetme) / sizeof(struct ast_cli_entry));
+ res = ast_manager_unregister("MeetmeMute");
res |= ast_manager_unregister("MeetmeUnmute");
res |= ast_unregister_application(app3);
res |= ast_unregister_application(app2);
@@ -3095,10 +3080,8 @@
int res;
ASTOBJ_CONTAINER_INIT(&slas);
- res = ast_cli_register(&cli_show_confs);
- res |= ast_cli_register(&cli_sla_show);
- res |= ast_cli_register(&cli_conf);
- res |= ast_manager_register("MeetmeMute", EVENT_FLAG_CALL, action_meetmemute, "Mute a Meetme user");
+ ast_cli_register_multiple(cli_meetme, sizeof(cli_meetme) / sizeof(struct ast_cli_entry));
+ res = ast_manager_register("MeetmeMute", EVENT_FLAG_CALL, action_meetmemute, "Mute a Meetme user");
res |= ast_manager_register("MeetmeUnmute", EVENT_FLAG_CALL, action_meetmeunmute, "Unmute a Meetme user");
res |= ast_register_application(app3, admin_exec, synopsis3, descrip3);
res |= ast_register_application(app2, count_exec, synopsis2, descrip2);
Modified: trunk/apps/app_mixmonitor.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_mixmonitor.c?rev=43212&r1=43211&r2=43212&view=diff
==============================================================================
--- trunk/apps/app_mixmonitor.c (original)
+++ trunk/apps/app_mixmonitor.c Mon Sep 18 14:54:18 2006
@@ -421,22 +421,21 @@
return ast_complete_channels(line, word, pos, state, 2);
}
-static struct ast_cli_entry cli_mixmonitor = {
- { "mixmonitor", NULL, NULL },
- mixmonitor_cli,
- "Execute a MixMonitor command.",
+static struct ast_cli_entry cli_mixmonitor[] = {
+ { { "mixmonitor", NULL, NULL },
+ mixmonitor_cli, "Execute a MixMonitor command.",
"mixmonitor <start|stop> <chan_name> [args]\n\n"
"The optional arguments are passed to the\n"
"MixMonitor application when the 'start' command is used.\n",
- complete_mixmonitor_cli
+ complete_mixmonitor_cli },
};
static int unload_module(void)
{
int res;
- res = ast_cli_unregister(&cli_mixmonitor);
- res |= ast_unregister_application(stop_app);
+ ast_cli_unregister_multiple(cli_mixmonitor, sizeof(cli_mixmonitor) / sizeof(struct ast_cli_entry));
+ res = ast_unregister_application(stop_app);
res |= ast_unregister_application(app);
ast_module_user_hangup_all();
@@ -448,8 +447,8 @@
{
int res;
- res = ast_cli_register(&cli_mixmonitor);
- res |= ast_register_application(app, mixmonitor_exec, synopsis, desc);
+ ast_cli_register_multiple(cli_mixmonitor, sizeof(cli_mixmonitor) / sizeof(struct ast_cli_entry));
+ res = ast_register_application(app, mixmonitor_exec, synopsis, desc);
res |= ast_register_application(stop_app, stop_mixmonitor_exec, stop_synopsis, stop_desc);
return res;
Modified: trunk/apps/app_osplookup.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_osplookup.c?rev=43212&r1=43211&r2=43212&view=diff
==============================================================================
--- trunk/apps/app_osplookup.c (original)
+++ trunk/apps/app_osplookup.c Mon Sep 18 14:54:18 2006
@@ -1596,11 +1596,10 @@
"Usage: osp show\n"
" Displays information on Open Settlement Protocol support\n";
-static struct ast_cli_entry osp_cli = {
- {"osp", "show", NULL},
- osp_show,
- "Displays OSP information",
- osp_usage
+static struct ast_cli_entry cli_osp[] = {
+ { { "osp", "show", NULL},
+ osp_show, "Displays OSP information",
+ osp_usage },
};
static int load_module(void)
@@ -1610,8 +1609,8 @@
if(!osp_load())
return AST_MODULE_LOAD_DECLINE;
- res = ast_cli_register(&osp_cli);
- res |= ast_register_application(app1, ospauth_exec, synopsis1, descrip1);
+ ast_cli_register_multiple(cli_osp, sizeof(cli_osp) / sizeof(struct ast_cli_entry));
+ res = ast_register_application(app1, ospauth_exec, synopsis1, descrip1);
res |= ast_register_application(app2, osplookup_exec, synopsis2, descrip2);
res |= ast_register_application(app3, ospnext_exec, synopsis3, descrip3);
res |= ast_register_application(app4, ospfinished_exec, synopsis4, descrip4);
@@ -1627,7 +1626,7 @@
res |= ast_unregister_application(app3);
res |= ast_unregister_application(app2);
res |= ast_unregister_application(app1);
- res |= ast_cli_unregister(&osp_cli);
+ ast_cli_unregister_multiple(cli_osp, sizeof(cli_osp) / sizeof(struct ast_cli_entry));
osp_unload();
ast_module_user_hangup_all();
Modified: trunk/apps/app_playback.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_playback.c?rev=43212&r1=43211&r2=43212&view=diff
==============================================================================
--- trunk/apps/app_playback.c (original)
+++ trunk/apps/app_playback.c Mon Sep 18 14:54:18 2006
@@ -371,8 +371,10 @@
return RESULT_SUCCESS;
}
-static struct ast_cli_entry myclis[] = {
- { { "say", "load", NULL }, __say_init, "set/show the say mode", "say load new|old" },
+static struct ast_cli_entry cli_playback[] = {
+ { { "say", "load", NULL },
+ __say_init, "set/show the say mode",
+ "say load new|old" },
};
static int playback_exec(struct ast_channel *chan, void *data)
@@ -478,7 +480,7 @@
static int load_module(void)
{
reload();
- ast_cli_register_multiple(myclis, sizeof(myclis)/sizeof(struct ast_cli_entry));
+ ast_cli_register_multiple(cli_playback, sizeof(cli_playback) / sizeof(struct ast_cli_entry));
return ast_register_application(app, playback_exec, synopsis, descrip);
}
Modified: trunk/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_queue.c?rev=43212&r1=43211&r2=43212&view=diff
==============================================================================
--- trunk/apps/app_queue.c (original)
+++ trunk/apps/app_queue.c Mon Sep 18 14:54:18 2006
@@ -3941,7 +3941,7 @@
return RESULT_SUCCESS;
}
-static int queues_show(int fd, int argc, char **argv)
+static int queue_list(int fd, int argc, char **argv)
{
return __queues_show(NULL, 0, fd, argc, argv, 0);
}
@@ -3975,7 +3975,7 @@
*/
static int manager_queues_show( struct mansession *s, struct message *m )
{
- char *a[] = { "show", "queues" };
+ char *a[] = { "queue", "list" };
__queues_show(s, 1, -1, 2, a, 0);
astman_append(s, "\r\n\r\n"); /* Properly terminate Manager output */
@@ -4175,7 +4175,7 @@
return 0;
}
-static int handle_add_queue_member(int fd, int argc, char *argv[])
+static int handle_queue_add_member(int fd, int argc, char *argv[])
{
char *queuename, *interface;
int penalty;
@@ -4222,9 +4222,9 @@
}
}
-static char *complete_add_queue_member(const char *line, const char *word, int pos, int state)
-{
- /* 0 - add; 1 - queue; 2 - member; 3 - <member>; 4 - to; 5 - <queue>; 6 - penalty; 7 - <penalty> */
+static char *complete_queue_add_member(const char *line, const char *word, int pos, int state)
+{
+ /* 0 - queue; 1 - add; 2 - member; 3 - <member>; 4 - to; 5 - <queue>; 6 - penalty; 7 - <penalty> */
switch (pos) {
case 3: /* Don't attempt to complete name of member (infinite possibilities) */
return NULL;
@@ -4249,7 +4249,7 @@
}
}
-static int handle_remove_queue_member(int fd, int argc, char *argv[])
+static int handle_queue_remove_member(int fd, int argc, char *argv[])
{
char *queuename, *interface;
@@ -4280,13 +4280,13 @@
}
}
-static char *complete_remove_queue_member(const char *line, const char *word, int pos, int state)
+static char *complete_queue_remove_member(const char *line, const char *word, int pos, int state)
{
int which = 0;
struct call_queue *q;
struct member *m;
- /* 0 - add; 1 - queue; 2 - member; 3 - <member>; 4 - from; 5 - <queue> */
+ /* 0 - queue; 1 - remove; 2 - member; 3 - <member>; 4 - from; 5 - <queue> */
if (pos > 5 || pos < 3)
return NULL;
if (pos == 4) /* only one possible match, 'from' */
@@ -4312,44 +4312,64 @@
return NULL;
}
-static char show_queues_usage[] =
-"Usage: show queues\n"
+static char queue_list_usage[] =
+"Usage: queue list\n"
" Provides summary information on call queues.\n";
-static struct ast_cli_entry cli_show_queues = {
- { "show", "queues", NULL }, queues_show,
- "Show status of queues", show_queues_usage, NULL };
-
-static char show_queue_usage[] =
-"Usage: show queue\n"
+static char queue_show_usage[] =
+"Usage: queue show\n"
" Provides summary information on a specified queue.\n";
-static struct ast_cli_entry cli_show_queue = {
- { "show", "queue", NULL }, queue_show,
- "Show status of a specified queue", show_queue_usage, complete_queue };
-
-static char aqm_cmd_usage[] =
-"Usage: add queue member <channel> to <queue> [penalty <penalty>]\n";
-
-static struct ast_cli_entry cli_add_queue_member = {
- { "add", "queue", "member", NULL }, handle_add_queue_member,
- "Add a channel to a specified queue", aqm_cmd_usage, complete_add_queue_member };
-
-static char rqm_cmd_usage[] =
-"Usage: remove queue member <channel> from <queue>\n";
-
-static struct ast_cli_entry cli_remove_queue_member = {
- { "remove", "queue", "member", NULL }, handle_remove_queue_member,
- "Removes a channel from a specified queue", rqm_cmd_usage, complete_remove_queue_member };
+static char qam_cmd_usage[] =
+"Usage: queue add member <channel> to <queue> [penalty <penalty>]\n";
+
+static char qrm_cmd_usage[] =
+"Usage: queue remove member <channel> from <queue>\n";
+
+static struct ast_cli_entry cli_show_queues_deprecated = {
+ { "show", "queues", NULL },
+ queue_list, NULL,
+ NULL, NULL };
+
+static struct ast_cli_entry cli_show_queue_deprecated = {
+ { "show", "queue", NULL },
+ queue_show, NULL,
+ NULL, complete_queue };
+
+static struct ast_cli_entry cli_add_queue_member_deprecated = {
+ { "add", "queue", "member", NULL },
+ handle_queue_add_member, NULL,
+ NULL, complete_queue_add_member };
+
+static struct ast_cli_entry cli_remove_queue_member_deprecated = {
+ { "remove", "queue", "member", NULL },
+ handle_queue_remove_member, NULL,
+ NULL, complete_queue_remove_member };
+
+static struct ast_cli_entry cli_queue[] = {
+ { { "queue", "list", NULL },
+ queue_list, "Show status of queues",
+ queue_list_usage, NULL, &cli_show_queues_deprecated },
+
+ { { "queue", "show", NULL },
+ queue_show, "Show status of a specified queue",
+ queue_show_usage, complete_queue, &cli_show_queue_deprecated },
+
+ { { "queue", "add", "member", NULL },
+ handle_queue_add_member, "Add a channel to a specified queue",
+ qam_cmd_usage, complete_queue_add_member, &cli_add_queue_member_deprecated },
+
+ { { "queue", "remove", "member", NULL },
+ handle_queue_remove_member, "Removes a channel from a specified queue",
+ qrm_cmd_usage, complete_queue_remove_member, &cli_remove_queue_member_deprecated },
+};
static int unload_module(void)
{
int res;
- res = ast_cli_unregister(&cli_show_queue);
- res |= ast_cli_unregister(&cli_show_queues);
- res |= ast_cli_unregister(&cli_add_queue_member);
- res |= ast_cli_unregister(&cli_remove_queue_member);
+ ast_cli_unregister_multiple(cli_queue, sizeof(cli_queue) / sizeof(struct ast_cli_entry));
+ res = ast_manager_unregister("QueueStatus");
res |= ast_manager_unregister("Queues");
res |= ast_manager_unregister("QueueStatus");
res |= ast_manager_unregister("QueueAdd");
@@ -4360,11 +4380,11 @@
res |= ast_unregister_application(app_pqm);
res |= ast_unregister_application(app_upqm);
res |= ast_unregister_application(app_ql);
+ res |= ast_unregister_application(app);
res |= ast_custom_function_unregister(&queueagentcount_function);
res |= ast_custom_function_unregister(&queuemembercount_function);
res |= ast_custom_function_unregister(&queuememberlist_function);
res |= ast_custom_function_unregister(&queuewaitingcount_function);
- res |= ast_unregister_application(app);
ast_module_user_hangup_all();
@@ -4380,21 +4400,18 @@
return AST_MODULE_LOAD_DECLINE;
if (queue_persistent_members)
reload_queue_members();
+ ast_cli_register_multiple(cli_queue, sizeof(cli_queue) / sizeof(struct ast_cli_entry));
res = ast_register_application(app, queue_exec, synopsis, descrip);
- res |= ast_cli_register(&cli_show_queue);
- res |= ast_cli_register(&cli_show_queues);
- res |= ast_cli_register(&cli_add_queue_member);
- res |= ast_cli_register(&cli_remove_queue_member);
+ res |= ast_register_application(app_aqm, aqm_exec, app_aqm_synopsis, app_aqm_descrip);
+ res |= ast_register_application(app_rqm, rqm_exec, app_rqm_synopsis, app_rqm_descrip);
+ res |= ast_register_application(app_pqm, pqm_exec, app_pqm_synopsis, app_pqm_descrip);
+ res |= ast_register_application(app_upqm, upqm_exec, app_upqm_synopsis, app_upqm_descrip);
+ res |= ast_register_application(app_ql, ql_exec, app_ql_synopsis, app_ql_descrip);
res |= ast_manager_register("Queues", 0, manager_queues_show, "Queues");
res |= ast_manager_register("QueueStatus", 0, manager_queues_status, "Queue Status");
res |= ast_manager_register("QueueAdd", EVENT_FLAG_AGENT, manager_add_queue_member, "Add interface to queue.");
res |= ast_manager_register("QueueRemove", EVENT_FLAG_AGENT, manager_remove_queue_member, "Remove interface from queue.");
res |= ast_manager_register("QueuePause", EVENT_FLAG_AGENT, manager_pause_queue_member, "Makes a queue member temporarily unavailable");
- res |= ast_register_application(app_aqm, aqm_exec, app_aqm_synopsis, app_aqm_descrip);
- res |= ast_register_application(app_rqm, rqm_exec, app_rqm_synopsis, app_rqm_descrip);
- res |= ast_register_application(app_pqm, pqm_exec, app_pqm_synopsis, app_pqm_descrip);
- res |= ast_register_application(app_upqm, upqm_exec, app_upqm_synopsis, app_upqm_descrip);
- res |= ast_register_application(app_ql, ql_exec, app_ql_synopsis, app_ql_descrip);
res |= ast_custom_function_register(&queueagentcount_function);
res |= ast_custom_function_register(&queuemembercount_function);
res |= ast_custom_function_register(&queuememberlist_function);
Modified: trunk/apps/app_realtime.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_realtime.c?rev=43212&r1=43211&r2=43212&view=diff
==============================================================================
--- trunk/apps/app_realtime.c (original)
+++ trunk/apps/app_realtime.c Mon Sep 18 14:54:18 2006
@@ -69,7 +69,7 @@
"updated or -1 if an error occurs.\n";
-static int cli_load_realtime(int fd, int argc, char **argv)
+static int cli_realtime_load(int fd, int argc, char **argv)
{
char *header_format = "%30s %-30s\n";
struct ast_variable *var=NULL;
@@ -94,7 +94,7 @@
return RESULT_SUCCESS;
}
-static int cli_update_realtime(int fd, int argc, char **argv) {
+static int cli_realtime_update(int fd, int argc, char **argv) {
int res = 0;
if(argc<7) {
@@ -115,21 +115,23 @@
return RESULT_SUCCESS;
}
-static char cli_load_realtime_usage[] =
+static char cli_realtime_load_usage[] =
"Usage: realtime load <family> <colmatch> <value>\n"
" Prints out a list of variables using the RealTime driver.\n";
-static struct ast_cli_entry cli_load_realtime_cmd = {
- { "realtime", "load", NULL, NULL }, cli_load_realtime,
- "Used to print out RealTime variables.", cli_load_realtime_usage, NULL };
-
-static char cli_update_realtime_usage[] =
+static char cli_realtime_update_usage[] =
"Usage: realtime update <family> <colmatch> <value>\n"
" Update a single variable using the RealTime driver.\n";
-static struct ast_cli_entry cli_update_realtime_cmd = {
- { "realtime", "update", NULL, NULL }, cli_update_realtime,
- "Used to update RealTime variables.", cli_update_realtime_usage, NULL };
+static struct ast_cli_entry cli_realtime[] = {
+ { { "realtime", "load", NULL, NULL },
+ cli_realtime_load, "Used to print out RealTime variables.",
+ cli_realtime_load_usage, NULL },
+
+ { { "realtime", "update", NULL, NULL },
+ cli_realtime_update, "Used to update RealTime variables.",
+ cli_realtime_update_usage, NULL },
+};
static int realtime_update_exec(struct ast_channel *chan, void *data)
{
@@ -236,9 +238,8 @@
{
int res;
- res = ast_cli_unregister(&cli_load_realtime_cmd);
- res |= ast_cli_unregister(&cli_update_realtime_cmd);
- res |= ast_unregister_application(uapp);
+ ast_cli_unregister_multiple(cli_realtime, sizeof(cli_realtime) / sizeof(struct ast_cli_entry));
+ res = ast_unregister_application(uapp);
res |= ast_unregister_application(app);
ast_module_user_hangup_all();
@@ -250,9 +251,8 @@
{
int res;
- res = ast_cli_register(&cli_load_realtime_cmd);
- res |= ast_cli_register(&cli_update_realtime_cmd);
- res |= ast_register_application(uapp, realtime_update_exec, usynopsis, udesc);
+ ast_cli_register_multiple(cli_realtime, sizeof(cli_realtime) / sizeof(struct ast_cli_entry));
+ res = ast_register_application(uapp, realtime_update_exec, usynopsis, udesc);
res |= ast_register_application(app, realtime_exec, synopsis, desc);
return res;
Modified: trunk/apps/app_rpt.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_rpt.c?rev=43212&r1=43211&r2=43212&view=diff
==============================================================================
--- trunk/apps/app_rpt.c (original)
+++ trunk/apps/app_rpt.c Mon Sep 18 14:54:18 2006
@@ -726,29 +726,30 @@
"Usage: rpt restart\n"
" Restarts app_rpt\n";
-static struct ast_cli_entry cli_debug =
- { { "rpt", "debug", "level" }, rpt_do_debug,
- "Enable app_rpt debugging", debug_usage };
-
-static struct ast_cli_entry cli_dump =
- { { "rpt", "dump" }, rpt_do_dump,
- "Dump app_rpt structs for debugging", dump_usage };
-
-static struct ast_cli_entry cli_stats =
- { { "rpt", "stats" }, rpt_do_stats,
- "Dump node statistics", dump_stats };
-
-static struct ast_cli_entry cli_lstats =
- { { "rpt", "lstats" }, rpt_do_lstats,
- "Dump link statistics", dump_lstats };
-
-static struct ast_cli_entry cli_reload =
- { { "rpt", "reload" }, rpt_do_reload,
- "Reload app_rpt config", reload_usage };
-
-static struct ast_cli_entry cli_restart =
- { { "rpt", "restart" }, rpt_do_restart,
- "Restart app_rpt", restart_usage };
+static struct ast_cli_entry cli_rpt[] = {
+ { { "rpt", "debug", "level" },
+ rpt_do_debug, "Enable app_rpt debugging",
+ debug_usage },
+
+ { { "rpt", "dump" },
+ rpt_do_dump, "Dump app_rpt structs for debugging",
+ dump_usage },
+
+ { { "rpt", "stats" },
+ rpt_do_stats, "Dump node statistics",
+ dump_stats },
+ { { "rpt", "lstats" },
+ rpt_do_lstats, "Dump link statistics",
+ dump_lstats },
+
+ { { "rpt", "reload" },
+ rpt_do_reload, "Reload app_rpt config",
+ reload_usage },
+
+ { { "rpt", "restart" },
+ rpt_do_restart, "Restart app_rpt",
+ restart_usage },
+};
/*
* Telemetry defaults
@@ -8018,12 +8019,7 @@
i = ast_unregister_application(app);
/* Unregister cli extensions */
- ast_cli_unregister(&cli_debug);
- ast_cli_unregister(&cli_dump);
- ast_cli_unregister(&cli_stats);
- ast_cli_unregister(&cli_lstats);
- ast_cli_unregister(&cli_reload);
- ast_cli_unregister(&cli_restart);
+ ast_cli_unregister_multiple(cli_rpt, sizeof(cli_rpt) / sizeof(struct ast_cli_entry));
return i;
}
@@ -8038,12 +8034,7 @@
ast_pthread_create(&rpt_master_thread,NULL,rpt_master,cfg);
/* Register cli extensions */
- ast_cli_register(&cli_debug);
- ast_cli_register(&cli_dump);
- ast_cli_register(&cli_stats);
- ast_cli_register(&cli_lstats);
- ast_cli_register(&cli_reload);
- ast_cli_register(&cli_restart);
+ ast_cli_register_multiple(cli_rpt, sizeof(cli_rpt) / sizeof(struct ast_cli_entry));
return ast_register_application(app, rpt_exec, synopsis, descrip);
}
Modified: trunk/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_voicemail.c?rev=43212&r1=43211&r2=43212&view=diff
==============================================================================
--- trunk/apps/app_voicemail.c (original)
+++ trunk/apps/app_voicemail.c Mon Sep 18 14:54:18 2006
@@ -6710,15 +6710,15 @@
return res;
}
-static char show_voicemail_users_help[] =
-"Usage: show voicemail users [for <context>]\n"
+static char voicemail_show_users_help[] =
+"Usage: voicemail list users [for <context>]\n"
" Lists all mailboxes currently set up\n";
-static char show_voicemail_zones_help[] =
-"Usage: show voicemail zones\n"
+static char voicemail_show_zones_help[] =
+"Usage: voicemail list zones\n"
" Lists zone message formats\n";
-static int handle_show_voicemail_users(int fd, int argc, char *argv[])
+static int handle_voicemail_show_users(int fd, int argc, char *argv[])
{
struct ast_vm_user *vmu;
char *output_format = "%-10s %-5s %-25s %-10s %6s\n";
@@ -6773,7 +6773,7 @@
return RESULT_SUCCESS;
}
-static int handle_show_voicemail_zones(int fd, int argc, char *argv[])
+static int handle_voicemail_show_zones(int fd, int argc, char *argv[])
{
struct vm_zone *zone;
char *output_format = "%-15s %-20s %-45s\n";
@@ -6797,7 +6797,7 @@
return res;
}
-static char *complete_show_voicemail_users(const char *line, const char *word, int pos, int state)
+static char *complete_voicemail_show_users(const char *line, const char *word, int pos, int state)
{
int which = 0;
int wordlen;
@@ -6821,15 +6821,25 @@
return NULL;
}
-static struct ast_cli_entry show_voicemail_users_cli =
- { { "show", "voicemail", "users", NULL },
- handle_show_voicemail_users, "List defined voicemail boxes",
- show_voicemail_users_help, complete_show_voicemail_users };
-
-static struct ast_cli_entry show_voicemail_zones_cli =
- { { "show", "voicemail", "zones", NULL },
- handle_show_voicemail_zones, "List zone message formats",
- show_voicemail_zones_help, NULL };
+static struct ast_cli_entry cli_show_voicemail_users_deprecated = {
+ { "show", "voicemail", "users", NULL },
+ handle_voicemail_show_users, NULL,
+ NULL, complete_voicemail_show_users };
+
+static struct ast_cli_entry cli_show_voicemail_zones_deprecated = {
+ { "show", "voicemail", "zones", NULL },
+ handle_voicemail_show_zones, NULL,
+ NULL, NULL };
+
+static struct ast_cli_entry cli_voicemail[] = {
+ { { "voicemail", "list", "users", NULL },
+ handle_voicemail_show_users, "List defined voicemail boxes",
+ voicemail_show_users_help, complete_voicemail_show_users, &cli_show_voicemail_users_deprecated },
+
+ { { "voicemail", "list", "zones", NULL },
+ handle_voicemail_show_zones, "List zone message formats",
+ voicemail_show_zones_help, NULL, &cli_show_voicemail_zones_deprecated },
+};
static int load_config(void)
{
@@ -7359,8 +7369,7 @@
res |= ast_unregister_application(app2);
res |= ast_unregister_application(app3);
res |= ast_unregister_application(app4);
- res |= ast_cli_unregister(&show_voicemail_users_cli);
- res |= ast_cli_unregister(&show_voicemail_zones_cli);
+ ast_cli_unregister_multiple(cli_voicemail, sizeof(cli_voicemail) / sizeof(struct ast_cli_entry));
ast_uninstall_vm_functions();
ast_module_user_hangup_all();
@@ -7382,8 +7391,7 @@
return(res);
}
- ast_cli_register(&show_voicemail_users_cli);
- ast_cli_register(&show_voicemail_zones_cli);
+ ast_cli_register_multiple(cli_voicemail, sizeof(cli_voicemail) / sizeof(struct ast_cli_entry));
/* compute the location of the voicemail spool directory */
snprintf(VM_SPOOL_DIR, sizeof(VM_SPOOL_DIR), "%s/voicemail/", ast_config_AST_SPOOL_DIR);
Modified: trunk/channels/chan_agent.c
URL: http://svn.digium.com/view/asterisk/trunk/channels/chan_agent.c?rev=43212&r1=43211&r2=43212&view=diff
==============================================================================
--- trunk/channels/chan_agent.c (original)
+++ trunk/channels/chan_agent.c Mon Sep 18 14:54:18 2006
@@ -1682,11 +1682,11 @@
static char show_agents_usage[] =
-"Usage: show agents\n"
+"Usage: agent list\n"
" Provides summary information on agents.\n";
static char show_agents_online_usage[] =
-"Usage: show agents\n"
+"Usage: agent list online\n"
" Provides a list of all online agents.\n";
static char agent_logoff_usage[] =
@@ -1694,17 +1694,29 @@
" Sets an agent as no longer logged in.\n"
" If 'soft' is specified, do not hangup existing calls.\n";
-static struct ast_cli_entry cli_show_agents = {
- { "show", "agents", NULL }, agents_show,
- "Show status of agents", show_agents_usage, NULL };
-
-static struct ast_cli_entry cli_show_agents_online = {
- { "show", "agents", "online" }, agents_show_online,
- "Show all online agents", show_agents_online_usage, NULL };
-
-static struct ast_cli_entry cli_agent_logoff = {
- { "agent", "logoff", NULL }, agent_logoff_cmd,
- "Sets an agent offline", agent_logoff_usage, complete_agent_logoff_cmd };
+static struct ast_cli_entry cli_show_agents_deprecated = {
+ { "show", "agents", NULL },
+ agents_show, NULL,
+ NULL, NULL };
+
+static struct ast_cli_entry cli_show_agents_online_deprecated = {
+ { "show", "agents", "online" },
+ agents_show_online, NULL,
+ NULL, NULL };
+
+static struct ast_cli_entry cli_agents[] = {
+ { { "agent", "list", NULL },
+ agents_show, "Show status of agents",
+ show_agents_usage, NULL, &cli_show_agents_deprecated },
+
+ { { "agent", "list", "online" },
+ agents_show_online, "Show all online agents",
+ show_agents_online_usage, NULL, &cli_show_agents_online_deprecated },
+
+ { { "agent", "logoff", NULL },
+ agent_logoff_cmd, "Sets an agent offline",
+ agent_logoff_usage, complete_agent_logoff_cmd },
+};
/*!
* \brief Log in agent application.
@@ -2560,9 +2572,7 @@
ast_manager_register2("AgentCallbackLogin", EVENT_FLAG_AGENT, action_agent_callback_login, "Sets an agent as logged in by callback", mandescr_agent_callback_login);
/* CLI Commands */
- ast_cli_register(&cli_show_agents);
- ast_cli_register(&cli_show_agents_online);
- ast_cli_register(&cli_agent_logoff);
+ ast_cli_register_multiple(cli_agents, sizeof(cli_agents) / sizeof(struct ast_cli_entry));
/* Dialplan Functions */
ast_custom_function_register(&agent_function);
@@ -2586,9 +2596,7 @@
/* Unregister dialplan functions */
ast_custom_function_unregister(&agent_function);
/* Unregister CLI commands */
- ast_cli_unregister(&cli_show_agents);
- ast_cli_unregister(&cli_show_agents_online);
- ast_cli_unregister(&cli_agent_logoff);
+ ast_cli_unregister_multiple(cli_agents, sizeof(cli_agents) / sizeof(struct ast_cli_entry));
/* Unregister dialplan applications */
ast_unregister_application(app);
ast_unregister_application(app2);
Modified: trunk/channels/chan_alsa.c
URL: http://svn.digium.com/view/asterisk/trunk/channels/chan_alsa.c?rev=43212&r1=43211&r2=43212&view=diff
==============================================================================
--- trunk/channels/chan_alsa.c (original)
+++ trunk/channels/chan_alsa.c Mon Sep 18 14:54:18 2006
@@ -841,7 +841,7 @@
return tmp;
}
-static int console_autoanswer(int fd, int argc, char *argv[])
+static int console_autoanswer_deprecated(int fd, int argc, char *argv[])
{
int res = RESULT_SUCCESS;
@@ -866,6 +866,26 @@
return res;
}
+static int console_autoanswer(int fd, int argc, char *argv[])
+{
+ int res = RESULT_SUCCESS;;
+ if ((argc != 2) && (argc != 3))
+ return RESULT_SHOWUSAGE;
+ ast_mutex_lock(&alsalock);
+ if (argc == 2) {
+ ast_cli(fd, "Auto answer is %s.\n", autoanswer ? "on" : "off");
+ } else {
+ if (!strcasecmp(argv[2], "on"))
+ autoanswer = -1;
+ else if (!strcasecmp(argv[2], "off"))
+ autoanswer = 0;
+ else
+ res = RESULT_SHOWUSAGE;
+ }
+ ast_mutex_unlock(&alsalock);
+ return res;
+}
+
static char *autoanswer_complete(const char *line, const char *word, int pos, int state)
{
#ifndef MIN
@@ -885,11 +905,12 @@
}
static const char autoanswer_usage[] =
- "Usage: autoanswer [on|off]\n"
+ "Usage: console autoanswer [on|off]\n"
" Enables or disables autoanswer feature. If used without\n"
- " argument, displays the current on/off status of autoanswer.\n" " The default value of autoanswer is in 'alsa.conf'.\n";
-
-static int console_answer(int fd, int argc, char *argv[])
+ " argument, displays the current on/off status of autoanswer.\n"
+ " The default value of autoanswer is in 'alsa.conf'.\n";
+
+static int console_answer_deprecated(int fd, int argc, char *argv[])
{
int res = RESULT_SUCCESS;
@@ -921,9 +942,43 @@
return RESULT_SUCCESS;
}
-static char sendtext_usage[] = "Usage: send text <message>\n" " Sends a text message for display on the remote terminal.\n";
-
-static int console_sendtext(int fd, int argc, char *argv[])
+static int console_answer(int fd, int argc, char *argv[])
+{
+ int res = RESULT_SUCCESS;
+
+ if (argc != 2)
+ return RESULT_SHOWUSAGE;
+
+ ast_mutex_lock(&alsalock);
+
+ if (!alsa.owner) {
+ ast_cli(fd, "No one is calling us\n");
+ res = RESULT_FAILURE;
+ } else {
+ hookstate = 1;
+ cursound = -1;
+ grab_owner();
+ if (alsa.owner) {
+ struct ast_frame f = { AST_FRAME_CONTROL, AST_CONTROL_ANSWER };
+ ast_queue_frame(alsa.owner, &f);
+ ast_mutex_unlock(&alsa.owner->lock);
+ }
+ answer_sound();
+ }
+
+ snd_pcm_prepare(alsa.icard);
+ snd_pcm_start(alsa.icard);
+
+ ast_mutex_unlock(&alsalock);
+
+ return RESULT_SUCCESS;
+}
+
+static char sendtext_usage[] =
+ "Usage: console send text <message>\n"
+ " Sends a text message for display on the remote terminal.\n";
+
+static int console_sendtext_deprecated(int fd, int argc, char *argv[])
{
int tmparg = 2;
int res = RESULT_SUCCESS;
@@ -964,9 +1019,52 @@
return res;
}
-static char answer_usage[] = "Usage: answer\n" " Answers an incoming call on the console (ALSA) channel.\n";
-
-static int console_hangup(int fd, int argc, char *argv[])
+static int console_sendtext(int fd, int argc, char *argv[])
+{
+ int tmparg = 3;
+ int res = RESULT_SUCCESS;
+
+ if (argc < 3)
+ return RESULT_SHOWUSAGE;
+
+ ast_mutex_lock(&alsalock);
+
+ if (!alsa.owner) {
+ ast_cli(fd, "No one is calling us\n");
+ res = RESULT_FAILURE;
+ } else {
+ struct ast_frame f = { AST_FRAME_TEXT, 0 };
+ char text2send[256] = "";
+ text2send[0] = '\0';
+ while (tmparg < argc) {
+ strncat(text2send, argv[tmparg++], sizeof(text2send) - strlen(text2send) - 1);
+ strncat(text2send, " ", sizeof(text2send) - strlen(text2send) - 1);
+ }
+ text2send[strlen(text2send) - 1] = '\n';
+ f.data = text2send;
+ f.datalen = strlen(text2send) + 1;
+ grab_owner();
+ if (alsa.owner) {
+ ast_queue_frame(alsa.owner, &f);
+ f.frametype = AST_FRAME_CONTROL;
+ f.subclass = AST_CONTROL_ANSWER;
+ f.data = NULL;
+ f.datalen = 0;
+ ast_queue_frame(alsa.owner, &f);
+ ast_mutex_unlock(&alsa.owner->lock);
+ }
+ }
+
+ ast_mutex_unlock(&alsalock);
+
+ return res;
+}
+
+static char answer_usage[] =
+ "Usage: console answer\n"
+ " Answers an incoming call on the console (ALSA) channel.\n";
+
+static int console_hangup_deprecated(int fd, int argc, char *argv[])
{
int res = RESULT_SUCCESS;
@@ -994,10 +1092,39 @@
return res;
}
-static char hangup_usage[] = "Usage: hangup\n" " Hangs up any call currently placed on the console.\n";
-
-
-static int console_dial(int fd, int argc, char *argv[])
+static int console_hangup(int fd, int argc, char *argv[])
+{
+ int res = RESULT_SUCCESS;
+
+ if (argc != 2)
+ return RESULT_SHOWUSAGE;
+
+ cursound = -1;
+
+ ast_mutex_lock(&alsalock);
+
+ if (!alsa.owner && !hookstate) {
+ ast_cli(fd, "No call to hangup up\n");
+ res = RESULT_FAILURE;
+ } else {
+ hookstate = 0;
+ grab_owner();
+ if (alsa.owner) {
+ ast_queue_hangup(alsa.owner);
+ ast_mutex_unlock(&alsa.owner->lock);
+ }
+ }
+
+ ast_mutex_unlock(&alsalock);
+
+ return res;
+}
+
+static char hangup_usage[] =
+ "Usage: console hangup\n"
+ " Hangs up any call currently placed on the console.\n";
+
+static int console_dial_deprecated(int fd, int argc, char *argv[])
{
char tmp[256], *tmp2;
char *mye, *myc;
@@ -1054,20 +1181,117 @@
return res;
}
-static char dial_usage[] = "Usage: dial [extension[@context]]\n" " Dials a given extension (and context if specified)\n";
-
-
-static struct ast_cli_entry myclis[] = {
- {{"answer", NULL}, console_answer, "Answer an incoming console call", answer_usage},
- {{"hangup", NULL}, console_hangup, "Hangup a call on the console", hangup_usage},
- {{"dial", NULL}, console_dial, "Dial an extension on the console", dial_usage},
- {{"send", "text", NULL}, console_sendtext, "Send text to the remote device", sendtext_usage},
- {{"autoanswer", NULL}, console_autoanswer, "Sets/displays autoanswer", autoanswer_usage, autoanswer_complete}
+static int console_dial(int fd, int argc, char *argv[])
+{
+ char tmp[256], *tmp2;
+ char *mye, *myc;
+ char *d;
+ int res = RESULT_SUCCESS;
+
+ if ((argc != 2) && (argc != 3))
+ return RESULT_SHOWUSAGE;
+
+ ast_mutex_lock(&alsalock);
+
+ if (alsa.owner) {
+ if (argc == 3) {
+ d = argv[2];
+ grab_owner();
+ if (alsa.owner) {
+ struct ast_frame f = { AST_FRAME_DTMF };
+ while (*d) {
+ f.subclass = *d;
+ ast_queue_frame(alsa.owner, &f);
+ d++;
+ }
+ ast_mutex_unlock(&alsa.owner->lock);
+ }
+ } else {
+ ast_cli(fd, "You're already in a call. You can use this only to dial digits until you hangup\n");
+ res = RESULT_FAILURE;
+ }
+ } else {
+ mye = exten;
+ myc = context;
+ if (argc == 3) {
+ char *stringp = NULL;
+ strncpy(tmp, argv[2], sizeof(tmp) - 1);
+ stringp = tmp;
+ strsep(&stringp, "@");
+ tmp2 = strsep(&stringp, "@");
+ if (!ast_strlen_zero(tmp))
+ mye = tmp;
+ if (!ast_strlen_zero(tmp2))
+ myc = tmp2;
+ }
+ if (ast_exists_extension(NULL, myc, mye, 1, NULL)) {
+ strncpy(alsa.exten, mye, sizeof(alsa.exten) - 1);
+ strncpy(alsa.context, myc, sizeof(alsa.context) - 1);
+ hookstate = 1;
+ alsa_new(&alsa, AST_STATE_RINGING);
+ } else
+ ast_cli(fd, "No such extension '%s' in context '%s'\n", mye, myc);
+ }
+
+ ast_mutex_unlock(&alsalock);
+
+ return res;
+}
+
+static char dial_usage[] =
+ "Usage: console dial [extension[@context]]\n"
+ " Dials a given extension (and context if specified)\n";
+
+static struct ast_cli_entry cli_alsa_answer_deprecated = {
+ { "answer", NULL },
+ console_answer_deprecated, NULL,
+ NULL };
+
+static struct ast_cli_entry cli_alsa_hangup_deprecated = {
+ { "hangup", NULL },
+ console_hangup_deprecated, NULL,
+ NULL };
+
+static struct ast_cli_entry cli_alsa_dial_deprecated = {
+ { "dial", NULL },
+ console_dial_deprecated, NULL,
+ NULL };
+
+static struct ast_cli_entry cli_alsa_send_text_deprecated = {
+ { "send", "text", NULL },
+ console_sendtext_deprecated, NULL,
+ NULL };
+
+static struct ast_cli_entry cli_alsa_autoanswer_deprecated = {
+ { "autoanswer", NULL },
+ console_autoanswer_deprecated, NULL,
+ NULL, autoanswer_complete };
+
+static struct ast_cli_entry cli_alsa[] = {
+ { { "console", "answer", NULL },
+ console_answer, "Answer an incoming console call",
+ answer_usage, NULL, &cli_alsa_answer_deprecated },
+
+ { { "console", "hangup", NULL },
+ console_hangup, "Hangup a call on the console",
+ hangup_usage, NULL, &cli_alsa_hangup_deprecated },
+
+ { { "console", "dial", NULL },
+ console_dial, "Dial an extension on the console",
+ dial_usage, NULL, &cli_alsa_dial_deprecated },
+
+ { { "console", "send", "text", NULL },
+ console_sendtext, "Send text to the remote device",
+ sendtext_usage, NULL, &cli_alsa_send_text_deprecated },
+
+ { { "console", "autoanswer", NULL },
+ console_autoanswer, "Sets/displays autoanswer",
+ autoanswer_usage, autoanswer_complete, &cli_alsa_autoanswer_deprecated },
};
static int load_module(void)
{
- int res, x;
+ int res;
struct ast_config *cfg;
struct ast_variable *v;
@@ -1123,8 +1347,8 @@
ast_log(LOG_ERROR, "Unable to register channel class 'Console'\n");
return -1;
}
[... 7037 lines stripped ...]
More information about the asterisk-commits
mailing list