From bd10c86c64b770137ee196742ab0977103c8dce3 Mon Sep 17 00:00:00 2001
From: Kinsey Moore <kmoore@digium.com>
Date: Wed, 24 Jul 2013 17:49:56 +0000
Subject: [PATCH] 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
---
 main/manager_bridging.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/main/manager_bridging.c b/main/manager_bridging.c
index c24567eaa3..0bc086d5b3 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;
 }
-- 
GitLab