From a29f3f864d5d0d665e99ac2975d98323e7b0cb0f Mon Sep 17 00:00:00 2001 From: Naveen Albert Date: Wed, 21 Dec 2022 15:01:20 +0000 Subject: [PATCH] pbx_app: Update outdated pbx_exec channel snapshots. pbx_exec makes a channel snapshot before executing applications. This doesn't cause an issue during normal dialplan execution where pbx_exec is called over and over again in succession. However, if pbx_exec is called "one off", e.g. using ast_pbx_exec_application, then a channel snapshot never ends up getting made after the executed application returns, and inaccurate snapshot information will linger for a while, causing "core show channels", etc. to show erroneous info. This is fixed by manually making a channel snapshot at the end of ast_pbx_exec_application, since we anticipate that pbx_exec might not get called again immediately. ASTERISK-30367 #close Change-Id: I2a5131053aa9d11badbc0ef2ef40b1f83d0af086 --- main/pbx_app.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/main/pbx_app.c b/main/pbx_app.c index 5879d73078..6726a900b6 100644 --- a/main/pbx_app.c +++ b/main/pbx_app.c @@ -519,6 +519,8 @@ int ast_pbx_exec_application(struct ast_channel *chan, const char *app_name, con } res = pbx_exec(chan, app, app_args); } + /* Manually make a snapshot now, since pbx_exec won't necessarily get called again immediately. */ + ast_channel_publish_snapshot(chan); } return res; }