summaryrefslogtreecommitdiff
path: root/res/ari
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2013-11-13 23:11:32 +0000
committerJoshua Colp <jcolp@digium.com>2013-11-13 23:11:32 +0000
commit67b650543c3ea59418bf159323d7244c343f85f6 (patch)
tree5c7e3cc32898eabb207393983cab28d72f1f6a39 /res/ari
parentf6593b4156b0daa0a74f1f04dc062a6b24acab6c (diff)
res_ari_channels: Add the ability to stop locally generated ringing on a channel.
Using the 'ring' operation it is possible to start locally generated ringback if the channel is answered. This change adds the ability to stop it by using DELETE. ........ Merged revisions 402804 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@402805 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/ari')
-rw-r--r--res/ari/resource_channels.c16
-rw-r--r--res/ari/resource_channels.h13
2 files changed, 29 insertions, 0 deletions
diff --git a/res/ari/resource_channels.c b/res/ari/resource_channels.c
index 2b09a3281..2ddfae1c5 100644
--- a/res/ari/resource_channels.c
+++ b/res/ari/resource_channels.c
@@ -140,6 +140,22 @@ void ast_ari_channels_ring(struct ast_variable *headers,
ast_ari_response_no_content(response);
}
+void ast_ari_channels_ring_stop(struct ast_variable *headers,
+ struct ast_ari_channels_ring_stop_args *args,
+ struct ast_ari_response *response)
+{
+ RAII_VAR(struct stasis_app_control *, control, NULL, ao2_cleanup);
+
+ control = find_control(response, args->channel_id);
+ if (control == NULL) {
+ return;
+ }
+
+ stasis_app_control_ring_stop(control);
+
+ ast_ari_response_no_content(response);
+}
+
void ast_ari_channels_mute(struct ast_variable *headers,
struct ast_ari_channels_mute_args *args,
struct ast_ari_response *response)
diff --git a/res/ari/resource_channels.h b/res/ari/resource_channels.h
index 089f3fa7a..6106b0061 100644
--- a/res/ari/resource_channels.h
+++ b/res/ari/resource_channels.h
@@ -152,6 +152,19 @@ struct ast_ari_channels_ring_args {
* \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 */