|
|
|
@ -1479,6 +1479,35 @@ static char *handle_show_calendars(struct ast_cli_entry *e, int cmd, struct ast_
|
|
|
|
|
#undef FORMAT
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*! \brief CLI command to list of all calendars types currently loaded on the backend */
|
|
|
|
|
static char *handle_show_calendars_types(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
|
|
|
|
|
{
|
|
|
|
|
#define FORMAT "%-10.10s %-30.30s\n"
|
|
|
|
|
struct ast_calendar_tech *iter;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch(cmd) {
|
|
|
|
|
case CLI_INIT:
|
|
|
|
|
e->command = "calendar show types";
|
|
|
|
|
e->usage =
|
|
|
|
|
"Usage: calendar show types\n"
|
|
|
|
|
" Lists all registered calendars types.\n";
|
|
|
|
|
return NULL;
|
|
|
|
|
case CLI_GENERATE:
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ast_cli(a->fd, FORMAT, "Type", "Description");
|
|
|
|
|
AST_LIST_LOCK(&techs);
|
|
|
|
|
AST_LIST_TRAVERSE(&techs, iter, list) {
|
|
|
|
|
ast_cli(a->fd, FORMAT, iter->type, iter->description);
|
|
|
|
|
}
|
|
|
|
|
AST_LIST_UNLOCK(&techs);
|
|
|
|
|
|
|
|
|
|
return CLI_SUCCESS;
|
|
|
|
|
#undef FORMAT
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static char *epoch_to_string(char *buf, size_t buflen, time_t epoch)
|
|
|
|
|
{
|
|
|
|
|
struct ast_tm tm;
|
|
|
|
@ -1599,6 +1628,7 @@ static struct ast_cli_entry calendar_cli[] = {
|
|
|
|
|
AST_CLI_DEFINE(handle_show_calendar, "Display information about a calendar"),
|
|
|
|
|
AST_CLI_DEFINE(handle_show_calendars, "Show registered calendars"),
|
|
|
|
|
AST_CLI_DEFINE(handle_dump_sched, "Dump calendar sched context"),
|
|
|
|
|
AST_CLI_DEFINE(handle_show_calendars_types, "Show all calendar types loaded"),
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static int calendar_event_read(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len)
|
|
|
|
|