mirror of
https://github.com/asterisk/asterisk.git
synced 2026-07-27 16:07:15 -07:00
Merge "bridge: Add a deferred queue."
This commit is contained in:
@@ -145,6 +145,8 @@ struct ast_bridge_channel {
|
||||
AST_LIST_ENTRY(ast_bridge_channel) entry;
|
||||
/*! Queue of outgoing frames to the channel. */
|
||||
AST_LIST_HEAD_NOLOCK(, ast_frame) wr_queue;
|
||||
/*! Queue of deferred frames, queued onto channel when other party joins. */
|
||||
AST_LIST_HEAD_NOLOCK(, ast_frame) deferred_queue;
|
||||
/*! Pipe to alert thread when frames are put into the wr_queue. */
|
||||
int alert_pipe[2];
|
||||
/*!
|
||||
|
||||
@@ -96,6 +96,17 @@ struct ast_bridge_channel *bridge_channel_internal_alloc(struct ast_bridge *brid
|
||||
*/
|
||||
void bridge_channel_settle_owed_events(struct ast_bridge *orig_bridge, struct ast_bridge_channel *bridge_channel);
|
||||
|
||||
/*!
|
||||
* \internal
|
||||
* \brief Queue any deferred frames on the channel.
|
||||
* \since 13.17.0
|
||||
*
|
||||
* \param bridge_channel Channel that the deferred frames should be pulled from and queued to.
|
||||
*
|
||||
* \return Nothing
|
||||
*/
|
||||
void bridge_channel_queue_deferred_frames(struct ast_bridge_channel *bridge_channel);
|
||||
|
||||
/*!
|
||||
* \internal
|
||||
* \brief Push the bridge channel into its specified bridge.
|
||||
|
||||
@@ -156,6 +156,9 @@ struct ast_bridge_technology {
|
||||
* \retval -1 Frame needs to be deferred.
|
||||
*
|
||||
* \note On entry, bridge is already locked.
|
||||
*
|
||||
* \note Deferred frames will be automatically queued onto the channel when another
|
||||
* channel joins the bridge.
|
||||
*/
|
||||
int (*write)(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel, struct ast_frame *frame);
|
||||
/*!
|
||||
|
||||
Reference in New Issue
Block a user