mirror of
https://github.com/asterisk/asterisk.git
synced 2026-07-27 16:07:15 -07:00
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
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
/*!
|
||||
|
||||
Reference in New Issue
Block a user