From b9d7dfcc62c80d2b2827dd7b70701dfb21512c13 Mon Sep 17 00:00:00 2001 From: Jonathan Rose Date: Fri, 18 Apr 2014 20:09:24 +0000 Subject: ARI: Make bridges/{bridgeID}/play queue sound files Previously multiple play actions against a bridge at one time would cause the sounds to play simultaneously on the bridge. Now if a sound is already playing, the play action will queue playback to occur after the completion of other sounds currently on the queue. (closes issue ASTERISK-22677) Reported by: John Bigelow Review: https://reviewboard.asterisk.org/r/3379/ ........ Merged revisions 412639 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@412641 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- include/asterisk/stasis_app.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'include/asterisk/stasis_app.h') diff --git a/include/asterisk/stasis_app.h b/include/asterisk/stasis_app.h index 8430cf330..02c67fdca 100644 --- a/include/asterisk/stasis_app.h +++ b/include/asterisk/stasis_app.h @@ -374,6 +374,15 @@ void stasis_app_control_execute_until_exhausted( struct ast_channel *chan, struct stasis_app_control *control); +/*! + * \brief Check if a control is marked as done + * \since 12.2.0 + * + * \param control Which control object is being evaluated + */ +int stasis_app_control_is_done( + struct stasis_app_control *control); + /*! * \brief Returns the uniqueid of the channel associated with this control * @@ -637,6 +646,30 @@ struct ast_channel *stasis_app_bridge_moh_channel( int stasis_app_bridge_moh_stop( struct ast_bridge *bridge); +/*! + * \brief Finds an existing ARI playback channel in a bridge + * + * \param bridge Bridge we want to find the playback channel for + * + * \return NULL if the playback channel can not be found for any reason. + * \return Pointer to the ;1 end of the playback channel chain. + */ +struct ast_channel *stasis_app_bridge_playback_channel_find( + struct ast_bridge *bridge); + +/*! + * \brief Adds a channel to the list of ARI playback channels for bridges. + * + * \param bridge Bridge we are adding the playback channel for + * \param chan Channel being added as a playback channel (must be ;1) + * + * \retval -1 failed to add channel for any reason + * \retval 0 on success + */ +int stasis_app_bridge_playback_channel_add(struct ast_bridge *bridge, + struct ast_channel *chan, + struct stasis_app_control *control); + /*! * \brief Result codes used when adding/removing channels to/from bridges. */ -- cgit v1.2.3