summaryrefslogtreecommitdiff
path: root/main/stasis_bridging.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/stasis_bridging.c')
-rw-r--r--main/stasis_bridging.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/main/stasis_bridging.c b/main/stasis_bridging.c
index d181c400c..28771a7b8 100644
--- a/main/stasis_bridging.c
+++ b/main/stasis_bridging.c
@@ -310,6 +310,28 @@ struct ast_json *ast_bridge_snapshot_to_json(const struct ast_bridge_snapshot *s
return ast_json_ref(json_chan);
}
+struct ast_bridge_snapshot *ast_bridge_snapshot_get_latest(const char *uniqueid)
+{
+ RAII_VAR(struct stasis_message *, message, NULL, ao2_cleanup);
+ struct ast_bridge_snapshot *snapshot;
+
+ ast_assert(!ast_strlen_zero(uniqueid));
+
+ message = stasis_cache_get(ast_bridge_topic_all_cached(),
+ ast_bridge_snapshot_type(),
+ uniqueid);
+ if (!message) {
+ return NULL;
+ }
+
+ snapshot = stasis_message_data(message);
+ if (!snapshot) {
+ return NULL;
+ }
+ ao2_ref(snapshot, +1);
+ return snapshot;
+}
+
static void stasis_bridging_cleanup(void)
{
ao2_cleanup(bridge_topic_all);