diff --git a/include/asterisk/pbx.h b/include/asterisk/pbx.h index eccae45db50c2ac3995acc06f534c398061c3c5a..e56819cb0585e40a29794b74b76dcc70b89e4e76 100644 --- a/include/asterisk/pbx.h +++ b/include/asterisk/pbx.h @@ -723,6 +723,7 @@ int ast_pbx_outgoing_app(const char *type, int format, void *data, int timeout, /* Functions for returning values from structures */ const char *ast_get_context_name(struct ast_context *con); const char *ast_get_extension_name(struct ast_exten *exten); +struct ast_context *ast_get_extension_context(struct ast_exten *exten); const char *ast_get_include_name(struct ast_include *include); const char *ast_get_ignorepat_name(struct ast_ignorepat *ip); const char *ast_get_switch_name(struct ast_sw *sw); diff --git a/pbx.c b/pbx.c index 296e54c217c801b3736cf955f91a4b4b6ba353da..640b9e6c94a00497b73cc4f9ca5e47bd03bd3242 100644 --- a/pbx.c +++ b/pbx.c @@ -2974,8 +2974,10 @@ static int handle_show_hints(int fd, int argc, char *argv[]) watchers = 0; for (watcher = hint->callbacks; watcher; watcher = watcher->next) watchers++; - ast_cli(fd, " %-20.20s: %-20.20s State:%-15.15s Watchers %2d\n", - ast_get_extension_name(hint->exten), ast_get_extension_app(hint->exten), + ast_cli(fd, " %-20.20s@%20s: %-20.20s State:%-15.15s Watchers %2d\n", + ast_get_extension_name(hint->exten), + ast_get_context_name(ast_get_extension_context(hint->exten)), + ast_get_extension_app(hint->exten), ast_extension_state2str(hint->laststate), watchers); num++; } @@ -5893,6 +5895,11 @@ const char *ast_get_context_name(struct ast_context *con) return con ? con->name : NULL; } +struct ast_context *ast_get_extension_context(struct ast_exten *exten) +{ + return exten ? exten->parent : NULL; +} + const char *ast_get_extension_name(struct ast_exten *exten) { return exten ? exten->exten : NULL;