mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-02 11:58:40 +00:00
Show some counters with 'show dialplan' (bug #2968)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4422 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
12
pbx.c
12
pbx.c
@@ -2802,7 +2802,9 @@ static int handle_show_dialplan(int fd, int argc, char *argv[])
|
|||||||
struct ast_context *c;
|
struct ast_context *c;
|
||||||
char *exten = NULL, *context = NULL;
|
char *exten = NULL, *context = NULL;
|
||||||
int context_existence = 0, extension_existence = 0;
|
int context_existence = 0, extension_existence = 0;
|
||||||
|
/* Variables used for different counters */
|
||||||
|
int total_context = 0, total_exten = 0, total_prio = 0;
|
||||||
|
|
||||||
if (argc != 3 && argc != 2) return -1;
|
if (argc != 3 && argc != 2) return -1;
|
||||||
|
|
||||||
/* we obtain [exten@]context? if yes, split them ... */
|
/* we obtain [exten@]context? if yes, split them ... */
|
||||||
@@ -2852,6 +2854,7 @@ static int handle_show_dialplan(int fd, int argc, char *argv[])
|
|||||||
* if we our extension only
|
* if we our extension only
|
||||||
*/
|
*/
|
||||||
if (!exten) {
|
if (!exten) {
|
||||||
|
total_context++;
|
||||||
ast_cli(fd, "[ Context '%s' created by '%s' ]\n",
|
ast_cli(fd, "[ Context '%s' created by '%s' ]\n",
|
||||||
ast_get_context_name(c), ast_get_context_registrar(c));
|
ast_get_context_name(c), ast_get_context_registrar(c));
|
||||||
context_info_printed = 1;
|
context_info_printed = 1;
|
||||||
@@ -2876,11 +2879,13 @@ static int handle_show_dialplan(int fd, int argc, char *argv[])
|
|||||||
|
|
||||||
/* may we print context info? */
|
/* may we print context info? */
|
||||||
if (!context_info_printed) {
|
if (!context_info_printed) {
|
||||||
|
total_context++;
|
||||||
ast_cli(fd, "[ Context '%s' created by '%s' ]\n",
|
ast_cli(fd, "[ Context '%s' created by '%s' ]\n",
|
||||||
ast_get_context_name(c),
|
ast_get_context_name(c),
|
||||||
ast_get_context_registrar(c));
|
ast_get_context_registrar(c));
|
||||||
context_info_printed = 1;
|
context_info_printed = 1;
|
||||||
}
|
}
|
||||||
|
total_prio++;
|
||||||
|
|
||||||
/* write extension name and first peer */
|
/* write extension name and first peer */
|
||||||
bzero(buf, sizeof(buf));
|
bzero(buf, sizeof(buf));
|
||||||
@@ -2896,9 +2901,11 @@ static int handle_show_dialplan(int fd, int argc, char *argv[])
|
|||||||
ast_cli(fd, " %-17s %-45s [%s]\n", buf, buf2,
|
ast_cli(fd, " %-17s %-45s [%s]\n", buf, buf2,
|
||||||
ast_get_extension_registrar(e));
|
ast_get_extension_registrar(e));
|
||||||
|
|
||||||
|
total_exten++;
|
||||||
/* walk next extension peers */
|
/* walk next extension peers */
|
||||||
p = ast_walk_extension_priorities(e, e);
|
p = ast_walk_extension_priorities(e, e);
|
||||||
while (p) {
|
while (p) {
|
||||||
|
total_prio++;
|
||||||
bzero((void *)buf2, sizeof(buf2));
|
bzero((void *)buf2, sizeof(buf2));
|
||||||
bzero((void *)buf, sizeof(buf));
|
bzero((void *)buf, sizeof(buf));
|
||||||
if (ast_get_extension_label(p))
|
if (ast_get_extension_label(p))
|
||||||
@@ -2985,7 +2992,8 @@ static int handle_show_dialplan(int fd, int argc, char *argv[])
|
|||||||
exten);
|
exten);
|
||||||
return RESULT_FAILURE;
|
return RESULT_FAILURE;
|
||||||
}
|
}
|
||||||
|
ast_cli(fd,"-= %d extensions (%d priorities) in %d contexts. =-\n",total_exten, total_prio, total_context);
|
||||||
|
|
||||||
/* everything ok */
|
/* everything ok */
|
||||||
return RESULT_SUCCESS;
|
return RESULT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user