mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-04 11:58:52 +00:00
ari/stasis: Indicate progress before playback on a bridge
Make it possible to start a playback and the calling party to receive audio on a bridge before the call is connected. Model the implementation after play_on_channel and deliver a AST_CONTROL_PROGRESS before starting the playback. For a PJSIP channel this will result in sending a SIP 183 Session Progress.
This commit is contained in:
@@ -425,6 +425,12 @@ static void ari_bridges_play_new(const char **args_media,
|
||||
struct bridge_channel_control_thread_data *thread_data;
|
||||
pthread_t threadid;
|
||||
|
||||
struct ast_frame prog = {
|
||||
.frametype = AST_FRAME_CONTROL,
|
||||
.subclass.integer = AST_CONTROL_PROGRESS,
|
||||
};
|
||||
|
||||
|
||||
if (!(play_channel = prepare_bridge_media_channel("Announcer"))) {
|
||||
ast_ari_response_error(
|
||||
response, 500, "Internal Error", "Could not create playback channel");
|
||||
@@ -472,6 +478,8 @@ static void ari_bridges_play_new(const char **args_media,
|
||||
return;
|
||||
}
|
||||
|
||||
ast_bridge_queue_everyone_else(bridge, NULL, &prog);
|
||||
|
||||
/* Give play_channel and control reference to the thread data */
|
||||
thread_data = ast_malloc(sizeof(*thread_data) + strlen(bridge->uniqueid) + 1);
|
||||
if (!thread_data) {
|
||||
|
Reference in New Issue
Block a user