stasis: Don't hold app_registry and session locks unnecessarily
[asterisk/asterisk.git] / res / ari / resource_bridges.h
index 2b1e787..0d0286c 100644 (file)
@@ -52,7 +52,7 @@ struct ast_ari_bridges_list_args {
 void ast_ari_bridges_list(struct ast_variable *headers, struct ast_ari_bridges_list_args *args, struct ast_ari_response *response);
 /*! Argument struct for ast_ari_bridges_create() */
 struct ast_ari_bridges_create_args {
 void ast_ari_bridges_list(struct ast_variable *headers, struct ast_ari_bridges_list_args *args, struct ast_ari_response *response);
 /*! Argument struct for ast_ari_bridges_create() */
 struct ast_ari_bridges_create_args {
-       /*! Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media). */
+       /*! Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu). */
        const char *type;
        /*! Unique ID to give to the bridge being created. */
        const char *bridge_id;
        const char *type;
        /*! Unique ID to give to the bridge being created. */
        const char *bridge_id;
@@ -80,9 +80,9 @@ int ast_ari_bridges_create_parse_body(
  * \param[out] response HTTP response
  */
 void ast_ari_bridges_create(struct ast_variable *headers, struct ast_ari_bridges_create_args *args, struct ast_ari_response *response);
  * \param[out] response HTTP response
  */
 void ast_ari_bridges_create(struct ast_variable *headers, struct ast_ari_bridges_create_args *args, struct ast_ari_response *response);
-/*! Argument struct for ast_ari_bridges_create_or_update_with_id() */
-struct ast_ari_bridges_create_or_update_with_id_args {
-       /*! Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media) to set. */
+/*! Argument struct for ast_ari_bridges_create_with_id() */
+struct ast_ari_bridges_create_with_id_args {
+       /*! Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu) to set. */
        const char *type;
        /*! Unique ID to give to the bridge being created. */
        const char *bridge_id;
        const char *type;
        /*! Unique ID to give to the bridge being created. */
        const char *bridge_id;
@@ -96,9 +96,9 @@ struct ast_ari_bridges_create_or_update_with_id_args {
  * \retval zero on success
  * \retval non-zero on failure
  */
  * \retval zero on success
  * \retval non-zero on failure
  */
-int ast_ari_bridges_create_or_update_with_id_parse_body(
+int ast_ari_bridges_create_with_id_parse_body(
        struct ast_json *body,
        struct ast_json *body,
-       struct ast_ari_bridges_create_or_update_with_id_args *args);
+       struct ast_ari_bridges_create_with_id_args *args);
 
 /*!
  * \brief Create a new bridge or updates an existing one.
 
 /*!
  * \brief Create a new bridge or updates an existing one.
@@ -109,7 +109,7 @@ int ast_ari_bridges_create_or_update_with_id_parse_body(
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_bridges_create_or_update_with_id(struct ast_variable *headers, struct ast_ari_bridges_create_or_update_with_id_args *args, struct ast_ari_response *response);
+void ast_ari_bridges_create_with_id(struct ast_variable *headers, struct ast_ari_bridges_create_with_id_args *args, struct ast_ari_response *response);
 /*! Argument struct for ast_ari_bridges_get() */
 struct ast_ari_bridges_get_args {
        /*! Bridge's id */
 /*! Argument struct for ast_ari_bridges_get() */
 struct ast_ari_bridges_get_args {
        /*! Bridge's id */
@@ -150,6 +150,10 @@ struct ast_ari_bridges_add_channel_args {
        char *channel_parse;
        /*! Channel's role in the bridge */
        const char *role;
        char *channel_parse;
        /*! Channel's role in the bridge */
        const char *role;
+       /*! Absorb DTMF coming from this channel, preventing it to pass through to the bridge */
+       int absorb_dtmf;
+       /*! Mute audio from this channel, preventing it to pass through to the bridge */
+       int mute;
 };
 /*!
  * \brief Body parsing function for /bridges/{bridgeId}/addChannel.
 };
 /*!
  * \brief Body parsing function for /bridges/{bridgeId}/addChannel.
@@ -200,6 +204,34 @@ int ast_ari_bridges_remove_channel_parse_body(
  * \param[out] response HTTP response
  */
 void ast_ari_bridges_remove_channel(struct ast_variable *headers, struct ast_ari_bridges_remove_channel_args *args, struct ast_ari_response *response);
  * \param[out] response HTTP response
  */
 void ast_ari_bridges_remove_channel(struct ast_variable *headers, struct ast_ari_bridges_remove_channel_args *args, struct ast_ari_response *response);
+/*! Argument struct for ast_ari_bridges_set_video_source() */
+struct ast_ari_bridges_set_video_source_args {
+       /*! Bridge's id */
+       const char *bridge_id;
+       /*! Channel's id */
+       const char *channel_id;
+};
+/*!
+ * \brief Set a channel as the video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants.
+ *
+ * \param headers HTTP headers
+ * \param args Swagger parameters
+ * \param[out] response HTTP response
+ */
+void ast_ari_bridges_set_video_source(struct ast_variable *headers, struct ast_ari_bridges_set_video_source_args *args, struct ast_ari_response *response);
+/*! Argument struct for ast_ari_bridges_clear_video_source() */
+struct ast_ari_bridges_clear_video_source_args {
+       /*! Bridge's id */
+       const char *bridge_id;
+};
+/*!
+ * \brief Removes any explicit video source in a multi-party mixing bridge. This operation has no effect on bridges with two or fewer participants. When no explicit video source is set, talk detection will be used to determine the active video stream.
+ *
+ * \param headers HTTP headers
+ * \param args Swagger parameters
+ * \param[out] response HTTP response
+ */
+void ast_ari_bridges_clear_video_source(struct ast_variable *headers, struct ast_ari_bridges_clear_video_source_args *args, struct ast_ari_response *response);
 /*! Argument struct for ast_ari_bridges_start_moh() */
 struct ast_ari_bridges_start_moh_args {
        /*! Bridge's id */
 /*! Argument struct for ast_ari_bridges_start_moh() */
 struct ast_ari_bridges_start_moh_args {
        /*! Bridge's id */
@@ -245,11 +277,15 @@ void ast_ari_bridges_stop_moh(struct ast_variable *headers, struct ast_ari_bridg
 struct ast_ari_bridges_play_args {
        /*! Bridge's id */
        const char *bridge_id;
 struct ast_ari_bridges_play_args {
        /*! Bridge's id */
        const char *bridge_id;
-       /*! Media's URI to play. */
-       const char *media;
+       /*! Array of Media URIs to play. */
+       const char **media;
+       /*! Length of media array. */
+       size_t media_count;
+       /*! Parsing context for media. */
+       char *media_parse;
        /*! For sounds, selects language for sound. */
        const char *lang;
        /*! For sounds, selects language for sound. */
        const char *lang;
-       /*! Number of media to skip before playing. */
+       /*! Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified. */
        int offsetms;
        /*! Number of milliseconds to skip for forward/reverse operations. */
        int skipms;
        int offsetms;
        /*! Number of milliseconds to skip for forward/reverse operations. */
        int skipms;
@@ -283,11 +319,15 @@ struct ast_ari_bridges_play_with_id_args {
        const char *bridge_id;
        /*! Playback ID. */
        const char *playback_id;
        const char *bridge_id;
        /*! Playback ID. */
        const char *playback_id;
-       /*! Media's URI to play. */
-       const char *media;
+       /*! Array of Media URIs to play. */
+       const char **media;
+       /*! Length of media array. */
+       size_t media_count;
+       /*! Parsing context for media. */
+       char *media_parse;
        /*! For sounds, selects language for sound. */
        const char *lang;
        /*! For sounds, selects language for sound. */
        const char *lang;
-       /*! Number of media to skip before playing. */
+       /*! Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified. */
        int offsetms;
        /*! Number of milliseconds to skip for forward/reverse operations. */
        int skipms;
        int offsetms;
        /*! Number of milliseconds to skip for forward/reverse operations. */
        int skipms;
@@ -306,7 +346,7 @@ int ast_ari_bridges_play_with_id_parse_body(
 /*!
  * \brief Start playback of media on a bridge.
  *
 /*!
  * \brief Start playback of media on a bridge.
  *
- * The media URI may be any of a number of URI's. Currently sound: and recording: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)
+ * The media URI may be any of a number of URI's. Currently sound:, recording:, number:, digits:, characters:, and tone: URI's are supported. This operation creates a playback resource that can be used to control the playback of media (pause, rewind, fast forward, etc.)
  *
  * \param headers HTTP headers
  * \param args Swagger parameters
  *
  * \param headers HTTP headers
  * \param args Swagger parameters