diff options
author | Jenkins2 <jenkins2@gerrit.asterisk.org> | 2017-06-15 14:58:23 -0500 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2017-06-15 14:58:23 -0500 |
commit | b0d3cc079fe380b9476e9e7f4e578baa15c6c3b4 (patch) | |
tree | c7e48ba873149c80c93e196d717933e09e0c9d30 /include | |
parent | 7db1abbf874660e12ce0345e82ae23da7e71dd22 (diff) | |
parent | 0c6c258a7ec6cd086412f4eac7b26c1c9f543aa8 (diff) |
Merge "bridge: Add a deferred queue." into 14
Diffstat (limited to 'include')
-rw-r--r-- | include/asterisk/bridge_channel.h | 2 | ||||
-rw-r--r-- | include/asterisk/bridge_channel_internal.h | 11 | ||||
-rw-r--r-- | include/asterisk/bridge_technology.h | 3 |
3 files changed, 16 insertions, 0 deletions
diff --git a/include/asterisk/bridge_channel.h b/include/asterisk/bridge_channel.h index 797be4ebc..bead207fe 100644 --- a/include/asterisk/bridge_channel.h +++ b/include/asterisk/bridge_channel.h @@ -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]; /*! diff --git a/include/asterisk/bridge_channel_internal.h b/include/asterisk/bridge_channel_internal.h index fb8e781e8..ba71e9fc4 100644 --- a/include/asterisk/bridge_channel_internal.h +++ b/include/asterisk/bridge_channel_internal.h @@ -98,6 +98,17 @@ void bridge_channel_settle_owed_events(struct ast_bridge *orig_bridge, struct as /*! * \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. * \since 12.0.0 * diff --git a/include/asterisk/bridge_technology.h b/include/asterisk/bridge_technology.h index 843d93ccf..fb275c149 100644 --- a/include/asterisk/bridge_technology.h +++ b/include/asterisk/bridge_technology.h @@ -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); /*! TRUE if the bridge technology is currently suspended. */ |