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
This commit is contained in:
Jonathan Rose
2014-04-18 20:09:24 +00:00
parent 06657c92e6
commit b9d7dfcc62
11 changed files with 677 additions and 68 deletions

View File

@@ -368,12 +368,22 @@ void stasis_app_control_clear_roles(struct stasis_app_control *control)
ast_channel_clear_bridge_roles(control->channel);
}
int control_command_count(struct stasis_app_control *control)
{
return ao2_container_count(control->command_queue);
}
int control_is_done(struct stasis_app_control *control)
{
/* Called from stasis_app_exec thread; no lock needed */
return control->is_done;
}
void control_mark_done(struct stasis_app_control *control)
{
control->is_done = 1;
}
struct stasis_app_control_continue_data {
char context[AST_MAX_CONTEXT];
char extension[AST_MAX_EXTENSION];

View File

@@ -57,6 +57,15 @@ int control_dispatch_all(struct stasis_app_control *control,
*/
void control_wait(struct stasis_app_control *control);
/*!
* \brief Returns the count of items in a control's command queue.
*
* \param control Control to count commands on
*
* \retval number of commands in the command que
*/
int control_command_count(struct stasis_app_control *control);
/*!
* \brief Returns true if control_continue() has been called on this \a control.
*
@@ -66,5 +75,7 @@ void control_wait(struct stasis_app_control *control);
*/
int control_is_done(struct stasis_app_control *control);
void control_mark_done(struct stasis_app_control *control);
#endif /* _ASTERISK_RES_STASIS_CONTROL_H */