diff options
author | Joshua Colp <jcolp@digium.com> | 2013-11-13 23:11:32 +0000 |
---|---|---|
committer | Joshua Colp <jcolp@digium.com> | 2013-11-13 23:11:32 +0000 |
commit | 67b650543c3ea59418bf159323d7244c343f85f6 (patch) | |
tree | 5c7e3cc32898eabb207393983cab28d72f1f6a39 /res/ari | |
parent | f6593b4156b0daa0a74f1f04dc062a6b24acab6c (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.c | 16 | ||||
-rw-r--r-- | res/ari/resource_channels.h | 13 |
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 */ |