diff --git a/res/res_calendar.c b/res/res_calendar.c index 9b93aa9653..7d5721b10c 100644 --- a/res/res_calendar.c +++ b/res/res_calendar.c @@ -1171,6 +1171,7 @@ static int calendar_query_result_exec(struct ast_channel *chan, const char *cmd, struct eventlist *events; struct evententry *entry; int row = 1; + size_t listlen = 0; AST_DECLARE_APP_ARGS(args, AST_APP_ARG(id); AST_APP_ARG(field); @@ -1206,6 +1207,15 @@ static int calendar_query_result_exec(struct ast_channel *chan, const char *cmd, row = atoi(args.row); } + AST_LIST_TRAVERSE(events, entry, list) { + listlen++; + } + + if (!strcasecmp(args.field, "getnum")) { + snprintf(buf, len, "%zu", listlen); + return 0; + } + AST_LIST_TRAVERSE(events, entry, list) { if (--row) { continue;