From 6072e043cfd032a85fc12a7aa772684baac5b44b Mon Sep 17 00:00:00 2001 From: Paul Belanger Date: Tue, 15 Oct 2013 15:30:39 +0000 Subject: [PATCH] Use POST / DELETE to toggle hold / moh for ARI channels This change updates how we handle toggle events, rather then create two different function names, we'll just use POST / DELETE from HTTP to handle it. Review: https://reviewboard.asterisk.org/r/2906/ ........ Merged revisions 400999 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@401007 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- res/res_ari_channels.c | 46 +++++++++++---------------------- rest-api/api-docs/channels.json | 10 +++---- 2 files changed, 20 insertions(+), 36 deletions(-) diff --git a/res/res_ari_channels.c b/res/res_ari_channels.c index 063e766f1d..dced6d65af 100644 --- a/res/res_ari_channels.c +++ b/res/res_ari_channels.c @@ -680,7 +680,7 @@ fin: __attribute__((unused)) return; } /*! - * \brief Parameter parsing callback for /channels/{channelId}/unhold. + * \brief Parameter parsing callback for /channels/{channelId}/hold. * \param get_params GET parameters in the HTTP request. * \param path_vars Path variables extracted from the request. * \param headers HTTP headers. @@ -722,13 +722,13 @@ static void ast_ari_unhold_channel_cb( is_valid = ast_ari_validate_void( response->message); } else { - ast_log(LOG_ERROR, "Invalid error response %d for /channels/{channelId}/unhold\n", code); + ast_log(LOG_ERROR, "Invalid error response %d for /channels/{channelId}/hold\n", code); is_valid = 0; } } if (!is_valid) { - ast_log(LOG_ERROR, "Response validation failed for /channels/{channelId}/unhold\n"); + ast_log(LOG_ERROR, "Response validation failed for /channels/{channelId}/hold\n"); ast_ari_response_error(response, 500, "Internal Server Error", "Response validation failed"); } @@ -738,7 +738,7 @@ fin: __attribute__((unused)) return; } /*! - * \brief Parameter parsing callback for /channels/{channelId}/mohstart. + * \brief Parameter parsing callback for /channels/{channelId}/moh. * \param get_params GET parameters in the HTTP request. * \param path_vars Path variables extracted from the request. * \param headers HTTP headers. @@ -786,13 +786,13 @@ static void ast_ari_moh_start_channel_cb( is_valid = ast_ari_validate_void( response->message); } else { - ast_log(LOG_ERROR, "Invalid error response %d for /channels/{channelId}/mohstart\n", code); + ast_log(LOG_ERROR, "Invalid error response %d for /channels/{channelId}/moh\n", code); is_valid = 0; } } if (!is_valid) { - ast_log(LOG_ERROR, "Response validation failed for /channels/{channelId}/mohstart\n"); + ast_log(LOG_ERROR, "Response validation failed for /channels/{channelId}/moh\n"); ast_ari_response_error(response, 500, "Internal Server Error", "Response validation failed"); } @@ -802,7 +802,7 @@ fin: __attribute__((unused)) return; } /*! - * \brief Parameter parsing callback for /channels/{channelId}/mohstop. + * \brief Parameter parsing callback for /channels/{channelId}/moh. * \param get_params GET parameters in the HTTP request. * \param path_vars Path variables extracted from the request. * \param headers HTTP headers. @@ -844,13 +844,13 @@ static void ast_ari_moh_stop_channel_cb( is_valid = ast_ari_validate_void( response->message); } else { - ast_log(LOG_ERROR, "Invalid error response %d for /channels/{channelId}/mohstop\n", code); + ast_log(LOG_ERROR, "Invalid error response %d for /channels/{channelId}/moh\n", code); is_valid = 0; } } if (!is_valid) { - ast_log(LOG_ERROR, "Response validation failed for /channels/{channelId}/mohstop\n"); + ast_log(LOG_ERROR, "Response validation failed for /channels/{channelId}/moh\n"); ast_ari_response_error(response, 500, "Internal Server Error", "Response validation failed"); } @@ -1199,33 +1199,17 @@ static struct stasis_rest_handlers channels_channelId_hold = { .path_segment = "hold", .callbacks = { [AST_HTTP_POST] = ast_ari_hold_channel_cb, + [AST_HTTP_DELETE] = ast_ari_unhold_channel_cb, }, .num_children = 0, .children = { } }; /*! \brief REST handler for /api-docs/channels.{format} */ -static struct stasis_rest_handlers channels_channelId_unhold = { - .path_segment = "unhold", - .callbacks = { - [AST_HTTP_POST] = ast_ari_unhold_channel_cb, - }, - .num_children = 0, - .children = { } -}; -/*! \brief REST handler for /api-docs/channels.{format} */ -static struct stasis_rest_handlers channels_channelId_mohstart = { - .path_segment = "mohstart", +static struct stasis_rest_handlers channels_channelId_moh = { + .path_segment = "moh", .callbacks = { [AST_HTTP_POST] = ast_ari_moh_start_channel_cb, - }, - .num_children = 0, - .children = { } -}; -/*! \brief REST handler for /api-docs/channels.{format} */ -static struct stasis_rest_handlers channels_channelId_mohstop = { - .path_segment = "mohstop", - .callbacks = { - [AST_HTTP_POST] = ast_ari_moh_stop_channel_cb, + [AST_HTTP_DELETE] = ast_ari_moh_stop_channel_cb, }, .num_children = 0, .children = { } @@ -1266,8 +1250,8 @@ static struct stasis_rest_handlers channels_channelId = { [AST_HTTP_GET] = ast_ari_get_channel_cb, [AST_HTTP_DELETE] = ast_ari_delete_channel_cb, }, - .num_children = 12, - .children = { &channels_channelId_dial,&channels_channelId_continue,&channels_channelId_answer,&channels_channelId_mute,&channels_channelId_unmute,&channels_channelId_hold,&channels_channelId_unhold,&channels_channelId_mohstart,&channels_channelId_mohstop,&channels_channelId_play,&channels_channelId_record,&channels_channelId_variable, } + .num_children = 10, + .children = { &channels_channelId_dial,&channels_channelId_continue,&channels_channelId_answer,&channels_channelId_mute,&channels_channelId_unmute,&channels_channelId_hold,&channels_channelId_moh,&channels_channelId_play,&channels_channelId_record,&channels_channelId_variable, } }; /*! \brief REST handler for /api-docs/channels.{format} */ static struct stasis_rest_handlers channels = { diff --git a/rest-api/api-docs/channels.json b/rest-api/api-docs/channels.json index 9d60b2b7c5..eeb56a5c64 100644 --- a/rest-api/api-docs/channels.json +++ b/rest-api/api-docs/channels.json @@ -433,11 +433,11 @@ ] }, { - "path": "/channels/{channelId}/unhold", + "path": "/channels/{channelId}/hold", "description": "Remove a channel from hold", "operations": [ { - "httpMethod": "POST", + "httpMethod": "DELETE", "summary": "Remove a channel from hold.", "nickname": "unholdChannel", "responseClass": "void", @@ -465,7 +465,7 @@ ] }, { - "path": "/channels/{channelId}/mohstart", + "path": "/channels/{channelId}/moh", "description": "Play music on hold to a channel", "operations": [ { @@ -506,11 +506,11 @@ ] }, { - "path": "/channels/{channelId}/mohstop", + "path": "/channels/{channelId}/moh", "description": "Stop playing music on hold to a channel", "operations": [ { - "httpMethod": "POST", + "httpMethod": "DELETE", "summary": "Stop playing music on hold to a channel.", "nickname": "mohStopChannel", "responseClass": "void",