diff options
author | Matt Jordan <mjordan@digium.com> | 2016-11-08 10:11:41 -0600 |
---|---|---|
committer | Matt Jordan <mjordan@digium.com> | 2016-11-14 17:02:00 -0500 |
commit | d23b4af4779675589c8a3ce39c0f4b80d0432d5c (patch) | |
tree | bbec0798470850b63070cf5a6464c4f5d85de601 /include | |
parent | a58d3597019f8cc5a503f140671232ae3f8d9119 (diff) |
res/ari/resource_bridges: Add the ability to manipulate the video source
In multi-party bridges, Asterisk currently supports two video modes:
* Follow the talker, in which the speaker with the most energy is shown
to all participants but the speaker, and the speaker sees the
previous video source
* Explicitly set video sources, in which all participants see a locked
video source
Prior to this patch, ARI had no ability to manipulate the video source.
This isn't important for two-party bridges, in which Asterisk merely
relays the video between the participants. However, in a multi-party
bridge, it can be advantageous to allow an external application to
manipulate the video source.
This patch provides two new routes to accomplish this:
(1) setVideoSource: POST /bridges/{bridgeId}/videoSource/{channelId}
Sets a video source to an explicit channel
(2) clearVideoSource: DELETE /bridges/{bridgeId}/videoSource
Removes any explicit video source, and sets the video mode to talk
detection
ASTERISK-26595 #close
Change-Id: I98e455d5bffc08ea5e8d6b84ccaf063c714e6621
Diffstat (limited to 'include')
-rw-r--r-- | include/asterisk/bridge.h | 9 | ||||
-rw-r--r-- | include/asterisk/stasis_bridges.h | 4 |
2 files changed, 13 insertions, 0 deletions
diff --git a/include/asterisk/bridge.h b/include/asterisk/bridge.h index 30ac0953c..0d4376735 100644 --- a/include/asterisk/bridge.h +++ b/include/asterisk/bridge.h @@ -903,6 +903,15 @@ int ast_bridge_is_video_src(struct ast_bridge *bridge, struct ast_channel *chan) */ void ast_bridge_remove_video_src(struct ast_bridge *bridge, struct ast_channel *chan); +/*! + * \brief Converts an enum representation of a bridge video mode to string + * + * \param video_mode The video mode + * + * \retval A string representation of \c video_mode + */ +const char *ast_bridge_video_mode_to_string(enum ast_bridge_video_mode_type video_mode); + enum ast_transfer_result { /*! The transfer completed successfully */ AST_BRIDGE_TRANSFER_SUCCESS, diff --git a/include/asterisk/stasis_bridges.h b/include/asterisk/stasis_bridges.h index d549e4620..05d356cc2 100644 --- a/include/asterisk/stasis_bridges.h +++ b/include/asterisk/stasis_bridges.h @@ -58,6 +58,10 @@ struct ast_bridge_snapshot { unsigned int num_channels; /*! Number of active channels in the bridge. */ unsigned int num_active; + /*! The video mode of the bridge */ + enum ast_bridge_video_mode_type video_mode; + /*! Unique ID of the channel providing video, if one exists */ + AST_STRING_FIELD_EXTENDED(video_source_id); }; /*! |