summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKinsey Moore <kmoore@digium.com>2013-07-24 17:49:56 +0000
committerKinsey Moore <kmoore@digium.com>2013-07-24 17:49:56 +0000
commitbd10c86c64b770137ee196742ab0977103c8dce3 (patch)
treedbdebf45679501b5bdf2fa530a59877c5f911cd9
parent5f98c6bf8468deb63edefc282c5b7b6b6eba1e4c (diff)
Make AMI BridgeInfo action more verbose
Ensure that the BridgeInfo command provides adequate state information about channels by publishing the full channel snapshot for BridgeInfoChannel subevents. This prevents a two-stage lookup since most consumers will be keying on channel names instead of uniqueids. (closes issue ASTERISK-22140) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@395270 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--main/manager_bridging.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/main/manager_bridging.c b/main/manager_bridging.c
index c24567eaa..0bc086d5b 100644
--- a/main/manager_bridging.c
+++ b/main/manager_bridging.c
@@ -381,6 +381,7 @@ static int send_bridge_info_item_cb(void *obj, void *arg, void *data, int flags)
char *id_text = data;
RAII_VAR(struct stasis_message *, msg, NULL, ao2_cleanup);
struct ast_channel_snapshot *snapshot;
+ RAII_VAR(struct ast_str *, channel_text, NULL, ast_free);
msg = stasis_cache_get(ast_channel_topic_all_cached(),
ast_channel_snapshot_type(), uniqueid);
@@ -393,12 +394,17 @@ static int send_bridge_info_item_cb(void *obj, void *arg, void *data, int flags)
return 0;
}
+ channel_text = ast_manager_build_channel_state_string(snapshot);
+ if (!channel_text) {
+ return 0;
+ }
+
astman_append(s,
"Event: BridgeInfoChannel\r\n"
- "Uniqueid: %s\r\n"
+ "%s"
"%s"
"\r\n",
- uniqueid,
+ ast_str_buffer(channel_text),
id_text);
return 0;
}