summaryrefslogtreecommitdiff
path: root/main/manager_bridges.c
diff options
context:
space:
mode:
authorMark Michelson <mmichelson@digium.com>2013-08-02 14:13:04 +0000
committerMark Michelson <mmichelson@digium.com>2013-08-02 14:13:04 +0000
commit328e99f41d48d8f15832bf4f6c97beb0ef71fc0c (patch)
treec79646508e9ae44a0728fa38832ae112d02ece45 /main/manager_bridges.c
parent41d6be2432a77cf9da5dbb3f0590a74340a2c54e (diff)
Make a couple of changes to help AMI events to be more clear in what is occurring.
* BridgeEnter now contains the unique ID of the channel that is to be swapped out, if applicable. * There is a ParkedCallSwap event that is sent when a parked channel has a new channel take its place. (closes issue ASTERISK-22193) reported by Mark Michelson Review: https://reviewboard.asterisk.org/r/2712 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396107 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/manager_bridges.c')
-rw-r--r--main/manager_bridges.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/main/manager_bridges.c b/main/manager_bridges.c
index 5d831b5b4..77533c600 100644
--- a/main/manager_bridges.c
+++ b/main/manager_bridges.c
@@ -58,6 +58,9 @@ static struct stasis_message_router *bridge_state_router;
<syntax>
<bridge_snapshot/>
<channel_snapshot/>
+ <parameter name="SwapUniqueid">
+ <para>The uniqueid of the channel being swapped out of the bridge</para>
+ </parameter>
</syntax>
</managerEventInstance>
</managerEvent>
@@ -247,9 +250,11 @@ static void channel_enter_cb(void *data, struct stasis_subscription *sub,
struct stasis_topic *topic,
struct stasis_message *message)
{
+ static const char *swap_name = "SwapUniqueid: ";
struct ast_bridge_blob *blob = stasis_message_data(message);
RAII_VAR(struct ast_str *, bridge_text, NULL, ast_free);
RAII_VAR(struct ast_str *, channel_text, NULL, ast_free);
+ const char *swap_id;
bridge_text = ast_manager_build_bridge_state_string(blob->bridge, "");
channel_text = ast_manager_build_channel_state_string(blob->channel);
@@ -257,11 +262,17 @@ static void channel_enter_cb(void *data, struct stasis_subscription *sub,
return;
}
+ swap_id = ast_json_string_get(ast_json_object_get(blob->blob, "swap"));
+
manager_event(EVENT_FLAG_CALL, "BridgeEnter",
"%s"
- "%s",
+ "%s"
+ "%s%s%s",
ast_str_buffer(bridge_text),
- ast_str_buffer(channel_text));
+ ast_str_buffer(channel_text),
+ swap_id ? swap_name : "",
+ S_OR(swap_id, ""),
+ swap_id ? "\r\n" : "");
}
static void channel_leave_cb(void *data, struct stasis_subscription *sub,