diff options
author | Kinsey Moore <kmoore@digium.com> | 2013-07-24 17:49:56 +0000 |
---|---|---|
committer | Kinsey Moore <kmoore@digium.com> | 2013-07-24 17:49:56 +0000 |
commit | bd10c86c64b770137ee196742ab0977103c8dce3 (patch) | |
tree | dbdebf45679501b5bdf2fa530a59877c5f911cd9 | |
parent | 5f98c6bf8468deb63edefc282c5b7b6b6eba1e4c (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.c | 10 |
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; } |