res_ari_channels: Add the ability to stop locally generated ringing on a channel.
[asterisk/asterisk.git] / res / ari / resource_channels.h
index b7f1ef2..6106b00 100644 (file)
@@ -39,8 +39,8 @@
 
 #include "asterisk/ari.h"
 
-/*! \brief Argument struct for ast_ari_get_channels() */
-struct ast_get_channels_args {
+/*! \brief Argument struct for ast_ari_channels_list() */
+struct ast_ari_channels_list_args {
 };
 /*!
  * \brief List all active channels in Asterisk.
@@ -49,9 +49,9 @@ struct ast_get_channels_args {
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_get_channels(struct ast_variable *headers, struct ast_get_channels_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_originate() */
-struct ast_originate_args {
+void ast_ari_channels_list(struct ast_variable *headers, struct ast_ari_channels_list_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_originate() */
+struct ast_ari_channels_originate_args {
        /*! \brief Endpoint to call. */
        const char *endpoint;
        /*! \brief The extension to dial after the endpoint answers */
@@ -60,7 +60,7 @@ struct ast_originate_args {
        const char *context;
        /*! \brief The priority to dial after the endpoint answers. If omitted, uses 1 */
        long priority;
-       /*! \brief The application name to pass to the Stasis application. */
+       /*! \brief The application that is subscribed to the originated channel, and passed to the Stasis application. */
        const char *app;
        /*! \brief The application arguments to pass to the Stasis application. */
        const char *app_args;
@@ -72,15 +72,15 @@ struct ast_originate_args {
 /*!
  * \brief Create a new channel (originate).
  *
- * The new channel is not created until the dialed party picks up. Not wanting to block this request indefinitely, this request returns immediately with a 204 No Content. When the channel is created, a StasisStart event is sent with the provided app and appArgs. In the event of a failure (timeout, busy, etc.), an OriginationFailed event is sent.
+ * The new channel is created immediately and a snapshot of it returned. If a Stasis application is provided it will be automatically subscribed to the originated channel for further events and updates.
  *
  * \param headers HTTP headers
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_originate(struct ast_variable *headers, struct ast_originate_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_get_channel() */
-struct ast_get_channel_args {
+void ast_ari_channels_originate(struct ast_variable *headers, struct ast_ari_channels_originate_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_get() */
+struct ast_ari_channels_get_args {
        /*! \brief Channel's id */
        const char *channel_id;
 };
@@ -91,11 +91,13 @@ struct ast_get_channel_args {
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_get_channel(struct ast_variable *headers, struct ast_get_channel_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_delete_channel() */
-struct ast_delete_channel_args {
+void ast_ari_channels_get(struct ast_variable *headers, struct ast_ari_channels_get_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_hangup() */
+struct ast_ari_channels_hangup_args {
        /*! \brief Channel's id */
        const char *channel_id;
+       /*! \brief Reason for hanging up the channel */
+       const char *reason;
 };
 /*!
  * \brief Delete (i.e. hangup) a channel.
@@ -104,62 +106,90 @@ struct ast_delete_channel_args {
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_delete_channel(struct ast_variable *headers, struct ast_delete_channel_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_dial() */
-struct ast_dial_args {
+void ast_ari_channels_hangup(struct ast_variable *headers, struct ast_ari_channels_hangup_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_continue_in_dialplan() */
+struct ast_ari_channels_continue_in_dialplan_args {
        /*! \brief Channel's id */
        const char *channel_id;
-       /*! \brief Endpoint to call. If not specified, dial is routed via dialplan */
-       const char *endpoint;
-       /*! \brief Extension to dial */
-       const char *extension;
-       /*! \brief When routing via dialplan, the context use. If omitted, uses 'default' */
+       /*! \brief The context to continue to. */
        const char *context;
-       /*! \brief Timeout (in seconds) before giving up dialing, or -1 for no timeout. */
-       int timeout;
+       /*! \brief The extension to continue to. */
+       const char *extension;
+       /*! \brief The priority to continue to. */
+       int priority;
 };
 /*!
- * \brief Create a new channel (originate) and bridge to this channel.
+ * \brief Exit application; continue execution in the dialplan.
  *
  * \param headers HTTP headers
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_dial(struct ast_variable *headers, struct ast_dial_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_continue_in_dialplan() */
-struct ast_continue_in_dialplan_args {
+void ast_ari_channels_continue_in_dialplan(struct ast_variable *headers, struct ast_ari_channels_continue_in_dialplan_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_answer() */
+struct ast_ari_channels_answer_args {
        /*! \brief Channel's id */
        const char *channel_id;
-       /*! \brief The context to continue to. */
-       const char *context;
-       /*! \brief The extension to continue to. */
-       const char *extension;
-       /*! \brief The priority to continue to. */
-       int priority;
 };
 /*!
- * \brief Exit application; continue execution in the dialplan.
+ * \brief Answer a channel.
  *
  * \param headers HTTP headers
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_continue_in_dialplan(struct ast_variable *headers, struct ast_continue_in_dialplan_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_answer_channel() */
-struct ast_answer_channel_args {
+void ast_ari_channels_answer(struct ast_variable *headers, struct ast_ari_channels_answer_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_ring() */
+struct ast_ari_channels_ring_args {
        /*! \brief Channel's id */
        const char *channel_id;
 };
 /*!
- * \brief Answer a channel.
+ * \brief Indicate ringing to a channel.
+ *
+ * \param headers HTTP headers
+ * \param args Swagger parameters
+ * \param[out] response HTTP response
+ */
+void ast_ari_channels_ring(struct ast_variable *headers, struct ast_ari_channels_ring_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_ring_stop() */
+struct ast_ari_channels_ring_stop_args {
+       /*! \brief Channel's id */
+       const char *channel_id;
+};
+/*!
+ * \brief Stop ringing indication on a channel if locally generated.
+ *
+ * \param headers HTTP headers
+ * \param args Swagger parameters
+ * \param[out] response HTTP response
+ */
+void ast_ari_channels_ring_stop(struct ast_variable *headers, struct ast_ari_channels_ring_stop_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_send_dtmf() */
+struct ast_ari_channels_send_dtmf_args {
+       /*! \brief Channel's id */
+       const char *channel_id;
+       /*! \brief DTMF To send. */
+       const char *dtmf;
+       /*! \brief Amount of time to wait before DTMF digits (specified in milliseconds) start. */
+       int before;
+       /*! \brief Amount of time in between DTMF digits (specified in milliseconds). */
+       int between;
+       /*! \brief Length of each DTMF digit (specified in milliseconds). */
+       int duration;
+       /*! \brief Amount of time to wait after DTMF digits (specified in milliseconds) end. */
+       int after;
+};
+/*!
+ * \brief Send provided DTMF to a given channel.
  *
  * \param headers HTTP headers
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_answer_channel(struct ast_variable *headers, struct ast_answer_channel_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_mute_channel() */
-struct ast_mute_channel_args {
+void ast_ari_channels_send_dtmf(struct ast_variable *headers, struct ast_ari_channels_send_dtmf_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_mute() */
+struct ast_ari_channels_mute_args {
        /*! \brief Channel's id */
        const char *channel_id;
        /*! \brief Direction in which to mute audio */
@@ -172,9 +202,9 @@ struct ast_mute_channel_args {
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_mute_channel(struct ast_variable *headers, struct ast_mute_channel_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_unmute_channel() */
-struct ast_unmute_channel_args {
+void ast_ari_channels_mute(struct ast_variable *headers, struct ast_ari_channels_mute_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_unmute() */
+struct ast_ari_channels_unmute_args {
        /*! \brief Channel's id */
        const char *channel_id;
        /*! \brief Direction in which to unmute audio */
@@ -187,9 +217,9 @@ struct ast_unmute_channel_args {
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_unmute_channel(struct ast_variable *headers, struct ast_unmute_channel_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_hold_channel() */
-struct ast_hold_channel_args {
+void ast_ari_channels_unmute(struct ast_variable *headers, struct ast_ari_channels_unmute_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_hold() */
+struct ast_ari_channels_hold_args {
        /*! \brief Channel's id */
        const char *channel_id;
 };
@@ -200,9 +230,9 @@ struct ast_hold_channel_args {
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_hold_channel(struct ast_variable *headers, struct ast_hold_channel_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_unhold_channel() */
-struct ast_unhold_channel_args {
+void ast_ari_channels_hold(struct ast_variable *headers, struct ast_ari_channels_hold_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_unhold() */
+struct ast_ari_channels_unhold_args {
        /*! \brief Channel's id */
        const char *channel_id;
 };
@@ -213,9 +243,9 @@ struct ast_unhold_channel_args {
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_unhold_channel(struct ast_variable *headers, struct ast_unhold_channel_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_moh_start_channel() */
-struct ast_moh_start_channel_args {
+void ast_ari_channels_unhold(struct ast_variable *headers, struct ast_ari_channels_unhold_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_start_moh() */
+struct ast_ari_channels_start_moh_args {
        /*! \brief Channel's id */
        const char *channel_id;
        /*! \brief Music on hold class to use */
@@ -230,9 +260,9 @@ struct ast_moh_start_channel_args {
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_moh_start_channel(struct ast_variable *headers, struct ast_moh_start_channel_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_moh_stop_channel() */
-struct ast_moh_stop_channel_args {
+void ast_ari_channels_start_moh(struct ast_variable *headers, struct ast_ari_channels_start_moh_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_stop_moh() */
+struct ast_ari_channels_stop_moh_args {
        /*! \brief Channel's id */
        const char *channel_id;
 };
@@ -243,9 +273,9 @@ struct ast_moh_stop_channel_args {
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_moh_stop_channel(struct ast_variable *headers, struct ast_moh_stop_channel_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_play_on_channel() */
-struct ast_play_on_channel_args {
+void ast_ari_channels_stop_moh(struct ast_variable *headers, struct ast_ari_channels_stop_moh_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_play() */
+struct ast_ari_channels_play_args {
        /*! \brief Channel's id */
        const char *channel_id;
        /*! \brief Media's URI to play. */
@@ -266,9 +296,9 @@ struct ast_play_on_channel_args {
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_play_on_channel(struct ast_variable *headers, struct ast_play_on_channel_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_record_channel() */
-struct ast_record_channel_args {
+void ast_ari_channels_play(struct ast_variable *headers, struct ast_ari_channels_play_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_record() */
+struct ast_ari_channels_record_args {
        /*! \brief Channel's id */
        const char *channel_id;
        /*! \brief Recording's filename */
@@ -295,9 +325,9 @@ struct ast_record_channel_args {
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_record_channel(struct ast_variable *headers, struct ast_record_channel_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_get_channel_var() */
-struct ast_get_channel_var_args {
+void ast_ari_channels_record(struct ast_variable *headers, struct ast_ari_channels_record_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_get_channel_var() */
+struct ast_ari_channels_get_channel_var_args {
        /*! \brief Channel's id */
        const char *channel_id;
        /*! \brief The channel variable or function to get */
@@ -310,9 +340,9 @@ struct ast_get_channel_var_args {
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_get_channel_var(struct ast_variable *headers, struct ast_get_channel_var_args *args, struct ast_ari_response *response);
-/*! \brief Argument struct for ast_ari_set_channel_var() */
-struct ast_set_channel_var_args {
+void ast_ari_channels_get_channel_var(struct ast_variable *headers, struct ast_ari_channels_get_channel_var_args *args, struct ast_ari_response *response);
+/*! \brief Argument struct for ast_ari_channels_set_channel_var() */
+struct ast_ari_channels_set_channel_var_args {
        /*! \brief Channel's id */
        const char *channel_id;
        /*! \brief The channel variable or function to set */
@@ -327,6 +357,6 @@ struct ast_set_channel_var_args {
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_set_channel_var(struct ast_variable *headers, struct ast_set_channel_var_args *args, struct ast_ari_response *response);
+void ast_ari_channels_set_channel_var(struct ast_variable *headers, struct ast_ari_channels_set_channel_var_args *args, struct ast_ari_response *response);
 
 #endif /* _ASTERISK_RESOURCE_CHANNELS_H */